# Service Registry

The Service Registry is a live directory of all applications and services running on the Internal Developer Platform. Every service deployed to the platform is registered here — with its owner, tier, SLA, observability status, and dependency graph.

```{toctree}
:hidden:

generated/index
extension
```

## How registration works

Services are registered by adding a YAML file to [`data/services/`](https://github.com/vicioussoul/docs-as-code-portfolio/tree/main/data/services) in this repository. The file is validated against a JSON Schema on every pull request. When merged, the platform extension automatically generates a documentation page for the service and adds it to this registry.

```{mermaid}
flowchart LR
    A[Add service YAML] -->|open PR| B[Schema validation]
    B -->|merge| C[Extension generates page]
    C --> D[Service Registry]
    style D fill:#2da44e,color:#fff
```

Adding or updating a service is a single pull request — no manual page editing required.

## Registry

Browse all registered services in the [**Service Registry →**](generated/index.md)

## How the registry is generated

The registry pages are generated automatically during the Sphinx build by a [custom Python extension](extension.md). The extension reads the YAML files, validates them against the JSON Schema, and renders each service page using a Jinja2 template.

The extension source and its full API reference are documented on the [Extension Internals](extension.md) page — including auto-generated documentation from Python docstrings using `sphinx.ext.autodoc`.
