1
0
forked from baron/baron-sso

테넌트 목록 조회 cursor기반으로 재구성. 사용자 metadata 미사용 필드 제거

This commit is contained in:
2026-05-13 18:05:51 +09:00
parent a4d707d4d8
commit 5e7b7b878c
85 changed files with 4808 additions and 734 deletions

View File

@@ -198,7 +198,14 @@ paths:
schema:
type: boolean
default: true
description: false이면 users와 directUserIds를 비워 반환합니다.
description: false이면 tenant members를 빈 배열로 반환합니다.
- in: query
name: includeUserIds
required: false
schema:
type: boolean
default: false
description: true이면 tenant members[].id와 members[].phone만 추가합니다.
responses:
"200":
description: OK
@@ -902,6 +909,41 @@ paths:
$ref: "#/components/schemas/ErrorResponse"
/api/v1/admin/api-keys/{id}:
patch:
tags: [Admin]
summary: API Key 권한 수정
description: super admin 전용 API Key scope 수정입니다. client_id는 변경하지 않습니다.
parameters:
- in: path
name: id
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/ApiKeyUpdateScopesRequest"
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/ApiKeySummary"
"400":
description: Bad Request
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
"404":
description: Not Found
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
delete:
tags: [Admin]
summary: API Key 삭제
@@ -922,6 +964,31 @@ paths:
schema:
$ref: "#/components/schemas/ErrorResponse"
/api/v1/admin/api-keys/{id}/secret/rotate:
post:
tags: [Admin]
summary: API Key Secret 재발급
description: super admin 전용 Secret rotation입니다. client_id는 유지되며 clientSecret은 응답에서 한 번만 반환됩니다.
parameters:
- in: path
name: id
required: true
schema:
type: string
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/ApiKeyCreateResponse"
"404":
description: Not Found
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
/api/v1/dev/clients:
get:
tags: [Dev]
@@ -1270,43 +1337,36 @@ components:
updatedAt:
type: string
format: date-time
members:
type: array
description: 해당 tenant에 직접 소속된 사용자 목록입니다.
items:
$ref: "#/components/schemas/OrgContextMember"
OrgContextTreeNode:
allOf:
- $ref: "#/components/schemas/OrgContextTenant"
- type: object
properties:
directUserIds:
type: array
items:
type: string
children:
type: array
items:
$ref: "#/components/schemas/OrgContextTreeNode"
OrgContextUser:
OrgContextMember:
type: object
properties:
id:
type: string
description: includeUserIds=true일 때만 포함합니다.
email:
type: string
format: email
name:
type: string
role:
phone:
type: string
status:
type: string
tenantIds:
type: array
items:
type: string
tenantSlugs:
type: array
items:
type: string
description: includeUserIds=true일 때만 포함합니다.
department:
type: string
grade:
@@ -1315,15 +1375,15 @@ components:
type: string
jobTitle:
type: string
metadata:
type: object
additionalProperties: true
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
isOwner:
type: boolean
description: appointment의 isOwner 또는 isManager 기준입니다.
isLeader:
type: boolean
description: appointment의 lead 또는 isLead 기준이며, owner 계열 값이 true이면 true입니다.
isPrimary:
type: boolean
description: appointment의 representative, isPrimary 또는 primary 기준입니다.
OrgContextResponse:
type: object
@@ -1342,10 +1402,6 @@ components:
type: array
items:
$ref: "#/components/schemas/OrgContextTenant"
users:
type: array
items:
$ref: "#/components/schemas/OrgContextUser"
PasswordLoginRequest:
type: object
@@ -1790,6 +1846,17 @@ components:
type: string
example: [org-context:read]
ApiKeyUpdateScopesRequest:
type: object
required: [scopes]
properties:
scopes:
type: array
minItems: 1
items:
type: string
example: [audit:read, org-context:read]
ApiKeyCreateResponse:
type: object
properties: