Skip to content

[FCE-2924][FCE-2925] Smelter Cloud documentation#278

Open
Gawor270 wants to merge 7 commits into
mainfrom
fce-2924-2925-smelter-cloud-docs
Open

[FCE-2924][FCE-2925] Smelter Cloud documentation#278
Gawor270 wants to merge 7 commits into
mainfrom
fce-2924-2925-smelter-cloud-docs

Conversation

@Gawor270

@Gawor270 Gawor270 commented Jul 23, 2026

Copy link
Copy Markdown
Member

Closes FCE-2924 and FCE-2925, and covers FCE-3137 by publishing the API specification here.

New top-level docs section Smelter Cloud (docs/smelter/, beta): concept overview, quick start, the scene model, how-to guides (write and deploy a template with the composition CLI, compose a Fishjam room, drive a template with events, choose inputs and outputs), and an API reference.

API reference

Scalar page at /api/smelter-cloud renders static/api/smelter-cloud-openapi.json. The spec is copied by scripts/update_api.sh from the new api/smelter-cloud submodule, like the other specs in static/api. Two differences from the existing ones: the source repo does not tag semver releases yet, so the submodule is checked out at a branch instead of the latest tag, and the copy step sanitizes the spec before publishing. The committed spec covers the full API surface (19 paths) with readable oneOf variant titles; regeneration notes live in the script comments.

Docs verified against the API

  • Templated outputs are registered with a single multipart POST .../output/{output_id}/template (config + template), not register-then-upload.
  • rescaler takes child, not children.
  • Event, room, input, output, and renderer bodies checked field-by-field against the spec.
  • Template code samples type-check in the build: @fishjam-cloud/composition is linked from the js-server-sdk submodule, same as the other SDK packages.

Checks run locally: yarn build, yarn spellcheck, yarn typecheck, yarn format:check, all green.

Sidebar position 1 places Smelter Cloud above Tutorials; move lower if preferred.

New top-level docs section for the hosted composition service: concept
overview (disambiguated from the client-side Smelter library), quick
start, template authoring with the composition SDK and CLI, room
composition, runtime events, an input/output guide, a scene-model
explainer, and an API reference. The REST reference renders a sanitized
preview OpenAPI spec via Scalar; the auth model and WebSocket event
stream are documented in prose.
@linear

linear Bot commented Jul 23, 2026

Copy link
Copy Markdown

FCE-2924

FCE-2925

Gawor270 added 2 commits July 24, 2026 14:21
Replace the hand-written preview spec with one generated from the
service source, copied by scripts/update_api.sh (the source repo is
private, so it is cloned on demand instead of being a submodule) and
sanitized of internal-only fields. The committed spec comes from the
template-workers branch with the oneOf variant-title improvement
applied, matching what main will contain after the pending merge.

Align the docs with the actual API surface: templated outputs are
registered in a single multipart request to POST
.../output/{output_id}/template (config + template), not registered
first and uploaded after; rescaler takes a single child. Template code
samples are now type-checked by the build, with
@fishjam-cloud/composition linked from the js-server-sdk submodule.
CI's SUBMODULES_TOKEN covers the private source repo (same as the
fishjam and room-manager submodules), so clone-on-demand is not needed.
The repo has no semver release tags yet, so the submodule is checked out
at a branch instead of the latest tag.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new beta Smelter Cloud documentation section to the Docusaurus site, including concept docs, how-to guides, and a published OpenAPI/Scalar REST API reference.

Changes:

  • Introduces new docs/smelter/ docs tree (overview, quick start, scenes, how-tos, API reference) and sidebar categories.
  • Publishes Smelter Cloud REST API docs via Scalar at /api/smelter-cloud, backed by a committed OpenAPI JSON spec.
  • Updates tooling to fetch/copy the Smelter Cloud spec from a new submodule and links the local @fishjam-cloud/composition package for type-checkable examples.

Reviewed changes

Copilot reviewed 16 out of 18 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
yarn.lock Adds workspace link entry for @fishjam-cloud/composition.
static/api/smelter-cloud-openapi.json Adds committed Smelter Cloud OpenAPI 3.1 JSON spec for publishing.
spelling.txt Adds rtmp to spellcheck allowlist.
scripts/update_api.sh Adds branch-based submodule checkout and JSON spec sanitization/copy step.
package.json Adds linked dependency on @fishjam-cloud/composition for examples/typechecking.
docusaurus.config.ts Adds a Scalar instance to render the Smelter Cloud REST API reference page.
docs/smelter/what-is-smelter-cloud.mdx Adds Smelter Cloud concept overview and navigation pointers.
docs/smelter/scenes.mdx Documents video/audio scene model and live updates.
docs/smelter/quick-start.mdx Adds end-to-end tutorial for creating/registering inputs/outputs and publishing.
docs/smelter/how-to/write-and-deploy-a-template.mdx Adds template authoring/build/deploy guide including multipart upload endpoint.
docs/smelter/how-to/inputs-and-outputs.mdx Summarizes supported input/output protocols and key fields.
docs/smelter/how-to/drive-a-template-with-events.mdx Documents event delivery to templates via /event endpoint and eventBus.
docs/smelter/how-to/compose-a-fishjam-room.mdx Documents linking a Fishjam room and templating room-driven layouts.
docs/smelter/how-to/category.json Adds How-to Guides generated index under Smelter Cloud section.
docs/smelter/api-reference.mdx Adds entry-point page for REST API, WebSocket auth, and error format.
docs/smelter/category.json Adds top-level “Smelter Cloud” sidebar category at position 1.
.gitmodules Adds api/smelter-cloud submodule entry.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread scripts/update_api.sh
Comment thread docs/smelter/how-to/write-and-deploy-a-template.mdx
Comment thread docs/smelter/quick-start.mdx
Guard the jq dependency in update_api.sh, use optional chaining on peer
metadata in the template example, and fix quick-start wording: a
whip_client output publishes to a WHIP endpoint; playback is WHEP on the
receiving service.
@Gawor270
Gawor270 marked this pull request as ready for review July 24, 2026 14:37
Gawor270 added 3 commits July 24, 2026 16:53
The reference page now lives at /api/smelter-cloud next to the other API
docs, the Scalar page moves to /api/smelter-cloud/rest (mirroring the
/api + /api/rest pair of the server API), and the API hub page links
both. Smelter section links updated.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants