Released: 2025-11-01
Adds spec.dependencies[] format for services that define explicit Bio-ID scopes.
Using spec.dependencies[] format with an empty scopes array is a validation error. The dependencies format requires scopes — if the target service does not define Bio-ID scopes, use spec.internalDependencies[] instead.
catalog-info.yaml 0.4.0: Empty scopes[] is invalid in spec.dependencies[].
If the target service does not define Bio-ID scopes, use internalDependencies:
WRONG (dependencies with empty scopes):
spec:
dependencies:
- service: my-api
transport: direct
scopes: [] # validation error
CORRECT (use internalDependencies instead):
spec:
internalDependencies:
- service: my-api # port defaults to 3000
CORRECT (dependencies with actual scopes):
spec:
dependencies:
- service: raterspot
transport: direct
scopes: [raterspot:rate]
Using transport: gateway in spec.dependencies[] does NOT inject a URL env var. Gateway transport routes calls through Janus — the caller never gets a URL. Only transport: direct injects a {SERVICE}_URL env var.
catalog-info.yaml 0.4.0: transport: gateway does not inject a URL env var.
transport: direct → injects {SERVICE}_URL, caller makes direct HTTP calls
transport: gateway → routes through Janus, no URL injected
If you need to call the service's URL directly, use transport: direct.
The key rule: use spec.dependencies[] only for services that define Bio-ID scope grants. Use spec.internalDependencies[] for everything else (platform services, internal tools).
Common mistake: switching everything to dependencies[] format and leaving scopes empty. That is a validation error. If in doubt, use internalDependencies[].
Last updated: February 28, 2026