Skip to content

contracts: control-plane-v1 新增 GET /v1/me/tenants(当前用户 membership 数组) #18

@JIAQIA

Description

@JIAQIA

背景

control-plane M1 入口级交付(HashMatrixData/hashmatrix-control-plane#3 · WP3)需新增 GET /me/tenants,返回当前登录用户的租户 membership 列表。按契约治理铁律「先改契约、再改实现」,此接口须先落主仓契约,再由 control-plane 实现。

范围

  • contracts/openapi/control-plane-v1.yaml 增加路径 GET /v1/me/tenants
    • operationId: listMyTenants
    • 响应 数组(对齐 D1 单 User + 多 Membership;M1 实现先返回 1 个,但 schema/契约一律按数组,为多租户预留)。
    • 数组元素至少含 tenantId / tenantKey / displayName / status(可复用现有 Tenant schema 子集或新建 MembershipView)。
    • 安全:沿用现有 security(网关 OIDC + 已认证主体)。
  • 同步 contracts/registry.yaml(加法兼容 → openapi/control-plane-v1 走 MINOR)。

约束

  • 加法兼容、默认放行(见 contracts/CONVENTIONS.md)。
  • 消费方 tolerant reader:webui(apps/admin / console)。
  • 对齐 D1(单 User + 多 Membership)/ D2(切换租户 = 重新换 token,X-Tenant-Id 唯一)。

验收


由 control-plane Issue #3 拆分(split-task)联动产生;本仓为契约 SSOT,先行此 PR 后方可在 control-plane 落 /me/tenants 实现。

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions