Skip to content

Simplify public config data models - #2347

Merged
tk-o merged 6 commits into
mainfrom
refactor/1970-simplify-public-config-data-model
Jul 8, 2026
Merged

Simplify public config data models#2347
tk-o merged 6 commits into
mainfrom
refactor/1970-simplify-public-config-data-model

Conversation

@tk-o

@tk-o tk-o commented Jul 8, 2026

Copy link
Copy Markdown
Member

Lite PR

Tip: Review docs on the ENSNode PR process

Summary

  • ENSNode SDK
    • Dropped ensIndexerPublicConfig field from EnsApiPublicConfig data model.
    • Dropped ensRainbowPublicConfig field from EnsIndexerPublicConfig data model.
  • Updated the Indexing Status API response (now, the EnsNodeStackInfo data model does not include fields that were dropped from ENSNode SDK).

Why


Testing

  • Ran static code checks, and testing suite.
  • Ran ENSNode locally to confirm all apps work well despite breaking changes in the data model.

Notes for Reviewer (Optional)

  • This is a breaking change so older clients won't be able to parse the Indexing Status API response due to missing fields. Please make sure to update all clients as otherwise they will not be able to parse the stack info object properly.

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 July 8, 2026 15:50
@tk-o
tk-o requested a review from a team as a code owner July 8, 2026 15:50
@changeset-bot

changeset-bot Bot commented Jul 8, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: dfb3837

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 Minor
ensadmin Minor
ensapi Minor
ensindexer Minor
ensrainbow Minor
fallback-ensapi Minor
@docs/ensnode Minor
@namehash/ens-referrals Minor
enscli Minor
@ensnode/ensdb-sdk Minor
@ensnode/ensrainbow-sdk Minor
ensskills Minor
@ensnode/integration-test-env Minor
@namehash/namehash-ui Minor
@ensnode/ensdb-cli Patch
@docs/ensrainbow Minor
enssdk Minor
enskit Minor
@ensnode/datasources Minor
@ensnode/ponder-sdk Minor
@ensnode/ponder-subgraph Minor
@ensnode/shared-configs Minor
@ensnode/ensindexer-perf-testing Minor

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

vercel Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

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

Project Deployment Actions Updated (UTC)
admin.ensnode.io Ready Ready Preview, Comment Jul 8, 2026 4:17pm
enskit-react-example.ensnode.io Ready Ready Preview, Comment Jul 8, 2026 4:17pm
ensnode.io Ready Ready Preview, Comment Jul 8, 2026 4:17pm
ensrainbow.io Ready Ready Preview, Comment Jul 8, 2026 4:17pm

@coderabbitai

coderabbitai Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Warning

Review limit reached

@tk-o, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 35 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: d00883ca-979c-4438-8cb6-dccef42df8d5

📥 Commits

Reviewing files that changed from the base of the PR and between e8d2f2b and dfb3837.

📒 Files selected for processing (6)
  • .changeset/ensnode-stack-info-data-model.md
  • apps/ensindexer/ponder/src/api/handlers/ensnode-api.ts
  • apps/ensindexer/src/lib/public-config-builder/public-config-builder.test.ts
  • apps/ensindexer/src/lib/stack-info-builder/stack-info-builder.test.ts
  • apps/ensindexer/src/lib/stack-info-builder/stack-info-builder.ts
  • packages/ensnode-sdk/src/ensapi/config/serialize.ts
📝 Walkthrough

Walkthrough

This PR removes ensRainbowPublicConfig from EnsIndexerPublicConfig and ensIndexerPublicConfig from EnsApiPublicConfig, decoupling nested public config data models. PublicConfigBuilder becomes synchronous and drops its ENSRainbow client dependency. Types, schemas, serializers, builders, mocks, tests, and OpenAPI docs are updated accordingly.

Changes

Public config decoupling

Layer / File(s) Summary
Type and schema contracts
packages/ensnode-sdk/src/ensapi/config/types.ts, .../serialized-types.ts, .../zod-schemas.ts, packages/ensnode-sdk/src/ensindexer/config/types.ts, .../zod-schemas.ts
Removes ensIndexerPublicConfig from EnsApiPublicConfig and ensRainbowPublicConfig from EnsIndexerPublicConfig, along with related Zod schema fields and the invariant_ensRainbowSupportedLabelSetAndVersion check.
Serialization/deserialization logic
packages/ensnode-sdk/src/ensapi/config/serialize.ts, .../deserialize.ts, packages/ensnode-sdk/src/ensindexer/config/serialize.ts
serializeEnsApiPublicConfig returns a shallow copy instead of nesting serialized indexer config; buildUnvalidatedEnsApiPublicConfig returns input directly; indexer serializer stops emitting ensRainbowPublicConfig.
PublicConfigBuilder synchronous refactor
apps/ensindexer/src/lib/public-config-builder/*.ts, apps/ensindexer/src/lib/stack-info-builder/stack-info-builder.test.ts
PublicConfigBuilder drops its ENSRainbow client and constructor argument, getPublicConfig() becomes synchronous, singleton wiring simplified, and tests updated from async/await to synchronous throw assertions.
ENSApi config schema build path
apps/ensapi/src/config/config.schema.ts, .../config.schema.mock.ts, .../config.schema.test.ts, docs/ensnode.io/ensapi-openapi.json
canFallbackToTheGraph no longer receives ensIndexerPublicConfig; mocks, tests, and OpenAPI schema updated to drop the removed fields.
Mocks and fixtures
apps/ensadmin/src/app/mock/*, packages/ensdb-sdk/src/client/ensdb-client.mock.ts, packages/ensnode-sdk/src/ensindexer/client.mock.ts, packages/ensnode-sdk/src/ensapi/config/conversions.test.ts, packages/ensnode-sdk/src/ensindexer/config/conversions.test.ts, packages/ensnode-sdk/src/ensnode/client.test.ts, .../metadata/indexing-metadata-context.test.ts
Mock and fixture data across apps/packages updated to reflect the flattened config shape, including a new standalone serializedEnsRainbowPublicConfig.
Changesets
.changeset/ensnode-sdk-public-configs.md, .changeset/ensnode-stack-info-data-model.md
Documents the minor, breaking release removing the two nested fields.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Singleton
  participant PublicConfigBuilder
  participant Validator

  Singleton->>PublicConfigBuilder: new PublicConfigBuilder()
  PublicConfigBuilder->>PublicConfigBuilder: getPublicConfig()
  PublicConfigBuilder->>Validator: validateEnsIndexerPublicConfig(config)
  Validator-->>PublicConfigBuilder: validated EnsIndexerPublicConfig
  PublicConfigBuilder-->>Singleton: EnsIndexerPublicConfig
Loading

Possibly related PRs

  • namehash/ensnode#1988: Continuation of the same stack-info field-shape work, moving from embedded configs to top-level ensRainbow/ensIndexer.
  • namehash/ensnode#1705: Directly overlaps by originally adding ensRainbowPublicConfig to EnsIndexerPublicConfig, which this PR now removes.
  • namehash/ensnode#1715: Directly overlaps on PublicConfigBuilder construction, which added the ENS-Rainbow fetch path this PR removes.

Suggested labels: javascript

Poem

With a hop and a snip, the configs grow lean,
No more nested rainbows tucked in between. 🐇
One flat shape now, easy to see,
Indexer and Api, both wild and free.
Thump thump — the schema's clean as can be!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title is concise and accurately reflects the main change: simplifying the public config data models.
Description check ✅ Passed The description follows the template and includes a clear summary, why, testing, notes, and checklist items.
Linked Issues check ✅ Passed The PR removes both referenced fields from the public config models and updates the stack-info shape as requested in #1970.
Out of Scope Changes check ✅ Passed The changes shown are consistent with the linked objective and supporting updates; no clear out-of-scope additions stand out.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch refactor/1970-simplify-public-config-data-model

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.

@greptile-apps

greptile-apps Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR removes redundant nesting of service configs: ensRainbowPublicConfig is dropped from EnsIndexerPublicConfig, and ensIndexerPublicConfig is dropped from EnsApiPublicConfig. Both configs remain available at the top-level EnsIndexerStackInfo object, making the data model flatter and eliminating duplication.

  • SDK type changes: EnsIndexerPublicConfig and EnsApiPublicConfig interfaces each lose one nested field; SerializedEnsApiPublicConfig becomes a plain type alias for EnsApiPublicConfig since no field transformation is needed.
  • PublicConfigBuilder.getPublicConfig() made synchronous: The ENSRainbow client fetch is no longer needed here; the ENSRainbow config is fetched directly by StackInfoBuilder and kept separate in the stack info object.
  • Cross-validation preserved: The label-set compatibility check between ENSRainbow and ENSIndexer (invariant_ensRainbowCompatibilityWithEnsIndexer) still runs at the EnsIndexerStackInfo schema level, which is the appropriate location now that the two configs are siblings rather than nested.

Confidence Score: 5/5

Safe to merge; the change is a straightforward field removal with all cross-service validation preserved at the correct layer.

The removed fields were redundant copies of data already available as siblings in EnsIndexerStackInfo. The label-set compatibility invariant between ENSRainbow and ENSIndexer was not deleted — it was already present at the stack-info schema level and continues to run there. All serialization/deserialization paths, mocks, and the OpenAPI spec are consistently updated.

No files require special attention; all changes are consistent across types, schemas, serializers, and tests.

Important Files Changed

Filename Overview
packages/ensnode-sdk/src/ensindexer/config/types.ts Drops ensRainbowPublicConfig field from EnsIndexerPublicConfig interface; clean removal with no side-effects.
packages/ensnode-sdk/src/ensapi/config/types.ts Drops ensIndexerPublicConfig field from EnsApiPublicConfig interface; straightforward and correct.
packages/ensnode-sdk/src/ensindexer/config/zod-schemas.ts Removes ensRainbowPublicConfig field and invariant_ensRainbowSupportedLabelSetAndVersion check from the indexer schema; cross-validation is preserved at the stack-info level via invariant_ensRainbowCompatibilityWithEnsIndexer.
packages/ensnode-sdk/src/ensapi/config/serialize.ts Returns config directly since SerializedEnsApiPublicConfig is now a type alias for EnsApiPublicConfig with no field transformations remaining.
apps/ensindexer/src/lib/public-config-builder/public-config-builder.ts Converts getPublicConfig() from async (required ENSRainbow client fetch) to synchronous; correctly removes the ENSRainbow dependency and caching is preserved.
apps/ensindexer/src/lib/stack-info-builder/stack-info-builder.ts Correctly separates the synchronous getPublicConfig() call from the async Promise.all for ensDbClient and ensRainbowClient; logic and error propagation are preserved.
apps/ensindexer/src/lib/public-config-builder/singleton.ts Removes the ensRainbowClient argument from the PublicConfigBuilder constructor; simple and correct.
docs/ensnode.io/ensapi-openapi.json OpenAPI spec updated to remove the now-dropped nested ensIndexerPublicConfig and ensRainbowPublicConfig fields; required arrays updated accordingly.
.changeset/ensnode-sdk-public-configs.md Changeset correctly documents the breaking API removals under minor for @ensnode/ensnode-sdk.
apps/ensindexer/src/lib/stack-info-builder/stack-info-builder.test.ts Test mock updated to mockReturnValue (synchronous) to match the changed signature; error-propagation mock correctly switched from mockRejectedValue to a throwing implementation.

Entity Relationship Diagram

%%{init: {'theme': 'neutral'}}%%
erDiagram
    EnsIndexerStackInfo {
        EnsDbPublicConfig ensDb
        EnsIndexerPublicConfig ensIndexer
        EnsRainbowPublicConfig ensRainbow
        EnsApiPublicConfig ensApi
    }

    EnsIndexerPublicConfig {
        string ensIndexerSchemaName
        Set indexedChainIds
        boolean isSubgraphCompatible
        ClientLabelSet clientLabelSet
        string namespace
        string[] plugins
        VersionInfo versionInfo
    }

    EnsApiPublicConfig {
        TheGraphFallback theGraphFallback
        VersionInfo versionInfo
    }

    EnsRainbowPublicConfig {
        ServerLabelSet serverLabelSet
        VersionInfo versionInfo
    }

    EnsIndexerStackInfo ||--|| EnsIndexerPublicConfig : "ensIndexer (was: ensIndexer + nested ensRainbow)"
    EnsIndexerStackInfo ||--|| EnsRainbowPublicConfig : "ensRainbow (promoted from nested)"
    EnsIndexerStackInfo ||--|| EnsApiPublicConfig : "ensApi (was: ensApi + nested ensIndexer)"
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
erDiagram
    EnsIndexerStackInfo {
        EnsDbPublicConfig ensDb
        EnsIndexerPublicConfig ensIndexer
        EnsRainbowPublicConfig ensRainbow
        EnsApiPublicConfig ensApi
    }

    EnsIndexerPublicConfig {
        string ensIndexerSchemaName
        Set indexedChainIds
        boolean isSubgraphCompatible
        ClientLabelSet clientLabelSet
        string namespace
        string[] plugins
        VersionInfo versionInfo
    }

    EnsApiPublicConfig {
        TheGraphFallback theGraphFallback
        VersionInfo versionInfo
    }

    EnsRainbowPublicConfig {
        ServerLabelSet serverLabelSet
        VersionInfo versionInfo
    }

    EnsIndexerStackInfo ||--|| EnsIndexerPublicConfig : "ensIndexer (was: ensIndexer + nested ensRainbow)"
    EnsIndexerStackInfo ||--|| EnsRainbowPublicConfig : "ensRainbow (promoted from nested)"
    EnsIndexerStackInfo ||--|| EnsApiPublicConfig : "ensApi (was: ensApi + nested ensIndexer)"
Loading

Reviews (4): Last reviewed commit: "Apply AI PR feedback" | Re-trigger Greptile

Comment thread packages/ensnode-sdk/src/ensapi/config/serialize.ts

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR simplifies ENSNode “public config” data models in @ensnode/ensnode-sdk by removing nested cross-references (EnsApiPublicConfig.ensIndexerPublicConfig and EnsIndexerPublicConfig.ensRainbowPublicConfig) and updating the Indexing Status (stack info) response shape and related mocks/tests/docs to match.

Changes:

  • Removed ensIndexerPublicConfig from EnsApiPublicConfig (types, zod schemas, (de)serialization, tests, and sample responses).
  • Removed ensRainbowPublicConfig from EnsIndexerPublicConfig (types, zod schemas, serialization, tests, and mocks).
  • Updated the OpenAPI artifact and multiple app mocks/tests (ENSIndexer/ENSApi/ENSAdmin) to reflect the new stack info/public config shapes.

Reviewed changes

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

Show a summary per file
File Description
packages/ensnode-sdk/src/ensnode/metadata/indexing-metadata-context.test.ts Updates minimal stackInfo fixture to remove nested ENSRainbow public config from ENSIndexer config.
packages/ensnode-sdk/src/ensnode/client.test.ts Updates example public-config payloads to match new serialized shapes (removes nested configs).
packages/ensnode-sdk/src/ensindexer/config/zod-schemas.ts Removes ensRainbowPublicConfig from schemas and drops related invariant check.
packages/ensnode-sdk/src/ensindexer/config/zod-schemas.test.ts Removes tests/fixtures that relied on ensRainbowPublicConfig validation.
packages/ensnode-sdk/src/ensindexer/config/types.ts Removes ensRainbowPublicConfig from EnsIndexerPublicConfig interface.
packages/ensnode-sdk/src/ensindexer/config/serialize.ts Stops serializing ensRainbowPublicConfig as part of ENSIndexer public config.
packages/ensnode-sdk/src/ensindexer/config/conversions.test.ts Updates serialization/deserialization tests to remove ensRainbowPublicConfig.
packages/ensnode-sdk/src/ensindexer/client.mock.ts Updates mocked ENSIndexer config response to remove ensRainbowPublicConfig.
packages/ensnode-sdk/src/ensapi/config/zod-schemas.ts Removes ensIndexerPublicConfig from ENSApi public config schemas.
packages/ensnode-sdk/src/ensapi/config/types.ts Removes ensIndexerPublicConfig from EnsApiPublicConfig interface.
packages/ensnode-sdk/src/ensapi/config/serialized-types.ts Simplifies serialized type to a direct alias of EnsApiPublicConfig.
packages/ensnode-sdk/src/ensapi/config/serialize.ts Simplifies serializer to a pass-through copy (no nested serialization needed).
packages/ensnode-sdk/src/ensapi/config/deserialize.ts Simplifies unvalidated builder to pass through (no nested build needed).
packages/ensnode-sdk/src/ensapi/config/conversions.test.ts Updates ENSApi public config (de)serialization tests to remove nested ENSIndexer config.
packages/ensdb-sdk/src/client/ensdb-client.mock.ts Updates ENSDb SDK mock public config to match new ENSIndexer public config shape.
docs/ensnode.io/ensapi-openapi.json Updates committed OpenAPI artifact to remove dropped fields from response schemas.
apps/ensindexer/src/lib/stack-info-builder/stack-info-builder.test.ts Updates stack info builder tests to remove ensRainbowPublicConfig from ENSIndexer public config fixture.
apps/ensindexer/src/lib/public-config-builder/singleton.ts Removes ENSRainbow client dependency from public config builder singleton initialization.
apps/ensindexer/src/lib/public-config-builder/public-config-builder.ts Removes ENSRainbow fetch from ENSIndexer public config builder and makes getPublicConfig() synchronous.
apps/ensindexer/src/lib/public-config-builder/public-config-builder.test.ts Updates tests to reflect the builder no longer depends on ENSRainbow; some test async/await cleanup suggested.
apps/ensapi/src/config/config.schema.ts Stops returning ensIndexerPublicConfig inside ENSApi public config output.
apps/ensapi/src/config/config.schema.test.ts Removes test asserting preservation of nested ENSIndexer config in ENSApi public config.
apps/ensapi/src/config/config.schema.mock.ts Updates ENSApi config mocks to remove ensRainbowPublicConfig from ENSIndexer public config.
apps/ensadmin/src/app/mock/stack-info/stack-info.mock.ts Updates ENSAdmin stack info mocks to remove nested ensIndexer/ensRainbow references inside ENSApi/ENSIndexer public configs.
apps/ensadmin/src/app/mock/indexing-status-api.mock.ts Updates indexing status API mock payloads; constructs ENSRainbow public config separately (no longer nested).
.changeset/ensnode-stack-info-data-model.md Adds changeset for breaking stack-info/public-config shape change (suggested to reduce overlap with other changeset).
.changeset/ensnode-sdk-public-configs.md Adds changeset for breaking SDK public-config model changes.

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

Comment thread .changeset/ensnode-stack-info-data-model.md Outdated
@tk-o
tk-o marked this pull request as draft July 8, 2026 15:56

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.changeset/ensnode-sdk-public-configs.md:
- Around line 2-5: This changeset describes a breaking API removal in the body,
so the release type in the frontmatter must be upgraded from minor to major.
Update the changeset header for `@ensnode/ensnode-sdk` to use major so the version
bump matches the documented breaking change in EnsIndexerPublicConfig and
EnsApiPublicConfig.

In @.changeset/ensnode-stack-info-data-model.md:
- Around line 2-5: This changeset describes a breaking API change in the
Indexing Status API data model, so update the frontmatter in this changeset from
a minor release to a major release. Keep the breaking-change wording in the
body, and make sure the version bump matches the removal of the
`ensRainbowPublicConfig` and `ensIndexerPublicConfig` fields.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 1fc7e344-c302-4d28-8cbb-7083636c1f48

📥 Commits

Reviewing files that changed from the base of the PR and between 85cefab and e8d2f2b.

📒 Files selected for processing (27)
  • .changeset/ensnode-sdk-public-configs.md
  • .changeset/ensnode-stack-info-data-model.md
  • apps/ensadmin/src/app/mock/indexing-status-api.mock.ts
  • apps/ensadmin/src/app/mock/stack-info/stack-info.mock.ts
  • apps/ensapi/src/config/config.schema.mock.ts
  • apps/ensapi/src/config/config.schema.test.ts
  • apps/ensapi/src/config/config.schema.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/public-config-builder/singleton.ts
  • apps/ensindexer/src/lib/stack-info-builder/stack-info-builder.test.ts
  • docs/ensnode.io/ensapi-openapi.json
  • packages/ensdb-sdk/src/client/ensdb-client.mock.ts
  • packages/ensnode-sdk/src/ensapi/config/conversions.test.ts
  • packages/ensnode-sdk/src/ensapi/config/deserialize.ts
  • packages/ensnode-sdk/src/ensapi/config/serialize.ts
  • packages/ensnode-sdk/src/ensapi/config/serialized-types.ts
  • packages/ensnode-sdk/src/ensapi/config/types.ts
  • packages/ensnode-sdk/src/ensapi/config/zod-schemas.ts
  • packages/ensnode-sdk/src/ensindexer/client.mock.ts
  • packages/ensnode-sdk/src/ensindexer/config/conversions.test.ts
  • packages/ensnode-sdk/src/ensindexer/config/serialize.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
  • packages/ensnode-sdk/src/ensnode/client.test.ts
  • packages/ensnode-sdk/src/ensnode/metadata/indexing-metadata-context.test.ts
💤 Files with no reviewable changes (15)
  • packages/ensdb-sdk/src/client/ensdb-client.mock.ts
  • packages/ensnode-sdk/src/ensindexer/config/serialize.ts
  • packages/ensnode-sdk/src/ensindexer/client.mock.ts
  • packages/ensnode-sdk/src/ensindexer/config/zod-schemas.test.ts
  • packages/ensnode-sdk/src/ensindexer/config/conversions.test.ts
  • apps/ensapi/src/config/config.schema.ts
  • apps/ensapi/src/config/config.schema.mock.ts
  • packages/ensnode-sdk/src/ensapi/config/zod-schemas.ts
  • packages/ensnode-sdk/src/ensapi/config/types.ts
  • apps/ensapi/src/config/config.schema.test.ts
  • packages/ensnode-sdk/src/ensnode/metadata/indexing-metadata-context.test.ts
  • apps/ensadmin/src/app/mock/stack-info/stack-info.mock.ts
  • apps/ensindexer/src/lib/stack-info-builder/stack-info-builder.test.ts
  • packages/ensnode-sdk/src/ensnode/client.test.ts
  • packages/ensnode-sdk/src/ensapi/config/conversions.test.ts

Comment thread .changeset/ensnode-sdk-public-configs.md
Comment thread .changeset/ensnode-stack-info-data-model.md Outdated
@tk-o

tk-o commented Jul 8, 2026

Copy link
Copy Markdown
Member Author

@greptile review

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 29 out of 29 changed files in this pull request and generated 1 comment.

Comment thread apps/ensindexer/src/lib/stack-info-builder/stack-info-builder.ts
Copilot AI review requested due to automatic review settings July 8, 2026 16:14
@tk-o

tk-o commented Jul 8, 2026

Copy link
Copy Markdown
Member Author

@greptile review

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 29 out of 29 changed files in this pull request and generated no new comments.

@shrugs shrugs left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM looks rad

@tk-o
tk-o merged commit af444c3 into main Jul 8, 2026
23 checks passed
@tk-o
tk-o deleted the refactor/1970-simplify-public-config-data-model branch July 8, 2026 17:12
@github-actions github-actions Bot mentioned this pull request Jul 7, 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.

Replace references among public config data models

3 participants