fix(edp): resolve managed reader source scope

This commit is contained in:
Codex
2026-07-19 12:28:00 +03:00
parent 0611a88971
commit 95446bdc24
10 changed files with 273 additions and 19 deletions
@@ -325,6 +325,19 @@ Managed route включается только через
`EXTERNAL_DATA_PLANE_MANAGED_PROVISIONING_ENABLED`; legacy plaintext routes —
через отдельный `EXTERNAL_DATA_PLANE_PROVISIONING_ENABLED`.
Managed reader хранит два разных provider-neutral scope. `connectionId` в
reader grant идентифицирует consumer connection, а `sourceConnectionId`
фиксирует writer connection, из которого разрешено читать Data Product.
`sourceConnectionId` не приходит из L2 graph: при ensure EDP разрешает его по
активным writer bindings того же `tenantId`, `providerId` и полного набора
`allowedDataProductIds`. Точное совпадение connection выбирается напрямую;
иначе допускается только один кандидат. Ноль кандидатов возвращает
`managed_reader_source_scope_not_found`, несколько —
`managed_reader_source_scope_ambiguous`. Поэтому reader из отдельного L2 target
не попадает в пустой consumer scope, а несколько provider accounts никогда не
смешиваются эвристически. Legacy reader binding сохраняет прежнюю семантику:
его `connectionId` одновременно является source connection.
Managed auth wire contract —
`nodedc.external-data-plane.managed-provisioner-request/v1`. Engine отправляет
ровно по одному header: