UNPKG

@gftdcojp/gftd-orm

Version:

Enterprise-grade real-time data platform with ksqlDB, inspired by Supabase architecture

119 lines 3.02 kB
/** * GFTD ORM Core Types */ /** * ユーザーペイロード */ export interface UserPayload { sub: string; email?: string; role: 'anon' | 'authenticated' | 'service_role'; tenant_id: string; metadata?: { auth0_user_id?: string; email_verified?: boolean; name?: string; picture?: string; nickname?: string; roles?: string[]; permissions?: string[]; [key: string]: any; }; app_metadata?: { provider?: string; domain?: string; client_id?: string; picture?: string; [key: string]: any; }; user_metadata?: { email?: string; name?: string; picture?: string; [key: string]: any; }; } /** * 監査ログレベル */ export declare enum AuditLogLevel { DEBUG = "DEBUG", INFO = "INFO", WARN = "WARN", ERROR = "ERROR", CRITICAL = "CRITICAL" } /** * 監査イベントタイプ */ export declare enum AuditEventType { AUTH_LOGIN = "AUTH_LOGIN", AUTH_LOGOUT = "AUTH_LOGOUT", AUTH_FAILED = "AUTH_FAILED", DATA_READ = "DATA_READ", DATA_WRITE = "DATA_WRITE", DATA_DELETE = "DATA_DELETE", ADMIN_ACTION = "ADMIN_ACTION", ADMIN_USER_CREATE = "ADMIN_USER_CREATE", ADMIN_USER_DELETE = "ADMIN_USER_DELETE", ADMIN_POLICY_CHANGE = "ADMIN_POLICY_CHANGE", UNAUTHORIZED_ACCESS = "UNAUTHORIZED_ACCESS", SECURITY_EVENT = "SECURITY_EVENT" } /** * 監査ログエントリ */ export interface AuditLogEntry { level: AuditLogLevel; eventType: AuditEventType; userId?: string; tenantId?: string; result: 'SUCCESS' | 'FAILURE'; message: string; details?: Record<string, any>; timestamp?: Date; } /** * 監査ログマネージャー */ export declare class AuditLogManager { static log(entry: AuditLogEntry): void; static logRateLimitViolation(userId: string, details: any): void; static logSecurityViolation(userId: string, violationType: string, details: any): void; } /** * 認証結果 */ export interface AuthResult { user: UserPayload; accessToken: string; refreshToken?: string; expiresIn: number; expiresAt?: number; tokenType: string; } /** * Pull Query Options */ export interface PullQueryOptions { limit?: number; offset?: number; where?: Record<string, any>; orderBy?: string; timeout?: number; } export declare const jwtAuth: { authenticate: (user: UserPayload) => AuthResult; verifyToken: (token: string) => UserPayload | null; }; export declare const rls: { enable: () => void; disable: () => void; setUser: (user: UserPayload) => void; applyToQuery: (query: string, user: UserPayload | null) => string; }; export declare const executePullQuery: (query: string, options?: PullQueryOptions) => Promise<{ data: any[]; }>; export declare const executePushQuery: (query: string, onData?: any, onError?: any) => Promise<any>; //# sourceMappingURL=types.d.ts.map