Skip to content

feat: add schema-driven Tailcall configuration generator#627

Open
ameyypawar wants to merge 2 commits into
tailcallhq:developfrom
ameyypawar:feat/config-generator
Open

feat: add schema-driven Tailcall configuration generator#627
ameyypawar wants to merge 2 commits into
tailcallhq:developfrom
ameyypawar:feat/config-generator

Conversation

@ameyypawar

@ameyypawar ameyypawar commented Jul 4, 2026

Copy link
Copy Markdown

What

A Configuration Generator at /app/config that builds a Tailcall configuration through a form generated directly from .tailcallrc.schema.json, then exports it as YAML, JSON or GraphQL.

The form is generated from the schema fetched at runtime, so it tracks schema changes automatically rather than hardcoding fields. Values drawn from a fixed set (HTTP version, link type, …) use searchable dropdowns, and the config is validated against the schema as you edit.

Preview

Tailcall Configuration Generator — a schema-driven form on the left with live YAML/JSON/GraphQL output on the right

Scope: the runtime configuration

.tailcallrc.schema.json describes Tailcall's runtime configurationserver, upstream, telemetry and links. In the v2 configuration split, types and resolvers (@http, etc.) live in a separate GraphQL schema config, so they are intentionally out of scope for this page: the tool builds exactly what the JSON schema defines, which is what keeps it genuinely schema-driven and correct as the schema evolves. A companion form for the GraphQL schema config is a natural follow-up.

How it maps to #373

  • Generated from the schema, loaded dynamically — the whole form is driven by the schema fetched from the URL in the issue; a bundled snapshot is only an offline fallback, so the UI tracks schema changes automatically.
  • Searchable dropdowns wherever a value comes from a bounded set (HTTP version, link type, …) instead of free text.
  • Three output formats — YAML, JSON and GraphQL — with copy and download. The runtime config's GraphQL form is emitted as a schema extension (extend schema @server(...) @upstream(...)), which is what a runtime config is.
  • Playground integration — an entry point from /playground to the generator, and a link back.
  • Themed and responsive — styled with the site's Infima theme variables (adapts to light/dark) with a dark, code-editor output panel; collapses to a single column on mobile.
  • Served at /app/config per Update 1.

Trying it locally

npm i && npm start

then open /app/config (and /playground for the entry point).

Tests

Adds a Cypress e2e spec covering schema loading, all three output formats, live editing and the export actions, with a fixture so the run is deterministic. No new dependencies are introduced.

Implements #373

Add a /app/config page that generates a Tailcall configuration from a form
built dynamically from .tailcallrc.schema.json. Includes searchable
dropdowns, live JSON/YAML/GraphQL output with copy and download, schema
validation, and a Playground entry point. Implements tailcallhq#373.
@ameyypawar

Copy link
Copy Markdown
Author

/claim #373

…the UI

The live .tailcallrc.schema.json describes the runtime configuration
(server, upstream, telemetry, links); realign the form, serializers,
bundled fallback and tests to it. Emit runtime GraphQL as a schema
extension, collapse single-value enum unions like LinkType into one
dropdown, default to YAML, and restyle with a dark code-editor output panel.
ameyypawar added a commit to ameyypawar/tailcallhq.github.io that referenced this pull request Jul 4, 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.

1 participant