ThatAIguyA world of ideas

THE CONSCIOUSNESS ATLAS
Read. Experiment. Follow the evidence.

ConsciousnessLearn · Explore · Joseph Anady

Janady13/missionmatch / db/migrations/0002_matching.sql

Source identity, revision, and recovered contents.

GitHub sourceSource text recovered

Source identity

FieldRecorded value
Source typeGitHub source
Original recordJanady13/missionmatch / db/migrations/0002_matching.sql
DateNot specified in source
RepositoryJanady13/missionmatch
Revision720d47fae476b0d38477ae4401697d372b1ea2bc
Branchfeature/opportunity-to-outcome
Path or archive memberdb/migrations/0002_matching.sql
Original SHA-256e0f7d6ab1092ee5e6cbc823a28a9f36072dbf3f8d7aabd6da5f712a8701e153a
Git blob SHA80db704918f5e3b222524d6f38afebc8834b340a
Reading-copy SHA-256e0f7d6ab1092ee5e6cbc823a28a9f36072dbf3f8d7aabd6da5f712a8701e153a

Original source ↗

Every recorded occurrence

These 35 records contain identical original source bytes. Their paths and revisions remain part of the archive.

Original recordBranch or archiveRevision / identifierOriginal location
Janady13/missionmatch / db/migrations/0002_matching.sqlfeature/opportunity-to-outcome720d47fae476b0d38477ae4401697d372b1ea2bcOpen original
Janady13/missionmatch / db/migrations/0002_matching.sqlper-tenant-routing9bde0f9a74b89d01980fa658e5253acda7528d0cOpen original
Janady13/missionmatch / db/migrations/0002_matching.sqlcollision-deconfliction4ee5a09972608ed89f8377c6665542d5f450f0a6Open original
Janady13/missionmatch / db/migrations/0002_matching.sqlws6-retrieval6c56e29231ec05735927fa265c97d517499dfeafOpen original
Janady13/missionmatch / db/migrations/0002_matching.sqlworkstream-a-shared-coree0de03ac3a1ec826bd15d0e048e3b02baa23eeffOpen original
Janady13/missionmatch / db/migrations/0002_matching.sqlm5-price-to-win41000ad30fff4129fdaf5ec84e15ba14c27d4890Open original
Janady13/missionmatch / db/migrations/0002_matching.sqlworkstream-c-slatematch5cd60c918301b46ecd6ed3e03e20c395da0062e2Open original
Janady13/missionmatch / db/migrations/0002_matching.sqlws1-ontology-syncb596f449a32a1016fbd403c36505cc00a1ac9ee6Open original
Janady13/missionmatch / db/migrations/0002_matching.sqlmaster1e9249840a4302ec82e123b9c9cb6f75badea3e4Open original
Janady13/missionmatch / db/migrations/0002_matching.sqlws8-teaching-loopc823f0fb6bb2aba0f39001eb6de96f4000d9321fOpen original
Janady13/missionmatch / db/migrations/0002_matching.sqlw3-ai-staffing-recommendations43d56387270ef4da4cabd794d97ca6a49909bc7dOpen original
Janady13/missionmatch / db/migrations/0002_matching.sqlmag-substrateb82c7100a492dec67dfd1eda6b3f53def859be35Open original
Janady13/missionmatch / db/migrations/0002_matching.sqlws3-clearance4b8e7ce594c068621867f9c9deed0ec64ae6c553Open original
Janady13/missionmatch / db/migrations/0002_matching.sqlworkstream-d-command-center255e7d1d420abf5e277d0cd8c9b14f6f72b6acb9Open original
Janady13/missionmatch / db/migrations/0002_matching.sqlphase2-eval-fairnessd361af254701975fe239927656ababb56374655eOpen original
Janady13/missionmatch / db/migrations/0002_matching.sqlworkstream-e-dataflow-deploy433815a042f9741411e60fa553fe72143e9b10dbOpen original
Janady13/missionmatch / db/migrations/0002_matching.sqlruthless-debug-sweepb7d742f8f032984be3817efffa3eb8b13b651c1fOpen original
Janady13/missionmatch / db/migrations/0002_matching.sqltime-to-fill-survivalb66e1e505863d4f17741a4b9ede73509e45bd6c6Open original
Janady13/missionmatch / db/migrations/0002_matching.sqlai-intelligence-layer5d5ddff70393a197c5f54a45280bb5dd42b24755Open original
Janady13/missionmatch / db/migrations/0002_matching.sqlgraphrag-foundationb0ddeb9f633fd138d09309d1a17b7d13bc3a67f7Open original
Janady13/missionmatch / db/migrations/0002_matching.sqlworkstream-a-opportunity-intelligence1675031db74316e100782d063e9eda1a597fe3a1Open original
Janady13/missionmatch / db/migrations/0002_matching.sqldeploy-and-opsbdacd9d0b4d5998d25fc74bf4007f4c3ec538c7aOpen original
Janady13/missionmatch / db/migrations/0002_matching.sqlws9-bench-ingestionf585a9ef32fa554663ce1fba9a414a54b6e49cf0Open original
Janady13/missionmatch / db/migrations/0002_matching.sqlws2-alias-relationshipe4dada4601c6eb101830f9d223a9655dfa120616Open original
Janady13/missionmatch / db/migrations/0002_matching.sqlpresentation-readinesseb574acaa29d71ce4d0f852572e87c275c79fdb7Open original
Janady13/missionmatch / db/migrations/0002_matching.sqlvendor-intelligencefe9796a19c261951d3f2565206c0c1b5ac294465Open original
Janady13/missionmatch / db/migrations/0002_matching.sqlworkstream-b-screenmatch09015496d565a172bcaa15cfe9a8e4b072b13df0Open original
Janady13/missionmatch / db/migrations/0002_matching.sqlws7-federal-signal6a9f6ce9cfb13345ffb47770d4960e7c2d9c17c2Open original
Janady13/missionmatch / db/migrations/0002_matching.sqlworkstream-e-commercial-stubs4437da660539284a400ee380b9b427a300c369eeOpen original
Janady13/missionmatch / db/migrations/0002_matching.sqlai-brain-liveaac32fc49c878cc5bca099459307611562d0bac1Open original
Janady13/missionmatch / db/migrations/0002_matching.sqlworkstream-d-missionmatch3be46ba89edb737182075a2b320509b42dc916f8Open original
Janady13/missionmatch / db/migrations/0002_matching.sqlphase2-connectorse038d4c687aec16f8bd9bc4d907eea14d91f8704Open original
Janady13/missionmatch / db/migrations/0002_matching.sqlworkstream-b-sam-contract-awardsd5101cceb98e70000cebb31d3e7ac73d747d3a6dOpen original
Janady13/missionmatch / db/migrations/0002_matching.sqlfeature/aioe-upgrade2178e7298d0e5d9af83afa12402fd587f0ba6ed8Open original
Janady13/missionmatch / db/migrations/0002_matching.sqlcapture-readinessbae6af7cb2997e819174a9e9cfff5e16067a1975Open original

Recovered source transcript

-- +goose Up -- Matching domain: skills ontology (global), opportunities, candidates, requirements, slates. -- -- Tenant isolation is defense-in-depth: RLS on organization_id (ENABLE+FORCE, USING+WITH CHECK) PLUS -- COMPOSITE foreign keys that carry organization_id, so a child row can NEVER reference a parent in -- another tenant, FK validation bypasses RLS, so WITH CHECK alone is necessary-but-not-sufficient -- [review RLS-1/INT-4]. Every tenant parent has UNIQUE (organization_id, id) as the composite-FK target. -- Clearance/poly/status/band are text + CHECK mirroring the engine enums' DB codes (engine Code()). -- --------------------------------------------------------------------------- -- skills, GLOBAL ontology reference (shared across tenants). No RLS. Partial -- HNSW so the index matches the "WHERE embedding IS NOT NULL" query predicate. -- --------------------------------------------------------------------------- CREATE TABLE skills ( id uuid PRIMARY KEY DEFAULT gen_random_uuid(), name text NOT NULL UNIQUE, category text, embedding vector(384), -- MVP self-hosted MiniLM-class dim; config-pinned (STACK_DECISIONS.md §3/§6) created_at timestamptz NOT NULL DEFAULT now() ); CREATE INDEX idx_skills_embedding_hnsw ON skills USING hnsw (embedding vector_cosine_ops) WITH (m = 16, ef_construction = 64) WHERE embedding IS NOT NULL; GRANT SELECT, INSERT, UPDATE ON skills TO missionmatch_app; -- --------------------------------------------------------------------------- -- opportunities, a proposal/solicitation that groups requirements, so -- /proposal-readiness aggregates across a proposal, not a single LCAT [review COMPL-2]. -- --------------------------------------------------------------------------- CREATE TABLE opportunities ( id uuid PRIMARY KEY DEFAULT gen_random_uuid(), organization_id uuid NOT NULL REFERENCES organizations(id), name text NOT NULL, solicitation_number text, customer_agency text, due_date date, status text NOT NULL DEFAULT 'open' CHECK (status IN ('open','submitted','won','lost','no_bid')), created_at timestamptz NOT NULL DEFAULT now(), updated_at timestamptz NOT NULL DEFAULT now(), CONSTRAINT uq_opportunities_org_id UNIQUE (organization_id, id) ); CREATE INDEX idx_opportunities_org ON opportunities (organization_id, created_at DESC); ALTER TABLE opportunities ENABLE ROW LEVEL SECURITY; ALTER TABLE opportunities FORCE ROW LEVEL SECURITY; CREATE POLICY opportunities_tenant_isolation ON opportunities USING (organization_id = NULLIF(current_setting('app.current_org_id', true), '')::uuid) WITH CHECK (organization_id = NULLIF(current_setting('app.current_org_id', true), '')::uuid); -- --------------------------------------------------------------------------- -- candidates, tenant-scoped. NO demographic columns (AEDT). clearance_status is -- a stored flag; clearance_expires_at is the source of truth for /clearance-status -- and as-of-date active/expired scoring [review COMPL-1]. Partial GIN/HNSW match -- the soft-delete query predicate [review PGV-6]. -- --------------------------------------------------------------------------- CREATE TABLE candidates ( id uuid PRIMARY KEY DEFAULT gen_random_uuid(), organization_id uuid NOT NULL REFERENCES organizations(id), full_name text NOT NULL, email text, headline text, clearance_level text NOT NULL DEFAULT 'unknown' CHECK (clearance_level IN ('unknown','none','confidential','secret','top_secret','ts_sci')), clearance_poly text NOT NULL DEFAULT 'none' CHECK (clearance_poly IN ('none','ci','full_scope')), clearance_status text NOT NULL DEFAULT 'unknown' CHECK (clearance_status IN ('unknown','active','expired','inactive')), clearance_granted_at date, clearance_expires_at date, reinvestigation_due_at date, years_experience int NOT NULL DEFAULT 0 CHECK (years_experience >= 0), location text, remote boolean NOT NULL DEFAULT false, relocatable boolean NOT NULL DEFAULT false, available boolean NOT NULL DEFAULT false, resume_embedding vector(384), search_tsv tsvector GENERATED ALWAYS AS ( to_tsvector('english', coalesce(full_name,'') || ' ' || coalesce(headline,'') || ' ' || coalesce(location,'')) ) STORED, created_at timestamptz NOT NULL DEFAULT now(), updated_at timestamptz NOT NULL DEFAULT now(), deleted_at timestamptz, CONSTRAINT uq_candidates_org_id UNIQUE (organization_id, id) ); CREATE INDEX idx_candidates_org ON candidates (organization_id, created_at DESC); CREATE INDEX idx_candidates_tsv ON candidates USING gin (search_tsv) WHERE deleted_at IS NULL; CREATE INDEX idx_candidates_emb_hnsw ON candidates USING hnsw (resume_embedding vector_cosine_ops) WITH (m = 16, ef_construction = 64) WHERE deleted_at IS NULL AND resume_embedding IS NOT NULL; CREATE INDEX idx_candidates_clearance_exp ON candidates (organization_id, clearance_expires_at) WHERE deleted_at IS NULL; ALTER TABLE candidates ENABLE ROW LEVEL SECURITY; ALTER TABLE candidates FORCE ROW LEVEL SECURITY; CREATE POLICY candidates_tenant_isolation ON candidates USING (organization_id = NULLIF(current_setting('app.current_org_id', true), '')::uuid) WITH CHECK (organization_id = NULLIF(current_setting('app.current_org_id', true), '')::uuid); -- candidate child tables: denormalized org + COMPOSITE FK to the parent (org,id) ---------------- CREATE TABLE candidate_skills ( organization_id uuid NOT NULL, candidate_id uuid NOT NULL, skill_id uuid NOT NULL REFERENCES skills(id), PRIMARY KEY (candidate_id, skill_id), FOREIGN KEY (organization_id, candidate_id) REFERENCES candidates (organization_id, id) ON DELETE CASCADE ); CREATE INDEX idx_cand_skills_org ON candidate_skills (organization_id, candidate_id); ALTER TABLE candidate_skills ENABLE ROW LEVEL SECURITY; ALTER TABLE candidate_skills FORCE ROW LEVEL SECURITY; CREATE POLICY cand_skills_isolation ON candidate_skills USING (organization_id = NULLIF(current_setting('app.current_org_id', true), '')::uuid) WITH CHECK (organization_id = NULLIF(current_setting('app.current_org_id', true), '')::uuid); CREATE TABLE candidate_certifications ( organization_id uuid NOT NULL, candidate_id uuid NOT NULL, name text NOT NULL, PRIMARY KEY (candidate_id, name), FOREIGN KEY (organization_id, candidate_id) REFERENCES candidates (organization_id, id) ON DELETE CASCADE ); CREATE INDEX idx_cand_certs_org ON candidate_certifications (organization_id, candidate_id); ALTER TABLE candidate_certifications ENABLE ROW LEVEL SECURITY; ALTER TABLE candidate_certifications FORCE ROW LEVEL SECURITY; CREATE POLICY cand_certs_isolation ON candidate_certifications USING (organization_id = NULLIF(current_setting('app.current_org_id', true), '')::uuid) WITH CHECK (organization_id = NULLIF(current_setting('app.current_org_id', true), '')::uuid); CREATE TABLE candidate_customer_experience ( organization_id uuid NOT NULL, candidate_id uuid NOT NULL, agency text NOT NULL, PRIMARY KEY (candidate_id, agency), FOREIGN KEY (organization_id, candidate_id) REFERENCES candidates (organization_id, id) ON DELETE CASCADE ); CREATE INDEX idx_cand_custexp_org ON candidate_customer_experience (organization_id, candidate_id); ALTER TABLE candidate_customer_experience ENABLE ROW LEVEL SECURITY; ALTER TABLE candidate_customer_experience FORCE ROW LEVEL SECURITY; CREATE POLICY cand_custexp_isolation ON candidate_customer_experience USING (organization_id = NULLIF(current_setting('app.current_org_id', true), '')::uuid) WITH CHECK (organization_id = NULLIF(current_setting('app.current_org_id', true), '')::uuid); -- --------------------------------------------------------------------------- -- requirements, tenant-scoped; optionally grouped under an opportunity. -- --------------------------------------------------------------------------- CREATE TABLE requirements ( id uuid PRIMARY KEY DEFAULT gen_random_uuid(), organization_id uuid NOT NULL REFERENCES organizations(id), opportunity_id uuid, title text NOT NULL, customer_agency text, required_level text NOT NULL DEFAULT 'none' CHECK (required_level IN ('unknown','none','confidential','secret','top_secret','ts_sci')), required_poly text NOT NULL DEFAULT 'none' CHECK (required_poly IN ('none','ci','full_scope')), required_years int NOT NULL DEFAULT 0 CHECK (required_years >= 0), work_location text, remote_allowed boolean NOT NULL DEFAULT false, key_personnel boolean NOT NULL DEFAULT false, created_at timestamptz NOT NULL DEFAULT now(), updated_at timestamptz NOT NULL DEFAULT now(), deleted_at timestamptz, CONSTRAINT uq_requirements_org_id UNIQUE (organization_id, id), FOREIGN KEY (organization_id, opportunity_id) REFERENCES opportunities (organization_id, id) ON DELETE SET NULL ); CREATE INDEX idx_requirements_org ON requirements (organization_id, created_at DESC); CREATE INDEX idx_requirements_opp ON requirements (organization_id, opportunity_id); ALTER TABLE requirements ENABLE ROW LEVEL SECURITY; ALTER TABLE requirements FORCE ROW LEVEL SECURITY; CREATE POLICY requirements_tenant_isolation ON requirements USING (organization_id = NULLIF(current_setting('app.current_org_id', true), '')::uuid) WITH CHECK (organization_id = NULLIF(current_setting('app.current_org_id', true), '')::uuid); CREATE TABLE required_skills ( organization_id uuid NOT NULL, requirement_id uuid NOT NULL, skill_id uuid NOT NULL REFERENCES skills(id), mandatory boolean NOT NULL DEFAULT false, PRIMARY KEY (requirement_id, skill_id), FOREIGN KEY (organization_id, requirement_id) REFERENCES requirements (organization_id, id) ON DELETE CASCADE ); CREATE INDEX idx_req_skills_org ON required_skills (organization_id, requirement_id); ALTER TABLE required_skills ENABLE ROW LEVEL SECURITY; ALTER TABLE required_skills FORCE ROW LEVEL SECURITY; CREATE POLICY req_skills_isolation ON required_skills USING (organization_id = NULLIF(current_setting('app.current_org_id', true), '')::uuid) WITH CHECK (organization_id = NULLIF(current_setting('app.current_org_id', true), '')::uuid); CREATE TABLE required_certifications ( organization_id uuid NOT NULL, requirement_id uuid NOT NULL, name text NOT NULL, PRIMARY KEY (requirement_id, name), FOREIGN KEY (organization_id, requirement_id) REFERENCES requirements (organization_id, id) ON DELETE CASCADE ); CREATE INDEX idx_req_certs_org ON required_certifications (organization_id, requirement_id); ALTER TABLE required_certifications ENABLE ROW LEVEL SECURITY; ALTER TABLE required_certifications FORCE ROW LEVEL SECURITY; CREATE POLICY req_certs_isolation ON required_certifications USING (organization_id = NULLIF(current_setting('app.current_org_id', true), '')::uuid) WITH CHECK (organization_id = NULLIF(current_setting('app.current_org_id', true), '')::uuid); -- --------------------------------------------------------------------------- -- slates + slate_members. slate_members freezes the explainable match result as -- the AEDT decision record. Scores are numeric(7,4) so a perfect 100.0000 fits -- (numeric(6,4) maxed at 99.9999 and overflowed) with CHECK 0..100 [review SQLC-1]. -- --------------------------------------------------------------------------- CREATE TABLE slates ( id uuid PRIMARY KEY DEFAULT gen_random_uuid(), organization_id uuid NOT NULL REFERENCES organizations(id), requirement_id uuid NOT NULL, name text NOT NULL, status text NOT NULL DEFAULT 'draft' CHECK (status IN ('draft','in_review','finalized')), created_by uuid, created_at timestamptz NOT NULL DEFAULT now(), updated_at timestamptz NOT NULL DEFAULT now(), CONSTRAINT uq_slates_org_id UNIQUE (organization_id, id), FOREIGN KEY (organization_id, requirement_id) REFERENCES requirements (organization_id, id), FOREIGN KEY (organization_id, created_by) REFERENCES users (organization_id, id) ); CREATE INDEX idx_slates_org ON slates (organization_id, created_at DESC); CREATE INDEX idx_slates_req ON slates (organization_id, requirement_id); ALTER TABLE slates ENABLE ROW LEVEL SECURITY; ALTER TABLE slates FORCE ROW LEVEL SECURITY; CREATE POLICY slates_tenant_isolation ON slates USING (organization_id = NULLIF(current_setting('app.current_org_id', true), '')::uuid) WITH CHECK (organization_id = NULLIF(current_setting('app.current_org_id', true), '')::uuid); CREATE TABLE slate_members ( organization_id uuid NOT NULL, slate_id uuid NOT NULL, candidate_id uuid NOT NULL, total_score numeric(7,4) NOT NULL CHECK (total_score BETWEEN 0 AND 100), band text NOT NULL CHECK (band IN ('green','yellow','red')), clearance_score numeric(7,4) NOT NULL CHECK (clearance_score BETWEEN 0 AND 100), skills_score numeric(7,4) NOT NULL CHECK (skills_score BETWEEN 0 AND 100), certs_score numeric(7,4) NOT NULL CHECK (certs_score BETWEEN 0 AND 100), customer_score numeric(7,4) NOT NULL CHECK (customer_score BETWEEN 0 AND 100), experience_score numeric(7,4) NOT NULL CHECK (experience_score BETWEEN 0 AND 100), location_score numeric(7,4) NOT NULL CHECK (location_score BETWEEN 0 AND 100), explanation text NOT NULL, trace jsonb NOT NULL, gap_summary jsonb NOT NULL DEFAULT '[]', decision text NOT NULL DEFAULT 'pending' CHECK (decision IN ('pending','approved','rejected')), -- human-in-the-loop; never auto-reject decided_by uuid, decided_at timestamptz, rank int, created_at timestamptz NOT NULL DEFAULT now(), PRIMARY KEY (slate_id, candidate_id), FOREIGN KEY (organization_id, slate_id) REFERENCES slates (organization_id, id) ON DELETE CASCADE, FOREIGN KEY (organization_id, candidate_id) REFERENCES candidates (organization_id, id), FOREIGN KEY (organization_id, decided_by) REFERENCES users (organization_id, id) ); CREATE INDEX idx_slate_members_org ON slate_members (organization_id, slate_id); ALTER TABLE slate_members ENABLE ROW LEVEL SECURITY; ALTER TABLE slate_members FORCE ROW LEVEL SECURITY; CREATE POLICY slate_members_isolation ON slate_members USING (organization_id = NULLIF(current_setting('app.current_org_id', true), '')::uuid) WITH CHECK (organization_id = NULLIF(current_setting('app.current_org_id', true), '')::uuid); GRANT SELECT, INSERT, UPDATE, DELETE ON opportunities, candidates, candidate_skills, candidate_certifications, candidate_customer_experience, requirements, required_skills, required_certifications, slates, slate_members TO missionmatch_app; -- +goose Down DROP TABLE IF EXISTS slate_members; DROP TABLE IF EXISTS slates; DROP TABLE IF EXISTS required_certifications; DROP TABLE IF EXISTS required_skills; DROP TABLE IF EXISTS requirements; DROP TABLE IF EXISTS candidate_customer_experience; DROP TABLE IF EXISTS candidate_certifications; DROP TABLE IF EXISTS candidate_skills; DROP TABLE IF EXISTS candidates; DROP TABLE IF EXISTS opportunities; DROP TABLE IF EXISTS skills;

Search equations, builds, manuscript text, and recovered sources.