49 lines
1.8 KiB
SQL
49 lines
1.8 KiB
SQL
CREATE TABLE "api_keys" (
|
|
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
"key_hash" text NOT NULL,
|
|
"label" text,
|
|
"rate_limit" integer,
|
|
"created_at" timestamp with time zone DEFAULT now() NOT NULL,
|
|
"revoked_at" timestamp with time zone,
|
|
CONSTRAINT "api_keys_key_hash_unique" UNIQUE("key_hash")
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "cache" (
|
|
"cache_key" text PRIMARY KEY NOT NULL,
|
|
"job_id" uuid,
|
|
"url" text NOT NULL,
|
|
"options_hash" text NOT NULL,
|
|
"compiler_version" text NOT NULL,
|
|
"created_at" timestamp with time zone DEFAULT now() NOT NULL,
|
|
"expires_at" timestamp with time zone NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "clones" (
|
|
"job_id" uuid PRIMARY KEY NOT NULL,
|
|
"url" text NOT NULL,
|
|
"route_count" integer DEFAULT 1 NOT NULL,
|
|
"file_manifest" jsonb NOT NULL,
|
|
"bundle_s3_key" text,
|
|
"verify" jsonb,
|
|
"capture_meta" jsonb NOT NULL,
|
|
"created_at" timestamp with time zone DEFAULT now() NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "jobs" (
|
|
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
"kind" text NOT NULL,
|
|
"url" text NOT NULL,
|
|
"options" jsonb DEFAULT '{}'::jsonb NOT NULL,
|
|
"status" text DEFAULT 'queued' NOT NULL,
|
|
"cache_key" text NOT NULL,
|
|
"attempts" integer DEFAULT 0 NOT NULL,
|
|
"error" text,
|
|
"compiler_version" text,
|
|
"timings" jsonb,
|
|
"created_at" timestamp with time zone DEFAULT now() NOT NULL,
|
|
"started_at" timestamp with time zone,
|
|
"finished_at" timestamp with time zone
|
|
);
|
|
--> statement-breakpoint
|
|
ALTER TABLE "cache" ADD CONSTRAINT "cache_job_id_jobs_id_fk" FOREIGN KEY ("job_id") REFERENCES "public"."jobs"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
|
|
ALTER TABLE "clones" ADD CONSTRAINT "clones_job_id_jobs_id_fk" FOREIGN KEY ("job_id") REFERENCES "public"."jobs"("id") ON DELETE cascade ON UPDATE no action; |