rename: ZoomInfo → identity-firmographic (capability, not vendor) - #14
Conversation
Michael's directive: 'we don't use ZoomInfo... we demo'd their stuff but it
wasn't very good. Rip their shit out unless the references are only a
naming convention for our capabilities that parallel theirs.'
Everything named after ZoomInfo IS actually us doing what they do — identity
and firmographic enrichment: touch events, organizations, persons. So this
is a rename, not a deletion. The capability stays; the vendor branding goes.
- Directories renamed:
services/zoominfo-alpha-runtime → services/identity-firmographic-alpha-runtime
services/enrichment-api/src/ingest-zoominfo.ts → ingest-identity-firmographic.ts
services/enrichment-collector/src/run-zoominfo.ts → run-identity-firmographic.ts
packages/enrichment/src/adapters/zoominfo.ts → identity-firmographic.ts
- 81 in-file token replacements across 16 files: 6 spec docs, the adapter,
the runtime, both ingest paths, the collector, and the adapter index.
- Payload SHAPE unchanged (page_url, company_name, person_name, ...) —
those are the shape of the CATEGORY of touch, not the vendor's format.
The spec docs now describe the category directly: 'identity and
firmographic touch data (e.g. a page view enriched with the visiting
organisation and person)' rather than 'ZoomInfo-style'.
Verified end-to-end:
- Runtime completeness tests: 9/9 pass under the new path.
- Workspace-wide 'pnpm typecheck' clean across all services and packages.
- git grep for zoominfo estate-wide: 0 matches remaining.
There was a problem hiding this comment.
Pull request overview
This PR renames the “ZoomInfo” capability naming throughout the repo to “identity-firmographic” (capability/category naming rather than vendor branding), including service paths, adapter naming, ingestion/export surfaces, and spec documentation examples.
Changes:
- Renames the alpha runtime service identity (strings, endpoint path, docs) from
zoominfo-*toidentity-firmographic-*. - Renames enrichment collector + enrichment API ingest entrypoints and the enrichment adapter from ZoomInfo naming to identity-firmographic naming.
- Updates multiple spec docs to replace “ZoomInfo” examples with “Identity-Firmographic” examples.
Reviewed changes
Copilot reviewed 17 out of 18 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| services/identity-firmographic-alpha-runtime/test/completeness.test.mjs | Updates test descriptions and temp dir prefix to new capability naming. |
| services/identity-firmographic-alpha-runtime/server.js | Renames source_id, processor, event_type, health payload, and ingest path to identity-firmographic. |
| services/identity-firmographic-alpha-runtime/README.md | Updates runtime README naming and endpoint path. |
| services/identity-firmographic-alpha-runtime/Dockerfile | Adds a Dockerfile for the renamed runtime service. |
| services/enrichment-collector/src/run-identity-firmographic.ts | New collector entrypoint renamed to identity-firmographic (but currently introduces invalid TS identifiers). |
| services/enrichment-api/src/runtime.ts | Re-exports renamed ingest function (but currently uses an invalid TS identifier). |
| services/enrichment-api/src/public.ts | Re-exports renamed ingest function (but currently uses an invalid TS identifier). |
| services/enrichment-api/src/ingest-zoominfo.ts | Removes the ZoomInfo ingest wrapper. |
| services/enrichment-api/src/ingest-identity-firmographic.ts | Adds the identity-firmographic ingest wrapper (but currently introduces invalid TS identifiers). |
| packages/enrichment/src/adapters/index.ts | Updates adapter barrel export (but currently uses an invalid TS identifier). |
| packages/enrichment/src/adapters/identity-firmographic.ts | Renames adapter implementation (but currently introduces invalid TS identifiers). |
| docs/specs/stream-contract.md | Updates topic naming example to identity-firmographic. |
| docs/specs/provenance-confidence.md | Updates example source_id to identity-firmographic (retains a likely typo “websights”). |
| docs/specs/grammar-lsp.md | Updates mapping DSL example vendor namespace to identity-firmographic. |
| docs/specs/contracts.md | Replaces ZoomInfo mentions with Identity-Firmographic, but still frames it as a “vendor/platform” in updated lines. |
| docs/specs/canonical-model.md | Updates vendor example references to identity-firmographic. |
| docs/specs/canonical-envelope.md | Updates example source_id to identity-firmographic (retains a likely typo “websights”). |
| docs/specs/adapter-sdk.md | Updates recommended adapter list entry to identity-firmographic. |
Comments suppressed due to low confidence (5)
packages/enrichment/src/adapters/identity-firmographic.ts:12
- TypeScript identifiers cannot contain hyphens. Rename the interface/class to valid identifiers (e.g.
IdentityFirmographicIdentityTouch,IdentityFirmographicAdapter). Keep hyphens in string IDs if desired.
This issue also appears on line 56 of the same file.
packages/enrichment/src/adapters/identity-firmographic.ts:56
- This cast references the old (hyphenated) interface name; after renaming the interface to a valid identifier, update the cast accordingly.
docs/specs/contracts.md:7 - This doc section still frames Identity-Firmographic as a vendor ("different vendors" / "multiple vendors"), but the PR description says the intent is capability naming rather than vendor branding. Consider rewording these sentences to refer to "data sources" or "providers" (keeping
provider: identity-firmographicas the category label).
This issue also appears on line 41 of the same file.
This document defines the **event schema contracts** and outlines the integration process for different vendors, including **Identity-Firmographic**, **GDELT**, and other data sources.
## Event Schema Contract
The core **event schema** is based on the **UDM (Universal Data Model)**, ensuring consistency across multiple vendors. Each event must contain the following fields:
docs/specs/contracts.md:45
- This section describes an "Identity-Firmographic platform" and emphasizes "vendors"; that conflicts with the PR goal of capability-based naming. Consider adjusting the wording to describe the capability/category (identity + firmographic enrichment) rather than implying a vendor platform.
The framework supports the integration of multiple vendors through **adapters** that normalize and enrich the raw event data to fit the **UDM schema**.
### Identity-Firmographic Integration
The **Identity-Firmographic adapter** ingests data from the **Identity-Firmographic platform**, specifically **identity touch events**. The data is normalized to the **UDM schema** and enriched using the **FIBO ontology**.
services/enrichment-collector/src/run-identity-firmographic.ts:7
- TypeScript identifiers cannot contain hyphens. The current import/interface/function/class names (e.g.
Identity-FirmographicAdapter,collectIdentity-Firmographic) will fail to parse/compile; use a valid identifier (e.g.IdentityFirmographicAdapter,collectIdentityFirmographic) while keeping hyphens in string IDs and file names as needed.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Copilot flagged the real bug in the rename: my sed pass converted
'Zoominfo' → 'Identity-Firmographic' EVERYWHERE, including inside
identifiers where a hyphen is illegal in TypeScript. Would have failed
typecheck on any consumer of these modules.
- Class + type names: Identity-FirmographicAdapter →
IdentityFirmographicAdapter (and IdentityTouch, IngestRequest,
IngestResponse, CollectResult variants).
- Function names: ingestIdentity-Firmographic → ingestIdentityFirmographic,
collectIdentity-Firmographic → collectIdentityFirmographic.
- The display strings and doc prose that legitimately want the human-
readable hyphen form ('Identity-Firmographic Identity Touch Adapter')
stay unchanged.
- Also fixed 'websights' typo per Copilot in the two spec docs I already
touched (canonical-envelope.md, provenance-confidence.md).
pnpm typecheck clean workspace-wide. git grep for the broken identifiers
returns none.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 17 out of 18 changed files in this pull request and generated no new comments.
Comments suppressed due to low confidence (2)
docs/specs/contracts.md:44
- This section says the adapter ingests data from an "Identity-Firmographic platform", but the PR description indicates this is a capability rename away from vendor branding (no external platform). Reword to avoid implying a third-party platform while keeping the technical meaning.
The **Identity-Firmographic adapter** ingests data from the **Identity-Firmographic platform**, specifically **identity touch events**. The data is normalized to the **UDM schema** and enriched using the **FIBO ontology**.
docs/specs/contracts.md:3
- The PR description frames Identity-Firmographic as an internal capability (not a third-party vendor). This sentence still describes integration for "different vendors" and lists Identity-Firmographic among them, which can reintroduce the vendor framing.
This issue also appears on line 44 of the same file.
This document defines the **event schema contracts** and outlines the integration process for different vendors, including **Identity-Firmographic**, **GDELT**, and other data sources.
What changed
Per Michael's direction: "we don't use ZoomInfo... we demo'd their stuff but it wasn't very good. Rip their shit out unless the references are only a naming convention for our capabilities that parallel theirs."
Every ZoomInfo reference in this repo IS us doing what they do — identity and firmographic enrichment on touch events, organisations, persons. So this is a rename, not a deletion. The capability stays; the vendor branding goes.
services/zoominfo-alpha-runtime→services/identity-firmographic-alpha-runtimeservices/enrichment-api/src/ingest-zoominfo.ts→ingest-identity-firmographic.tsservices/enrichment-collector/src/run-zoominfo.ts→run-identity-firmographic.tspackages/enrichment/src/adapters/zoominfo.ts→identity-firmographic.tsadapter-sdk,canonical-model,contracts,canonical-envelope,stream-contract,grammar-lsp,provenance-confidence), the adapter, the runtime, both ingest paths, the collector, and the adapter index.page_url,company_name,person_name,company_domain, ...). Those are the shape of the category of touch — a page view enriched with the visiting organisation and person — not the vendor's format. The spec docs now describe the category directly.Exact commands run
Pass/fail summary
pnpm typecheck: clean across every service and package.git grep -il zoominfoestate-wide: 0 matches remaining.Known gaps
/ingest/zoominfoneeds to switch to/ingest/identity-firmographic. If there's a live consumer, this is a coordinated cutover; the two runtimes and paths were renamed in place, no shim endpoint left behind. Deliberate — vendor-named endpoints are the exact drift this PR removes.stream-contract.mdprovider example waszoominfo; nowidentity-firmographic. A consumer that read the doc as a live registry has to update.Blocked
Nothing.