Skip to content

Document the billed All-in-One and the license bundle, drop the retired Secret - #154

Merged
M2Night merged 1 commit into
mainfrom
fish-900-billed-appliance
Aug 27, 2026
Merged

Document the billed All-in-One and the license bundle, drop the retired Secret#154
M2Night merged 1 commit into
mainfrom
fish-900-billed-appliance

Conversation

@M2Night

@M2Night M2Night commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

What was wrong

all-in-one.mdx stated "It is offline-only: there is no hosted-billing variant."
There is one now — the same container with the billing implementation compiled the
other way. introduction.mdx said the engine ships in three forms; the dashboard
grants four. And no self-hosting page mentioned the license bundle, which every
delivery form now requires before it serves — a reader following these pages would
deploy and watch it fail with no explanation.

What changed

The billed All-in-One

Page
all-in-one.mdx Removed the false claim. The page now opens on the two forms, splits Usage accounting into air-gapped and billed, and qualifies the volume — only one form writes a ledger.
introduction.mdx "three forms" → four, and the comparison table gains the column. The capability table keeps one appliance column, labelled "both forms", because the two are identical there — a duplicated column would be six identical cells.
requirements.mdx The All-in-One host table had no network row at all. Added one: the billed form needs outbound HTTPS for every request, not only at startup.
air-gapped.mdx "The All-in-One appliance is the straightforward answer to a strict air gap" now names the air-gapped form, and says its counterpart cannot air-gap.
enterprise-releases.mdx Notes that the two appliance forms are versioned independently — the Helm sentence next to it says both Helm forms share a version, which invites the wrong inference.

The license bundle

Page
registry-access.mdx The Self Host page's list gains the bundle: what it is, and that GPU-bound contracts need the card UUIDs at request time.
kubernetes.mdx The pre-install Secrets are three, not two: the JWT secret is gone (nothing has read it since API-key auth replaced the scheme, and the chart no longer asks for it), the license bundle arrives. What it gates and a link to renewal.
all-in-one.mdx A fourth item under "what running it involves": the mounted bundle, the failure without it, and renewal by replacing the files.
requirements.mdx A license row in each half: the Kubernetes platform baseline and the All-in-One host table.
operations.mdx License validity/expiry in the monitoring signals (metrics first, log warnings second); a License renewal section — in place, no restarts, mixed responses for up to a couple of minutes, and the one exception (a bundle carrying a new key); three troubleshooting rows for the three distinct failure shapes (Secret absent, file unreadable, certificate expired).
air-gapped.mdx The bundle crosses the boundary too, and unlike an image it expires — a recurring transfer, not a one-off.

Disclosure

No hostname, image tag, chart version, Secret name, mount path, or timing internal
appears in any added line — the billing endpoint stays "ask your account team for the
hostname to allowlist", and the license text stays at behavior level (renewal cadence
is "a couple of minutes", not the components' verification interval).

Checks

Every table in developer-guide/self-hosting/ is column-consistent; every internal link
and anchor in the changed files resolves to a page and heading that exist
(operations#license-renewal is new and linked once, from kubernetes.mdx).

@mintlify

mintlify Bot commented Aug 25, 2026

Copy link
Copy Markdown

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
hanabiaiinc 🟢 Ready View Preview Aug 25, 2026, 4:17 PM

💡 Tip: Enable Workflows to automatically generate PRs for you.

@coderabbitai

coderabbitai Bot commented Aug 25, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: dd6ad1de-0f1c-4efd-9b62-5607f38fb89b


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@M2Night
M2Night force-pushed the fish-900-billed-appliance branch from b5cdce3 to fdf713d Compare August 25, 2026 16:21
@M2Night
M2Night force-pushed the fish-900-billed-appliance branch from fdf713d to 88dc646 Compare August 26, 2026 11:22
@M2Night M2Night changed the title Document the billed All-in-One, and drop the retired Secret Document the billed All-in-One and the license bundle, drop the retired Secret Aug 26, 2026
@M2Night
M2Night force-pushed the fish-900-billed-appliance branch from 88dc646 to ab3de31 Compare August 27, 2026 11:51
@M2Night
M2Night force-pushed the fish-900-billed-appliance branch from ab3de31 to 26ce96a Compare August 27, 2026 12:07
…red Secret

The appliance page said in as many words that there is no hosted-billing
variant. There is: the same container with the billing implementation compiled
in the other way, authorising each request against Fish Audio instead of writing
a local ledger. The comparison table listed three delivery forms; there are
four, and they are the four a team can be granted.

What follows from the second form: the host requirements table had no network
row at all, so nothing told a reader planning a firewall that one form needs
outbound access for every request; the volume no longer holds a ledger on both
forms; the token rules differ, since the air-gapped form accepts any non-empty
string and the billed one takes an API key with credit; and the air-gap page's
recommendation now names which form it means.

Separately, the Kubernetes page asked for three hand-made Secrets, one of them
carrying a JWT secret for the edge API. Nothing has read that value since the
API-key scheme replaced it — yet the count stays at three, because the license
bundle joined the list: every delivery form now requires a certificate and key
pair from the dashboard before it serves, and no self-hosting page said so. The
pages now cover where the bundle comes from (registry-access), what it gates
and how each absence fails (kubernetes, all-in-one, operations), renewal —
in place, no restarts, except a bundle carrying a new key — and that an
air-gapped delivery carries it across the boundary on a schedule, not once
(air-gapped, requirements).
@M2Night
M2Night force-pushed the fish-900-billed-appliance branch from 26ce96a to 13c31b5 Compare August 27, 2026 12:44
@M2Night
M2Night merged commit d5366fa into main Aug 27, 2026
7 checks passed
@M2Night
M2Night deleted the fish-900-billed-appliance branch August 27, 2026 12:47
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.

1 participant