These are the schemas guiding the product, go-to-market, and revenue work at Naftiko.
We are taking a GitOps and schema-driven approach to guide work with these principles:
- Schema-First - All entities used in code and content have a supporting JSON Schema.
- Contract-First - Schemas are iterated upon with participation across ALL stakeholders.
- Design-First - Access to data is designed using OpenAPI before developing interfaces.
- GitOps - Utilizing YAML within Git repos to manage all work on schema contracts.
This is how we stay on the same page across many stakeholders and understand dependencies.
We are taking a mono repo strategy with each schema being defined within a single folder.
These are the schemas used at the core of Naftiko, which will be used across operations.
- Capability - The schema, examples, and other artifacts to support a capability.
- Engine - The schema, examples, and other artifacts to support an engine.
- Fabric - The schema, examples, and other artifacts to support the fabric.
We will keep adding to this list of core schemas, but also eventually additional schemas.
These are the schemas used to manage Naftiko schema, APIs, and other artifacts, and across operations.
- Use Cases - This is where we are managing Naftiko use cases.
As they mature, some of these can be moved into the core schema category when it makes sense.
These are the schemas that define what Naftiko will be adapting to when using our product.
- Agent-to-agent (A2A) - Schema for Agent-to-agent (A2A).
- APIOps cycles - Schema for the APIOps Cycles.
- Airbyte - Schema for Airbyte.
- APIs.json - Schema for APIs.json.
- Arazzo - Schema for Arazzo.
- AsyncAPI - Schema for AsyncAPI.
- CloudEvents - Schema for CloudEvents.
- JSON RPC - Schema for JSON RPC 2.0.
- JSON Schema - Schema for JSON Schema.
- Kubernetes - Schema for Kubernetes.
- Model Context Protocol - Schema for MCP.
- OpenAPI - Schema for OpenAPI.
- OpenAPI Overlays - Schema for OpenAPI overlays.
- OpenCollection - Schema for API testing collections.
- Spectral - Schema for Spectral.
These schema should inform, shape, and be mapped to the core Naftiko schema we are defining.
This work intentionally focuses on using only Git and a handful of standards.
- YAML - Used to serialize the properties of data into a human-readable format.
- JSON Schema - Used to define and validate all objects used across operations.
- OpenAPI - Used to describe the surface area of HTTP APIs accessing data.
- AsyncAPI - Used to describe the surface area of TCP APIs accessing data.
We will add new standards here as they are added to the repo to support ongoing work.
Working towards a normalized structure for managing these schema as monorepository.
- Top Level Folders
- Core - These are the primary schema we are hoping to develop for Naftiko products.
- Secondary - These are the secondar schema we are evolving that shape Naftiko.
- Ecosystem - These are all of the relevant schema which we do not have control of.
- Second Level Folders
- Environments - Some schema will have an environments folder to work with APIs.
- Examples - Some schema have examples folders to accomodate real and synthetic.
- Node Modules - Some schema have node modules to support Bruno automation.
I will keep updating this and iterating as we add the folders needed to automate things.
Here are a few of the items currently in motion as part of the work on this repository:
- Pipeline Validation - We need JSON Schema validation on all schema in GitHub action.
- Sandbox - We need sandbox mocked API for each schema using examples and Microcks.
Feel free to contribute to this work in the following ways that leverage GitHub.
- Pull Request - Create a new branch of the repository and submit changes as a pull request.
- Issues - Submit an issue asking questions, sharing research—it is a general inbox.
The goal is to keep this work simple while tackling complex work through collaboration.