APX — API Schema Management#
Contents
🚀 Getting Started
Install APX and learn the core concepts for API schema management.
🏛️ Canonical Repo
Set up the organization-wide source of truth for all API schemas.
� App Repos
Author and publish schemas from your application repositories.
� Dependencies
Discover, add, and update API dependencies with versioning.
� Publishing
Tag-based publishing workflow from app repos to canonical repo.
🐙 GitHub
View source code, report issues, and contribute to APX.
What is APX?#
APX is a tiny CLI and repo pattern for publishing, discovering, and consuming organization-wide API schemas. Primary: Protobuf. Also: OpenAPI, Avro, JSON Schema, Parquet. No long-running service. Canonical distribution via a single GitHub repo and Go modules, with CI-only releases.
Key Ideas#
Canonical source of truth:
github.com/<org>/apis(one repo, many submodules)App teams tag releases in their app repo;
apx publishopens a PR to the canonical repo using git subtree (history-preserving) or copy (simple snapshot)Only CI in the canonical repo creates tags and optional language packages (Maven, wheels, OCI bundles)
Protobuf is primary; OpenAPI/Avro/JSONSchema/Parquet supported with format-specific breaking checks
Architecture Overview#
Teams author schemas locally
Tag releases in app repo
apx publishopens PRsCI validates before publish
Single source of truth
Versioned API modules
Protected branches & tags
CI creates releases
Quick Start#
# Install APX
brew install <org>/tap/apx
# or download from GitHub Releases
# Verify installation
apx --version
# Bootstrap canonical repo
apx init canonical github.com/<org>/apis
# Bootstrap app repo for authoring
apx init app internal/apis/proto/payments/ledger
# Add dependencies
apx add proto/payments/ledger/v1@v1.2.3
# Generate code stubs
apx gen go
Supported Schema Formats#
Protocol Buffers (Primary)
Buf integration and workspace
gRPC service definitions
Semantic Import Versioning
Breaking change detection
OpenAPI
OpenAPI 3.0+ specifications
oasdiff breaking checks
Spectral linting
REST API definitions
Apache Avro
Schema compatibility checks
BACKWARD compatibility default
Field defaults and aliases
Data serialization schemas
JSON Schema & Parquet
JSON Schema validation
Parquet additive nullable columns
Custom compatibility rules
Schema evolution support
Release Guardrails#
Automated Checks (CI-enforced):
Format-specific linting and breaking change detection
Policy enforcement (ban service/ORM annotations)
SemVer validation with
apx version suggestProtected tag patterns (only CI can create tags)
Human Gates:
CODEOWNERSper API pathTime-boxed waivers for exceptions
APX standardizes how teams author, publish, and consume versioned APIs across your organization.