Skip to content

contracts: 补 control-plane 成员管理面(org membership 邀请/移除 · 解 gateway#18 阻塞) #57

Description

@uniquehole

源起:讨论 #52。WP1 / 总纲 §64/§82 拆分项之一。父:#50

背景

M2 组织管理·成员链(链③)需要 control-plane 的成员管理面。现 contracts/openapi/control-plane-v1.yaml 仅有只读 GET /v1/me/tenants(当前用户 membership 视图),无成员邀请/移除写面。gateway #18 被阻塞。

要达成

  • contracts/openapi/control-plane-v1.yaml 成员管理面(加法 MINOR
  • 明确 成员 SoT 在 Keycloak Org、control-plane 仅经 KC Admin API 编排(严禁 control-plane PG 另建成员凭据实体 — D1/R3 不变量)
  • registry 版本递增(producer=hashmatrix-control-plane

路径形状 / 前缀(最终以契约为准,回应讨论 #52 第 4 点)

  • 成员面 = 租户自管理apps/console 按角色门控,X-Tenant-Idrequire_tenant=true),非 admin 跨租户运营。
  • 对外契约路径走 control-plane 既定 /v1/... 约定(应用内 /api/v1/...,网关 strip /api);建议 GET/POST /v1/orgs/membersDELETE /v1/orgs/members/{userId}
  • 前缀不混淆澄清:管理面无租户前缀权威为 /admin/*(ICD §3.6 require_tenant=false,gateway#6), /api/v1/*。gateway M1 贯通主线 · 端到端集成(主仓 owner) #15 简报「M1 fix(gateway): control-plane 路由 require_tenant=false(共享控制平面跨租户管理) #45/api/v1/* require_tenant=false」有误,应更正为 /admin/*。成员面是 require_tenant=true/v1/* 租户隔离路由,与 /admin/* 天然不冲突。

责任 / 对接

  • 起草:control-plane 工程师(producer)→ PR 到主仓 contracts/
  • 评审:主仓 contracts 治理 + webui + gateway
  • 解阻塞:hashmatrix-gateway#18(Blocked by 本 issue)

验收

oasdiff 加法兼容;registry 版本对齐;成员写真打 Keycloak(control-plane PG 不存成员凭据)。

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions