Skip to content

Licensing

Roster starts in Free edition when no license key is provided. The active edition, license status, limits, usage, and warnings are visible in Settings.

EditionIncluded behavior
Free20 resolvable humans, 5 active human team members, and Model Runs. No license key is required.
ProPurchased resolvable-human capacity and Model Runs. A valid license key is required.
EnterpriseNegotiated resolvable-human capacity, Model Runs, Audit Events, PostgreSQL database support, High Availability, and advanced OpenTelemetry export and status. A valid license key is required.

AI agents and service accounts do not count toward the Free active human team-member limit.

Use Free for an unlicensed evaluation or a small standalone deployment. Install a Pro license when the purchased participant capacity is required. Install an Enterprise license before configuring PostgreSQL, High Availability, Audit Events, or external OpenTelemetry export.

Structured stdout logs, liveness/readiness probes, and trace correlation are included in every edition. OTLP trace/metric export, cross-replica observability status, the admin System health page, and its REST/MCP interfaces are available in Enterprise. Free and Pro never send external telemetry even if export is requested.

Roster continues to work when usage is above the included capacity. Writes that would add more resolvable humans or active human team members may be blocked until the plan or license is updated.

Paid licenses show an admin warning two weeks before expiration. After expiration, Pro and Enterprise stay active during a two-week grace period. If no renewed license is installed before the grace period ends, Roster falls back to Free limits.

For Pro or Enterprise, add the signed license JWT supplied by Roster as a runtime secret:

ROSTER_LICENSE_KEY=<license-jwt>

The license JWT is a single-line secret value. Store it in the same secret manager used for ROSTER_AUTH_SECRET and provider credentials. Do not commit it to source control or bake it into a custom image.

If your platform prefers mounted secret files, mount the JWT into the container and point Roster to the file:

ROSTER_LICENSE_FILE=/run/secrets/roster-license.jwt

Standard deployments do not need to configure ROSTER_LICENSE_JWKS_FILE. The production image already includes Roster’s trusted public keyring and verifies paid licenses locally, without runtime network access to Roster servers.

Roster reads and verifies the configured license when the process starts. After adding or replacing either license source, restart or roll every Roster instance, then confirm the expected edition, term, limits, and warnings in Settings.

Terminal window
flyctl secrets set ROSTER_LICENSE_KEY='<license-jwt>'
Terminal window
kubectl create secret generic roster-license \
--from-literal=ROSTER_LICENSE_KEY='<license-jwt>'

Expose the secret to the Roster container as an environment variable.

When a renewed or upgraded license is issued, update the same runtime secret or atomically replace the mounted license file. Restart or roll every Roster instance so the new key is loaded. Keep the previous key available until the new edition, term, and limits are confirmed in Settings.

Enterprise deployments using PostgreSQL must keep a valid Enterprise license. See Databases and Migrations for the database contract and High Availability for the multi-instance architecture.