Managing Your Licenses

Your Posit license controls the features you have access to, how many users (or repositories) you can serve, and it expires after a year. As an Admin you need to understand how many people use the product so you do not hit the user limit; and you need to be prepared to update the license before it expires.

How each product counts is different, and running separate environments (staging, dev) has licensing consequences that are easy to miss. This lesson covers what a named user is, what each license limits, how users are counted, the cross-environment rules, and what to watch.

NoteFeature Matrix

To review the features available to you depending on the type of license purchased, you can review the Feature Matrix

What a named user is

Posit’s Software License Descriptions define a Named User as “a particular individual as the User who is given network or server credentials to access and use the Software and who must login and authenticate in order to use the Software.”

Two consequences follow. A Named User is a person, not a login: the same individual is one Named User no matter how many of your servers they sign into. And you license a fixed number of them, paying “a license fee for each separate Named User.” When someone leaves, you may permanently terminate their access and reassign that seat to a new person.

The precise entitlements (how many Named Users, how many servers, which tier) live in your Order Form and the Software License Descriptions, which control over the general terms of the EULA. Treat this lesson as orientation and your Order Form as the authority.

What each license limits

Product What the license limits How a seat is consumed How to free a seat
Workbench Named users, number of servers, concurrent sessions, and whether the Job Launcher is enabled A user counts the first time they sign in Lock the user (lock-user)
Connect Named users who have signed in (legacy licenses: also concurrent Shiny users) A user counts at first sign-in Lock the user, or wait out 365 days of inactivity
Package Manager Number of repositories, licensed per server, and the subscription expiry date Not counted by user Not applicable; manage your repository count

Posit Workbench

A Workbench license limits some combination of named users, concurrent sessions, and whether the Job Launcher is enabled. Check yours with:

Terminal
sudo rstudio-server license-manager status

The users and sessions fields show your caps, where 0 means unlimited.

A named user is counted the first time they sign in. Provisioning a user (for example, syncing them from your identity provider) does not consume a seat until that person actually logs in. Once the cap is reached, additional users are denied sign-in.

To see who has signed in, and therefore who is counted:

Terminal
sudo rstudio-server list-users

To reclaim a seat when someone leaves, lock their account:

Terminal
sudo rstudio-server lock-user <username>

Locked users do not count against the limit, and unlock-user restores them with their previous access intact.

Note

Workbench does not automatically release a seat after a period of inactivity. A user keeps consuming a seat until you lock them. Removing or unassigning a user in your identity provider also locks them.

Posit Connect

Connect licenses named users, meaning accounts that have signed in. The count is enforced at first login. Once the limit is reached, new users cannot sign in, and API requests are rejected with a license error.

Two rules keep the count from drifting upward on you:

  • Locked users do not count. Lock the accounts of people who have left.
  • Inactive users do not count. Connect treats a user as inactive after 365 days without visiting and drops them from the quota automatically.

Check the license status with:

Terminal
sudo /opt/rstudio-connect/bin/license-manager status

The admin dashboard also displays a notification when your licensed users exceed the available seats.

Content types, tiers, and seats

Connect’s license tier gates which content you can publish and which features you get, but it does not change how seats are counted:

  • Basic: interactive applications and dashboards (Shiny, Dash, Streamlit, Bokeh, Panel, Gradio) for authenticated users, plus static and rendered content.
  • Enhanced: adds API content (Plumber, FastAPI, Flask, Vetiver), integrations, current-user execution, custom branding, and the Public Access option.
  • Advanced: adds off-host and Kubernetes execution and unlimited server activations.

Regardless of tier, a Publisher and a Viewer each consume one named-user seat once they sign in. The seat count is driven by sign-in, lock status, and activity, not by role and not by the kind of content involved.

Two content nuances are worth knowing:

  • Anonymous viewers of public content have no Connect account, so they are not counted as named users. Serving content to the public (which requires the Public Access entitlement) does not consume a seat per viewer.
  • Licenses issued before March 2024 may carry a legacy limit on the number of concurrent Shiny users, separate from the named-user count. Current tiered licenses drop this. Check whether yours still has it.

Posit Package Manager

Package Manager does not count users at all. Its license limits the number of repositories you can create and carries a subscription expiry date. Check both with:

Terminal
sudo /opt/rstudio-pm/bin/license-manager status

If you exceed your repository allowance, you are in violation of the license and Package Manager warns you. Reduce your repository count to come back into compliance. There is no seat to reclaim here, but the expiry date still needs watching.

One person, several environments

Because a named user is a specific individual, the same person is one named user across all your servers. Alice signing into both staging and production is one named user, not two, on both Connect and Workbench. The Software License Descriptions put it in terms of distinct people: if you deploy on multiple servers, you must not “make the Software available to more than the number of Named Users for which you have purchased a subscription.”

Worked example: ten data scientists use your dev, staging, and production environments. That is ten named users, not thirty, because they are the same ten people. What you need on top of the ten named users is a server license for each environment, including a Staging Server License for the staging box, not more seats.

Important

Product enforcement and contractual entitlement are not the same thing. Each Workbench server’s license-manager counts sign-ins on that server alone and cannot see your other servers, so a staging server tracks its own local count. Your named-user obligation, though, is the number of distinct individuals across all servers. Reconcile the two against your Order Form, and confirm with Posit when in doubt.

A few related points:

  • A single load-balanced cluster (several nodes sharing one database) de-duplicates users on its own: one sign-in is one seat no matter which node serves it.
  • Disaster Recovery Software is licensed only for recovering from a disaster, not for active-active use or general business continuity. It is not a substitute for a staging or production entitlement.
  • Workbench on AWS SageMaker uses named-user licensing per domain, with no coordination across domains. Track total usage across domains yourself so you don’t exceed your overall entitlement.

Keeping an eye on usage

Treat license usage like disk space: watch it before it fills. The two failures to catch early are hitting the user cap (new users locked out) and letting the license expire (the product stops).

Note

To help monitoring your license usage, Chronicle can be enable across your products. Chronicle collects data across your servers, and comes with ready-to-use dashboards to give you an unified view of your product usage. It can match users with different log in methods across environments based on mapping information you provide.

Per product:

  • Workbench: rstudio-server license-manager status for the cap, list-users for who is counted, and the pwb_license_active_users Prometheus metric plus the Administrative Dashboard for live utilization. Workbench warns in-session as expiry approaches (license-warning-days).
  • Connect: license-manager status, the System > Info dashboard tab for tier and entitlement, and the OpenTelemetry license-capacity metrics (license.users.current against license.users.limit, and license.expiration.days_remaining). Posit’s guidance is that under 70% utilization is healthy and over 90% is near capacity, at risk of rejecting new users. Connect emails admins 60 days before expiry and warns in the dashboard within 15 days.
  • Package Manager: license-manager status for the expiry date and the repository-count warning.

To find and reclaim seats on Connect, filter users by account_status="licensed" (with the connectapi R package or the posit-connect Python SDK), or export the People page to CSV and check the activity column. Lock the accounts of people who have left; inactive ones fall off after a year on their own.

Add a license check to your maintenance cadence: a quick monthly look at utilization, and a renewal reminder set well before the expiry date.

License guides