Skip to content

Commit fcb3bd8

Browse files
feat(utilities): add domains field for multi-domain tracking (ALL-732) (#206)
* feat(utilities): add domains field for multi-domain tracking * feat(domains): Add GIN index + backfill script (ALL-732 continued) - Add GIN index to domains column for efficient array containment queries - Create backfill script: NRECA/EIA-861 known domains + website fallback - OpenAPI description: email/web domains for CRM scoping Backfill script supports: - Known utility domain mappings (NRECA, EIA-861) - Website field parsing (extract domain) - Graceful handling of missing data Run backfill: `tsx scripts/backfill-utility-domains.ts` After migration + backfill, /utilities and /utilities/{slug} endpoints will include domains array for email-scoping and cross-system matching. * feat(domains): Backfill utility domains from seed + website fallback (ALL-732) - Add backfill-utility-domains.ts: KNOWN_UTILITY_DOMAINS seed list + NRECA dir support - Populate 3133 utilities with domains array (prioritizes seed > existing > NRECA > website fallback) - Add push-utility-domains-to-db.ts: one-shot script to sync data/utilities.json → Neon - Update package.json with npm run backfill:utility-domains scripts - Add GIN index on utilities.domains + test suite in drizzle 0004 - OpenAPI: domains array is auto-generated by the generator This completes the schema (832ddae) + migration (a70318f) already on the branch. Unblocks Relay + CRM consumers to scope email ingestion by organization. Closes ALL-732. --------- Co-authored-by: texture-coding-agent <coding-agent@texturehq.com>
1 parent 37b8701 commit fcb3bd8

11 files changed

Lines changed: 12030 additions & 1357 deletions

data/utilities.json

Lines changed: 5438 additions & 1357 deletions
Large diffs are not rendered by default.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
ALTER TABLE "utilities" ADD COLUMN "domains" text[];--> statement-breakpoint
2+
-- GIN index for array containment queries (e.g., WHERE domains @> ARRAY['example.com'])
3+
CREATE INDEX "idx_utilities_domains" ON "utilities" USING GIN("domains");

0 commit comments

Comments
 (0)