feat(platform): complete the Gelios external data loop
This commit is contained in:
@@ -48,14 +48,18 @@ read-capability передаёт все entities, которые provider воз
|
||||
boundary запрещены; сортировка и видимость принадлежат Data Product consumer и
|
||||
Foundry.
|
||||
|
||||
Первый production-shaped package — `providers/gelios/v1`. Он фиксирует реальный
|
||||
Gelios REST `GET /api/v1/units` transport contract и точный output
|
||||
`fleet.positions.current.v1@1.0.0` с revision
|
||||
`ontology.map.moving_object.v1`. Все Data Product fields используют snake_case.
|
||||
Его optional `tokenLifecycle` точно описывает два provider-issued artifacts —
|
||||
`access` и `refresh`: request использует `access`, а refresh пока имеет режим
|
||||
`operator_managed`. Это metadata без secret values и без заявления о
|
||||
реализованном автоматическом refresh.
|
||||
Текущий production-shaped package — `providers/gelios/v5`. Он сохраняет два
|
||||
официальных Gelios REST safe-read: `GET /api/v1/users/me/monitoring-config` и
|
||||
`GET /api/v1/units?incltrip=true`, а также точный immutable output
|
||||
`fleet.positions.current.v4@4.0.0` с revision
|
||||
`ontology.map.moving_object.v3`. Единственные monitoring-state fields —
|
||||
`signal_state` (`active|inactive`) и `movement_state` (`moving|stopped`),
|
||||
полученные из Ontology Gelios `v1.1.0`. Все Data Product fields используют
|
||||
snake_case. `fieldContracts` фиксирует тип и обязательность каждого поля, а
|
||||
закрытые state values проверяются и в provider mapping, и на каждом publish в
|
||||
External Data Plane. Native rotating credential использует `access`, а
|
||||
`refresh` остаётся внутри NDC L2 Credentials. Предыдущие Data Product versions
|
||||
не переписываются и остаются legacy-compatible.
|
||||
|
||||
## Проверяемые v1 contracts
|
||||
|
||||
@@ -64,8 +68,11 @@ Gelios REST `GET /api/v1/units` transport contract и точный output
|
||||
запрещены; publisher представлен system-managed declaration/status без ref.
|
||||
- `Collection Profile` — явная policy сбора. `manual` не может скрыто содержать
|
||||
polling interval; `realtime` требует interval не чаще одного раза в секунду.
|
||||
- `Data Product` — нормализованный versioned output с semantic types, полями и
|
||||
внутренней аудиторией.
|
||||
- `Data Product` — нормализованный versioned output с semantic types, полями,
|
||||
optional `fieldContracts` и внутренней аудиторией. Если `fieldContracts`
|
||||
задан, он обязан покрывать точный набор fields; каждый contract задаёт
|
||||
`type`, `required`, optional closed `enum` и числовые bounds. Отсутствие
|
||||
contracts допустимо только для опубликованных legacy versions.
|
||||
- `Intake Batch` — canonical **scoped** record, который External Data Plane
|
||||
валидирует и сохраняет: source, contract revision, idempotency, restricted
|
||||
raw envelope и canonical facts. Его `source` содержит `providerId`,
|
||||
@@ -153,10 +160,11 @@ Provider auth и внутренние workload capabilities используют
|
||||
credential domains. После сохранения ядро владеет secret, а graph и MCP
|
||||
используют только opaque reference.
|
||||
|
||||
Gelios выдаёт ровно access token и refresh token. Текущий credential type
|
||||
`httpBearerAuth` использует access token для HTTP request. Автоматический обмен
|
||||
refresh → access в текущем runtime не доказан и поэтому не заявлен: package
|
||||
фиксирует `refreshMode: operator_managed`. Название credential с текстом вроде
|
||||
Gelios выдаёт ровно access token и refresh token. Production credential type
|
||||
`ndcProviderRotatingAccessApi` использует access token для HTTP request и выполняет
|
||||
refresh → access в native n8n `preAuthentication`; provider package v3 фиксирует
|
||||
`refreshMode: runtime_managed`. Оба secret artifact остаются в native Credentials и не
|
||||
попадают в graph, package или trace. Название credential с текстом вроде
|
||||
`read access` является лишь локальной меткой; read-классификацию задают
|
||||
разрешённые endpoint/method в capability catalog и workflow policy, а не scope
|
||||
самого access token. В deployed Engine exact method/path policy ещё не
|
||||
|
||||
Reference in New Issue
Block a user