feat(fm): read partner-hosted service instances for SRM
SRM keeps no rows for instances a partner hosts (ADR-0053), yet its instance reads,
which OEG answers GET /appinstances from, must list them. SRM's FM client
(service-resource-manager refactor/fm-client) already calls these routes; FM had none,
so every SRM list would fail once that client ships.
- GET /internal/federated-service-instances?app_provider_id=... lists the instances
SRM handed off for an App Provider; GET .../{service_instance_id} reads one, 404
instance-not-federated otherwise.
- An instance is the outbound install-app transaction plus the remove-app that ended
it: creating until the partner reports, then active or failed, terminated once
RemoveApp is accepted. The latest install wins when retries left several.
- The body is SRM's own ServiceInstance shape, which forbids extra fields. The
partner's appInstIdentifier, zoneId and federationContextId stay in FM.
- Hand-off installs now record SRM's app_provider_id in request_summary. Installs
from before this change lack it and aren't listed.
Co-Authored-By:
Claude Opus 5.5 <noreply@anthropic.com>