import * as plugins from '../plugins.js'; import type * as authInterfaces from '../data/auth.js'; import type { IApiTokenInfo, TApiTokenScope } from '../data/route-management.js'; // ============================================================================ // API Token Management Endpoints // ============================================================================ /** * Create a new API token. Returns the raw token value once (never shown again). * Admin JWT only — tokens cannot create tokens. */ export interface IReq_CreateApiToken extends plugins.typedrequestInterfaces.implementsTR< plugins.typedrequestInterfaces.ITypedRequest, IReq_CreateApiToken > { method: 'createApiToken'; request: { identity?: authInterfaces.IIdentity; name: string; scopes: TApiTokenScope[]; expiresInDays?: number | null; }; response: { success: boolean; tokenId?: string; tokenValue?: string; message?: string; }; } /** * List all API tokens (without hashes). */ export interface IReq_ListApiTokens extends plugins.typedrequestInterfaces.implementsTR< plugins.typedrequestInterfaces.ITypedRequest, IReq_ListApiTokens > { method: 'listApiTokens'; request: { identity?: authInterfaces.IIdentity; }; response: { tokens: IApiTokenInfo[]; }; } /** * Revoke (delete) an API token. */ export interface IReq_RevokeApiToken extends plugins.typedrequestInterfaces.implementsTR< plugins.typedrequestInterfaces.ITypedRequest, IReq_RevokeApiToken > { method: 'revokeApiToken'; request: { identity?: authInterfaces.IIdentity; id: string; }; response: { success: boolean; message?: string; }; } /** * Enable or disable an API token. */ export interface IReq_ToggleApiToken extends plugins.typedrequestInterfaces.implementsTR< plugins.typedrequestInterfaces.ITypedRequest, IReq_ToggleApiToken > { method: 'toggleApiToken'; request: { identity?: authInterfaces.IIdentity; id: string; enabled: boolean; }; response: { success: boolean; message?: string; }; }