Description
Deployment profiles are installed on a machine before the software itself is installed (or maybe before first run).
The profile has the same content as our settings.json
file and serves two purposes:
-
It provides the initial first-run configuration if
settings.json
does not yet exist. If all required settings are provided, then no first-run dialog will be shown. -
It provides "locked" settings. Currently there is just a single lockable setting1: the Allowed Images list. Locked settings are applied on each app start and override whatever is in
settings.json
. Locked settings also cannot be changed in the Preferences dialog (or viardctl
). Settings can only be locked via profile; thelocked
state insettings.json
will always befalse
(because there would be no mechanism to unlock again).
Deployment profiles can be installed either at the system or the user level and must be deployable by system management software in enterprise settings (Group Policy, Apple profiles, etc). The system level profile takes precedence over a user level profile, if both exist (i.e. the user profile is ignored if the system profile exists).
Profiles should be stored in the registry (on Windows) and probably as .plist
files instead of JSON on macOS.
Install locations still to be determined.
Deployment profiles are not part of the app installation and will not be removed by a Factory Reset.
Any initial configuration provided by an installer program will go into the regular settings.json
file and not be stored as a profile. Locked setting from profiles will still overrule installer configurations.
There is no UI component to deployment profiles, although we may provide a tooltip on the 🔒 icon that explains that the setting has been locked by deployment profile.
Stories
- Remove kim builder #3886
- Implement settings v5 schema [2d] #3746
- Migrate settings.json v4 → v5 during upgrade [2d] #3747
- Implement new
/v1
API version for version 5 settings format [5d] #3756 - Document that the v1 API is still internal and experimental #3927
- Move locked-field checking from issue 3756 to here #3862
- Update
rdctl start
andrdctl set
to use v5 option names [1d] #3748 - Implement
ReadDeploymentProfile
function for Linux [2d] #3749 - Implement
ReadDeploymentProfile
function for Windows [5d] #3750 - Implement
ReadDeploymentProfile
function for macOS [1d] #3751 - Update
settings.Load
to support deployment profiles [2d] #3752 - Update first-run algorithm to deal with incomplete deployment profiles [1d] #3759
- Is it "imageAllowList" or "allowedImages" #3919
- Support Windows registry arrays as a REG_MULTI_SZ string #4144
- Add BATS test for deployment profiles [5d] #3753
- Document deployment profiles [2d] #3754
Acceptance Criteria
Each of the stories above should have their own acceptance criteria.
Release notes
- Make sure that deployment profiles are labelled as an experimental feature!
Footnotes
-
Another candidate for lockable settings would be installable extensions. ↩