Skip to main content
Version: v5.7.0

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 list tells 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 list walks the tree (filtered by subtree and kind) and opschain nodes show reads one node in full.

Next: lesson 1.2 — Build and change your own (opschain learn 1.2), or back to your track (opschain learn).