1.1 Projects, environments, assets — and hosts
Included from Basic tierassets
After this you can: explain the node tree every piece of work targets, walk it with the opschain nodes family, and read one node in full.
Before you start — tick each one:
- Lesson 0.1 — Install and sign in (
opschain learn 0.1)
In the GUI: the projects screen is this tree — projects open into environments and assets, each node showing its template pin and maintenance badge.
Everything OpsChain runs, it runs against something: a node in your
estate. This lesson gives you the five node kinds, the paths that address
them, and the two read verbs you will use in every later lesson. The
estate lives on a server, so you need the context lesson 0.1 left active.
A server with no licence applied runs the evaluation footprint (1
project, 1 environment, 1 asset); registering it for the Basic tier
(opschain admin licence register) allows 3 environments — enough for
this module; lesson 1.5 explains where the limits come from.
1. Projects, environments, assets
The estate is a tree of three node kinds:
- A project is the top-level container — a system, a product, a team's domain.
- An environment is a stage of that project:
dev,test,prod. - An asset is a managed thing — a database, a web tier, an appliance. Assets live under an environment, or directly under the project for estate-wide infrastructure. Every asset is pinned to a template version that defines the actions you can run on it (lesson 3.4).
There is also a fourth node kind: an infrastructure node is a
registered host your estate can reach, living in an infrastructure/
collection inside the tree (under an environment or project —
/projects/acme/environments/prod/infrastructure/jump01), each with an
address, an operating system and a transport binding, registered and
deregistered deliberately (opschain infrastructure register). Where an
asset is a managed thing and a runner executes work, an
infrastructure node is a host the work reaches over SSH or RPC: it has
no action catalog of its own — a change still runs on an asset, and a
host-targeted action names the host as its host_ref, with the
caller's transport grant enforced at the host's own path. Lesson 6.4
walks the whole flow end to end; opschain docs infrastructure-nodes
is the reference.
The fifth kind is the entity: a minimal record of anything worth
keeping in the estate — a database schema, a rack, a building — with no
template, so nothing ever runs against it. Entities live in an
entities/ collection under any project, environment, asset or other
entity, keep properties, settings and metadata like every node, and are
managed with opschain entity (opschain docs cli/entity).
Nodes are addressed by path: acme/environments/dev/assets/web (a
leading /projects/ is accepted too). These paths are what you point
changes, workflows, properties and triggers at in every later lesson.
2. Walk the tree
opschain nodes list
You should see one row per node, depth-first, projects first:
PATH KIND NAME TEMPLATE MAINTENANCE
/projects/limebank project LimeBank - -
/projects/limebank/environments/nonprod environment Non-Production - -
/projects/limebank/environments/nonprod/assets/core_banking asset Core Banking limebank_ops:1.0.0 -
/projects/limebank/environments/prod environment Production - -
/projects/limebank/environments/prod/assets/core_banking asset Core Banking limebank_ops:1.0.0 -
/projects/limebank/environments/prod/assets/payments_gateway asset Payments Gateway limebank_ops:1.0.0 -
The TEMPLATE column shows each asset's pinned <template>:<version>; the
MAINTENANCE column badges nodes sitting inside an active maintenance
window (lesson 5.6). An archived node carries (archived) after its
name.
Narrow the view with a subtree path and filters:
opschain nodes list limebank/environments/prod --kind asset
PATH KIND NAME TEMPLATE MAINTENANCE
/projects/limebank/environments/prod/assets/core_banking asset Core Banking limebank_ops:1.0.0 -
/projects/limebank/environments/prod/assets/payments_gateway asset Payments Gateway limebank_ops:1.0.0 -
--wide adds the description and created-by columns; -o json prints
the same rows as node objects — the stable shape your scripts can rely
on (lesson 0.3).
3. Inspect one node
opschain nodes show limebank
path: /projects/limebank
kind: project
id: 01a1ae7e-909a-7be9-ba75-6c6500767528
name: LimeBank
description: Lime Group banking subsidiary
archived: false
created_by: admin
An asset adds a template: line, and a node under an active
maintenance window a maintenance: line naming the window.
Check yourself
- What are the five node kinds, and which column of
nodes listtells you which template version an asset runs?
What you learned
- The estate is a tree of projects, environments and assets, plus infrastructure nodes for the hosts work reaches and entities for records nothing runs against.
- Every node has a path, and paths are what changes, workflows, properties and triggers target.
opschain nodes listwalks the tree (filtered by subtree and kind) andopschain nodes showreads one node in full.
Next: lesson 1.2 — Build and change your own (opschain learn 1.2), or back to your track (opschain learn).