import { boolean, pgTable, text, timestamp } from "drizzle-orm/pg-core"; import { repositories } from "./repositories"; import { users } from "./users"; export const securityPolicies = pgTable("security_policies", { id: text("id").primaryKey(), repositoryId: text("repository_id") .notNull() .references(() => repositories.id, { onDelete: "cascade" }), enforcementMode: text("enforcement_mode").notNull().default("warn"), // warn | block secretBlockedTypes: text("secret_blocked_types").notNull().default("[]"), // JSON string[] secretMinSeverity: text("secret_min_severity").notNull().default("HIGH"), // CRITICAL | HIGH | MEDIUM | LOW | UNKNOWN licenseAllowedTypes: text("license_allowed_types").notNull().default("[\"permissive\"]"), // JSON string[] licenseBlockedLicenses: text("license_blocked_licenses").notNull().default("[]"), // JSON string[] isEnabled: boolean("is_enabled").notNull().default(true), updatedById: text("updated_by_id").references(() => users.id), createdAt: timestamp("created_at").notNull().defaultNow(), updatedAt: timestamp("updated_at").notNull().defaultNow(), }); export type SecurityPolicy = typeof securityPolicies.$inferSelect;