Skip to content

feat: schemas.meshery.io#757

Open
saurabhraghuvanshii wants to merge 13 commits intomeshery:masterfrom
saurabhraghuvanshii:site1
Open

feat: schemas.meshery.io#757
saurabhraghuvanshii wants to merge 13 commits intomeshery:masterfrom
saurabhraghuvanshii:site1

Conversation

@saurabhraghuvanshii
Copy link
Copy Markdown
Member

@saurabhraghuvanshii saurabhraghuvanshii commented Apr 13, 2026

Notes for Reviewers
URL :: https://saurabhraghuvanshii.github.io/schemas/

The full data refresh flow:

Build time (once per deploy) :

  1. The deploy workflow runs node build/generate-constructs-data.js
  2. That script walks schemas/constructs/// on disk, reads descriptions from YAML files, and writes constructs.json
  3. Jekyll picks up constructs.json and bakes it into the HTML at build time — the index page's version filter buttons and construct cards are rendered via Liquid from that data

Runtime (per page load)

  • fetch(/schemas/constructs/<version>/<construct>/<construct>.yaml) → Schema Properties tab + Raw tab
  • fetch(/schemas/constructs/<version>/<construct>/api.yml) → API Endpoints tab
  • fetch(/schemas/constructs/<version>/<construct>/templates/<construct>_template.json) → Example tab

These files are served as static assets by Jekyll becuase constructs s in the include list in _config.yml so they always reflect whatever was committed.

When does it update?

Change How it reflects in UI
New construct added in constructs On next push to master, the generator re-runs and a new card appears on the index page
New version directory (e.g., v1beta3) added On next push, a new version button is automatically added to the filter bar
Schema YAML content edited On next push, the detail page serves the updated file as a static asset (no generator required)
New endpoint added to api.yml On next push, the detail page automatically renders it from the raw file

What is NOT automatic:

if we add a new construct and want its description on the index card to be accurate, the generator reads it from the entity YAML's description field — so keep that field populated.

schemas.meshery.io/
├── /                              Home: hero, feature cards, version table
├── /guide/                        Guide landing
│   ├── /guide/schema-driven-dev   Schema-driven development explainer
│   ├── /guide/add-a-construct     Step-by-step tutorial
│   ├── /guide/naming-rules        Casing cheat sheet
│   ├── /guide/versioning          API version lifecycle
│   └── /guide/build-pipeline      make build walkthrough
├── /constructs/                   Filterable construct grid (30 constructs)
├── /api/                          API docs landing
│   ├── /api/meshery               Interactive ReDoc: Meshery Server
│   └── /api/cloud                 Interactive ReDoc: Layer5 Cloud
├── /validate/                     Interactive YAML/JSON validator
├── /go/                           Go reference landing
│   ├── /go/structs                Generated struct browser
│   └── /go/helpers                Helper file conventions
└── /typescript/                   TypeScript reference landing
    ├── /typescript/package-guide  @meshery/schemas import guide
    └── /typescript/rtk-hooks      RTK Query hooks guide

This PR fixes #699

Signed commits

  • Yes, I signed my commits.

Signed-off-by: saurabhraghuvanshii <saurabhsraghuvanshi@gmail.com>
Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request establishes a Jekyll-based documentation site for Meshery Schemas, featuring comprehensive guides, interactive API references via ReDoc, and a client-side schema validator. The reviewer identified a syntax error in the sidebar's Liquid logic, a potential typo in the file exclusion list, and redundant logic in the validator. Additionally, suggestions were made to modernize the JavaScript to ES6+ and move inline styles to the central stylesheet for better maintainability.

Comment thread _config.yml Outdated
Comment thread _includes/guide-sidebar.html Outdated
Comment thread ui/api/cloud.html
Comment thread ui/api/index.md
Comment thread ui/assets/css/style.css
Comment thread ui/constructs/index.md
Comment thread ui/validate/index.html
feat: schema site initial files
Signed-off-by: saurabhraghuvanshii <saurabhsraghuvanshi@gmail.com>
Signed-off-by: saurabhraghuvanshii <saurabhsraghuvanshi@gmail.com>
Signed-off-by: saurabhraghuvanshii <saurabhsraghuvanshi@gmail.com>
Signed-off-by: saurabhraghuvanshii <saurabhsraghuvanshi@gmail.com>
Signed-off-by: saurabhraghuvanshii <saurabhsraghuvanshi@gmail.com>
@github-actions github-actions bot added the area/ci Continuous integration | Build and release label Apr 13, 2026
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

This PR introduces a purpose-built Jekyll content site for the Meshery schemas repository (schemas.meshery.io), including construct browsing, API docs pages, a client-side schema validator, and contributor/consumer guides. It also adds build-time data generation and a GitHub Pages deployment workflow so the site reflects the committed schema tree.

Changes:

  • Adds new site pages (home, guide pages, constructs browser/detail, API docs pages, TypeScript/Go reference pages, validator).
  • Adds a Node script to generate _data/constructs.json from schemas/constructs/** and a GitHub Pages workflow to deploy the site.
  • Introduces a custom layout/styling system and Jekyll configuration for serving schema assets.

Reviewed changes

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

Show a summary per file
File Description
validate/index.html Adds an in-browser YAML/JSON validator that fetches schemas and validates with Ajv.
build/generate-constructs-data.js Generates _data/constructs.json for version/construct navigation cards.
constructs/index.md Renders construct cards and version filter from generated data.
constructs/detail.html Loads schema/api/template assets client-side and renders detail tabs.
api/cloud.html, api/meshery.html, api/index.md Adds ReDoc-based API documentation pages and landing page.
typescript/*.md Adds TypeScript consumer documentation pages (package + RTK hooks).
go/*.md Adds Go consumer documentation pages (structs + helper conventions).
_config.yml Configures Jekyll site metadata, includes/excludes, and default layouts.
.github/workflows/deploy-site.yml Deploys the Jekyll site to GitHub Pages and generates constructs data.
assets/css/style.css Adds site-wide design system and component styles.

Comment thread ui/validate/index.html
Comment thread ui/validate/index.html
Comment thread ui/assets/css/style.css
Comment thread ui/index.md
Comment thread typescript/package-guide.md
Comment thread ui/validate/index.html
Comment thread .github/workflows/deploy-site.yml
Comment thread typescript/package-guide.md
Comment thread api/cloud.html Outdated
Comment thread typescript/rtk-hooks.md
Copy link
Copy Markdown
Member

@leecalcote leecalcote left a comment

Choose a reason for hiding this comment

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

Restructure the website content under a single directory.

Signed-off-by: saurabhraghuvanshii <saurabhsraghuvanshi@gmail.com>
Signed-off-by: saurabhraghuvanshii <saurabhsraghuvanshi@gmail.com>
Signed-off-by: saurabhraghuvanshii <saurabhsraghuvanshi@gmail.com>
Signed-off-by: saurabhraghuvanshii <saurabhsraghuvanshi@gmail.com>
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

Note

Copilot was unable to run its full agentic suite in this review.

This PR introduces the schemas.meshery.io static documentation site and supporting build pipeline, including schema/construct browsing, bundled OpenAPI previews, and contributor guides, while adding/refreshing various construct schemas and templates.

Changes:

  • Added a Jekyll-based docs site under ui/ (home, guide pages, API pages, constructs browser, Go/TypeScript references).
  • Added a Node generator to build ui/_data/constructs.json and stage schema + bundled OpenAPI assets into the Jekyll site.
  • Added a GitHub Pages deployment workflow to build and publish the site on pushes to master.

Reviewed changes

Copilot reviewed 108 out of 189 changed files in this pull request and generated 11 comments.

Show a summary per file
File Description
ui/schemas/constructs/v1beta1/model/templates/model_template.yaml Adds YAML example template for the Model construct used in docs.
ui/schemas/constructs/v1beta1/model/templates/model_template.json Adds JSON example template for the Model construct used in docs.
ui/schemas/constructs/v1beta1/model/api.yml Adds OpenAPI spec for model registration/management endpoints and schemas.
ui/schemas/constructs/v1beta1/keychain/templates/keychain_template.json Adds JSON example template for Keychain.
ui/schemas/constructs/v1beta1/keychain/keychain_operations.yml Adds reusable path-item operation definitions for Keychain API.
ui/schemas/constructs/v1beta1/keychain/keychain.yaml Adds entity schema for Keychain.
ui/schemas/constructs/v1beta1/keychain/api.yml Adds OpenAPI spec for keychain management endpoints and schemas.
ui/schemas/constructs/v1beta1/key/templates/key_template.json Adds JSON example template for Key.
ui/schemas/constructs/v1beta1/key/key.yaml Adds entity schema for Key.
ui/schemas/constructs/v1beta1/key/api.yml Adds OpenAPI spec for authorization key endpoints and schemas.
ui/schemas/constructs/v1beta1/feature/api.yml Adds OpenAPI spec for Feature entitlement endpoints and schemas.
ui/schemas/constructs/v1beta1/evaluation/api.yml Adds OpenAPI spec for design relationship evaluation endpoint.
ui/schemas/constructs/v1beta1/environment/templates/environment_template.yaml Adds YAML example template for Environment.
ui/schemas/constructs/v1beta1/environment/templates/environment_template.json Adds JSON example template for Environment.
ui/schemas/constructs/v1beta1/environment/environment.yaml Adds Environment entity JSON schema used by API/docs/codegen.
ui/schemas/constructs/v1beta1/environment/api.yml Adds OpenAPI spec for environment CRUD and connections listing.
ui/schemas/constructs/v1beta1/design/design.yaml Adds Design entity JSON schema (components/relationships typing for codegen).
ui/schemas/constructs/v1beta1/credential/api.yml Adds OpenAPI spec for credential management endpoints and schemas.
ui/schemas/constructs/v1beta1/connection/templates/connection_template.yaml Adds YAML example template for Connection.
ui/schemas/constructs/v1beta1/connection/templates/connection_template.json Adds JSON example template for Connection.
ui/schemas/constructs/v1beta1/connection/templates/connection_page_template.yaml Adds YAML example template for paginated Connection responses.
ui/schemas/constructs/v1beta1/connection/templates/connection_page_template.json Adds JSON example template for paginated Connection responses.
ui/schemas/constructs/v1beta1/connection/connection_page.yaml Adds schema for a paginated Connection page response.
ui/schemas/constructs/v1beta1/connection/connection.yaml Adds Connection entity schema.
ui/schemas/constructs/v1beta1/component/api.yml Adds deprecated v1beta1 Component OpenAPI wrapper schema.
ui/schemas/constructs/v1beta1/category/templates/category_template.yaml Adds YAML example template for Category.
ui/schemas/constructs/v1beta1/category/templates/category_template.json Adds JSON example template for Category.
ui/schemas/constructs/v1beta1/category/category.yaml Adds Category entity JSON schema.
ui/schemas/constructs/v1beta1/category/category.json Adds JSON form of Category schema for consumers that expect JSON.
ui/schemas/constructs/v1beta1/category/api.yml Adds OpenAPI wrapper schema for Category.
ui/schemas/constructs/v1beta1/catalog/templates/catalog_template.yaml Adds YAML example template for Catalog data.
ui/schemas/constructs/v1beta1/catalog/templates/catalog_template.json Adds JSON example template for Catalog data.
ui/schemas/constructs/v1beta1/catalog/catalog.yaml Adds Catalog data schema.
ui/schemas/constructs/v1beta1/catalog/api.yml Adds deprecated v1beta1 Catalog OpenAPI wrapper schema.
ui/schemas/constructs/v1beta1/capability/templates/capability_template.yaml Adds YAML example template for Capability.
ui/schemas/constructs/v1beta1/capability/templates/capability_template.json Adds JSON example template for Capability.
ui/schemas/constructs/v1beta1/capability/capability.yaml Adds Capability entity JSON schema.
ui/schemas/constructs/v1beta1/capability/api.yml Adds OpenAPI wrapper schema for Capability.
ui/schemas/constructs/v1beta1/badge/api.yml Adds OpenAPI spec for badge management endpoints and schemas.
ui/schemas/constructs/v1alpha3/selector/templates/selector_template.yaml Adds v1alpha3 selector YAML template.
ui/schemas/constructs/v1alpha3/selector/templates/selector_template.json Adds v1alpha3 selector JSON template.
ui/schemas/constructs/v1alpha3/selector/selector.yaml Adds v1alpha3 selector schema definitions.
ui/schemas/constructs/v1alpha3/relationship/templates/relationship_template.yaml Adds v1alpha3 relationship YAML template.
ui/schemas/constructs/v1alpha3/relationship/templates/relationship_template.json Adds v1alpha3 relationship JSON template.
ui/schemas/constructs/v1alpha3/relationship/api.yml Adds OpenAPI wrapper schema for v1alpha3 relationship definitions.
ui/schemas/constructs/v1alpha2/selector.yaml Adds v1alpha2 selector schema definitions.
ui/schemas/constructs/v1alpha2/relationship.yaml Adds v1alpha2 relationship schema definitions.
ui/schemas/constructs/v1alpha2/design.yaml Adds v1alpha2 design schema definitions.
ui/schemas/constructs/v1alpha2/catalog/templates/catalog_template.yaml Adds v1alpha2 catalog YAML template.
ui/schemas/constructs/v1alpha2/catalog/templates/catalog_template.json Adds v1alpha2 catalog JSON template.
ui/schemas/constructs/v1alpha2/catalog/catalog.yaml Adds v1alpha2 catalog schema.
ui/schemas/constructs/v1alpha2/catalog/api.yml Adds OpenAPI wrapper schema for v1alpha2 catalog.
ui/schemas/constructs/v1alpha1/selector.yaml Adds v1alpha1 selector schema definitions.
ui/schemas/constructs/v1alpha1/relationship.yaml Adds v1alpha1 relationship schema definitions.
ui/schemas/constructs/v1alpha1/model.yaml Adds v1alpha1 model schema definitions.
ui/schemas/constructs/v1alpha1/component.yaml Adds v1alpha1 component schema definitions.
ui/schemas/constructs/v1alpha1/catalog_data/templates/catalog_data_template.yaml Adds v1alpha1 catalog_data YAML template.
ui/schemas/constructs/v1alpha1/catalog_data/templates/catalog_data_template.json Adds v1alpha1 catalog_data JSON template.
ui/schemas/constructs/v1alpha1/catalog_data.yaml Adds v1alpha1 catalog_data schema definitions.
ui/schemas/constructs/v1alpha1/capability/templates/capability_template.yaml Adds v1alpha1 capability YAML template.
ui/schemas/constructs/v1alpha1/capability/templates/capability_template.json Adds v1alpha1 capability JSON template.
ui/schemas/constructs/v1alpha1/capability/capability.yaml Adds v1alpha1 capability schema definitions.
ui/schemas/constructs/v1alpha1/capability/api.yml Adds OpenAPI wrapper schema for v1alpha1 capability.
ui/index.md Adds homepage content for schemas.meshery.io.
ui/guide/versioning.md Adds versioning guide for schema API lifecycle guidance.
ui/guide/schema-driven-dev.md Adds overview of schema-first development and generation pipeline.
ui/guide/naming-rules.md Adds casing/naming rules reference for schema authors.
ui/guide/index.md Adds guide landing page.
ui/guide/build-pipeline.md Adds build pipeline guide and local troubleshooting.
ui/guide/add-a-construct.md Adds a full “add a construct” tutorial and checklist.
ui/go/structs.md Adds Go struct generation reference page.
ui/go/index.md Adds Go reference landing page.
ui/go/helpers.md Adds conventions for manual Go helper files.
ui/constructs/index.md Adds constructs browser with version filtering.
ui/api/meshery.html Adds Meshery Server OpenAPI preview/download page.
ui/api/index.md Adds API docs landing page linking to bundled specs.
ui/api/cloud.html Adds Layer5 Cloud OpenAPI preview/download page.
ui/_layouts/page.html Adds generic page layout wrapper.
ui/_layouts/guide.html Adds guide layout with sidebar include.
ui/_layouts/default.html Adds site-wide HTML skeleton + includes.
ui/_includes/header.html Adds header nav and mobile toggle.
ui/_includes/guide-sidebar.html Adds guide sidebar navigation.
ui/_includes/footer.html Adds footer links and license note.
ui/_data/navigation.yml Adds site navigation structure.
ui/_config.yml Adds Jekyll config for site build and file inclusion/exclusion.
ui/_config.local.yml Adds local dev URL/baseurl config.
ui/Gemfile Adds Ruby dependencies for Jekyll site.
build/generate-constructs-data.js Adds generator for constructs.json and staging of schema/OpenAPI assets into ui/.
_config.yml Removes old root Jekyll config previously including constructs.
Makefile Updates site target to generate constructs data and serve the ui/ Jekyll site.
.github/workflows/deploy-site.yml Adds GitHub Pages build/deploy workflow for schemas.meshery.io.

Comment thread ui/schemas/constructs/v1beta1/design/design.yaml Outdated
Comment thread ui/schemas/constructs/v1beta1/model/api.yml Outdated
Comment thread ui/schemas/constructs/v1beta1/model/api.yml Outdated
Comment thread ui/schemas/constructs/v1beta1/environment/environment.yaml Outdated
Comment thread ui/schemas/constructs/v1beta1/environment/templates/environment_template.json Outdated
Comment thread ui/schemas/constructs/v1beta1/connection/templates/connection_page_template.yaml Outdated
Comment thread ui/schemas/constructs/v1alpha2/relationship.yaml Outdated
Comment thread ui/schemas/constructs/v1beta1/capability/capability.yaml Outdated
Comment thread ui/schemas/constructs/v1beta1/capability/capability.yaml Outdated
Comment thread ui/guide/versioning.md
Signed-off-by: saurabhraghuvanshii <saurabhsraghuvanshi@gmail.com>
Signed-off-by: saurabhraghuvanshii <saurabhsraghuvanshi@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/ci Continuous integration | Build and release component/ui Meshery UI related

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: schemas.meshery.io — content site vision, user journeys, and feature roadmap

3 participants