UNPKG

@gftdcojp/ksqldb-orm

Version:

ksqldb-orm - Server-Side TypeScript ORM for ksqlDB with enterprise security extensions

44 lines 2.56 kB
/** * セキュリティ設定とデータベーススキーマの初期化 */ /** * PostgreSQL用リフレッシュトークンテーブル作成SQL */ export declare const REFRESH_TOKEN_TABLE_SQL = "\n-- \u30EA\u30D5\u30EC\u30C3\u30B7\u30E5\u30C8\u30FC\u30AF\u30F3\u30C6\u30FC\u30D6\u30EB\nCREATE TABLE IF NOT EXISTS refresh_tokens (\n token_id VARCHAR(255) PRIMARY KEY,\n user_id VARCHAR(255) NOT NULL,\n expires_at TIMESTAMP WITH TIME ZONE NOT NULL,\n created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,\n last_used_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,\n \n -- \u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\n INDEX idx_refresh_tokens_user_id (user_id),\n INDEX idx_refresh_tokens_expires_at (expires_at),\n INDEX idx_refresh_tokens_created_at (created_at)\n);\n\n-- \u671F\u9650\u5207\u308C\u30C8\u30FC\u30AF\u30F3\u306E\u81EA\u52D5\u524A\u9664\u7528\u95A2\u6570\uFF08\u30AA\u30D7\u30B7\u30E7\u30F3\uFF09\nCREATE OR REPLACE FUNCTION cleanup_expired_refresh_tokens()\nRETURNS INTEGER AS $$\nDECLARE\n deleted_count INTEGER;\nBEGIN\n DELETE FROM refresh_tokens WHERE expires_at <= NOW();\n GET DIAGNOSTICS deleted_count = ROW_COUNT;\n RETURN deleted_count;\nEND;\n$$ LANGUAGE plpgsql;\n\n-- \u671F\u9650\u5207\u308C\u30C8\u30FC\u30AF\u30F3\u30AF\u30EA\u30FC\u30F3\u30A2\u30C3\u30D7\u3092\u6BCE\u65E5\u5B9F\u884C\u3059\u308Bcron\u30B8\u30E7\u30D6\u8A2D\u5B9A\u4F8B\n-- SELECT cron.schedule('cleanup-refresh-tokens', '0 2 * * *', 'SELECT cleanup_expired_refresh_tokens();');\n"; /** * Redis用リフレッシュトークンスキーマ設定 */ export declare const REDIS_REFRESH_TOKEN_CONFIG: { keyPrefix: string; defaultTTL: number; cleanupInterval: number; }; /** * セキュリティ設定の初期化 */ export declare function initializeSecurity(): Promise<void>; /** * PostgreSQLにリフレッシュトークンテーブルを作成 * @param pool PostgreSQL接続プール */ export declare function createRefreshTokenTable(pool: any): Promise<void>; /** * セキュリティ設定の検証 */ export declare function validateSecurityConfiguration(): { valid: boolean; issues: string[]; recommendations: string[]; }; /** * セキュリティ設定のヘルスチェック */ export declare function securityHealthCheck(): Promise<{ status: 'healthy' | 'warning' | 'critical'; details: Record<string, any>; }>; /** * セキュリティ設定の表示 */ export declare function displaySecurityStatus(): void; //# sourceMappingURL=security.d.ts.map