feat: schemas.meshery.io#757
Conversation
Signed-off-by: saurabhraghuvanshii <saurabhsraghuvanshi@gmail.com>
There was a problem hiding this comment.
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.
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>
There was a problem hiding this comment.
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.jsonfromschemas/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. |
leecalcote
left a comment
There was a problem hiding this comment.
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>
dfe1fa5 to
8f7cb8d
Compare
There was a problem hiding this comment.
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.jsonand 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. |
Signed-off-by: saurabhraghuvanshii <saurabhsraghuvanshi@gmail.com>
Signed-off-by: saurabhraghuvanshii <saurabhsraghuvanshi@gmail.com>
fd1be5d to
f75bada
Compare
Notes for Reviewers
URL :: https://saurabhraghuvanshii.github.io/schemas/
The full data refresh flow:
Build time (once per deploy) :
constructs.jsonconstructs.jsonand bakes it into the HTML at build time — the index page's version filter buttons and construct cards are rendered via Liquid from that dataRuntime (per page load)
fetch(/schemas/constructs/<version>/<construct>/<construct>.yaml)→ Schema Properties tab + Raw tabfetch(/schemas/constructs/<version>/<construct>/api.yml)→ API Endpoints tabfetch(/schemas/constructs/<version>/<construct>/templates/<construct>_template.json)→ Example tabThese files are served as static assets by Jekyll becuase
constructss in theincludelist in_config.ymlso they always reflect whatever was committed.When does it update?
constructsmaster, the generator re-runs and a new card appears on the index pagev1beta3) addedapi.ymlWhat 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.
This PR fixes #699
Signed commits