@gftdcojp/ksqldb-orm
Version:
ksqldb-orm - Server-Side TypeScript ORM for ksqlDB with enterprise security extensions
44 lines • 2.56 kB
TypeScript
/**
* セキュリティ設定とデータベーススキーマの初期化
*/
/**
* 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