Feature access
Feature access decides, per person, whether a gated capability is available inside your instance. It complements instance modules, which decide whether a module exists on the instance at all.
| Level | Decides | Managed in |
|---|---|---|
| Instance modules | Whether a module exists for everyone | Your instance configuration (by our team) |
| Feature access | Which users and teams can use a gated capability | Settings → Instance → Feature access |
| Platform settings | Optional integrations | Settings |
All decisions are enforced by the backend. Hiding a menu item is a convenience; the API makes the real decision.
The panel
Section titled “The panel”Administrators open Settings → Instance → Feature access to:
- edit which features each access plan includes;
- assign a plan or an explicit allow/deny to a user, a team or the whole instance, optionally with an expiry;
- set a rollout percentage to enable a feature for a stable share of people;
- flip a kill switch that turns a feature off for everyone;
- explain a person’s resolved decision — why they do or do not have a feature;
Expired assignments stay visible for audit history but no longer apply. Configuration changes are written to the audit log.
How a decision is made
Section titled “How a decision is made”- Unknown features, inactive accounts and roles below the feature’s minimum are denied.
- The kill switch denies for everyone.
- Any matching deny assignment wins.
- An explicit allow grants the feature.
- Otherwise the person’s user, team and instance plans — then the feature’s default — decide, subject to the rollout percentage.
Rollout uses a stable hash of person and feature, so the same people stay in the cohort between requests.
Current gated capabilities
Section titled “Current gated capabilities”Today the catalog contains Team model gateway — the team model-access and budget settings described in Model gateway & budgets. It is enabled by default. To limit it to selected people, remove it from the default plan and add explicit allow assignments for those users or teams.
Access plans in this panel are internal to your instance; they are not the same thing as your ExoHuman Cloud subscription plan.
All endpoints require an interactive administrator session:
| Endpoint | Purpose |
|---|---|
GET /api/admin/feature-access | Catalog, plans, controls, assignments, license status |
PUT /api/admin/feature-access/plans/{plan_id} | Replace a plan’s features |
PUT /api/admin/feature-access/assignments | Create or update an assignment |
DELETE /api/admin/feature-access/assignments/{id} | Remove an assignment |
PUT /api/admin/feature-access/controls/{feature_id} | Rollout and kill switch |
POST /api/admin/feature-access/explain | A user’s resolved decision |
People can see their own resolved features in GET /api/settings/feature-flags.