Skip to content

Remove nodejs version info from data model#1858

Merged
tk-o merged 3 commits intomainfrom
feat/remove-nodejs-version-info
Apr 1, 2026
Merged

Remove nodejs version info from data model#1858
tk-o merged 3 commits intomainfrom
feat/remove-nodejs-version-info

Conversation

@tk-o
Copy link
Copy Markdown
Contributor

@tk-o tk-o commented Apr 1, 2026

Lite PR

Tip: Review docs on the ENSNode PR process

Summary

  • The nodejs field has been removed from EnsIndexerVersionInfo data model.

Why

  • Update requested on Slack

Testing

  • Ran ENSAdmin to confirm visual update.
  • Ran ENSIndexer to confirm that its public config can still be generated OK at /api/config.

Notes for Reviewer (Optional)


Pre-Review Checklist (Blocking)

  • This PR does not introduce significant changes and is low-risk to review quickly.
  • Relevant changesets are included (or are not required)

Copilot AI review requested due to automatic review settings April 1, 2026 05:34
@tk-o tk-o requested a review from a team as a code owner April 1, 2026 05:34
@changeset-bot
Copy link
Copy Markdown

changeset-bot bot commented Apr 1, 2026

🦋 Changeset detected

Latest commit: 0c68210

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 23 packages
Name Type
@ensnode/ensnode-sdk Major
ensadmin Major
ensapi Major
ensindexer Major
ensrainbow Major
fallback-ensapi Major
@namehash/ens-referrals Major
@ensnode/ensdb-sdk Major
@ensnode/ensnode-react Major
@ensnode/ensrainbow-sdk Major
@ensnode/integration-test-env Patch
@namehash/namehash-ui Major
@docs/ensnode Major
@docs/ensrainbow Major
enssdk Major
enscli Major
enskit Major
ensskills Major
@ensnode/datasources Major
@ensnode/ponder-sdk Major
@ensnode/ponder-subgraph Major
@ensnode/shared-configs Major
@docs/mintlify Major

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@vercel
Copy link
Copy Markdown
Contributor

vercel bot commented Apr 1, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
admin.ensnode.io Ready Ready Preview, Comment Apr 1, 2026 6:45am
ensnode.io Ready Ready Preview, Comment Apr 1, 2026 6:45am
ensrainbow.io Ready Ready Preview, Comment Apr 1, 2026 6:45am

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Apr 1, 2026

Warning

Rate limit exceeded

@tk-o has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 19 minutes and 14 seconds before requesting another review.

Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 19 minutes and 14 seconds.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: dfb4fdbf-da64-48ca-91ce-7a28ab869136

📥 Commits

Reviewing files that changed from the base of the PR and between 759dd05 and 0c68210.

📒 Files selected for processing (18)
  • .changeset/dry-pants-begin.md
  • apps/ensadmin/src/app/mock/config-api.mock.ts
  • apps/ensadmin/src/components/connection/cards/ensnode-info.tsx
  • apps/ensapi/src/config/config.schema.test.ts
  • apps/ensindexer/src/lib/ensdb-writer-worker/ensdb-writer-worker.mock.ts
  • apps/ensindexer/src/lib/public-config-builder/public-config-builder.test.ts
  • apps/ensindexer/src/lib/public-config-builder/public-config-builder.ts
  • apps/ensindexer/src/lib/version-info.ts
  • docs/docs.ensnode.io/ensapi-openapi.json
  • docs/ensnode.io/src/content/docs/docs/usage/api.mdx
  • packages/ensdb-sdk/src/client/ensdb-client.mock.ts
  • packages/ensnode-sdk/src/ensapi/client.test.ts
  • packages/ensnode-sdk/src/ensapi/config/conversions.test.ts
  • packages/ensnode-sdk/src/ensindexer/client.mock.ts
  • packages/ensnode-sdk/src/ensindexer/config/conversions.test.ts
  • packages/ensnode-sdk/src/ensindexer/config/types.ts
  • packages/ensnode-sdk/src/ensindexer/config/zod-schemas.test.ts
  • packages/ensnode-sdk/src/ensindexer/config/zod-schemas.ts
📝 Walkthrough

Walkthrough

This changeset removes the nodejs field from the EnsIndexerVersionInfo data model across the entire codebase. The change propagates through type definitions, Zod schema validation, public config builders, client mocks, test fixtures, and documentation. No other functionality or control flow is modified.

Changes

Cohort / File(s) Summary
Core Data Model Definition
packages/ensnode-sdk/src/ensindexer/config/types.ts, packages/ensnode-sdk/src/ensindexer/config/zod-schemas.ts, .changeset/dry-pants-begin.md
Removed nodejs: string property from EnsIndexerVersionInfo interface and updated Zod schema to no longer validate the field.
Config Building & Version Retrieval
apps/ensindexer/src/lib/public-config-builder/public-config-builder.ts, apps/ensindexer/src/lib/version-info.ts
Removed getNodeJsVersion() export and its usage in validateEnsIndexerVersionInfo payload within the public config builder.
Schema & Config Validation Tests
packages/ensnode-sdk/src/ensindexer/config/zod-schemas.test.ts, apps/ensindexer/src/lib/public-config-builder/public-config-builder.test.ts, packages/ensnode-sdk/src/ensapi/config/conversions.test.ts, packages/ensnode-sdk/src/ensindexer/config/conversions.test.ts, apps/ensapi/src/config/config.schema.test.ts
Updated test fixtures and assertions to remove nodejs field from version info objects and remove related validation error expectations.
Mock Data & Fixtures
apps/ensindexer/src/lib/ensdb-writer-worker/ensdb-writer-worker.mock.ts, packages/ensdb-sdk/src/client/ensdb-client.mock.ts, packages/ensnode-sdk/src/ensindexer/client.mock.ts, packages/ensnode-sdk/src/ensapi/client.test.ts
Removed nodejs field from exported mock version info objects and config responses.
App Configuration & UI
apps/ensadmin/src/app/mock/config-api.mock.ts, apps/ensadmin/src/components/connection/cards/ensnode-info.tsx
Removed nodejs from mocked config and deleted the entire InfoCardItem component displaying Node.js version in the ENSIndexer info card.
Documentation
docs/ensnode.io/src/content/docs/docs/usage/api.mdx
Removed versionInfo.nodejs from the documented JSON response example for GET /api/config.

Estimated Code Review Effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly Related PRs

Poem

🐰 A field once held Node's version bright,
Now fades into the morning light,
Simpler schemas, cleaner too,
The rabbit hops to what is new!

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately and concisely summarizes the main change: removing the nodejs field from the EnsIndexerVersionInfo data model, which is the primary objective across all modified files.
Description check ✅ Passed The description follows the required template with all key sections completed: Summary (what changed), Why (Slack request reference), Testing (verification in ENSAdmin and ENSIndexer), and Pre-Review Checklist properly marked.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/remove-nodejs-version-info

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps bot commented Apr 1, 2026

Greptile Summary

This PR removes the nodejs field from the EnsIndexerVersionInfo data model across the entire ENSNode monorepo. The change is straightforward and well-executed: the field is deleted from the TypeScript interface, the Zod validation schema, the getNodeJsVersion() helper, the ENSAdmin UI card, the OpenAPI spec, the docs, and every mock/test fixture that referenced it.

Key changes:

  • EnsIndexerVersionInfo interface no longer includes nodejs: string (packages/ensnode-sdk/src/ensindexer/config/types.ts)
  • getNodeJsVersion() utility removed from apps/ensindexer/src/lib/version-info.ts
  • makeEnsIndexerVersionInfoSchema Zod schema updated to drop the nodejs field
  • ENSAdmin "Node.js" info card removed from the connection details UI
  • OpenAPI spec and documentation updated to match the new shape
  • All mock fixtures and test assertions updated consistently across 18 files

Confidence Score: 5/5

Safe to merge — purely a field removal with no logic changes, fully propagated across all 18 affected files.

The change is mechanical and internally consistent: interface, schema, builder, UI, OpenAPI spec, docs, and every mock/test fixture are all updated in lock-step. No remaining P0 or P1 findings; the changeset versioning decision was confirmed by the team as intentional.

No files require special attention.

Important Files Changed

Filename Overview
packages/ensnode-sdk/src/ensindexer/config/types.ts Removes the nodejs: string field from the EnsIndexerVersionInfo interface; all other fields and the deprecated alias remain unchanged.
packages/ensnode-sdk/src/ensindexer/config/zod-schemas.ts Removes nodejs from makeEnsIndexerVersionInfoSchema; the remaining four required fields and the cross-field invariant are intact.
apps/ensindexer/src/lib/version-info.ts Deletes the getNodeJsVersion() helper that wrapped process.versions.node; getEnsIndexerVersion and getPackageVersion are untouched.
apps/ensindexer/src/lib/public-config-builder/public-config-builder.ts Removes the getNodeJsVersion import and its usage from validateEnsIndexerVersionInfo; no other logic changes.
apps/ensadmin/src/components/connection/cards/ensnode-info.tsx Removes the InfoCardItem block that rendered the Node.js version with a link; surrounding UI elements are untouched.
docs/docs.ensnode.io/ensapi-openapi.json Removes nodejs from the OpenAPI versionInfo properties and its entry in the required array; spec stays internally consistent.
.changeset/dry-pants-begin.md Adds a minor changeset for @ensnode/ensnode-sdk; classification confirmed by the team as acceptable.
packages/ensnode-sdk/src/ensindexer/config/zod-schemas.test.ts Removes all nodejs fixtures from parse/error tests; expected error message string is correctly trimmed to match the reduced field list.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A["ENSIndexer runtime\n(public-config-builder.ts)"] -->|"getEnsIndexerVersion()\ngetPackageVersion('ponder')\ngetPackageVersion('@adraffy/ens-normalize')"| B["validateEnsIndexerVersionInfo()"]
    B --> C["EnsIndexerVersionInfo\n{ ponder, ensDb, ensIndexer, ensNormalize }"]
    C --> D["EnsIndexerPublicConfig\n/api/config endpoint"]
    D --> E["ENSAdmin UI\n(ensnode-info.tsx)"]
    D --> F["ENSApi\n(OpenAPI spec)"]
    style C fill:#d4edda,stroke:#28a745
Loading

Reviews (2): Last reviewed commit: "Update OpenAPI Spec" | Re-trigger Greptile

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Removes the nodejs runtime version field from the EnsIndexerVersionInfo model and updates dependent schema validation, mocks, tests, and user-facing docs/UI to reflect the simplified version info payload.

Changes:

  • Drop nodejs from EnsIndexerVersionInfo TypeScript types and associated Zod schema.
  • Update ENSIndexer/ENSApi/ENSDb SDK mocks + unit tests to match the new versionInfo shape.
  • Remove Node.js version reporting from ENSIndexer public config generation and ENSAdmin UI/docs examples.

Reviewed changes

Copilot reviewed 17 out of 17 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
packages/ensnode-sdk/src/ensindexer/config/zod-schemas.ts Removes nodejs from the version info Zod schema.
packages/ensnode-sdk/src/ensindexer/config/zod-schemas.test.ts Updates schema parsing/error expectations after removing nodejs.
packages/ensnode-sdk/src/ensindexer/config/types.ts Removes nodejs from EnsIndexerVersionInfo interface docs/type.
packages/ensnode-sdk/src/ensindexer/config/conversions.test.ts Updates config conversion fixtures to omit nodejs.
packages/ensnode-sdk/src/ensindexer/client.mock.ts Updates mocked config response payload to omit nodejs.
packages/ensnode-sdk/src/ensapi/config/conversions.test.ts Updates ENSApi config conversion fixtures to omit nodejs.
packages/ensnode-sdk/src/ensapi/client.test.ts Updates ENSApi client test fixture to omit nodejs.
packages/ensdb-sdk/src/client/ensdb-client.mock.ts Updates ENSDb SDK public config mock to omit nodejs.
docs/ensnode.io/src/content/docs/docs/usage/api.mdx Removes nodejs from the /api/config example response.
apps/ensindexer/src/lib/version-info.ts Removes the Node.js version helper (no longer needed).
apps/ensindexer/src/lib/public-config-builder/public-config-builder.ts Stops including Node.js version in generated ENSIndexer public config.
apps/ensindexer/src/lib/public-config-builder/public-config-builder.test.ts Updates tests/mocks for public config builder after removing nodejs.
apps/ensindexer/src/lib/ensdb-writer-worker/ensdb-writer-worker.mock.ts Updates worker mock version info fixture to omit nodejs.
apps/ensapi/src/config/config.schema.test.ts Updates ENSApi config schema test fixture to omit nodejs.
apps/ensadmin/src/components/connection/cards/ensnode-info.tsx Removes Node.js display card item from ENSAdmin connection info UI.
apps/ensadmin/src/app/mock/config-api.mock.ts Updates ENSAdmin mock config API payload to omit nodejs.
.changeset/dry-pants-begin.md Adds a changeset noting removal of the nodejs field.
Comments suppressed due to low confidence (1)

apps/ensadmin/src/components/connection/cards/ensnode-info.tsx:453

  • ENSAdmin’s mock config fixture (apps/ensadmin/src/app/mock/config-info/data.json) still includes versionInfo.nodejs. Since this UI no longer displays Node.js and the SDK model removed the field, updating the fixture to match the new shape will avoid future confusion (and potential failures if deserialization becomes strict).
          <InfoCardItem
            label="Ponder"
            value={
              <p className={cardItemValueStyles}>{ensIndexerPublicConfig.versionInfo.ponder}</p>

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@tk-o
Copy link
Copy Markdown
Contributor Author

tk-o commented Apr 1, 2026

@greptile review

Copy link
Copy Markdown
Member

@lightwalker-eth lightwalker-eth left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tk-o Looks good 👍 Please take the lead to merge when ready

@tk-o tk-o merged commit 7fca45d into main Apr 1, 2026
20 checks passed
@tk-o tk-o deleted the feat/remove-nodejs-version-info branch April 1, 2026 11:47
@github-actions github-actions bot mentioned this pull request Apr 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants