policies.d.ts 1.0 KB

123456789101112131415161718192021222324
  1. import { entityKind } from "../entity.js";
  2. import type { SQL } from "../sql/sql.js";
  3. import type { PgRole } from "./roles.js";
  4. import type { PgTable } from "./table.js";
  5. export type PgPolicyToOption = 'public' | 'current_role' | 'current_user' | 'session_user' | (string & {}) | PgPolicyToOption[] | PgRole;
  6. export interface PgPolicyConfig {
  7. as?: 'permissive' | 'restrictive';
  8. for?: 'all' | 'select' | 'insert' | 'update' | 'delete';
  9. to?: PgPolicyToOption;
  10. using?: SQL;
  11. withCheck?: SQL;
  12. }
  13. export declare class PgPolicy implements PgPolicyConfig {
  14. readonly name: string;
  15. static readonly [entityKind]: string;
  16. readonly as: PgPolicyConfig['as'];
  17. readonly for: PgPolicyConfig['for'];
  18. readonly to: PgPolicyConfig['to'];
  19. readonly using: PgPolicyConfig['using'];
  20. readonly withCheck: PgPolicyConfig['withCheck'];
  21. constructor(name: string, config?: PgPolicyConfig);
  22. link(table: PgTable): this;
  23. }
  24. export declare function pgPolicy(name: string, config?: PgPolicyConfig): PgPolicy;