UNPKG

@gftdcojp/ksqldb-orm

Version:

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

78 lines 2.09 kB
/** * Row Level Security (RLS) Manager * ksqlDBテーブルに対する行レベルセキュリティポリシーの管理 */ export interface RLSPolicy { id?: string; tableName: string; policyName: string; condition: string; roles: string[]; operation: 'SELECT' | 'INSERT' | 'UPDATE' | 'DELETE' | 'ALL'; enabled: boolean; } export type PolicyType = 'PERMISSIVE' | 'RESTRICTIVE'; export interface CreatePolicyOptions { tableName: string; policyName?: string; condition: string; roles: string[]; operation?: 'SELECT' | 'INSERT' | 'UPDATE' | 'DELETE' | 'ALL'; type?: PolicyType; } /** * Row Level Security Manager * ksqlDBでのRLSポリシー管理を提供 */ export declare class RLSManager { private policies; private static instance; private constructor(); /** * シングルトンインスタンスを取得 */ static getInstance(): RLSManager; /** * RLSポリシーを作成 */ createPolicy(options: CreatePolicyOptions): RLSPolicy; /** * ポリシーを有効化 */ enablePolicy(policyId: string): boolean; /** * ポリシーを無効化 */ disablePolicy(policyId: string): boolean; /** * ポリシーを削除 */ dropPolicy(policyId: string): boolean; /** * テーブルのポリシー一覧を取得 */ getPoliciesForTable(tableName: string): RLSPolicy[]; /** * 全ポリシー一覧を取得 */ getAllPolicies(): RLSPolicy[]; /** * ユーザーとロールに基づいてクエリ条件を生成 */ generateQueryCondition(tableName: string, userRoles: string[]): string | null; } /** * 便利関数のエクスポート */ export declare const rls: { /** * ポリシー作成のショートカット */ createPolicy: (options: CreatePolicyOptions) => RLSPolicy; /** * マネージャーインスタンスを取得 */ getManager: () => RLSManager; }; export default RLSManager; //# sourceMappingURL=row-level-security.d.ts.map