Skip to main content
Version: v5.7.0

Infrastructure node

packs:infrastructure

An infrastructure node is one managed host, hypervisor, network device or link recorded in the estate tree under a project, environment or asset. Nodes are registered one at a time or upserted in batches (an integration feed's natural shape), updated, archived and deregistered rather than deleted — membership closes softly, keeping history. The hot columns ride the row; the long tail of configuration lives in the node's properties document. Served by the v2 InfrastructureService (ListInfrastructureNodes, GetInfrastructureNode, SummarizeInfrastructure, RegisterInfrastructureNode, UpsertInfrastructureNodes, UpdateInfrastructureNode, DeregisterInfrastructureNode); writes are authorised like other node writes, on the parent's infrastructure rule path, 404-on-deny.

InfrastructureNode​

InfrastructureNode is one infrastructure node row: the indexed hot columns plus identity. The long tail of configuration lives in the node's properties document, served on the get.

FieldTypeMeaning
addressstringNetwork address; "" when not recorded. Indexed, unconstrained.
archivedbooleanShelved but still a member — set and cleared by update.
codestringThe record's code.
created_attimestampWhen the record was created.
created_bystringUsername of the creating identity.
descriptionstring"" when never set.
duplicate_addressbooleanTrue when another non-destroyed infrastructure node in the same environment carries the same address (a warning, never a refusal).
fqdnstringFully qualified domain name; "" when not recorded. Indexed, unconstrained.
idstringThe record's identity.
infrastructure_typestringOne of the closed registry: host, hypervisor, network_device, link.
last_facts_attimestampWhen facts last landed on this node; unset when never.
last_used_attimestampWhen a run step last reached this node through a transport session (a host_ref-bound step admitted at dispatch); unset when never.
lifecycle_statestringregistered or deregistered (the manual membership states), or one of the reserved integration-asserted states provisioned and destroyed.
namestringDisplay name.
node_pathstringThe node's own path, e.g. "/projects/web/environments/prod/infrastructure/kvm-mgmt-01".
parent_pathstringThe parent node's path (project, environment or asset).
properties_idstringThe node's own properties document id.
settings_idstringThe node's own settings document id.
updated_attimestampWhen the record was last updated.

InfrastructureFilter​

InfrastructureFilter is the typed predicate vocabulary over the indexed hot columns.

FieldTypeMeaning
addressstringExact address match; "" keeps all.
archivedbooleanKeep only archived (true) or unarchived (false); unset keeps both.
changed_sincetimestampKeep only rows with a lifecycle-change event (api:infrastructure:provisioned or api:infrastructure:destroyed) at or after this instant — the summary's recently-changed rows; unset keeps all.
codestringExact code match; "" keeps all.
duplicate_addressbooleanKeep only rows whose address another same-environment node carries (true) or does not (false); unset keeps both.
fqdnstringExact FQDN match; "" keeps all.
include_deregisteredbooleanInclude deregistered rows alongside the rest (the soft-close posture hides them by default).
infrastructure_typestringKeep only one registry type (host, hypervisor, network_device, link); "" keeps all.
last_facts_beforetimestampKeep only rows whose facts are older than this instant, rows whose facts were never collected included — the summary's stale-facts rows; unset keeps all.
last_used_beforetimestampKeep only rows no run step has reached since this instant, never-used rows included — the summary's unused rows; unset keeps all.
lifecycle_statestringKeep only one lifecycle state. "" keeps registered and provisioned; deregistered rows appear only when asked for here or via include_deregistered.
searchstringCase-insensitive substring over name and code; "" keeps all.

InfrastructureSummaryCell​

InfrastructureSummaryCell is one count of the infrastructure_type × lifecycle_state matrix under one project, answered by SummarizeInfrastructure; archived rows are counted in their own cells (archived = true) so a matrix can show them apart. Only non-zero cells are served, project path ascending.

FieldTypeMeaning
archivedbooleanWhether this cell counts the archived rows (true) or the unarchived ones (false) of its type and state.
countintegerHow many infrastructure nodes the cell holds.
infrastructure_typestringOne of the closed registry: host, hypervisor, network_device, link.
lifecycle_statestringregistered, deregistered, provisioned or destroyed.
project_pathstringThe owning project's path (/projects/<code>); every cell of a project-scoped summary carries the same value.

InfrastructureExceptions​

InfrastructureExceptions are the inventory's exception totals over the summarised scope. Every total counts unarchived rows whose membership is open (never deregistered); each maps onto one InfrastructureFilter so a click-through lists exactly the counted rows.

FieldTypeMeaning
destroyed_presentintegerRows the integration asserted destroyed that were never deregistered (lifecycle_state = destroyed).
duplicate_addressesintegerRegistered or provisioned rows whose address another same-environment node also carries (duplicate_address = true).
recently_changedintegerRows with a provisioned or destroyed event within thresholds.recently_changed_within (changed_since = computed_at − recently_changed_within).
stale_factsintegerRegistered or provisioned rows whose facts are older than thresholds.stale_facts_after, or were never collected (last_facts_before = computed_at − stale_facts_after).
unusedintegerRegistered or provisioned rows no run step has reached within thresholds.unused_after, never-used rows included (last_used_before = computed_at − unused_after).

InfrastructureSummaryThresholds​

InfrastructureSummaryThresholds are the windows the exception totals were judged against — the stored settings infrastructure.stale_facts_after and infrastructure.unused_after (the defaults 168h and 720h when absent or malformed) and the fixed recently-changed window — plus the instant of judgement, so a client can rebuild the matching list filters.

FieldTypeMeaning
computed_attimestampThe server's clock when the totals were computed.
recently_changed_withindurationThe recently-changed window (fixed at 7 days).
stale_facts_afterdurationFacts older than this are stale (infrastructure.stale_facts_after).
unused_afterdurationA node not reached within this is unused (infrastructure.unused_after).

InfrastructureUpsertItem​

InfrastructureUpsertItem is one batch row: RegisterInfrastructureNode's fields, applied as a create when the code is new under the parent and as an update otherwise.

FieldTypeMeaning
addressstringNetwork address to record; "" stores none.
codestringThe record's code — the batch's match key under the parent.
descriptionstringFree-text description.
fqdnstringFully qualified domain name to record; "" stores none.
infrastructure_typestringOne of the closed registry: host, hypervisor, network_device, link.
namestringDisplay name.
properties_jsonstringReplacement properties document as JSON text; "" leaves an existing node's document untouched (and stores an empty one on create).

InfrastructureUpsertResult​

InfrastructureUpsertResult is one batch item's outcome.

FieldTypeMeaning
codestringThe record's code.
errorstringThe named refusal when outcome is failed; "" otherwise.
node_idstringThe row's node id; "" when the item failed.
outcomestringcreated, updated or failed.
  • opschain docs infrastructure-nodes — the component page: lifecycle, facts, the inventory summary, integration feeds.
  • opschain docs settings-reference — the infrastructure.* thresholds behind the summary's exceptions.
  • opschain docs packs-infrastructure — the pack whose actions manage these hosts.
  • opschain docs resources/properties — the properties document the row references.