@gftdcojp/ksqldb-orm
Version:
ksqldb-orm - Server-Side TypeScript ORM for ksqlDB with enterprise security extensions
78 lines • 2.09 kB
TypeScript
/**
* 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