Identity Cheatsheet¶
Semantiva separates a pipeline’s meaning (semantics), configuration (instantiation), and execution (launch/run) into distinct identity layers. This keeps provenance unambiguous and enables reliable comparison, caching, and traceability.
Identity Layers at a Glance¶
Layer |
Identifier |
What it answers |
Source |
|---|---|---|---|
Meaning (Semantics) |
|
“Is this the same pipeline logic?” |
YAML → canonical spec with sanitized preprocessor semantics |
Configuration |
|
“Is this the same configured instance?” |
YAML → canonical configuration (parameters + sweep definitions) |
Run-Space Plan |
|
“Is this the same launch plan?” |
YAML → run-space section (RSCF v1) |
Node (Graph) |
|
“Which declared node?” |
YAML → |
Node (Semantics) |
|
“Has this node’s preprocessor changed?” |
YAML → sanitized from |
Execution (Launch) |
|
“Which launch container?” |
Trace only ( |
Execution (Run) |
|
“Which execution attempt?” |
Trace only ( |
Run-Space Inputs |
|
“Were the inputs the same?” |
Trace only (RSM v1 materialization) |
All identifiers above plid-… and run-… are computable from YAML at
inspection time and are deterministic. Runtime identifiers (plid-…,
run-…, run_space_inputs_id) appear only in traces and are documented
in Semantic Execution Record (SER) v1 and Trace Stream v1.
Semantic ID (plsemid-*)¶
Computed by
semantiva.inspection.build_inspection_payload()from the canonical GraphV1 structure (the legacysemantiva.inspection.build()wrapper remains available but is deprecated).Includes sanitized
derive.parameter_sweepmetadata. Expressions are reduced tonormalize_expression_sig_v1signatures and sweep domains are summarized byvariable_domain_signature.Stable under cosmetic YAML edits (whitespace, ordering) and free of runtime fields such as
run_idorplid-*preview identifiers.Surfaces in the inspection payload as
identity.semantic_idand is shown by the CLI viasemantiva inspect.
Config ID (plcid-*)¶
Hashed across
(node_uuid, node_semantic_id)pairs. Nodes without derive preprocessors contribute"none"; sweep nodes contribute a sanitized fingerprint viacompute_node_semantic_id.Highlights configuration drift whenever node-level semantics change, even if the pipeline graph remains constant.
Available inside the inspection payload at
identity.config_id.
Run-Space Plan ID¶
identity.run_space.spec_idmirrorsrun_space_spec_idemitted at runtime. It is the RSCF v1 hash of the YAMLrun_spacedeclaration.Inspection-time rule:
identity.run_space.inputs_idis always omitted ornullduring inspection (inputs require materialization and are never computed at configuration time).Runtime traces populate
inputs_idwhen data sources are fingerprinted.
SSOT Rules & Exclusions¶
The inspection payload is the single source of truth (SSOT) for configuration identity. It guarantees:
- Determinism
Canonical node ordering from the pipeline specification.
required_context_keyssorted alphabetically.All dictionaries contributing to identity computation are key-sorted before hashing.
- Sanitization
Sweep expressions reduced to
normalize_expression_sig_v1signatures.Variable domains summarized by
variable_domain_signature.No raw
exprstrings leak intopipeline_spec_canonical.
- Exclusion List (forbidden at inspection time)
pipeline_id(plid-*) — runtime-only (trace)run_id(run-*) — runtime-only (trace)run_space_launch_id— runtime-only (trace)run_space_attempt— runtime-only (trace)run_space_index— runtime-only (trace)run_space_context— runtime-only (trace)run_space_inputs_id— computed at runtime from materialized inputspreprocessor_view— UI-only (raw expressions for display)
Note
Runtime identifiers (plid-*, run-*, and run-space live fields) are
never computed during inspection. They appear only in execution traces
and are documented in Semantic Execution Record (SER) v1 and Trace Stream v1.
Inspection Payload Snapshot¶
The builder returns a canonical payload used by both the CLI and the GUI.
{
"identity": {
"semantic_id": "plsemid-…",
"config_id": "plcid-…",
"run_space": {"spec_id": "…"}
},
"pipeline_spec_canonical": {
"nodes": [
{
"uuid": "…",
"role": "DataOperation",
"fqcn": "module.Class",
"node_semantic_id": "…",
"preprocessor_metadata": {
"derive": {
"parameter_sweep": {
"parameters_sig": {"arg": {"format": "ExpressionSigV1", "ast": "…"}},
"variables_sig": {"var": {"kind": "range", "lo": 0.0, "hi": 1.0, "steps": 2, "scale": "linear", "endpoint": true}},
"mode": "combinatorial",
"broadcast": false,
"collection": "package.FloatDataCollection"
}
}
}
}
]
},
"required_context_keys": ["a", "b"]
}
Note
The payload intentionally omits inputs_id and all runtime identifiers
(run_id, pipeline_id, run_space_launch_id, etc.) as well as
UI-only metadata (preprocessor_view). See SSOT Rules & Exclusions above.
Where to Find the IDs¶
CLI:
semantiva inspect [--extended]prints the payload above in a human-readable form.Python: call
semantiva.inspection.build_inspection_payload()to obtain the same dictionary. The legacysemantiva.inspection.build()helper is deprecated but remains for compatibility.Runtime traces:
semantic_idandconfig_idare attached topipeline_startevents; run-space identities appear onrun_space_start.