/** * RBAC Roles table * * Defines roles with hierarchical support (parent_role_id) and * priority-based ordering for permission resolution. */ export declare const rbacRoles: import("drizzle-orm/pg-core").PgTableWithColumns<{ name: "rbac_roles"; schema: undefined; columns: { id: import("drizzle-orm/pg-core").PgColumn<{ name: "id"; tableName: "rbac_roles"; dataType: "string"; columnType: "PgUUID"; data: string; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: true; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; name: import("drizzle-orm/pg-core").PgColumn<{ name: "name"; tableName: "rbac_roles"; dataType: "string"; columnType: "PgText"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; description: import("drizzle-orm/pg-core").PgColumn<{ name: "description"; tableName: "rbac_roles"; dataType: "string"; columnType: "PgText"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; priority: import("drizzle-orm/pg-core").PgColumn<{ name: "priority"; tableName: "rbac_roles"; dataType: "number"; columnType: "PgInteger"; data: number; driverParam: string | number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; parentRoleId: import("drizzle-orm/pg-core").PgColumn<{ name: "parent_role_id"; tableName: "rbac_roles"; dataType: "string"; columnType: "PgUUID"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; tenantId: import("drizzle-orm/pg-core").PgColumn<{ name: "tenant_id"; tableName: "rbac_roles"; dataType: "string"; columnType: "PgUUID"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; isSystem: import("drizzle-orm/pg-core").PgColumn<{ name: "is_system"; tableName: "rbac_roles"; dataType: "boolean"; columnType: "PgBoolean"; data: boolean; driverParam: boolean; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; isActive: import("drizzle-orm/pg-core").PgColumn<{ name: "is_active"; tableName: "rbac_roles"; dataType: "boolean"; columnType: "PgBoolean"; data: boolean; driverParam: boolean; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; metadata: import("drizzle-orm/pg-core").PgColumn<{ name: "metadata"; tableName: "rbac_roles"; dataType: "json"; columnType: "PgJsonb"; data: Record; driverParam: unknown; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, { $type: Record; }>; createdAt: import("drizzle-orm/pg-core").PgColumn<{ name: "created_at"; tableName: "rbac_roles"; dataType: "date"; columnType: "PgTimestamp"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; updatedAt: import("drizzle-orm/pg-core").PgColumn<{ name: "updated_at"; tableName: "rbac_roles"; dataType: "date"; columnType: "PgTimestamp"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; }; dialect: "pg"; }>; /** * RBAC Permissions table * * Standalone permission definitions as action:resource pairs. */ export declare const rbacPermissions: import("drizzle-orm/pg-core").PgTableWithColumns<{ name: "rbac_permissions"; schema: undefined; columns: { id: import("drizzle-orm/pg-core").PgColumn<{ name: "id"; tableName: "rbac_permissions"; dataType: "string"; columnType: "PgUUID"; data: string; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: true; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; action: import("drizzle-orm/pg-core").PgColumn<{ name: "action"; tableName: "rbac_permissions"; dataType: "string"; columnType: "PgText"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; resource: import("drizzle-orm/pg-core").PgColumn<{ name: "resource"; tableName: "rbac_permissions"; dataType: "string"; columnType: "PgText"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; description: import("drizzle-orm/pg-core").PgColumn<{ name: "description"; tableName: "rbac_permissions"; dataType: "string"; columnType: "PgText"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; isSystem: import("drizzle-orm/pg-core").PgColumn<{ name: "is_system"; tableName: "rbac_permissions"; dataType: "boolean"; columnType: "PgBoolean"; data: boolean; driverParam: boolean; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; metadata: import("drizzle-orm/pg-core").PgColumn<{ name: "metadata"; tableName: "rbac_permissions"; dataType: "json"; columnType: "PgJsonb"; data: Record; driverParam: unknown; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, { $type: Record; }>; createdAt: import("drizzle-orm/pg-core").PgColumn<{ name: "created_at"; tableName: "rbac_permissions"; dataType: "date"; columnType: "PgTimestamp"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; }; dialect: "pg"; }>; /** * RBAC Role Permissions junction table * * Maps roles to permissions with grant metadata. */ export declare const rbacRolePermissions: import("drizzle-orm/pg-core").PgTableWithColumns<{ name: "rbac_role_permissions"; schema: undefined; columns: { roleId: import("drizzle-orm/pg-core").PgColumn<{ name: "role_id"; tableName: "rbac_role_permissions"; dataType: "string"; columnType: "PgUUID"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; permissionId: import("drizzle-orm/pg-core").PgColumn<{ name: "permission_id"; tableName: "rbac_role_permissions"; dataType: "string"; columnType: "PgUUID"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; grantedAt: import("drizzle-orm/pg-core").PgColumn<{ name: "granted_at"; tableName: "rbac_role_permissions"; dataType: "date"; columnType: "PgTimestamp"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; grantedBy: import("drizzle-orm/pg-core").PgColumn<{ name: "granted_by"; tableName: "rbac_role_permissions"; dataType: "string"; columnType: "PgUUID"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; conditions: import("drizzle-orm/pg-core").PgColumn<{ name: "conditions"; tableName: "rbac_role_permissions"; dataType: "json"; columnType: "PgJsonb"; data: Record; driverParam: unknown; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, { $type: Record; }>; }; dialect: "pg"; }>; /** * RBAC User Roles table * * User-role assignments with temporal support (expiration) and tenant isolation. */ export declare const rbacUserRoles: import("drizzle-orm/pg-core").PgTableWithColumns<{ name: "rbac_user_roles"; schema: undefined; columns: { id: import("drizzle-orm/pg-core").PgColumn<{ name: "id"; tableName: "rbac_user_roles"; dataType: "string"; columnType: "PgUUID"; data: string; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: true; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; userId: import("drizzle-orm/pg-core").PgColumn<{ name: "user_id"; tableName: "rbac_user_roles"; dataType: "string"; columnType: "PgUUID"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; roleId: import("drizzle-orm/pg-core").PgColumn<{ name: "role_id"; tableName: "rbac_user_roles"; dataType: "string"; columnType: "PgUUID"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; tenantId: import("drizzle-orm/pg-core").PgColumn<{ name: "tenant_id"; tableName: "rbac_user_roles"; dataType: "string"; columnType: "PgUUID"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; assignedAt: import("drizzle-orm/pg-core").PgColumn<{ name: "assigned_at"; tableName: "rbac_user_roles"; dataType: "date"; columnType: "PgTimestamp"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; assignedBy: import("drizzle-orm/pg-core").PgColumn<{ name: "assigned_by"; tableName: "rbac_user_roles"; dataType: "string"; columnType: "PgUUID"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; expiresAt: import("drizzle-orm/pg-core").PgColumn<{ name: "expires_at"; tableName: "rbac_user_roles"; dataType: "date"; columnType: "PgTimestamp"; data: Date; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; isActive: import("drizzle-orm/pg-core").PgColumn<{ name: "is_active"; tableName: "rbac_user_roles"; dataType: "boolean"; columnType: "PgBoolean"; data: boolean; driverParam: boolean; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; metadata: import("drizzle-orm/pg-core").PgColumn<{ name: "metadata"; tableName: "rbac_user_roles"; dataType: "json"; columnType: "PgJsonb"; data: Record; driverParam: unknown; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, { $type: Record; }>; }; dialect: "pg"; }>; /** * Policy rules type for JSONB column */ export interface PolicyRules { effect: 'allow' | 'deny' | 'indeterminate' | 'not_applicable'; description?: string; target?: { subjectIds?: string[]; subjectTypes?: ('user' | 'agent' | 'service')[]; roleIds?: string[]; tenantIds?: string[]; excludeSubjectIds?: string[]; }; conditions?: { ipAddresses?: string[]; timeWindow?: { startTime: string; endTime: string; daysOfWeek: number[]; timezone: string; }; attributes?: Record; expression?: string; }; requiredPermissions?: string[]; requiredRoles?: string[]; requiredTrustTier?: number; resourcePatterns?: string[]; trustTierRequirements?: Record; } /** * RBAC Policies table * * Access control policies with JSONB rules for flexible policy definitions. */ export declare const rbacPolicies: import("drizzle-orm/pg-core").PgTableWithColumns<{ name: "rbac_policies"; schema: undefined; columns: { id: import("drizzle-orm/pg-core").PgColumn<{ name: "id"; tableName: "rbac_policies"; dataType: "string"; columnType: "PgUUID"; data: string; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: true; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; name: import("drizzle-orm/pg-core").PgColumn<{ name: "name"; tableName: "rbac_policies"; dataType: "string"; columnType: "PgText"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; description: import("drizzle-orm/pg-core").PgColumn<{ name: "description"; tableName: "rbac_policies"; dataType: "string"; columnType: "PgText"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; type: import("drizzle-orm/pg-core").PgColumn<{ name: "type"; tableName: "rbac_policies"; dataType: "string"; columnType: "PgText"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; rules: import("drizzle-orm/pg-core").PgColumn<{ name: "rules"; tableName: "rbac_policies"; dataType: "json"; columnType: "PgJsonb"; data: PolicyRules; driverParam: unknown; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, { $type: PolicyRules; }>; priority: import("drizzle-orm/pg-core").PgColumn<{ name: "priority"; tableName: "rbac_policies"; dataType: "number"; columnType: "PgInteger"; data: number; driverParam: string | number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; tenantId: import("drizzle-orm/pg-core").PgColumn<{ name: "tenant_id"; tableName: "rbac_policies"; dataType: "string"; columnType: "PgUUID"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; isActive: import("drizzle-orm/pg-core").PgColumn<{ name: "is_active"; tableName: "rbac_policies"; dataType: "boolean"; columnType: "PgBoolean"; data: boolean; driverParam: boolean; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; metadata: import("drizzle-orm/pg-core").PgColumn<{ name: "metadata"; tableName: "rbac_policies"; dataType: "json"; columnType: "PgJsonb"; data: Record; driverParam: unknown; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, { $type: Record; }>; createdAt: import("drizzle-orm/pg-core").PgColumn<{ name: "created_at"; tableName: "rbac_policies"; dataType: "date"; columnType: "PgTimestamp"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; updatedAt: import("drizzle-orm/pg-core").PgColumn<{ name: "updated_at"; tableName: "rbac_policies"; dataType: "date"; columnType: "PgTimestamp"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; }; dialect: "pg"; }>; /** * RBAC Roles relations */ export declare const rbacRolesRelations: import("drizzle-orm").Relations<"rbac_roles", { parentRole: import("drizzle-orm").One<"rbac_roles", false>; childRoles: import("drizzle-orm").Many<"rbac_roles">; rolePermissions: import("drizzle-orm").Many<"rbac_role_permissions">; userRoles: import("drizzle-orm").Many<"rbac_user_roles">; }>; /** * RBAC Permissions relations */ export declare const rbacPermissionsRelations: import("drizzle-orm").Relations<"rbac_permissions", { rolePermissions: import("drizzle-orm").Many<"rbac_role_permissions">; }>; /** * RBAC Role Permissions relations */ export declare const rbacRolePermissionsRelations: import("drizzle-orm").Relations<"rbac_role_permissions", { role: import("drizzle-orm").One<"rbac_roles", true>; permission: import("drizzle-orm").One<"rbac_permissions", true>; }>; /** * RBAC User Roles relations */ export declare const rbacUserRolesRelations: import("drizzle-orm").Relations<"rbac_user_roles", { role: import("drizzle-orm").One<"rbac_roles", true>; }>; export type RbacRole = typeof rbacRoles.$inferSelect; export type NewRbacRole = typeof rbacRoles.$inferInsert; export type RbacPermission = typeof rbacPermissions.$inferSelect; export type NewRbacPermission = typeof rbacPermissions.$inferInsert; export type RbacRolePermission = typeof rbacRolePermissions.$inferSelect; export type NewRbacRolePermission = typeof rbacRolePermissions.$inferInsert; export type RbacUserRole = typeof rbacUserRoles.$inferSelect; export type NewRbacUserRole = typeof rbacUserRoles.$inferInsert; export type RbacPolicy = typeof rbacPolicies.$inferSelect; export type NewRbacPolicy = typeof rbacPolicies.$inferInsert;