Lattice Hub Docs
Compatibility

Apollo compatibility

service-apollo (default 8890) adapted Apollo-style config pull / notification APIs and call examples.

Plugin: service-apollo. Default port: 8890 (follow deploy/conf/pole-apiserver.yaml). Routes mount at / with no extra path prefix.

Read-only client surface: config pull and long-poll notifications—no Apollo Portal / OpenAPI publish admin. Publish via HTTP OpenAPI config or config gRPC.

Model mapping

ApolloPole
Cluster or DataCenterNamespace
AppIdConfig group
Namespace (file name)Config file name

Lookup order: custom cluster → dataCenter → default. A missing suffix may try .properties.

API list

MethodPathNotes
GET/configs/{appId}/{cluster}/{namespace}Standard client pull (JSON with configurations / releaseKey)
GET/configfiles/{appId}/{cluster}/{namespace}Properties text
GET/configfiles/json/{appId}/{cluster}/{namespace}Configurations JSON only; optional releaseKey; 304 when unchanged
GET/notifications/v2Long-poll notifications
GET/services/configMeta / Config Service address list

Common optional query: dataCenter, ip. /notifications/v2 also needs appId, cluster, notifications (JSON array string).

Auth: optional Authorization (control-plane token).

Call examples

BASE=http://127.0.0.1:8890

# Standard pull
curl -s "$BASE/configs/myapp/default/application"

# Properties / JSON
curl -s "$BASE/configfiles/myapp/default/application"
curl -i "$BASE/configfiles/json/myapp/default/application?releaseKey=default-myapp-application-1"

# Long-poll notifications
curl -s --get "$BASE/notifications/v2" \
  --data-urlencode 'appId=myapp' \
  --data-urlencode 'cluster=default' \
  --data-urlencode 'notifications=[{"namespaceName":"application","notificationId":0}]'

# Meta
curl -s "$BASE/services/config?appId=myapp&ip=10.0.0.1"

Successful /configs/... shape:

{
  "appId": "myapp",
  "cluster": "default",
  "namespaceName": "application",
  "configurations": { "a": "1" },
  "releaseKey": "ns-group-file-version"
}

.properties becomes a KV map; other formats often wrap as {"content":"<raw>"}. Missing resources are typically 404.

Boundaries

  • Does not implement full Portal semantics such as public-namespace inheritance.
  • Environment is not modeled as a separate client path; differences map via Cluster / DataCenter → Pole Namespace.
  • Long-poll timeouts follow runtime behavior—do not assume native Apollo second counts.

Back to Compatibility overview.

On this page