License management¶
Magic Stick is source-available under BSL 1.1, with the Additional Use Grant and three editions. The same API, CLI, TUI and browser dashboard serve every edition. Resource Sharing, Private Mesh, local identity, model runtimes and GPU management have no license-file gate.
Editions and entitlements¶
| Technical edition | Signed claims | Entitlements |
|---|---|---|
| Free | No valid active file | None required for core functionality |
| Free Registered | edition: free-registered |
federated-sso |
| Commercial | edition: commercial |
commercial-production, federated-sso |
Commercial-production is a signed record of commercial production permission, not a CPU/model startup switch. The software does not inspect revenue or decide legal eligibility. Companies outside the grant must obtain a commercial agreement even when the technical status says Free. Registration is free for eligible users; a request is not itself an issued license or contract.
Only Federated SSO is feature-gated. The broker-only gateway route performs a fail-closed entitlement check on every external login/callback. If verification or its API is unavailable, that route denies access; it has no cached allow state. Without a valid entitlement, the enforcement loop also disables all external brokers, including social/custom providers, without deleting providers, mappings, local users or credentials. Local Keycloak login, local roles, component OIDC and recovery remain available. Viewing managed federation and recovery deletion remain administrator-only operations; provider activation and changes require the entitlement. Existing sessions obey their ordinary token/session lifetime; disabling a provider is not an immediate revocation of every issued token.
Customer workflow¶
Open System → License to see the technical edition, verify an uploaded file, review replacement, explicitly activate it, or export the active document. The screen embeds LICENSE, LICENSING.md, the MIT Change License and third-party notices for offline reading/download. Those notices do not require the license API to be healthy.
To request a license:
- Enter a customer reference (maximum 160 characters; minimize personal data).
- Select Free Registered or Commercial. Entitlements follow the edition.
- Set a positive whole-number TTL in hours or days.
- Download unsigned JSON and privately send it to the authorized issuer.
The default request TTL of 30 days is a convenience, not a trial or business duration policy. The request is bound to the appliance and starts its validity at download generation. A day means 86,400 seconds. The issuer reviews and may adjust customer, dates, binding and eligibility before signing. Downloading a request never replaces the active file and cannot activate a feature.
Offline license operation¶
Dashboard administrators use System → License; terminal administrators
use magicstick license status or the TUI's License tab. Free requires no
file. Free Registered enables Federated SSO, and Commercial records
commercial-production plus federated-sso. Local identity, models, Resource
Sharing and Private Mesh remain independent of license-file validity.
Production-use eligibility follows the BSL Additional Use Grant;
software does not assess revenue.
In System → License → Request license, enter the customer reference, select
the edition and set the TTL in hours or days, then download the JSON for signing.
The file is bound to the installation and uses absolute validity times starting
when generated; the editable 30-day initial TTL is only a request. The issuer
reviews and signs it outside the appliance with the existing --claims workflow.
Downloading leaves current entitlements unchanged. Upload and validate the signed
result separately; an unsigned request is not an activation file.
Official releases deliver the issuer's public keys automatically. Customers
upload only their signed JSON; there is no manual trust-store installation step.
Follow licensing.md for manufacturer key publication, issuance
outside the appliance, rotation and runtime Secret backups. On upgrade, the new
release-owned official store works alongside the preserved local store without
rewriting it. Confirm the expected key ID with magicstick license status.
If keys are unavailable, check that the official ConfigMap and matching API image
have both reconciled; never resolve this by importing a key from the license file.
The private signing key must never enter the cluster. Back up both the original
license and its installation ID; a bound file alone cannot restore a lost ID.
After an ambiguous write failure, refresh status before retrying. Never delete
the Secret as a routine troubleshooting step, and do not copy its contents into
logs/issues. A Pod restart preserves it; a deleted cluster does not.