UNPKG

@gftdcojp/gftd-orm

Version:

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

181 lines 5.67 kB
/** * Auth0対応 Supabase風クライアント(stub実装) * @todo [P2] Full implementation when Auth0Integration is complete */ import { PullQueryOptions, UserPayload } from './types'; import { RealtimeClient } from './realtime-client'; /** * Auth0クライアント設定 */ export interface Auth0ClientConfig { ksqlDbUrl: string; auth0Token?: string; auth0Config?: { domain?: string; audience?: string; clientId?: string; jwksUri?: string; }; options?: { realtime?: { url?: string; autoReconnect?: boolean; }; db?: { schema?: string; }; }; } /** * Auth0認証状態 */ export interface Auth0AuthState { user: UserPayload | null; isAuthenticated: boolean; auth0Token: string | null; error: string | null; extensionAccessAvailable: boolean; userGroups?: string[]; userRoles?: string[]; userPermissions?: string[]; } /** * Extension用の型定義 */ export interface ExtensionGroup { _id: string; name: string; description: string; members?: string[]; roles?: string[]; } export interface ExtensionRole { _id: string; name: string; description: string; applicationId: string; permissions?: string[]; } export interface ExtensionPermission { _id: string; name: string; description: string; applicationId: string; } export interface ExtensionPolicy { groups: string[]; roles: string[]; permissions: string[]; } /** * Auth0 GFTD クライアント(stub実装) * @todo [P2] Full implementation when Auth0Integration is complete */ export declare class Auth0GftdClient { private config; private authState; private realtimeClient?; private auth0Manager?; constructor(config: Auth0ClientConfig); /** * トークンによる認証(stub実装) */ authenticateWithToken(token: string): Promise<{ success: boolean; error?: string; }>; /** * 認証状態を取得 */ get auth(): Auth0AuthState; /** * Auth0トークンを設定 */ setAuth0Token(token: string): Promise<{ success: boolean; error?: string; }>; /** * SQLクエリの実行(stub実装) */ query(sql: string, options?: PullQueryOptions): Promise<{ data: any[]; error: any; }>; /** * ストリーミングクエリ(stub実装) */ stream(sql: string, onData: (data: any) => void, onError?: (error: Error) => void): Promise<{ terminate: () => void; }>; /** * 権限チェック(stub実装) */ hasPermission(permission: string): boolean; /** * ロールチェック(stub実装) */ hasRole(role: string): boolean; /** * グループチェック(stub実装) */ hasGroup(groupName: string): boolean; /** * すべてのメソッドをstub実装として定義 * @todo [P2] Replace with actual implementations */ getGroups(): Promise<ExtensionGroup[]>; getGroup(groupId: string): Promise<ExtensionGroup>; createGroup(name: string, description?: string): Promise<ExtensionGroup>; updateGroup(groupId: string, updates: Partial<ExtensionGroup>): Promise<ExtensionGroup>; deleteGroup(groupId: string): Promise<void>; getRoles(): Promise<ExtensionRole[]>; getRole(roleId: string): Promise<ExtensionRole>; createRole(name: string, description?: string, applicationId?: string): Promise<ExtensionRole>; updateRole(roleId: string, updates: Partial<ExtensionRole>): Promise<ExtensionRole>; deleteRole(roleId: string): Promise<void>; addUserToGroups(userId: string, groupIds: string[]): Promise<void>; removeUserFromGroups(userId: string, groupIds: string[]): Promise<void>; addUserToRoles(userId: string, roleIds: string[]): Promise<void>; removeUserFromRoles(userId: string, roleIds: string[]): Promise<void>; executeAuthorizationPolicy(userId: string, clientId: string, connectionName: string, groups?: string[]): Promise<ExtensionPolicy>; getMyAuthorizationPolicy(): Promise<ExtensionPolicy | null>; buildLoginUrl(options: any): string; buildSignupUrl(options: any): string; buildLogoutUrl(options: any): string; buildPasswordResetUrl(options: any): string; exchangeCodeForToken(options: any): Promise<any>; refreshAccessToken(refreshToken: string): Promise<any>; signUp(options: any): Promise<any>; updateProfile(updates: any): Promise<any>; deleteAccount(): Promise<void>; sendPasswordResetEmail(email: string, connection?: string): Promise<void>; sendEmailVerification(): Promise<void>; getProfile(): Promise<any>; getUsers(options?: any): Promise<any[]>; generatePKCEChallenge(): { codeVerifier: string; codeChallenge: string; }; redirectToLogin(options: any): void; redirectToSignup(options: any): void; logout(options: any): void; handleCallback(options: any): Promise<{ success: boolean; error?: string; }>; createRealtimeClient(options?: { autoReconnect?: boolean; }): RealtimeClient; signOut(): void; dispose(): void; } /** * Auth0クライアント作成関数 */ export declare function createAuth0Client(ksqlDbUrl: string, auth0Token?: string, options?: any): Auth0GftdClient; /** * Auth0ミドルウェア作成関数(stub実装) */ export declare function createAuth0Middleware(options?: any): (req: any, res: any, next: any) => void; //# sourceMappingURL=auth0-supabase-client.d.ts.map