Chuyển tới nội dung chính

Workspace administration API

Platform-admin workspace lifecycle.

This page lists 10 endpoints (OpenAPI tag admin-workspaces). It is generated from openapi.json; see the REST API overview for authentication, CSRF and error conventions.

MethodPathOperation idNotes
GET/api/admin/workspaceslist_ws
POST/api/admin/workspacescreate_ws
GET/api/admin/workspaces/{id}get_ws
PUT/api/admin/workspaces/{id}update_ws
DELETE/api/admin/workspaces/{id}archive_ws
GET/api/admin/workspaces/{id}/featuresws_features
PUT/api/admin/workspaces/{id}/featuresset_ws_features
POST/api/admin/workspaces/{id}/restorerestore_ws
GET/api/admin/workspaces/{id}/statsworkspace_stats
POST/api/admin/workspaces/{id}/transfertransfer_owner

GET /api/admin/workspaces​

Operation id: list_ws. Auth: Session cookie. Forbidden (403): Missing platform permission.

ParameterInTypeRequiredDescription
pagequeryinteger (int32)noPage number (1-based)
per_pagequeryinteger (int32)noItems per page

Response 200 (application/json): array of WorkspaceDto

FieldTypeRequiredDescription
idstringyes
slugstringyes
namestringyes
statusstringyes
created_atstring (date-time)yes
created_bystring, nullableno
owner_namestring, nullableno
featuresstring[]noModule keys this workspace currently has switched on. Populated wherever a caller reads a workspace's entitlements back (list_ws, get_ws, /api/me/workspaces) via [dto_with_features]; left empty by the create/lifecycle handlers,...
StatusMeaning
200All workspaces
401Not authenticated
403Missing platform permission
500Internal error

POST /api/admin/workspaces​

Operation id: create_ws. Auth: Session cookie and X-Egret-CSRF header. Forbidden (403): Missing platform permission.

Request body (application/json): CreateWorkspace

FieldTypeRequiredDescription
slugstringyes
namestringyes

Response 200 (application/json): WorkspaceDto

FieldTypeRequiredDescription
idstringyes
slugstringyes
namestringyes
statusstringyes
created_atstring (date-time)yes
created_bystring, nullableno
owner_namestring, nullableno
featuresstring[]noModule keys this workspace currently has switched on. Populated wherever a caller reads a workspace's entitlements back (list_ws, get_ws, /api/me/workspaces) via [dto_with_features]; left empty by the create/lifecycle handlers,...
StatusMeaning
200Workspace created
401Not authenticated
403Missing platform permission
500Internal error

GET /api/admin/workspaces/{id}​

Operation id: get_ws. Auth: Session cookie. Forbidden (403): Missing platform permission.

ParameterInTypeRequiredDescription
idpathstring (uuid)yesWorkspace id

Response 200 (application/json): WorkspaceDto

FieldTypeRequiredDescription
idstringyes
slugstringyes
namestringyes
statusstringyes
created_atstring (date-time)yes
created_bystring, nullableno
owner_namestring, nullableno
featuresstring[]noModule keys this workspace currently has switched on. Populated wherever a caller reads a workspace's entitlements back (list_ws, get_ws, /api/me/workspaces) via [dto_with_features]; left empty by the create/lifecycle handlers,...
StatusMeaning
200Workspace detail
401Not authenticated
403Missing platform permission
404No such workspace
500Internal error

PUT /api/admin/workspaces/{id}​

Operation id: update_ws. Auth: Session cookie and X-Egret-CSRF header. Forbidden (403): Missing platform permission.

ParameterInTypeRequiredDescription
idpathstring (uuid)yesWorkspace id

Request body (application/json): UpdateWorkspace

FieldTypeRequiredDescription
namestringyes

Response 200 (application/json): Ack

FieldTypeRequiredDescription
okbooleanyes
StatusMeaning
200Workspace updated
401Not authenticated
403Missing platform permission
500Internal error

DELETE /api/admin/workspaces/{id}​

Operation id: archive_ws. Auth: Session cookie and X-Egret-CSRF header. Forbidden (403): Missing platform permission.

ParameterInTypeRequiredDescription
idpathstring (uuid)yesWorkspace id

Response 200 (application/json): Ack

FieldTypeRequiredDescription
okbooleanyes
StatusMeaning
200Workspace archived
401Not authenticated
403Missing platform permission
500Internal error

GET /api/admin/workspaces/{id}/features​

Operation id: ws_features. Auth: Session cookie. Forbidden (403): Missing platform permission.

ParameterInTypeRequiredDescription
idpathstring (uuid)yesWorkspace id

Response 200 (application/json): array of FeatureDto

FieldTypeRequiredDescription
keystringyes
labelstringyes
descriptionstringyes
enabledbooleanyes
StatusMeaning
200The catalog of modules, each with this workspace's on/off state
401Not authenticated
403Missing platform permission
500Internal error

PUT /api/admin/workspaces/{id}/features​

Operation id: set_ws_features. Auth: Session cookie and X-Egret-CSRF header. Forbidden (403): Missing platform permission.

ParameterInTypeRequiredDescription
idpathstring (uuid)yesWorkspace id

Request body (application/json): SetFeatures

FieldTypeRequiredDescription
featuresobjectyesFeature key -> enabled. Unknown keys are rejected with 400 and nothing is written (WorkspaceRepo::set_features validates the whole batch before opening its transaction). The resulting state — this batch merged onto what is already...

Response 200 (application/json): array of FeatureDto

FieldTypeRequiredDescription
keystringyes
labelstringyes
descriptionstringyes
enabledbooleanyes
StatusMeaning
200The named keys were merged onto this workspace's state; the catalog with the resulting on/off state
400An unknown feature key, or a resulting state that violates a cross-module dependency (e.g. dashboards enabled with charts disabled); nothing was written
401Not authenticated
403Missing platform permission
500Internal error

POST /api/admin/workspaces/{id}/restore​

Operation id: restore_ws. Auth: Session cookie and X-Egret-CSRF header. Forbidden (403): Missing platform permission.

ParameterInTypeRequiredDescription
idpathstring (uuid)yesWorkspace id

Response 200 (application/json): Ack

FieldTypeRequiredDescription
okbooleanyes
StatusMeaning
200Workspace restored
401Not authenticated
403Missing platform permission
500Internal error

GET /api/admin/workspaces/{id}/stats​

Operation id: workspace_stats. Auth: Session cookie. Forbidden (403): Missing platform permission.

ParameterInTypeRequiredDescription
idpathstring (uuid)yesWorkspace id

Response 200 (application/json): WorkspaceStatsDto

FieldTypeRequiredDescription
member_countinteger (int64)yes
query_countinteger (int64)yes
StatusMeaning
200Workspace usage stats
401Not authenticated
403Missing platform permission
500Internal error

POST /api/admin/workspaces/{id}/transfer​

Operation id: transfer_owner. Auth: Session cookie and X-Egret-CSRF header. Forbidden (403): Missing platform permission.

ParameterInTypeRequiredDescription
idpathstring (uuid)yesWorkspace id

Request body (application/json): TransferOwner

FieldTypeRequiredDescription
new_owner_idstringyes

Response 200 (application/json): WorkspaceDto

FieldTypeRequiredDescription
idstringyes
slugstringyes
namestringyes
statusstringyes
created_atstring (date-time)yes
created_bystring, nullableno
owner_namestring, nullableno
featuresstring[]noModule keys this workspace currently has switched on. Populated wherever a caller reads a workspace's entitlements back (list_ws, get_ws, /api/me/workspaces) via [dto_with_features]; left empty by the create/lifecycle handlers,...
StatusMeaning
200Workspace updated
400Invalid owner id
401Not authenticated
403Missing platform permission
404No such workspace
500Internal error