feat: implement automation key management with middleware and routes for organization API keys, invite improvements
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
import { z } from 'zod';
|
||||
|
||||
export const ZOrganizationApiKeyType = z.enum(['mcp', 'api', 'zapier']);
|
||||
export type TOrganizationApiKeyType = z.infer<typeof ZOrganizationApiKeyType>;
|
||||
|
||||
export const ZOrganizationApiKeyScope = z.enum([
|
||||
'course_import:draft:create',
|
||||
'course_import:draft:read',
|
||||
'course_import:draft:update',
|
||||
'course_import:draft:publish',
|
||||
'public_api:*'
|
||||
]);
|
||||
export type TOrganizationApiKeyScope = z.infer<typeof ZOrganizationApiKeyScope>;
|
||||
|
||||
export const ZListOrganizationApiKeysQuery = z.object({
|
||||
type: ZOrganizationApiKeyType.optional()
|
||||
});
|
||||
export type TListOrganizationApiKeysQuery = z.infer<typeof ZListOrganizationApiKeysQuery>;
|
||||
|
||||
export const ZCreateOrganizationApiKey = z.object({
|
||||
type: ZOrganizationApiKeyType,
|
||||
label: z.string().min(1).max(120).optional(),
|
||||
expiresAt: z.string().datetime().optional(),
|
||||
scopes: z.array(ZOrganizationApiKeyScope).min(1).optional()
|
||||
});
|
||||
export type TCreateOrganizationApiKey = z.infer<typeof ZCreateOrganizationApiKey>;
|
||||
|
||||
export const ZOrganizationApiKeyParam = z.object({
|
||||
keyId: z.string().uuid()
|
||||
});
|
||||
export type TOrganizationApiKeyParam = z.infer<typeof ZOrganizationApiKeyParam>;
|
||||
@@ -5,3 +5,4 @@ export * from './invite';
|
||||
export * from './sso';
|
||||
export * from './login-link';
|
||||
export * from './token-auth';
|
||||
export * from './automation-key';
|
||||
|
||||
Reference in New Issue
Block a user