Skip to content

Commit b4d878b

Browse files
committed
docs: add table of contents to all documentation pages
Add consistent "## Contents" section with anchor links to all 14 docs and README. Update generate-api-docs.sh to auto-generate and inject a TOC into the api-reference.md output, positioned right after the title.
1 parent e2afc72 commit b4d878b

16 files changed

+569
-10
lines changed

README.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,23 @@
22

33
A high-performance, API-compatible Kafka Schema Registry written in Go. Drop-in replacement for Confluent Schema Registry with enterprise features including multiple storage backends, flexible authentication, and comprehensive audit logging.
44

5+
## Contents
6+
7+
- [Why AxonOps Schema Registry?](#why-axonops-schema-registry)
8+
- [Quick Start](#quick-start)
9+
- [Features](#features)
10+
- [Schema Management](#schema-management)
11+
- [Storage Backends](#storage-backends)
12+
- [Security](#security)
13+
- [Operations](#operations)
14+
- [Feature Comparison](#feature-comparison)
15+
- [Architecture](#architecture)
16+
- [API Compatibility](#api-compatibility)
17+
- [Documentation](#documentation)
18+
- [License](#license)
19+
- [Contributing](#contributing)
20+
- [Support](#support)
21+
522
## Why AxonOps Schema Registry?
623

724
- **No Kafka/ZooKeeper Dependency** -- uses standard databases (PostgreSQL, MySQL, Cassandra) for storage

docs/api-reference.md

Lines changed: 113 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,119 @@ providing full API compatibility with extensions for enterprise security and
99
multi-backend storage. It supports **Avro**, **Protobuf**, and **JSON Schema**
1010
formats for schema management.
1111

12+
13+
## Contents
14+
15+
- [AxonOps Schema Registry v1.0.0](#axonops-schema-registry-v100)
16+
- [Key Concepts](#key-concepts)
17+
- [Content Types](#content-types)
18+
- [Error Handling](#error-handling)
19+
- [Authentication](#authentication)
20+
- [Authentication](#authentication)
21+
- [Default](#default)
22+
- [Health check](#health-check)
23+
- [Prometheus metrics](#prometheus-metrics)
24+
- [Schemas](#schemas)
25+
- [Get supported schema types](#get-supported-schema-types)
26+
- [List schemas](#list-schemas)
27+
- [Get schema by global ID](#get-schema-by-global-id)
28+
- [Get raw schema string by global ID](#get-raw-schema-string-by-global-id)
29+
- [Get subjects associated with a schema ID](#get-subjects-associated-with-a-schema-id)
30+
- [Get subject-version pairs for a schema ID](#get-subject-version-pairs-for-a-schema-id)
31+
- [Subjects](#subjects)
32+
- [List subjects](#list-subjects)
33+
- [List versions under a subject](#list-versions-under-a-subject)
34+
- [Register a new schema under a subject](#register-a-new-schema-under-a-subject)
35+
- [Get a specific version of a subject](#get-a-specific-version-of-a-subject)
36+
- [Delete a specific version of a subject](#delete-a-specific-version-of-a-subject)
37+
- [Get raw schema string by subject version](#get-raw-schema-string-by-subject-version)
38+
- [Get schema IDs that reference this version](#get-schema-ids-that-reference-this-version)
39+
- [Look up schema under a subject](#look-up-schema-under-a-subject)
40+
- [Delete a subject](#delete-a-subject)
41+
- [Config](#config)
42+
- [Get global compatibility configuration](#get-global-compatibility-configuration)
43+
- [Set global compatibility configuration](#set-global-compatibility-configuration)
44+
- [Delete global compatibility configuration](#delete-global-compatibility-configuration)
45+
- [Get subject-level compatibility configuration](#get-subject-level-compatibility-configuration)
46+
- [Set subject-level compatibility configuration](#set-subject-level-compatibility-configuration)
47+
- [Delete subject-level compatibility configuration](#delete-subject-level-compatibility-configuration)
48+
- [Mode](#mode)
49+
- [Get global mode](#get-global-mode)
50+
- [Set global mode](#set-global-mode)
51+
- [Get subject-level mode](#get-subject-level-mode)
52+
- [Set subject-level mode](#set-subject-level-mode)
53+
- [Delete subject-level mode](#delete-subject-level-mode)
54+
- [Compatibility](#compatibility)
55+
- [Check compatibility against a specific version](#check-compatibility-against-a-specific-version)
56+
- [Check compatibility against all versions](#check-compatibility-against-all-versions)
57+
- [Import](#import)
58+
- [Bulk import schemas](#bulk-import-schemas)
59+
- [Metadata](#metadata)
60+
- [Get schema registry contexts](#get-schema-registry-contexts)
61+
- [Get cluster ID](#get-cluster-id)
62+
- [Get server version](#get-server-version)
63+
- [Account](#account)
64+
- [Get current user](#get-current-user)
65+
- [Change current user password](#change-current-user-password)
66+
- [Admin](#admin)
67+
- [List all users](#list-all-users)
68+
- [Create a new user](#create-a-new-user)
69+
- [Get a user by ID](#get-a-user-by-id)
70+
- [Update a user](#update-a-user)
71+
- [Delete a user](#delete-a-user)
72+
- [List API keys](#list-api-keys)
73+
- [Create a new API key](#create-a-new-api-key)
74+
- [Get an API key by ID](#get-an-api-key-by-id)
75+
- [Update an API key](#update-an-api-key)
76+
- [Delete an API key](#delete-an-api-key)
77+
- [Revoke an API key](#revoke-an-api-key)
78+
- [Rotate an API key](#rotate-an-api-key)
79+
- [List available roles](#list-available-roles)
80+
- [Documentation](#documentation)
81+
- [Swagger UI](#swagger-ui)
82+
- [OpenAPI specification](#openapi-specification)
83+
- [Schemas](#schemas)
84+
- [Reference](#reference)
85+
- [Metadata](#metadata)
86+
- [Rule](#rule)
87+
- [RuleSet](#ruleset)
88+
- [RegisterSchemaRequest](#registerschemarequest)
89+
- [RegisterSchemaResponse](#registerschemaresponse)
90+
- [SchemaByIDResponse](#schemabyidresponse)
91+
- [SchemaResponse](#schemaresponse)
92+
- [SubjectVersionResponse](#subjectversionresponse)
93+
- [LookupSchemaRequest](#lookupschemarequest)
94+
- [LookupSchemaResponse](#lookupschemaresponse)
95+
- [SchemaListItem](#schemalistitem)
96+
- [SubjectVersionPair](#subjectversionpair)
97+
- [ConfigResponse](#configresponse)
98+
- [ConfigRequest](#configrequest)
99+
- [ModeResponse](#moderesponse)
100+
- [ModeRequest](#moderequest)
101+
- [CompatibilityCheckRequest](#compatibilitycheckrequest)
102+
- [CompatibilityCheckResponse](#compatibilitycheckresponse)
103+
- [ImportSchemasRequest](#importschemasrequest)
104+
- [ImportSchemaRequest](#importschemarequest)
105+
- [ImportSchemasResponse](#importschemasresponse)
106+
- [ImportSchemaResult](#importschemaresult)
107+
- [ServerClusterIDResponse](#serverclusteridresponse)
108+
- [ServerVersionResponse](#serverversionresponse)
109+
- [ErrorResponse](#errorresponse)
110+
- [CreateUserRequest](#createuserrequest)
111+
- [UpdateUserRequest](#updateuserrequest)
112+
- [UserResponse](#userresponse)
113+
- [UsersListResponse](#userslistresponse)
114+
- [ChangePasswordRequest](#changepasswordrequest)
115+
- [CreateAPIKeyRequest](#createapikeyrequest)
116+
- [UpdateAPIKeyRequest](#updateapikeyrequest)
117+
- [APIKeyResponse](#apikeyresponse)
118+
- [CreateAPIKeyResponse](#createapikeyresponse)
119+
- [APIKeysListResponse](#apikeyslistresponse)
120+
- [RotateAPIKeyRequest](#rotateapikeyrequest)
121+
- [RotateAPIKeyResponse](#rotateapikeyresponse)
122+
- [RoleInfo](#roleinfo)
123+
- [RolesListResponse](#roleslistresponse)
124+
12125
## Key Concepts
13126

14127
- **Schema**: A versioned definition of a data structure (Avro record, Protobuf message,
@@ -6999,4 +7112,3 @@ The response for listing available roles.
69997112
|Name|Type|Required|Restrictions|Description|
70007113
|---|---|---|---|---|
70017114
|roles|[[RoleInfo](#schemaroleinfo)]|true|none|The list of available roles.|
7002-

docs/authentication.md

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,67 @@
22

33
This guide covers how to configure and use authentication in AxonOps Schema Registry. Authentication controls who can access the registry API. When combined with role-based access control (RBAC), it also determines what each user can do.
44

5+
## Contents
6+
7+
- [Overview](#overview)
8+
- [Enabling Authentication](#enabling-authentication)
9+
- [Bootstrap Admin User](#bootstrap-admin-user)
10+
- [Configuration-Based Bootstrap](#configuration-based-bootstrap)
11+
- [CLI-Based Bootstrap](#cli-based-bootstrap)
12+
- [Basic Authentication](#basic-authentication)
13+
- [Configuration](#configuration)
14+
- [Usage](#usage)
15+
- [Authentication Order for Basic Auth](#authentication-order-for-basic-auth)
16+
- [API Key Authentication](#api-key-authentication)
17+
- [Three Equivalent Methods](#three-equivalent-methods)
18+
- [Configuration](#configuration-1)
19+
- [Key Security](#key-security)
20+
- [Creating an API Key](#creating-an-api-key)
21+
- [LDAP / Active Directory](#ldap--active-directory)
22+
- [Configuration](#configuration-2)
23+
- [How It Works](#how-it-works)
24+
- [LDAPS and StartTLS](#ldaps-and-starttls)
25+
- [Configuration Reference](#configuration-reference)
26+
- [OIDC (OpenID Connect)](#oidc-openid-connect)
27+
- [Configuration](#configuration-3)
28+
- [Usage](#usage-1)
29+
- [How It Works](#how-it-works-1)
30+
- [Configuration Reference](#configuration-reference-1)
31+
- [JWT (JSON Web Token)](#jwt-json-web-token)
32+
- [Configuration with Static Key](#configuration-with-static-key)
33+
- [Configuration with JWKS URL](#configuration-with-jwks-url)
34+
- [Usage](#usage-2)
35+
- [How It Works](#how-it-works-2)
36+
- [Configuration Reference](#configuration-reference-2)
37+
- [mTLS (Mutual TLS)](#mtls-mutual-tls)
38+
- [Configuration](#configuration-4)
39+
- [Client Auth Modes](#client-auth-modes)
40+
- [Usage](#usage-3)
41+
- [Roles and Permissions](#roles-and-permissions)
42+
- [RBAC Configuration](#rbac-configuration)
43+
- [User Management API](#user-management-api)
44+
- [Create a User](#create-a-user)
45+
- [List Users](#list-users)
46+
- [Get a User](#get-a-user)
47+
- [Update a User](#update-a-user)
48+
- [Delete a User](#delete-a-user)
49+
- [Change Your Own Password](#change-your-own-password)
50+
- [API Key Management API](#api-key-management-api)
51+
- [Create an API Key](#create-an-api-key)
52+
- [List API Keys](#list-api-keys)
53+
- [Rotate an API Key](#rotate-an-api-key)
54+
- [Revoke an API Key](#revoke-an-api-key)
55+
- [Delete an API Key](#delete-an-api-key)
56+
- [Admin CLI](#admin-cli)
57+
- [Authentication](#authentication)
58+
- [User Commands](#user-commands)
59+
- [API Key Commands](#api-key-commands)
60+
- [Role Commands](#role-commands)
61+
- [Output Formats](#output-formats)
62+
- [Database Bootstrap](#database-bootstrap)
63+
- [Combining Authentication Methods](#combining-authentication-methods)
64+
- [Related Documentation](#related-documentation)
65+
566
## Overview
667

768
Authentication is optional but recommended for production deployments. When enabled, the registry supports multiple authentication methods simultaneously. Requests are evaluated against each configured method in the order they appear in the `methods` list until one succeeds:

docs/compatibility.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,45 @@
11
# Compatibility
22

3+
## Contents
4+
5+
- [Overview](#overview)
6+
- [Compatibility Modes](#compatibility-modes)
7+
- [Understanding Backward vs Forward](#understanding-backward-vs-forward)
8+
- [Transitive vs Non-Transitive](#transitive-vs-non-transitive)
9+
- [Configuration Resolution](#configuration-resolution)
10+
- [Setting Compatibility](#setting-compatibility)
11+
- [Avro Compatibility Rules](#avro-compatibility-rules)
12+
- [Backward-Compatible Changes (safe to make under BACKWARD mode)](#backward-compatible-changes-safe-to-make-under-backward-mode)
13+
- [Forward-Compatible Changes (safe to make under FORWARD mode)](#forward-compatible-changes-safe-to-make-under-forward-mode)
14+
- [Incompatible Changes](#incompatible-changes)
15+
- [Type Promotions](#type-promotions)
16+
- [Aliases](#aliases)
17+
- [Unions](#unions)
18+
- [Enums](#enums)
19+
- [JSON Schema Compatibility Rules](#json-schema-compatibility-rules)
20+
- [Backward-Compatible Changes](#backward-compatible-changes)
21+
- [Incompatible Changes](#incompatible-changes-1)
22+
- [Checked Constraints](#checked-constraints)
23+
- [Protobuf Compatibility Rules](#protobuf-compatibility-rules)
24+
- [Backward-Compatible Changes](#backward-compatible-changes-1)
25+
- [Incompatible Changes](#incompatible-changes-2)
26+
- [Wire-Compatible Type Groups](#wire-compatible-type-groups)
27+
- [Cardinality Changes](#cardinality-changes)
28+
- [Syntax Changes](#syntax-changes)
29+
- [Service Definitions](#service-definitions)
30+
- [Checking Compatibility via API](#checking-compatibility-via-api)
31+
- [Check Against a Specific Version](#check-against-a-specific-version)
32+
- [Check Against All Versions](#check-against-all-versions)
33+
- [Request Body](#request-body)
34+
- [Response](#response)
35+
- [Verbose Mode](#verbose-mode)
36+
- [Example: Check Before Registering](#example-check-before-registering)
37+
- [Compatibility Groups](#compatibility-groups)
38+
- [How It Works](#how-it-works)
39+
- [Configuration](#configuration)
40+
- [Registering Schemas with Groups](#registering-schemas-with-groups)
41+
- [Related Documentation](#related-documentation)
42+
343
## Overview
444

545
Compatibility checking ensures that new schema versions can coexist with previous versions. The registry checks compatibility at registration time -- when a new schema version is registered via `POST /subjects/{subject}/versions`. If the proposed schema is incompatible with existing versions (under the active compatibility mode), the registry rejects the registration with HTTP 409 and an error message describing the incompatibility.

docs/configuration.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
This document provides a complete reference for all configuration options available in AxonOps Schema Registry.
44

5-
## Table of Contents
5+
## Contents
66

77
- [Configuration File](#configuration-file)
88
- [Environment Variable Substitution](#environment-variable-substitution)

docs/deployment.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,37 @@
11
# Deployment
22

3+
## Contents
4+
5+
- [Overview](#overview)
6+
- [Deployment Topologies](#deployment-topologies)
7+
- [Single Instance](#single-instance)
8+
- [High Availability (PostgreSQL/MySQL)](#high-availability-postgresqlmysql)
9+
- [Distributed Multi-Datacenter (Cassandra)](#distributed-multi-datacenter-cassandra)
10+
- [Docker Deployment](#docker-deployment)
11+
- [Simple Docker Run](#simple-docker-run)
12+
- [Docker Compose with PostgreSQL](#docker-compose-with-postgresql)
13+
- [Kubernetes Deployment](#kubernetes-deployment)
14+
- [Namespace](#namespace)
15+
- [Secret](#secret)
16+
- [ConfigMap](#configmap)
17+
- [Deployment](#deployment)
18+
- [Service](#service)
19+
- [HorizontalPodAutoscaler (Optional)](#horizontalpodautoscaler-optional)
20+
- [Ingress (Optional)](#ingress-optional)
21+
- [Apply All Manifests](#apply-all-manifests)
22+
- [Systemd Service](#systemd-service)
23+
- [Service File](#service-file)
24+
- [Setup](#setup)
25+
- [Verify](#verify)
26+
- [Health Checks](#health-checks)
27+
- [Graceful Shutdown](#graceful-shutdown)
28+
- [Resource Requirements](#resource-requirements)
29+
- [TLS Termination](#tls-termination)
30+
- [Option 1: TLS at the Load Balancer (Recommended)](#option-1-tls-at-the-load-balancer-recommended)
31+
- [Option 2: TLS at the Registry](#option-2-tls-at-the-registry)
32+
- [Network Requirements](#network-requirements)
33+
- [Related Documentation](#related-documentation)
34+
335
## Overview
436

537
AxonOps Schema Registry is a stateless binary. All state -- schemas, subjects, configuration, users, and API keys -- is stored in the database. This means multiple instances can be deployed behind a load balancer with no coordination between them. There is no leader election, no peer discovery, and no inter-instance communication.

docs/development.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,38 @@
22

33
This guide covers building AxonOps Schema Registry from source, running the test suite, and contributing changes.
44

5+
## Contents
6+
7+
- [Prerequisites](#prerequisites)
8+
- [Building from Source](#building-from-source)
9+
- [Cross-Compilation](#cross-compilation)
10+
- [Project Structure](#project-structure)
11+
- [Running Tests](#running-tests)
12+
- [Unit Tests](#unit-tests)
13+
- [BDD Tests](#bdd-tests)
14+
- [Integration Tests](#integration-tests)
15+
- [Concurrency Tests](#concurrency-tests)
16+
- [Storage Conformance Tests](#storage-conformance-tests)
17+
- [Auth Tests](#auth-tests)
18+
- [Migration Tests](#migration-tests)
19+
- [API Endpoint Tests](#api-endpoint-tests)
20+
- [Compatibility Tests](#compatibility-tests)
21+
- [Full Test Suite](#full-test-suite)
22+
- [Coverage](#coverage)
23+
- [Code Quality](#code-quality)
24+
- [Running the Server Locally](#running-the-server-locally)
25+
- [API Documentation](#api-documentation)
26+
- [OpenAPI Spec](#openapi-spec)
27+
- [Swagger UI](#swagger-ui)
28+
- [Static Documentation](#static-documentation)
29+
- [Docker](#docker)
30+
- [Build the Image](#build-the-image)
31+
- [Run with Docker](#run-with-docker)
32+
- [CI Pipeline](#ci-pipeline)
33+
- [Code Conventions](#code-conventions)
34+
- [Contributing](#contributing)
35+
- [Related Documentation](#related-documentation)
36+
537
## Prerequisites
638

739
- **Go 1.24+** ([download](https://go.dev/dl/))

docs/getting-started.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,32 @@
22

33
This guide walks you through running AxonOps Schema Registry, registering your first schemas, and verifying compatibility. You should have a working registry within five minutes.
44

5+
## Contents
6+
7+
- [Prerequisites](#prerequisites)
8+
- [Quick Start with Docker](#quick-start-with-docker)
9+
- [Quick Start with Binary](#quick-start-with-binary)
10+
- [Build from Source](#build-from-source)
11+
- [Run](#run)
12+
- [Your First API Calls](#your-first-api-calls)
13+
- [Check Health](#check-health)
14+
- [Register an Avro Schema](#register-an-avro-schema)
15+
- [Retrieve the Schema](#retrieve-the-schema)
16+
- [List Subjects](#list-subjects)
17+
- [Register a Second Version](#register-a-second-version)
18+
- [Check Compatibility](#check-compatibility)
19+
- [Register a JSON Schema](#register-a-json-schema)
20+
- [Register a Protobuf Schema](#register-a-protobuf-schema)
21+
- [View All Subjects](#view-all-subjects)
22+
- [Get Supported Schema Types](#get-supported-schema-types)
23+
- [Using with Kafka Clients](#using-with-kafka-clients)
24+
- [Java (Confluent Kafka Client)](#java-confluent-kafka-client)
25+
- [Go (confluent-kafka-go)](#go-confluent-kafka-go)
26+
- [Python (confluent-kafka-python)](#python-confluent-kafka-python)
27+
- [Configuration](#configuration)
28+
- [Change the Default Compatibility Level](#change-the-default-compatibility-level)
29+
- [Next Steps](#next-steps)
30+
531
## Prerequisites
632

733
You need one of the following:

0 commit comments

Comments
 (0)