feat: Implement OpenAPI with API Key authentication and role-based access control

This commit is contained in:
beilunyang
2025-02-10 11:25:25 +08:00
parent 1bc0369b83
commit 9ad3115833
28 changed files with 2339 additions and 144 deletions
+7
View File
@@ -1,5 +1,6 @@
export const ROLES = {
EMPEROR: 'emperor',
DUKE: 'duke',
KNIGHT: 'knight',
CIVILIAN: 'civilian',
} as const;
@@ -11,12 +12,18 @@ export const PERMISSIONS = {
MANAGE_WEBHOOK: 'manage_webhook',
PROMOTE_USER: 'promote_user',
MANAGE_CONFIG: 'manage_config',
MANAGE_API_KEY: 'manage_api_key',
} as const;
export type Permission = typeof PERMISSIONS[keyof typeof PERMISSIONS];
export const ROLE_PERMISSIONS: Record<Role, Permission[]> = {
[ROLES.EMPEROR]: Object.values(PERMISSIONS),
[ROLES.DUKE]: [
PERMISSIONS.MANAGE_EMAIL,
PERMISSIONS.MANAGE_WEBHOOK,
PERMISSIONS.MANAGE_API_KEY,
],
[ROLES.KNIGHT]: [
PERMISSIONS.MANAGE_EMAIL,
PERMISSIONS.MANAGE_WEBHOOK,