Changes for decisions/0038-device-targeted-control-path-resolution.md: 1 added line, 1 removed line.
Original line number
Diff line number
Diff line
@@ -9,7 +9,7 @@ status: "accepted"
# ADR-0038: Control-path resolution for device-targeted capabilities is SRM's, via an adapter probe
**Status:** accepted — the boolean return type is superseded by [ADR-0040](/decisions/0040-target-serveability-is-a-tri-state.md); everything else stands
**Status:** accepted — the boolean return type is superseded by [ADR-0040](/decisions/0040-target-serveability-is-a-tri-state.md), and the scoping to requests "with no `zone_id`/`domain_id`" is amended by [ADR-0045](/decisions/0045-pin-narrows-candidates-not-probing.md) (a pin narrows the candidate set rather than bypassing the probe); everything else stands
Changes for decisions/index.md: 1 added line, 0 removed lines.
Original line number
Diff line number
Diff line
@@ -47,3 +47,4 @@ the reasoning lives here. Never renumber; supersede instead (see the record-deci
*[ADR-0042](0042-ewbi-oauth2-client-credentials-mtls-deferred.md) - E/WBI authorization is OAuth2 Client-Credentials: local Keycloak for inbound, partner Authorization Server for outbound; mTLS deferred
*[ADR-0043](0043-oeg-proxied-federation-establishment.md) - operator-triggered federation establishment is proxied through OEG over the DataBus (command.fm.federation.*); FM also supports config-driven bootstrap federation
*[ADR-0044](0044-srm-owns-federated-zone-locality-and-hand-off.md) - SRM resolves Edge Cloud Zone locality for deployment targets and forwards non-local deploys to FM; interim layer pending a future runtime-coordinator component
*[ADR-0045](0045-pin-narrows-candidates-not-probing.md) - a zone/domain pin narrows the device-targeted candidate set rather than bypassing target probing; probing is triggered by how many candidates survive the pin (amends ADR-0038's unpinned scoping)
Changes for platform/glossary.md: 1 added line, 1 removed line.
Original line number
Diff line number
Diff line
@@ -107,7 +107,7 @@ This is the single glossary for all Open Operator Platform (OOP) architecture do
| Term | Meaning |
|------|---------|
| **Compute Domain** | A concrete compute execution target inside a zone — for example, a specific Kubernetes cluster. Modeled as an SRM `domain` with `kind=compute`. SRM selects which compute domain to deploy to; TF-SDK's adapter talks to that domain's API. "Compute domain" is prose only — on contracts the field is `domain_id`, with the command subject fixing the kind (ADR-0031). |
| **Network Domain** | A concrete network execution target inside a zone — for example, a specific NEF. Modeled as an SRM `domain` with `kind=network`. SRM selects which network domain to use; TF-SDK's adapter calls that domain's API. "Network domain" is prose only — on contracts the field is `domain_id`, with the command subject fixing the kind (ADR-0031). For device-targeted capabilities with no `domain_id` pin, SRM selects among candidate network domains by probing their adapters with `can_serve_target` rather than by a stored pin (ADR-0038, ADR-0040). |
| **Network Domain** | A concrete network execution target inside a zone — for example, a specific NEF. Modeled as an SRM `domain` with `kind=network`. SRM selects which network domain to use; TF-SDK's adapter calls that domain's API. "Network domain" is prose only — on contracts the field is `domain_id`, with the command subject fixing the kind (ADR-0031). For device-targeted capabilities, SRM selects among candidate network domains by probing their adapters with `can_serve_target` rather than by a stored pin (ADR-0038, ADR-0040); a `zone_id`/`domain_id` pin narrows the candidates it probes rather than replacing the probe (ADR-0045). |
| **Zone (edge zone)** | A top-level scoping container inside a platform (SRM `zone`). A resource zone is the site-level container for compute and network domains. It stores no adapter config and no capacity; executors are reached via `control_path_ref`. On cross-component contracts, zone identity is always the zone UUID (`zone.id` = CAMARA `EdgeCloudZoneId`); the human-readable `zone.ref` is internal-only and never crosses a component boundary (ADR-0013; generalized to the rest of the topology chain by ADR-0028). "Resource zone" describes a `zone` with `kind=resource`; the contract field is always `zone_id` (ADR-0031). |
| **Compute Resource Specification** | The CPU, memory, GPU, and storage requirements for a service, held as the canonical `srm.compute/v1` object in `service_deployment_unit.resource_requirements`. SRM passes these to TF-SDK so the adapter can configure platform-specific resource limits (e.g., Kubernetes resource requests/limits). |
| **Service Specification** | The catalog blueprint for a deployable service, including artifact metadata (Helm chart reference, container image, deployment type). SRM resolves artifact identity from this; TF-SDK uses it to know what to deploy. |
| 2.0 | 2026-09-04 | Added F.4a: SRM resolves zone locality and forwards non-local deploys to FM (ADR-0044). `GET /zones` (§E.3) may now include FM-sourced federated zones. F.4a step 1 corrected to cite F.1's direct zone lookup, not §B's device-targeted candidate-probing mechanism (different, unrelated resolution path). |
| 2.0 | 2026-09-08 | §B: a zone/domain pin on a device-targeted capability narrows the candidate set rather than bypassing target probing (ADR-0045). Deploy §B.2's "SRM selects a domain in it" no longer carries over; probing is triggered by how many candidates survive the pin, so a zone-pinned request in a two-NEF zone is probed and a zone+domain pin still resolves without one. |