SkillAgentSearch skills...

Schemas

Logical object models for Meshery

Install / Use

/learn @meshery/Schemas

README

<p style="text-align:center;" align="center"><a href="https://meshery.io"><picture> <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/meshery/meshery/master/.github/assets/images/readme/meshery-logo-light-text-side.svg"> <source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/meshery/meshery/master/.github/assets/images/readme/meshery-logo-dark-text-side.svg"> <img src="https://raw.githubusercontent.com/meshery/meshery/master/.github/assets/images/readme/meshery-logo-dark-text-side.svg" alt="Meshery Logo" width="70%" /></picture></a><br /><br /></p> <p align="center"> <a href="https://hub.docker.com/r/meshery/meshery" alt="Docker pulls"> <img src="https://img.shields.io/docker/pulls/meshery/meshery.svg" /></a> <a href="https://github.com/issues?q=is%3Aopen%20is%3Aissue%20archived%3Afalse%20(org%3Ameshery%20OR%20org%3Aservice-mesh-performance%20OR%20org%3Aservice-mesh-patterns%20OR%20org%3Ameshery-extensions)%20label%3A%22help%20wanted%22" alt="GitHub issues by-label"> <img src="https://img.shields.io/github/issues/meshery/meshery/help%20wanted.svg?color=informational" /></a> <a href="https://github.com/meshery/meshery/blob/master/LICENSE" alt="LICENSE"> <img src="https://img.shields.io/github/license/meshery/meshery?color=brightgreen" /></a> <a href="https://artifacthub.io/packages/helm/meshery/meshery" alt="Artifact Hub Meshery"> <img src="https://img.shields.io/endpoint?color=brightgreen&label=Helm%20Chart&style=plastic&url=https%3A%2F%2Fartifacthub.io%2Fbadge%2Frepository%2Fartifact-hub" /></a> <a href="https://goreportcard.com/report/github.com/meshery/meshery" alt="Go Report Card"> <img src="https://goreportcard.com/badge/github.com/meshery/meshery" /></a> <a href="https://github.com/meshery/meshery/actions" alt="Build Status"> <img src="https://img.shields.io/github/actions/workflow/status/meshery/meshery/release-drafter.yml" /></a> <a href="https://bestpractices.coreinfrastructure.org/projects/3564" alt="CLI Best Practices"> <img src="https://bestpractices.coreinfrastructure.org/projects/3564/badge" /></a> <a href="http://discuss.meshery.io" alt="Discuss Users"> <img src="https://img.shields.io/discourse/users?label=discuss&logo=discourse&server=https%3A%2F%2Fdiscuss.meshery.io" /></a> <a href="https://slack.meshery.io" alt="Join Slack"> <img src="https://img.shields.io/badge/Slack-@meshery.svg?logo=slack" /></a> <a href="https://twitter.com/intent/follow?screen_name=mesheryio" alt="Twitter Follow"> <img src="https://img.shields.io/twitter/follow/mesheryio.svg?label=Follow+Meshery&style=social" /></a> <a href="https://github.com/meshery/meshery/releases" alt="Meshery Downloads"> <img src="https://img.shields.io/github/downloads/meshery/meshery/total" /></a> <!-- <a href="https://app.fossa.com/projects/git%2Bgithub.com%2Fmeshery%2Fmeshery?ref=badge_shield" alt="License Scan Report"> <img src="https://app.fossa.com/api/projects/git%2Bgithub.com%2Fmeshery%2Fmeshery.svg?type=shield"/></a> --> </p> <h5><p align="center"><i>If you’re using Meshery or if you like the project, please <a href="https://github.com/meshery/meshery/stargazers">★</a> this repository to show your support! 🤩</i></p></h5>

Meshery Schemas

Meshery follows schema-driven development. As a project, Meshery has different types of schemas. Some schemas are external facing, and some internal to Meshery itself. This repository serves as a central location for storing schemas from which all Meshery components can take reference.

Meshery schemas offer a powerful system designed for:

  • Model-Driven Management: Meshery uses explicit models for describing infrastructure and applications.
  • Dynamic Discovery: The ability to process different kinds of relationships and styles, enables a sophisticated system that can adapt to many configurations.
  • Lifecycle Management: The schema properties track status and lifecycle of resources.
  • Extensibility: Open-ended metadata and modular schema components enable expansion and customization.
  • Visual Representation: The properties for styling of edges and nodes is for creating a user friendly visual representation.
  • Automated Operations: The schemas can support validation and automated configuration of infrastructure and applications, and patching.

For an explanation of Meshery's terminology regarding schemas, definitions, declarations, and instances, please see Contributor's Guide to Models.

Contributing

--> For an explanation of the directory structure of this repository and how to contribute changes to Meshery's schemas, see Contributor's Guide to Schema-Driven Development.

<p style="clear:both;">&nbsp;</p>

Join the Meshery community!

<a name="contributing"></a><a name="community"></a> Our projects are community-built and welcome collaboration. 👍 Be sure to see the <a href="https://docs.meshery.io/project/contributing#not-sure-where-to-start">Contributor Welcome Guide</a> and <a href="https://meshery.io/community#handbook">Community Handbook</a> for a tour of resources available to you. Jump into community <a href="https://slack.meshery.io">Slack</a> or <a href="https://meshery.io/community#discussion-forums">discussion forum</a> to participate.

<p style="clear:both;"> <h3>Find your MeshMate</h3> <p>MeshMates are experienced community members, who will help you learn your way around, discover live projects, and expand your community network. Connect with a Meshmate today!</p>

Find out more on the <a href="https://meshery.io/community#meshmates">Meshery community</a>. <br />

</p> <br /><br /> <div style="display: flex; justify-content: center; align-items:center;"> <div> <a href="https://meshery.io/community"><img alt="Meshery Cloud Native Community" src="https://raw.githubusercontent.com/meshery/meshery/master/.github/assets/images/readme/community.png" width="140px" style="margin-right:36px; margin-bottom:7px;" width="140px" align="left"/></a> </div> <div style="width:60%; padding-left: 16px; padding-right: 16px"> <p> ✔️ <em><strong>Join</strong></em> any or all of the weekly meetings on <a href="https://meshery.io/calendar">community calendar</a>.<br /> ✔️ <em><strong>Watch</strong></em> community <a href="https://www.youtube.com/@mesheryio?sub_confirmation=1">meeting recordings</a>.<br /> ✔️ <em><strong>Fill-in</strong></em> a <a href="https://meshery.io/newcomers">community member form</a> to gain access to community resources. <br /> ✔️ <em><strong>Discuss</strong></em> in the <a href="https://meshery.io/community#discussion-forums">Community Forum</a>.<br /> ✔️ <em><strong>Explore more</strong></em> in the <a href="https://meshery.io/community#handbook">Community Handbook</a>.<br /> </p> <p align="center"> <i>Not sure where to start?</i> Grab an open issue with the <a href="https://github.com/issues?q=is%3Aopen%20is%3Aissue%20archived%3Afalse%20(org%3Ameshery%20OR%20org%3Aservice-mesh-performance%20OR%20org%3Aservice-mesh-patterns%20OR%20org%3Ameshery-extensions)%20label%3A%22help%20wanted%22">help-wanted label</a>. </p> </div> <div>&nbsp;</div>

Contributing

Please do! We're a warm and welcoming community of open source contributors. All types of contributions are welcome. Please read:

<div>&nbsp;</div>

🧬 Schema-Driven Development Guide

Meshery follows a Schema-Driven Development (SDD) approach. This means that the structure of data used throughout the system is centrally defined using schemas. These schemas power consistency, validation, and code generation across the Meshery platform.


🧾 Schema Definition in Meshery

Meshery uses the OpenAPI v3 specification to define and manage schemas. Given the complexity of the platform, Meshery adopts a modular, versioned, and extensible schema strategy:

  • Versioned schemas for backward compatibility.
  • 🧩 Modular constructs for maintainability and reuse.
  • 🧪 Schemas are used for validation, API documentation, and automatic code generation.

💡 TIP: When referencing models or other constructs in the schema, always add x-go-type and x-go-import-path to avoid generating redundant Go structs. Refer to existing patterns in the codebase.


📁 Schema Directory Structure

All schemas are located in the schemas/ directory at the root of the Meshery repository:

schemas/
  constructs/
    <schema-version>/               # e.g., v1beta1
      <construct>/                  # e.g., model, component
        api.yml                     # Index file: references all subschemas + defines API endpoints
        <construct>.yaml            # Subschema: data model definition for the construct
        <other_subschema>.yaml      # Additional subschemas (optional)
        templates/                  # Manually defined templates directory
          <construct>_template.json # JSON template from schema
          <construct>_template.yaml # YAML template from schema
          <variant>_template.json   # Additional variant templates (optional)
  
  typescript/                       # TypeScript source and generated files
    index.ts                        # Manually maintained - public API surface
    generated/                      # Auto-generated (do NOT commit)
      <schema-version>/
        <construct>/
          <Construct>.d.ts          # TypeScript type definitions
          <Construct>Schema.ts      # OpenAPI schema as JS object
    rtk/                            # RTK Query client configurations
      cloud.ts
      meshery.ts
  
  dist/                             # Built distribution (do NOT commi
View on GitHub
GitHub Stars68
CategoryDevelopment
Updated1d ago
Forks107

Languages

TypeScript

Security Score

100/100

Audited on Mar 27, 2026

No findings