Summary
Define and document the protobuf/model boundary for machine attributes that are established at ingestion or through ExpectedMachine, but are not mutable operator configuration and are not observed runtime status.
Evaluate introducing a dedicated static_config or ingestion_config section on forge.Machine
Rationale
MachineConfig should represent operator-mutable values changed through mutating APIs and tracked by the machine configuration version. MachineStatus should represent observed/runtime state. Some machine attributes are established during ingestion and may be immutable afterward, so neither category accurately describes them.
Affected areas
crates/rpc/proto/forge.proto: forge.Machine, forge.MachineConfig, and forge.MachineStatus
rest-api/proto/core/src/v1/nico_nico.proto, if it mirrors the Forge machine schema
crates/api-model/src/machine/ and RPC conversion code
- Style-guide/config-status guidance, if applicable
Context
Requested by @ianderson-nvidia following the design discussion in #2847.
Summary
Define and document the protobuf/model boundary for machine attributes that are established at ingestion or through
ExpectedMachine, but are not mutable operator configuration and are not observed runtime status.Evaluate introducing a dedicated
static_configoringestion_configsection onforge.MachineRationale
MachineConfigshould represent operator-mutable values changed through mutating APIs and tracked by the machine configuration version.MachineStatusshould represent observed/runtime state. Some machine attributes are established during ingestion and may be immutable afterward, so neither category accurately describes them.Affected areas
crates/rpc/proto/forge.proto:forge.Machine,forge.MachineConfig, andforge.MachineStatusrest-api/proto/core/src/v1/nico_nico.proto, if it mirrors the Forge machine schemacrates/api-model/src/machine/and RPC conversion codeContext
Requested by @ianderson-nvidia following the design discussion in #2847.