EndpointOS

Contracts and versioning

Publish a version, keep it stable, and let consumers see what changed.

All docs

Contracts & versioning

Your project's contract is the OpenAPI 3.1 description of its public API surface: resources, fields, endpoints, validation rules. Every time you publish, a new version of the contract is frozen and made available at a versioned URL.

Why publish?

While you're iterating on schema, the live API tracks the latest unpublished state. The moment you have integrators consuming it, you publish. This freezes a version, locks the OpenAPI, and stamps an entry in your project's changelog. Integrators get a stable URL they can pin to.

Publishing

On the project's Contract tab, click Publish version. EndpointOS diffs the current schema against the previous published version, classifies the change (additive, breaking, no-op), and asks you to confirm the version bump.

What counts as breaking

  • Removing a resource, endpoint, or field.
  • Adding a required field to an existing resource.
  • Tightening a validation rule (narrower enum, tighter bounds).
  • Changing a field type.

Additive changes (new resources, new optional fields, new endpoints, looser bounds) are backwards-compatible.

The API changelog

Each published version writes a Keep-a-Changelog-style entry in your project's public changelog page (endpointos.dev/{username}/changelog/{project}) so your integrators can see what changed between versions without DMing you.

Previous: Logs and audit · Next: MFA

Contracts and versioning · EndpointOS docs | EndpointOS