/** * Service account status enum */ export declare const serviceAccountStatusEnum: import("drizzle-orm/pg-core").PgEnum<["active", "revoked", "suspended"]>; /** * Service accounts table - stores service account credentials and metadata */ export declare const serviceAccounts: import("drizzle-orm/pg-core").PgTableWithColumns<{ name: "service_accounts"; schema: undefined; columns: { id: import("drizzle-orm/pg-core").PgColumn<{ name: "id"; tableName: "service_accounts"; 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; }, {}, {}>; clientId: import("drizzle-orm/pg-core").PgColumn<{ name: "client_id"; tableName: "service_accounts"; 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; }, {}, {}>; clientSecret: import("drizzle-orm/pg-core").PgColumn<{ name: "client_secret"; tableName: "service_accounts"; 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; }, {}, {}>; name: import("drizzle-orm/pg-core").PgColumn<{ name: "name"; tableName: "service_accounts"; 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: "service_accounts"; 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; }, {}, {}>; tenantId: import("drizzle-orm/pg-core").PgColumn<{ name: "tenant_id"; tableName: "service_accounts"; 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; }, {}, {}>; permissions: import("drizzle-orm/pg-core").PgColumn<{ name: "permissions"; tableName: "service_accounts"; dataType: "json"; columnType: "PgJsonb"; data: string[]; driverParam: unknown; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, { $type: string[]; }>; ipWhitelist: import("drizzle-orm/pg-core").PgColumn<{ name: "ip_whitelist"; tableName: "service_accounts"; dataType: "json"; columnType: "PgJsonb"; data: string[]; driverParam: unknown; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, { $type: string[]; }>; status: import("drizzle-orm/pg-core").PgColumn<{ name: "status"; tableName: "service_accounts"; dataType: "string"; columnType: "PgEnumColumn"; data: "active" | "suspended" | "revoked"; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: ["active", "revoked", "suspended"]; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; createdAt: import("drizzle-orm/pg-core").PgColumn<{ name: "created_at"; tableName: "service_accounts"; 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; }, {}, {}>; lastUsedAt: import("drizzle-orm/pg-core").PgColumn<{ name: "last_used_at"; tableName: "service_accounts"; 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; }, {}, {}>; secretRotatedAt: import("drizzle-orm/pg-core").PgColumn<{ name: "secret_rotated_at"; tableName: "service_accounts"; 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; }, {}, {}>; createdBy: import("drizzle-orm/pg-core").PgColumn<{ name: "created_by"; tableName: "service_accounts"; 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; }, {}, {}>; metadata: import("drizzle-orm/pg-core").PgColumn<{ name: "metadata"; tableName: "service_accounts"; dataType: "json"; columnType: "PgJsonb"; data: Record; driverParam: unknown; notNull: false; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, { $type: Record; }>; }; dialect: "pg"; }>; /** * Service account audit event types */ export declare const serviceAccountAuditEventEnum: import("drizzle-orm/pg-core").PgEnum<["created", "updated", "revoked", "suspended", "reactivated", "deleted", "secret_rotated", "auth_success", "auth_failure", "permission_denied", "ip_blocked"]>; /** * Service account audit log table - tracks all changes to service accounts */ export declare const serviceAccountAuditLog: import("drizzle-orm/pg-core").PgTableWithColumns<{ name: "service_account_audit_log"; schema: undefined; columns: { id: import("drizzle-orm/pg-core").PgColumn<{ name: "id"; tableName: "service_account_audit_log"; 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; }, {}, {}>; serviceAccountId: import("drizzle-orm/pg-core").PgColumn<{ name: "service_account_id"; tableName: "service_account_audit_log"; 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; }, {}, {}>; clientId: import("drizzle-orm/pg-core").PgColumn<{ name: "client_id"; tableName: "service_account_audit_log"; 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; }, {}, {}>; tenantId: import("drizzle-orm/pg-core").PgColumn<{ name: "tenant_id"; tableName: "service_account_audit_log"; 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; }, {}, {}>; event: import("drizzle-orm/pg-core").PgColumn<{ name: "event"; tableName: "service_account_audit_log"; dataType: "string"; columnType: "PgEnumColumn"; data: "suspended" | "deleted" | "revoked" | "created" | "updated" | "reactivated" | "secret_rotated" | "auth_success" | "auth_failure" | "permission_denied" | "ip_blocked"; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: ["created", "updated", "revoked", "suspended", "reactivated", "deleted", "secret_rotated", "auth_success", "auth_failure", "permission_denied", "ip_blocked"]; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; actorId: import("drizzle-orm/pg-core").PgColumn<{ name: "actor_id"; tableName: "service_account_audit_log"; 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; }, {}, {}>; actorType: import("drizzle-orm/pg-core").PgColumn<{ name: "actor_type"; tableName: "service_account_audit_log"; dataType: "string"; columnType: "PgText"; data: string; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; ipAddress: import("drizzle-orm/pg-core").PgColumn<{ name: "ip_address"; tableName: "service_account_audit_log"; 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; }, {}, {}>; userAgent: import("drizzle-orm/pg-core").PgColumn<{ name: "user_agent"; tableName: "service_account_audit_log"; 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; }, {}, {}>; requestId: import("drizzle-orm/pg-core").PgColumn<{ name: "request_id"; tableName: "service_account_audit_log"; 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; }, {}, {}>; details: import("drizzle-orm/pg-core").PgColumn<{ name: "details"; tableName: "service_account_audit_log"; dataType: "json"; columnType: "PgJsonb"; data: Record; driverParam: unknown; notNull: false; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, { $type: Record; }>; previousState: import("drizzle-orm/pg-core").PgColumn<{ name: "previous_state"; tableName: "service_account_audit_log"; 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; }>; newState: import("drizzle-orm/pg-core").PgColumn<{ name: "new_state"; tableName: "service_account_audit_log"; 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; }>; timestamp: import("drizzle-orm/pg-core").PgColumn<{ name: "timestamp"; tableName: "service_account_audit_log"; 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"; }>; /** * Service tokens table - tracks issued service tokens for revocation support * Optional: Only needed if you want to track and revoke individual tokens */ export declare const serviceTokens: import("drizzle-orm/pg-core").PgTableWithColumns<{ name: "service_tokens"; schema: undefined; columns: { id: import("drizzle-orm/pg-core").PgColumn<{ name: "id"; tableName: "service_tokens"; 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; }, {}, {}>; jti: import("drizzle-orm/pg-core").PgColumn<{ name: "jti"; tableName: "service_tokens"; 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; }, {}, {}>; serviceAccountId: import("drizzle-orm/pg-core").PgColumn<{ name: "service_account_id"; tableName: "service_tokens"; 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; }, {}, {}>; clientId: import("drizzle-orm/pg-core").PgColumn<{ name: "client_id"; tableName: "service_tokens"; 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; }, {}, {}>; tenantId: import("drizzle-orm/pg-core").PgColumn<{ name: "tenant_id"; tableName: "service_tokens"; 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; }, {}, {}>; issuedAt: import("drizzle-orm/pg-core").PgColumn<{ name: "issued_at"; tableName: "service_tokens"; dataType: "date"; columnType: "PgTimestamp"; data: Date; driverParam: string; notNull: true; 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: "service_tokens"; dataType: "date"; columnType: "PgTimestamp"; data: Date; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; revokedAt: import("drizzle-orm/pg-core").PgColumn<{ name: "revoked_at"; tableName: "service_tokens"; 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; }, {}, {}>; revokedBy: import("drizzle-orm/pg-core").PgColumn<{ name: "revoked_by"; tableName: "service_tokens"; 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; }, {}, {}>; revokedReason: import("drizzle-orm/pg-core").PgColumn<{ name: "revoked_reason"; tableName: "service_tokens"; 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; }, {}, {}>; issuedIp: import("drizzle-orm/pg-core").PgColumn<{ name: "issued_ip"; tableName: "service_tokens"; 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; }, {}, {}>; issuedUserAgent: import("drizzle-orm/pg-core").PgColumn<{ name: "issued_user_agent"; tableName: "service_tokens"; 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; }, {}, {}>; }; dialect: "pg"; }>; export type ServiceAccountRecord = typeof serviceAccounts.$inferSelect; export type NewServiceAccountRecord = typeof serviceAccounts.$inferInsert; export type ServiceAccountAuditLogRecord = typeof serviceAccountAuditLog.$inferSelect; export type NewServiceAccountAuditLogRecord = typeof serviceAccountAuditLog.$inferInsert; export type ServiceTokenRecord = typeof serviceTokens.$inferSelect; export type NewServiceTokenRecord = typeof serviceTokens.$inferInsert; /** * Service account with relations */ export interface ServiceAccountWithAudit extends ServiceAccountRecord { auditLog?: ServiceAccountAuditLogRecord[]; activeTokenCount?: number; } /** * Service account list filters */ export interface ServiceAccountListFilters { tenantId?: string; status?: 'active' | 'revoked' | 'suspended'; search?: string; createdAfter?: Date; createdBefore?: Date; lastUsedAfter?: Date; lastUsedBefore?: Date; limit?: number; offset?: number; orderBy?: 'name' | 'createdAt' | 'lastUsedAt'; orderDir?: 'asc' | 'desc'; } /** * Service account audit filters */ export interface ServiceAccountAuditFilters { serviceAccountId?: string; clientId?: string; tenantId?: string; event?: ServiceAccountAuditLogRecord['event']; actorId?: string; startTime?: Date; endTime?: Date; limit?: number; offset?: number; }