← All frames · Frame 05 · flow spec-viewer · route /catalog/:product/:service

Spec viewer — overview + embedded OpenAPI render

Three panes. Left: operations grouped by tag. Middle: the aggregated overview we own (what this service is, where it came from, when it was harvested) followed by the selected operation rendered from the spec — parameters, request schema, response schemas. Right: copy-paste code samples. The renderer is an OSS embed (Stoplight Elements / Swagger UI — the §3 spike decides which), themed with fuse-seam tokens; everything around it is ours.

Fuze Developers Developer DO
Catalog / FuzeFront / app-registry-service

app-registry-service

v1.4.0 sandbox: mock

Source izzywdev/FuzeFront · services/app-registry-service/openapi.yaml · harvested 6h ago · OpenAPI 3.1.0 · 24 operations

Try it

Overview

Registers and resolves the applications mounted into the FuzeFront shell — federated remotes and standalone apps alike. Every entity id is a wire-typed TypeID minted by this service; slug is immutable after registration.

tag: apps tag: health tag: manifests auth: bearer (Authentik)
POST /api/v1/apps Try it →

Register an application

Creates an app registration. The id is minted by this service — a client-supplied id is rejected (additionalProperties: false).

Request body · AppRegistration

FieldTypeDescription
slug requiredstring Immutable. Free-form at creation; never renamed by a later PUT.
name requiredstring Display name. Drops the Fuze prefix except for FuzeBI / FuzeX.
integrationobject remoteEntry resolved against the host origin for federated remotes.
routingobject path is independent of slug.

Responses

201 Created — App application/json
400 Invalid body — ErrorBody application/json
409 Slug already registered — ErrorBody application/json

Example · 201

response · application/json
{
  "id": "app_01h455vb4pex5vsknk084sn02q",
  "slug": "fuzepicker",
  "name": "Picker",
  "routing": { "path": "/app/fuzepicker" },
  "createdAt": "2026-09-08T04:12:00Z"
}

Test hooks: [data-frame='05-spec-viewer'] · [data-panel='spec-header'] · [data-panel='spec-overview'] · [data-panel='endpoint-list'] · [data-operation='registerApp'] · [data-panel='request-schema'] · [data-panel='response-schema'] · [data-panel='code-sample'] · [data-action='try-it'] · [data-action='download-spec'].
Contract: GET /api/v1/devportal/specs/{specId} (returns the raw spec + our overview metadata).

Review · devportal approve or reject each flow ↓
homependingApproveReject
catalogpendingApproveReject
spec-viewerpendingApproveReject
playgroundpendingApproveReject
my-accesspendingApproveReject