Returns the app instances for the authenticated client, optionally filtered by the CAMARA query
parameters `appId`, `appInstanceId`, and `region` (a real, distinct CAMARA-defined free-text
geography filter — "human readable name of the geographical Edge Cloud Region" — not an alias
for `edgeCloudZoneId`). OEG resolves the client's `app_instances`
rows and proxies a live SRM read per instance to fill live fields. Returns an empty array when
nothing matches.
parameters `appId`, `appInstanceId`, and `region`. `region` is a real, distinct CAMARA-defined
free-text geography filter — "human readable name of the geographical Edge Cloud Region" — not
an alias for `edgeCloudZoneId`; it resolves through the instance's zone
(`zone.metadata.location.region`, same free-form field `GET /edge-cloud-zones?region=...` reads),
but SRM's collection read doesn't join that yet, so it's accepted but **not yet filterable**
(OQ-05 below).
OEG resolves `appId` to `app_registration_id` via `oeg_db` (unchanged from the single-instance
path), then calls `GET /internal/service-instances?service_specification_id=...&service_instance_id=...`
(`srm/interface-contract.md` §E.1). SRM itself scopes the result to the caller's own
`app_provider_id` from auth context, so OEG does not pre-resolve or post-filter by tenant — the
collection SRM returns is already the correct set. Each row carries `service_specification_id`,
which OEG resolves back to `appId` per row via `oeg_db` (`app_registrations`) to build the
response. Returns an empty array when nothing matches.
```json
[
@@ -686,6 +695,7 @@ CloudEvent if a callback is registered.
| OQ-02 | `event.srm.operation.status` handling: should OEG map event payload `state=failed_before_start` to `operations.status=FAILED` in Phase 1, or defer to Phase 2? | Minor; only affects time-to-failure-visibility for the App Provider |
| OQ-03 | Webhook callback retry policy — number of retries, backoff, dead-letter handling | Needed before UC7 implementation |
| OQ-04 | `componentEndpointInfo` in webhook — should OEG make a live SRM read before delivering the callback to include endpoint data? | Affects callback delivery latency |
| OQ-05 | `GET /appinstances?region=...` — mechanism identified: `service_instance.zone_id → zone.metadata.location.region` (same path `GET /zones?region=...` already uses, `srm/interface-contract.md` §E.1/§E.3), but the join isn't implemented on `GET /service-instances` yet, and `metadata.location.region` isn't guaranteed set on every zone. Build the join, or reject `region` with `501` until it is? | Affects listing correctness for callers relying on `region` |
Changes for srm/persistence-cross-standards-view.md: 1 added line, 1 removed line.
Original line number
Diff line number
Diff line
@@ -178,7 +178,7 @@ site — *the "where" of edge*. Other kinds (`authority`, `federation_business`,
| `name` | Text | CAMARA: `edgeCloudZoneName`. TMF674 v4: `GeographicSite.name`. GSMA OPG.04: `zoneName`. | The friendly name of the site. | EDGE-DEPLOY: `"London-East"`. | Not null |
| `kind` | Text | OOP-internal taxonomy. | What this zone scopes: `resource` zones host compute/network domains; `authority` zones host trust domains. | EDGE-DEPLOY: `resource`. | Not null. Values: `resource`, `authority`, `federation_business`, `logical`, `custom`. |
| `state` | Text | CAMARA: `edgeCloudZoneStatus` (`active`/`inactive`/`unknown`) — OEG maps `inactive` ↔ SRM `offline`. TMF674 v4: `lifecycleStatus`. GSMA OPG.04: `zoneStatus`. | Whether the site is usable right now. | EDGE-DEPLOY: `active`. | Not null, default `active`. Values: `active`, `offline`, `unknown`. |
| `metadata` | Document | OOP-internal geographic / operator annotations (not a CAMARA object). Closest CAMARA fields: `edgeCloudRegion`, `edgeCloudProvider`. TMF674 v4: `place.geographicLocation` (similar). | Where this site is in the world, and anything else the operator records. | EDGE-DEPLOY: `{"provider":"oop-provider","city":"London","country":"GB","lat":51.50,"lon":-0.06}`. | Not null, default `{}`. **Exception:** the `provider` key is guaranteed, never absent — SRM populates it from configuration, falling back to a hardcoded default (e.g. `"oop-provider"`) when unconfigured (ADR-0029). Every other key remains free-form/optional. |
| `metadata` | Document | OOP-internal geographic / operator annotations (not a CAMARA object). Closest CAMARA fields: `edgeCloudRegion` (`metadata.location.region`), `edgeCloudProvider` (`metadata.provider`). TMF674 v4: `place.geographicLocation` (similar). | Where this site is in the world, and anything else the operator records. | EDGE-DEPLOY: `{"provider":"oop-provider","location":{"city":"London","country":"GB","lat":51.50,"lon":-0.06,"region":"Europe"}}`. | Not null, default `{}`. **Exception:** the `provider` key is guaranteed, never absent — SRM populates it from configuration, falling back to a hardcoded default (e.g. `"oop-provider"`) when unconfigured (ADR-0029). `location.region` is the recognized (OEG-consumed) key for CAMARA `edgeCloudRegion`, but is optional/free-form like the rest of `location` — SRM does not guarantee it is set. |