The catalog repo
The catalog is maintained as open data in its own repository,wyolet/relay-catalog, separate
from the relay engine. It’s a tree of YAML under data/:
Pin a specific catalog release with
RELAY_CATALOG_VERSION. Unset, Relay
uses the version embedded in the binary.System-owned vs user-owned
Every resource carries an owner, and the owner decides whether you can edit it. There are two that matter day to day:| Owner | What it is | Editable? |
|---|---|---|
| System | Seeded from the catalog — providers, hosts, models, their pricing | Read-only via the API; managed by the catalog |
| User | Things you create — host keys, relay keys, your policies | Fully editable |
What’s system-owned today
Right now the catalog ships providers, hosts, and models as system-owned — the hosted, commercial providers (OpenAI, Anthropic, and the gateways in front of them). You point at them by adding your own host keys (which are user-owned) and granting models through your policies. A handful of system-owned rate limits also ship with the catalog. These configure the global admission pool — the relay-wide guardrails that protect the deployment as a whole, independent of any one customer’s limits.What becomes user-owned
Self-hosted and local upstreams are different: there’s no canonical “OpenAI” to curate. So self-hostable hosts and models — Ollama and the like — are yours to create, edit, and configure directly through the control plane. You define the host (its base URL and wire adapter), add the models you run, and bind them — all as user-owned resources.Rule of thumb: if it’s a commercial provider Relay ships knowledge of, it’s
system-owned and you consume it. If it’s something you stand up yourself, you
own it and you edit it.