--- title: First Party Services --- # First Party Services Catalog Services **coulomb is development-responsible for** (`development_type = first_party`), whether deployed to a cloud or self-hosted on coulomb infrastructure. The **Service Maturity Level** column tracks each service against the [Service DoM](/policy/service-dom) (1 · Core → 2 · Standard → 3 · Mature). ```js import {API} from "../components/config.js"; ``` ```js const services = await fetch(`${API}/services/catalog?development_type=first_party`) .then(r => r.ok ? r.json() : []) .catch(() => []); const repos = await fetch(`${API}/repos/`) .then(r => r.ok ? r.json() : []) .catch(() => []); const repoById = new Map(repos.map(r => [r.id, r.slug])); ``` ```js const LEVEL = {1: "1 · Core", 2: "2 · Standard", 3: "3 · Mature"}; const rows = services.map(s => ({ Service: s.name, Slug: s.slug, Hosting: s.hosting_type === "self_hosted" ? "self-hosted" : "cloud-hosted", "Maturity Level": s.maturity_level ? LEVEL[s.maturity_level] : "—", "Dev Repo": s.first_party?.repo_id ? (repoById.get(s.first_party.repo_id) ?? "(unlinked)") : "—", Domain: s.first_party?.owning_domain ?? "—", Status: s.status, })); ``` ```js display(services.length === 0 ? html`
POST /services/catalog (development_type: "first_party").