Skip to content

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.

LevelDecidesManaged in
Instance modulesWhether a module exists for everyoneYour instance configuration (by our team)
Feature accessWhich users and teams can use a gated capabilitySettings → Instance → Feature access
Platform settingsOptional integrationsSettings

All decisions are enforced by the backend. Hiding a menu item is a convenience; the API makes the real decision.

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.

  1. Unknown features, inactive accounts and roles below the feature’s minimum are denied.
  2. The kill switch denies for everyone.
  3. Any matching deny assignment wins.
  4. An explicit allow grants the feature.
  5. 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.

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:

EndpointPurpose
GET /api/admin/feature-accessCatalog, plans, controls, assignments, license status
PUT /api/admin/feature-access/plans/{plan_id}Replace a plan’s features
PUT /api/admin/feature-access/assignmentsCreate 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/explainA user’s resolved decision

People can see their own resolved features in GET /api/settings/feature-flags.