chore: establish local platform baseline

This commit is contained in:
Codex Local
2026-08-26 06:41:54 +08:00
commit 29bdf4900f
575 changed files with 95644 additions and 0 deletions
+27
View File
@@ -0,0 +1,27 @@
BEGIN;
CREATE TABLE device_claim (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
public_id uuid NOT NULL UNIQUE DEFAULT gen_random_uuid(),
tenant_id uuid NOT NULL REFERENCES tenant(id),
device_id uuid NOT NULL,
token_digest char(64) NOT NULL UNIQUE,
expires_at timestamptz NOT NULL,
revoked_at timestamptz,
used_at timestamptz,
used_binding_id uuid REFERENCES device_binding(id),
failed_attempts integer NOT NULL DEFAULT 0 CHECK (failed_attempts >= 0),
created_at timestamptz NOT NULL DEFAULT now(),
CONSTRAINT device_claim_device_tenant_fk
FOREIGN KEY (device_id, tenant_id) REFERENCES device(id, tenant_id),
CONSTRAINT device_claim_use_consistency CHECK (
(used_at IS NULL AND used_binding_id IS NULL) OR
(used_at IS NOT NULL AND used_binding_id IS NOT NULL)
)
);
CREATE INDEX device_claim_device_status_idx
ON device_claim (tenant_id, device_id, expires_at DESC);
CREATE UNIQUE INDEX device_claim_one_unused_per_device
ON device_claim (device_id) WHERE used_at IS NULL AND revoked_at IS NULL;
COMMIT;