Skip to content
5 changes: 4 additions & 1 deletion apps/event-worker/src/workers/policy-evaluate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ export const policyEvaluate = createWorker(
async (job) => {
const mutex = await ReleaseTargetMutex.lock(job.data);
try {
console.log("Evaluating release target", job.data);
const releaseTarget = await db.query.releaseTarget.findFirst({
where: and(
eq(schema.releaseTarget.resourceId, job.data.resourceId),
Expand All @@ -85,7 +86,9 @@ export const policyEvaluate = createWorker(
workspaceId: releaseTarget.resource.workspaceId,
});

const { chosenRelease } = await evaluateRepository(releaseRepository);
const { chosenRelease, rejectionReasons } =
await evaluateRepository(releaseRepository);
console.log({ chosenRelease, rejectionReasons });
if (chosenRelease == null)
throw new Error("Failed to get chosen release");

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,11 +53,6 @@ export const AverageDuration: React.FC<{
const { averageDuration: averageDurationInPreviousPeriod } =
statsInPreviousPeriod;

console.log({
averageDurationInCurrentPeriod,
averageDurationInPreviousPeriod,
});

const averageDurationInCurrentPeriodMs =
averageDurationInCurrentPeriod * 1000;

Expand Down
126 changes: 126 additions & 0 deletions packages/db/drizzle/0084_abnormal_lady_ursula.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
DO $$ BEGIN
CREATE TYPE "public"."approval_status" AS ENUM('approved', 'rejected');
EXCEPTION
WHEN duplicate_object THEN null;
END $$;
--> statement-breakpoint
CREATE TABLE IF NOT EXISTS "policy_rule_user_approval" (
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
"policy_id" uuid NOT NULL,
"created_at" timestamp with time zone DEFAULT now() NOT NULL,
"user_id" uuid NOT NULL
);
--> statement-breakpoint
CREATE TABLE IF NOT EXISTS "policy_rule_user_approval_record" (
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
"deployment_version_id" uuid NOT NULL,
"user_id" uuid NOT NULL,
"status" "approval_status" NOT NULL,
"approved_at" timestamp with time zone DEFAULT NULL,
"reason" text,
"created_at" timestamp with time zone DEFAULT now() NOT NULL,
"updated_at" timestamp with time zone,
"rule_id" uuid NOT NULL
);
--> statement-breakpoint
CREATE TABLE IF NOT EXISTS "policy_rule_role_approval" (
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
"policy_id" uuid NOT NULL,
"created_at" timestamp with time zone DEFAULT now() NOT NULL,
"role_id" uuid NOT NULL,
"required_approvals_count" integer DEFAULT 1 NOT NULL
);
--> statement-breakpoint
CREATE TABLE IF NOT EXISTS "policy_rule_role_approval_record" (
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
"deployment_version_id" uuid NOT NULL,
"user_id" uuid NOT NULL,
"status" "approval_status" NOT NULL,
"approved_at" timestamp with time zone DEFAULT NULL,
"reason" text,
"created_at" timestamp with time zone DEFAULT now() NOT NULL,
"updated_at" timestamp with time zone,
"rule_id" uuid NOT NULL
);
--> statement-breakpoint
CREATE TABLE IF NOT EXISTS "policy_rule_any_approval" (
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
"policy_id" uuid NOT NULL,
"created_at" timestamp with time zone DEFAULT now() NOT NULL,
"required_approvals_count" integer DEFAULT 1 NOT NULL
);
--> statement-breakpoint
CREATE TABLE IF NOT EXISTS "policy_rule_any_approval_record" (
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
"deployment_version_id" uuid NOT NULL,
"user_id" uuid NOT NULL,
"status" "approval_status" NOT NULL,
"approved_at" timestamp with time zone DEFAULT NULL,
"reason" text,
"created_at" timestamp with time zone DEFAULT now() NOT NULL,
"updated_at" timestamp with time zone
);
--> statement-breakpoint
DO $$ BEGIN
ALTER TABLE "policy_rule_user_approval" ADD CONSTRAINT "policy_rule_user_approval_policy_id_policy_id_fk" FOREIGN KEY ("policy_id") REFERENCES "public"."policy"("id") ON DELETE cascade ON UPDATE no action;
EXCEPTION
WHEN duplicate_object THEN null;
END $$;
--> statement-breakpoint
DO $$ BEGIN
ALTER TABLE "policy_rule_user_approval" ADD CONSTRAINT "policy_rule_user_approval_user_id_user_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE no action ON UPDATE no action;
EXCEPTION
WHEN duplicate_object THEN null;
END $$;
--> statement-breakpoint
DO $$ BEGIN
ALTER TABLE "policy_rule_user_approval_record" ADD CONSTRAINT "policy_rule_user_approval_record_user_id_user_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE no action ON UPDATE no action;
EXCEPTION
WHEN duplicate_object THEN null;
END $$;
--> statement-breakpoint
DO $$ BEGIN
ALTER TABLE "policy_rule_user_approval_record" ADD CONSTRAINT "policy_rule_user_approval_record_rule_id_policy_rule_user_approval_id_fk" FOREIGN KEY ("rule_id") REFERENCES "public"."policy_rule_user_approval"("id") ON DELETE cascade ON UPDATE no action;
EXCEPTION
WHEN duplicate_object THEN null;
END $$;
--> statement-breakpoint
DO $$ BEGIN
ALTER TABLE "policy_rule_role_approval" ADD CONSTRAINT "policy_rule_role_approval_policy_id_policy_id_fk" FOREIGN KEY ("policy_id") REFERENCES "public"."policy"("id") ON DELETE cascade ON UPDATE no action;
EXCEPTION
WHEN duplicate_object THEN null;
END $$;
--> statement-breakpoint
DO $$ BEGIN
ALTER TABLE "policy_rule_role_approval" ADD CONSTRAINT "policy_rule_role_approval_role_id_role_id_fk" FOREIGN KEY ("role_id") REFERENCES "public"."role"("id") ON DELETE no action ON UPDATE no action;
EXCEPTION
WHEN duplicate_object THEN null;
END $$;
--> statement-breakpoint
DO $$ BEGIN
ALTER TABLE "policy_rule_role_approval_record" ADD CONSTRAINT "policy_rule_role_approval_record_user_id_user_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE no action ON UPDATE no action;
EXCEPTION
WHEN duplicate_object THEN null;
END $$;
--> statement-breakpoint
DO $$ BEGIN
ALTER TABLE "policy_rule_role_approval_record" ADD CONSTRAINT "policy_rule_role_approval_record_rule_id_policy_rule_role_approval_id_fk" FOREIGN KEY ("rule_id") REFERENCES "public"."policy_rule_role_approval"("id") ON DELETE cascade ON UPDATE no action;
EXCEPTION
WHEN duplicate_object THEN null;
END $$;
--> statement-breakpoint
DO $$ BEGIN
ALTER TABLE "policy_rule_any_approval" ADD CONSTRAINT "policy_rule_any_approval_policy_id_policy_id_fk" FOREIGN KEY ("policy_id") REFERENCES "public"."policy"("id") ON DELETE cascade ON UPDATE no action;
EXCEPTION
WHEN duplicate_object THEN null;
END $$;
--> statement-breakpoint
DO $$ BEGIN
ALTER TABLE "policy_rule_any_approval_record" ADD CONSTRAINT "policy_rule_any_approval_record_user_id_user_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE no action ON UPDATE no action;
EXCEPTION
WHEN duplicate_object THEN null;
END $$;
--> statement-breakpoint
CREATE UNIQUE INDEX IF NOT EXISTS "unique_rule_id_user_id" ON "policy_rule_any_approval_record" USING btree ("deployment_version_id","user_id");--> statement-breakpoint
ALTER TABLE "policy_rule_deny_window" DROP COLUMN IF EXISTS "name";--> statement-breakpoint
ALTER TABLE "policy_rule_deny_window" DROP COLUMN IF EXISTS "description";
Loading
Loading