SchemaNest

Where JSON schemas grow, thrive, and scale with your team.
This project is under active development.
Features
- Supports uploading and versioning JSON schemas to a central repository.
- [TBD] Provides a web interface for browsing and searching schemas.
- CLI tool for uploading schemas from the command line.
Requirements
- Postgres for production usage (SQLite is only recommended for evaluation and smaller instances)
Installation
tbd
Usage
CLI
schema-nest-cli --help
Registry Server
# Spin up server on 0.0.0.0:8080
schema-nest-registry serve-http --port "8080"
Motivation
Managing JSON Schemas is not rocket science. But every company I worked on had its own way of doing it. Some used a
simple file share, others had a complex setup with multiple repositories and CI/CD pipelines. I wanted to create a
solution that is straightforward to use, flexible, and can be adapted to any workflow.
There are already a few tools out there that do a great job at managing JSON schemas. But they are either too complex or
too resource-intensive for my needs. I wanted to create a tool that is easy to use, lightweight, and can be run on any
machine.
Documentation
API
The API definition is managed through OpenAPI 3.0, you can find an up-to-date spec in openapi.yml.
For the Redocly UI click here. Please keep in mind that this
is always the latest development version.
Changes to the API are done when ever possible in a backward-compatible manner. So make sure your consuming code can handle extra fields.
Contributing
I love your input! I want to make contributing to this project as easy and transparent as possible, whether it's:
- Reporting a bug
- Discussing the current state of the configuration
- Submitting a fix
- Proposing new features
- Becoming a maintainer
To get started, please read the Contribution Guidelines.
Development
Requirements
Test
make test-coverage-report
Build
make build
Alternatives
- Apicurio Registry
- Apicurio Registry is a runtime server system that stores a specific set of artifacts as files. Apicurio Registry
enables you to add, update, and remove the artifacts from the store using a remote REST API.
- Confluence Schema Registry (for Kafka)
- Confluent Schema Registry provides a serving layer for your metadata. It provides a RESTful interface for storing
and retrieving your Avro®, JSON Schema, and Protobuf schemas. [...]