tenants

테넌트·멤버·seat·그룹·email-domains·invite-links

3 operations — 테넌트·멤버·seat·그룹·email-domains·invite-links

GET /api/v1/tenants

tenantsGetApiV1Tenants

전체 테넌트 목록을 반환한다.

  • 호출 권한: platform_admin (RequirePlatformAdmin middleware — 일반 사용자는 403).
  • Phase 1: 페이징 미지원 — 응답은 항상 전체.
  • 부수 효과 없음 (read-only).
언어호출
node@ax-hub/sdk 미제공 — 운영 패키지 @ax-hub/admin-sdk@ax-hub/admin-sdk tenants.list 사용
goclient.Tenants().TenantsGetApiV1Tenants(ctx, axhub.OperationParams{PathParams: …, Query: …, Body: …})
javaclient.tenants().tenantsGetApiV1Tenants(pathParams, query, body) — 비동기: tenantsGetApiV1TenantsAsync(…) → CompletableFuture
kotlinclient.tenants.tenantsGetApiV1Tenants(pathParams, query, body) — suspend
pythonclient.tenants.tenants_get_api_v1_tenants(path_params=…, query=…, body=…) — AsyncAxHubClient 는 동일명 await
rubyclient.tenants.tenants_get_api_v1_tenants(path_params: …, query: …, body: …)
공통request("tenantsGetApiV1Tenants", pathParams, query, body)

응답 — 200 · 테넌트 목록

이름타입설명
itemsarray<object>
nextCursor (wire: next_cursor)string
totalinteger

에러 status: 401 403 500에러 처리

GET /api/v1/tenants/{tenantID}

tenantsGetApiV1TenantsByTenantID

테넌트 UUID 로 단건 조회 (id / slug / name / icon / description).

  • 호출 권한: 자기 테넌트 멤버만 (RequireTenantMemberOnPath). SaaS 격리 — 다른 테넌트 사용자에겐 조직 메타데이터도 노출 X.
  • path 의 tenantID 가 UUID 형식이 아니면 400.
  • 부수 효과 없음 (read-only).
언어호출
nodesdk.tenants.get(…) — 리소스 모델 — 인자·반환 타입은 패키지의 TypeScript 정의 참조
goclient.Tenants().TenantsGetApiV1TenantsByTenantID(ctx, axhub.OperationParams{PathParams: …, Query: …, Body: …})
javaclient.tenants().tenantsGetApiV1TenantsByTenantID(pathParams, query, body) — 비동기: tenantsGetApiV1TenantsByTenantIDAsync(…) → CompletableFuture
kotlinclient.tenants.tenantsGetApiV1TenantsByTenantID(pathParams, query, body) — suspend
pythonclient.tenants.tenants_get_api_v1_tenants_by_tenant_id(path_params=…, query=…, body=…) — AsyncAxHubClient 는 동일명 await
rubyclient.tenants.tenants_get_api_v1_tenants_by_tenant_id(path_params: …, query: …, body: …)
공통request("tenantsGetApiV1TenantsByTenantID", pathParams, query, body)

Path 파라미터pathParams 로 전달

이름타입설명
tenantID 필수string테넌트 UUID

응답 — 200 · 테넌트

이름타입설명
adminEmail (wire: admin_email)stringAdminEmail 은 가장 오래된 active tenant_admin 의 email (없으면 null). 관리 UI 의 owner 컬럼 표시용 — 결정적 단일 admin (created_at ASC) 으로 페이지로드 간 안정.
appCount (wire: app_count)integerAppCount 는 not-soft-deleted 앱의 수. enrich 불가 시 0.
createdAt (wire: created_at)stringCreatedAt 은 생성 시각.
deletedAt (wire: deleted_at)stringDeletedAt 은 soft delete 시각 (활성 테넌트는 null).
descriptionstringDescription 은 테넌트 설명 (없으면 null).
iconUrl (wire: icon_url)stringIconURL 은 테넌트 아이콘 이미지 URL (없으면 null).
idstringID 는 테넌트 UUID.
memberCount (wire: member_count)integerMemberCount 는 active 멤버십 (is_active=true) 의 수. enrich 불가 시 0.
namestringName 은 사람이 읽는 표시 이름.
slugstringSlug 는 URL 식별자. [a-z][a-z0-9_]*[a-z0-9] 패턴, 전 시스템에서 unique.
updatedAt (wire: updated_at)stringUpdatedAt 은 마지막 수정 시각.

에러 status: 400 401 403 404 500에러 처리

GET /api/v1/tenants/{tenantID}/org-directory

tenantsGetApiV1TenantsByTenantIDOrgDirectory

회사 IdP(Okta/Azure)가 SCIM 으로 밀어넣은 조직 구조를 부서(그룹)→인원으로 반환한다.

  • 호출 권한: tenant_member (자기 테넌트의 활성 멤버면 관리자 아니어도 열람). 다른 테넌트는 403.
  • 아직 로그인/가입하지 않은 인원도 미러 데이터 그대로 노출 (joined 플래그로 구분).
  • v1 은 테넌트의 모든 그룹을 부서로 표시. 어느 부서에도 없는 인원은 unassigned 로.
  • 표시 이름이 없으면 이메일로 폴백. 부수 효과 없음 (read-only).
언어호출
nodesdk.tenants.orgDirectory(…) — 리소스 모델 — 인자·반환 타입은 패키지의 TypeScript 정의 참조
goclient.Tenants().TenantsGetApiV1TenantsByTenantIDOrgDirectory(ctx, axhub.OperationParams{PathParams: …, Query: …, Body: …})
javaclient.tenants().tenantsGetApiV1TenantsByTenantIDOrgDirectory(pathParams, query, body) — 비동기: tenantsGetApiV1TenantsByTenantIDOrgDirectoryAsync(…) → CompletableFuture
kotlinclient.tenants.tenantsGetApiV1TenantsByTenantIDOrgDirectory(pathParams, query, body) — suspend
pythonclient.tenants.tenants_get_api_v1_tenants_by_tenant_id_org_directory(path_params=…, query=…, body=…) — AsyncAxHubClient 는 동일명 await
rubyclient.tenants.tenants_get_api_v1_tenants_by_tenant_id_org_directory(path_params: …, query: …, body: …)
공통request("tenantsGetApiV1TenantsByTenantIDOrgDirectory", pathParams, query, body)

Path 파라미터pathParams 로 전달

이름타입설명
tenantID 필수string테넌트 UUID

응답 — 200 · 부서별 조직도 + 미배정

이름타입설명
departmentsarray<object>Departments 는 테넌트의 모든 그룹(부서)과 소속 인원.
unassignedarray<object>Unassigned 는 어느 부서에도 속하지 않은 인원.

에러 status: 400 401 403 500에러 처리