Experimental Features

Experimental features are previews. They are released and supported enough to try, but they are off by default, they might change, and they might be removed in a later release. A feature that is not marked experimental is a supported feature and carries the usual compatibility expectations. An experimental feature does not.

Enabling an experimental feature requires administrator privileges. Some experimental features also require a specific license tier. That requirement is independent of the toggle and does not go away when the feature graduates.

What enabling and disabling do

Enabling a feature lets you create resources with it: repositories, sources, and whatever else that feature introduces.

Disabling it stops you from creating new ones. It does not hide or delete what you already created:

  • Resources you created while the feature was enabled remain visible in the API and the web interface.
  • Package Manager continues to serve their content to clients.
  • Resources that sync from an external location keep syncing, so what is served stays current. Serving a stale copy of something is worse than serving a current one.
  • Deleting a resource remains available while the feature is disabled.

To stop Package Manager from serving something you created with an experimental feature, delete it. Turning the feature off is not sufficient.

What happens when a feature graduates

When an experimental feature becomes generally available, its toggle disappears from the settings page, the CLI, and the API, and the feature is simply on. Nothing about resources you already created changes: they were visible and served before the upgrade and they are visible and served after it. Any license requirement the feature had is unchanged.

Managing experimental features

State is stored in the database and shared by every node in a cluster. Changes take effect without a restart and propagate across the cluster automatically.

Web interface

Settings > Experimental Features lists every feature available in the release, with its current state and a description. Toggle the features you want and click Apply.

Command line

rspm config experimental list               # every feature, with state and who last changed it
rspm config experimental show <key>         # full detail for one feature
rspm config experimental enable  <key>      # turn on
rspm config experimental disable <key>      # turn off

When a release contains no experimental features, list reports that and exits successfully.

API

GET  /__api__/config/experimental/features          # list with state
POST /__api__/config/experimental/features/:key     # body: {"enabled": true|false}

Both require global:admin. A POST returns the updated feature, or 404 if the key is not a feature in this release.

Back to top