Pre-configuration allows IT administrators to deploy Devolutions Password Manager Windows app with pre-configured settings and workspaces (Devolutions Server and Devolutions Cloud) across Windows endpoints. This eliminates the need for end users to manually configure the application after installation.
Zero-touch deployment: Users start with fully configured applications
Consistency: Ensure all users have the same workspaces and settings
Time savings: Eliminate manual configuration steps
Flexibility: Multiple deployment methods to fit different IT infrastructures
Scalability: Deploy to hundreds or thousands of endpoints efficiently
An IT Admin configures workspaces and settings via MSI parameters or configuration files.
Deployment tool pushes installation to managed devices (Intune, SCCM, PDQ Deploy, etc.).
Users launche app for the first time.
The app reads the configuration and automatically creates workspaces.
Users log in to complete the connection.
Authentication required: Pre-configured workspaces are created in a "pending" state. Users must still log in to complete the connection.
First launch only: Configuration is applied once on first launch. Subsequent changes require app reinstallation or manual configuration.
Credentials NOT Stored: Pre-configuration does NOT include user credentials. Users must log in with their own credentials.
Pass configuration parameters directly to the Windows installer during deployment. You can combine workspace parameters with application settings.
Use case: Quick deployments, simple configurations, testing
Basic example (workspaces only):
msiexec /i Workspace.msi /qn DVLS_SERVER_URL="https://server.com" HUB_NAME="mycompany"
With settings (workspaces + application settings):
msiexec /i Workspace.msi /qn ^
DVLS_SERVER_URL="https://server.com" ^
HUB_NAME="mycompany" ^
ORGANIZATION_ID="guid-here" ^
LANGUAGE="fr" ^
LOCKING_OPTION="windowsCredentials"
Limitations: Only one Devolutions Server can be configured via MSI parameters. For multiple servers, use Method 2.
Deploy a pre-created .cfg file to target systems.
Use case: Intune, SCCM, complex configurations, multiple workspaces
msiexec /i Workspace.msi /qn DEPLOY_CONFIG="C:\path\to\Config.cfg"
Target:
%ProgramData%\net.devolutions\Workspace\DefaultConfig.cfgHow it works:
MSI writes config to ProgramData during installation
When any user launches Devolutions Password Manager, the app detects system-wide config
Config automatically copies to user's Roaming profile
User has configured application
Reliable: Works regardless of user context (no "Default user" issues)
Consistent: All users on machine get same configuration
Automation-friendly: Perfect for Intune, SCCM, silent installs
Multi-user support: Applies to all existing and future users
Best for: Intune, SCCM, silent installs, multi-user machines, shared workstations
msiexec /i Workspace.msi /qn USER_CONFIG="C:\path\to\Config.cfg"
Target:
%LOCALAPPDATA%\net.devolutions\Workspace\Config.cfgHow it works:
MSI writes config to installing user's Local AppData
User launches Devolutions Password Manager
Config copies to user's Roaming profile
Only that user has configured application
Limitations:
Only configures the user who ran the installer
May fail in automated deployments (user context issues)
Not suitable for multi-user machines
Best for: Interactive installations by end users, single-user devices
Use the desktop application to create configuration files and MSI commands.
Use case: IT administrators preparing deployment packages
Access: Tools – Custom installation (in the desktop application)
See Configuration file creator section for details.
Configuration files use the .cfg extension and contain JSON-formatted data.
{
"hubs": [
{
"url": "https://mycompany.devolutions.app",
"organizationId": "00000000-0000-0000-0000-000000000000",
"type": "Business",
"version": ""
}
],
"dvls": [
{
"name": "Production DVLS",
"serverUrl": "https://devolutions-server.company.com",
"serverVersion": ""
},
{
"name": "Development DVLS",
"serverUrl": "https://devolutions-server-dev.company.com",
"serverVersion": ""
}
],
"configs": {
"language": "en-US",
"reduceToTrayOnClose": true,
"clearClipboardSensitiveData": true,
"clipboardTimer": 30,
"useFavicon": true,
"useEntriesSyncOnDatasourceAccess": false,
"useHubEmbeddedBrowser": true,
"shareUsageData": false,
"lockingOption": "windowsCredentials",
"useBackgroundLock": true,
"useLockWhenInactive": true,
"lockInactivityDelay": 300
}
}
Array of Devolutions Cloud instances to configure.
| Field | Type | Required | Description |
|---|---|---|---|
| url | string | Yes | Devolutions Cloud URL (e.g., https://mycompany.devolutions.app) |
| organizationId | string | Yes | Organization GUID |
| type | string | No | Always "Business" (auto-populated) |
| version | string | No | Devolutions Cloud version (auto-populated on first connection) |
Array of Devolutions Server instances to configure.
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | Yes | Display name for the server |
| serverUrl | string | Yes | Devolutions Server URL (e.g., https://devolutions-server.company.com) |
| serverVersion | string | No | Server version (auto-populated on first connection) |
Application settings to pre-configure.
See Configuration settings reference for complete list.
Configuration files are loaded in priority order based on location.
Roaming AppData:
%APPDATA%\net.devolutions\Workspace\Config.cfgDefault:
C:\Users\[Username]\AppData\Roaming\net.devolutions\Workspace\Config.cfgSyncs across domain-joined computers
Highest priority (user-specific)
-
Local AppData:
%LOCALAPPDATA%\net.devolutions\Workspace\Config.cfgDefault:
C:\Users\[Username]\AppData\Local\net.devolutions\Workspace\Config.cfgMachine-specific, not synced
Used during MSI installation, then copied to Roaming
-
ProgramData:
%ProgramData%\net.devolutions\Workspace\DefaultConfig.cfgDefault:
C:\ProgramData\net.devolutions\Workspace\DefaultConfig.cfgApplies to all users on the system
Requires
config.readyindicator file in same directoryCopied to user Roaming location on first launch (if user config doesn't exist)
File:
config.readyLocation: Same directory as
DefaultConfig.cfgPurpose: Signals that system-wide config is ready for deployment
Content: Empty file, presence is checked only
Configuration sources are checked in the following order (first found wins):
User Configuration File – User – specific config
System Configuration File – System – wide default (copied to user location)
The Windows MSI installer accepts the following parameters for pre-configuration.
| Parameter | Type | Description | Example |
|---|---|---|---|
| DVLS_SERVER_URL | String | Devolutions Server URL | https://devolutions-server.company.com |
Note: Only one (Devolutions Server can be configured via MSI parameters. For multiple servers, use a configuration file.)
| Parameter | Type | Description | Example |
|---|---|---|---|
| HUB_NAME | String | Devolutions Cloud subdomain name (required) | mycompany |
| ORGANIZATION_ID | String | Organization GUID (optional - leave empty if not applicable) | 00000000-0000-0000-0000-000000000000 |
Note: The full Devolutions Cloud URL is constructed as
https://{HUB_NAME}.devolutions.appNote:
ORGANIZATION_IDis optional. Some Devolutions Cloud instances don't require an organization ID. If not applicable, you can omit this parameter or pass an empty string.
| Parameter | Type | Description | Target Location |
|---|---|---|---|
| DEPLOY_CONFIG | String | System-wide config (recommended) | %ProgramData%\net.devolutions\Workspace\DefaultConfig.cfg |
| USER_CONFIG | String | Per-user config (interactive installs) | %LOCALAPPDATA%\net.devolutions\Workspace\Config.cfg |
| Parameter | Type | Values | Default | Description |
|---|---|---|---|---|
| TARGET_LOCATION | String | roaming, local, system |
roaming |
Where to save configuration. |
| LANGUAGE | String | Language code | en-US |
Application language. |
| Parameter | Type | Values | Default | Description |
|---|---|---|---|---|
| REDUCE_TO_TRAY_ON_CLOSE | String | true, false |
false |
Minimize to system tray instead of closing. |
| USE_FAVICON | String | true, false |
false |
Download and display website favicons. |
| USE_HUB_EMBEDDED_BROWSER | String | true, false |
true |
Use embedded browser for Devolutions Cloud authentication. |
| Parameter | Type | Values | Default | Description |
|---|---|---|---|---|
| CLEAR_CLIPBOARD_SENSITIVE_DATA | String | true, false |
false |
Auto-clear clipboard after copying passwords. |
| CLIPBOARD_TIMER | Number | Seconds (1-999) | 30 |
Seconds before clearing clipboard. |
| LOCKING_OPTION | String | password, biometric, windowsCredentials |
(none) | Method to lock application. |
| USE_BACKGROUND_LOCK | String | true, false |
false |
Lock when minimized to tray. |
| USE_LOCK_WHEN_INACTIVE | String | true, false |
false |
Lock after period of inactivity. |
| LOCK_INACTIVITY_DELAY | Number | Seconds (30-3600) | 30 |
Seconds before auto-lock. |
| Parameter | Type | Values | Default | Description |
|---|---|---|---|---|
| USE_ENTRIES_SYNC_ON_DATASOURCE_ACCESS | String | true, false |
false |
Auto-sync entries when accessing workspace. |
| Parameter | Type | Values | Default | Description |
|---|---|---|---|---|
| SHARE_USAGE_DATA | String | true, false |
true |
Share anonymous usage statistics. |
The desktop application includes a visual tool for creating configuration files.
Launch Devolutions Password Manager.
Navigate to: Tools – Custom Installation.
Workspace selection.
View all configured (Devolutions Server and Devolutions Cloud instances)
Select which workspaces to include via checkboxes
Multiple workspaces supported
Settings Configuration
Enable/disable individual application settings grouped by category:
General (Language, Tray behavior)
Security (Clipboard, Locking)
Synchronization
Privacy (Usage statistics)
Live Preview
Real-time JSON preview of configuration
Copy JSON to clipboard
Preview updates as selections change
Export Options
Generate .cfg File: Save configuration to
.cfgfileCopy MSI Command: Generate complete MSI command with all parameters
File Selection
Browse for
.cfgfilesFile validation and parsing
Preview Before Import
View workspaces and settings before applying
Duplicate detection (warns if workspace already exists)
Import Actions
Applies configuration to current application
Creates new workspaces if they don't exist
Updates settings immediately
Complete reference of all configurable settings.
| Export Key (Config/MSI) | Internal Key | Type | Default | Description |
|---|---|---|---|---|
| language | languageCode | String | en-US |
Application UI language |
| reduceToTrayOnClose | minimizeOnClose | Boolean | false |
Minimize to tray instead of exiting |
| clearClipboardSensitiveData | removeSensitiveFromKeyboard | Boolean | false |
Auto-clear clipboard timer |
| clipboardTimer | clipboardTimer | Integer | 30 |
Seconds before clearing clipboard (1-999) |
| useFavicon | useRichIcons | Boolean | false |
Download website favicons for entries |
| useEntriesSyncOnDatasourceAccess | useEntriesSyncSpaceAccess | Boolean | false |
Auto-sync entries when accessing workspace |
| useHubEmbeddedBrowser | hubEmbeddedBrowser | Boolean | true |
Use embedded browser for Devolutions Cloud authentication |
| shareUsageData | shareAnonymousData | Boolean | true |
Share anonymous usage statistics |
| lockingOption | lockingOption | String | (none) |
Lock method: password, biometric, windowsCredentials |
| useBackgroundLock | useBackgroundLock | Boolean | false |
Lock when minimized to tray |
| useLockWhenInactive | useLockWhenInactive | Boolean | false |
Lock after period of inactivity |
| lockInactivityDelay | lockInactivityDelay | Integer | 30 |
Seconds before auto-lock (30-3600) |
| Code | Language |
|---|---|
en-US |
English (United States) |
fr |
French |
de |
German |
es |
Spanish |
cs |
Czech |
hu |
Hungarian |
it |
Italian |
nl |
Dutch |
pl |
Polish |
ru |
Russian |
sv |
Swedish |
tr |
Turkish |
uk |
Ukrainian |
zh-CHS |
Chinese (Simplified) |
zh-TW |
Chinese (Traditional) |
| Value | Description | Requirements |
|---|---|---|
| password | Master password | User sets password on first lock |
| biometric | Fingerprint/Face ID | Biometric hardware required |
| windowsCredentials | Windows Hello | Windows 10/11 with Windows Hello |
Note: If Windows Hello is not available, falls back to password.
msiexec /i Workspace.msi /qn ^
DVLS_SERVER_URL="https://devolutions-server.company.com" ^
LOCKING_OPTION="windowsCredentials" ^
USE_LOCK_WHEN_INACTIVE="true" ^
LOCK_INACTIVITY_DELAY="300" ^
CLEAR_CLIPBOARD_SENSITIVE_DATA="true" ^
CLIPBOARD_TIMER="60"
# With Organization ID
msiexec /i Workspace.msi /qn ^
HUB_NAME="mycompany" ^
ORGANIZATION_ID="12345678-1234-1234-1234-123456789abc" ^
LANGUAGE="fr" ^
REDUCE_TO_TRAY_ON_CLOSE="true"
# Without Organization ID (for Devolutions Cloud instances that don't require it)
msiexec /i Workspace.msi /qn ^
HUB_NAME="mycompany" ^
LANGUAGE="fr" ^
REDUCE_TO_TRAY_ON_CLOSE="true"
Create a working folder (e.g., C:\IntuneApps\Workspace\) and place these files:
Workspace.msiconfig.cfg(created via Tools – Custom installation or manually)Install-Workspace.ps1(PowerShell script below)
Create Install-Workspace.ps1:
# Install-Workspace.ps1
# Source files in the Intune package
$ConfigSource = "$PSScriptRoot\config.cfg"
$ConfigTarget = "C:\Program Files\config.cfg"
$MsiPath = "$PSScriptRoot\Workspace.msi"
# Copy config.cfg to Program Files
try {
Copy-Item -Path $ConfigSource -Destination $ConfigTarget -Force
} catch {
Write-Host "Error copying config file: $($_.Exception.Message)"
exit 1
}
# Install MSI silently with DEPLOY_CONFIG parameter
$Arguments = "/i `"$MsiPath`" /qn /norestart DEPLOY_CONFIG=`"C:\Program Files\config.cfg`""
$Process = Start-Process "msiexec.exe" -ArgumentList $Arguments -Wait -PassThru
# Return exit code to Intune
exit $Process.ExitCode
Use the Microsoft Win32 Content Prep Tool (IntuneWinAppUtil.exe):
IntuneWinAppUtil.exe -c C:\IntuneApps\Workspace -s Install-Workspace.ps1 -o C:\IntuneApps\Output
In Microsoft Intune Portal:
Navigate to: Apps – Windows – Add – Windows app (Win32)
App Package File: Upload
Workspace.intunewinApp Information: Fill in name, description, publisher
Program configuration:
Install command:
powershell.exe -ExecutionPolicy Bypass -File .\Install-Workspace.ps1Uninstall command:
msiexec.exe /x {PRODUCT-CODE-GUID} /qn /norestartInstall behavior: System
Requirements: Windows 10 1607+ (64-bit)
Detection Rules: MSI product code (auto-detected)
Assignments: Assign to target groups
When the app is deployed to a device, the following happens automatically:
Intune downloads and executes
Install-Workspace.ps1The script copies
config.cfgtoC:\Program Files\config.cfgThe script installs the MSI with
DEPLOY_CONFIG="C:\Program Files\config.cfg"The MSI reads the configuration file and writes it to
%ProgramData%\net.devolutions\Workspace\DefaultConfig.cfgWhen a user launches Devolutions Password Manager, the app detects the system-wide config and applies it
The result: the configuration file is distributed with the application, placed automatically in the correct location, and the installation is fully silent and Intune-compatible.
Install command:
msiexec /i Workspace.msi /qn /norestart DEPLOY_CONFIG="%~dp0Config.cfg"
Uninstall command:
msiexec /x {PRODUCT-CODE} /qn /norestart
Detection method: Registry key
HKLM\SOFTWARE\Devolutions\Workspace\Version
Create config.cfg:
{
"dvls": [
{
"name": "Production Devolutions Server",
"serverUrl": "https://devolutions-server-prod.company.com"
},
{
"name": "Development Devolutions Server",
"serverUrl": "https://devolutions-server-dev.company.com"
},
{
"name": "Test Devolutions Server",
"serverUrl": "https://devolutions-server-test.company.com"
}
],
"configs": {
"language": "en-US",
"shareUsageData": false
}
}
Deploy via:
msiexec /i Workspace.msi /qn DEPLOY_CONFIG="\\fileserver\IT\Workspace\config.cfg"
Configuration file present but settings not applied.
Check file location: Verify correct path (
%ProgramData%\net.devolutions\Workspace\DefaultConfig.cfg)Check JSON validity: Validate JSON syntax (no trailing commas, proper quotes)
Check permissions: User must have read access to config file
Verify indicator file: Check if
config.readyfile exists in same directoryCheck logs: Review application logs for parsing errors
Problem: System-wide configuration ignored.
Solution: Create
config.readyfile:
type nul > "%ProgramData%\net.devolutions\Workspace\config.ready"
Problem: USER_CONFIG fails in silent/automated installs, config ends up in
C:\Users\Default\AppData\Local.Cause: USER_CONFIG requires active user session context, which isn't available during automated MSI installation.
Solution: Use DEPLOY_CONFIG for enterprise deployments:
# CORRECT for Intune/SCCM
msiexec /i Workspace.msi /qn /norestart DEPLOY_CONFIG="%~dp0Config.cfg"
# WRONG for automated deployment
msiexec /i Workspace.msi /qn /norestart USER_CONFIG="%~dp0Config.cfg"
MSI parameters not creating configuration.
Check parameter syntax: Ensure proper quoting (use
"value", not'value')Log MSI installation: Add
/l*v install.logto see detailed errorsVerify PowerShell execution: Check if execution policy blocks scripts
Administrative rights: Ensure installer runs with elevation
Example with logging:
msiexec /i Workspace.msi /qn /l*v C:\Temp\install.log DVLS_SERVER_URL="https://server.com"
Settings revert to defaults after restart.
User vs System Config: System config only applies if user config doesn't exist. Once user modifies settings, they are saved to user config and override system defaults.
Group Policy Override: Check if GPO is enforcing settings
File Permissions: Verify write permissions to user config location
Problem: Import fails with "workspace already exists" message.
Explanation: Configuration parser detects duplicates by normalized URL (case-insensitive, trailing slash removed).
Remove existing workspace manually before importing
Edit configuration file to remove duplicate entries
Use Custom Installation tool to merge configurations
Windows Hello not activating.
Windows Hello Setup: Ensure Windows Hello is configured in Windows Settings
Fallback: System automatically falls back to password if hardware unavailable
Check logs: Review application logs for biometric initialization errors
Before deploying to all users:
Create a test user/device group
Apply configuration to test group
Verify workspaces and settings work as expected
Roll out to production
Always use DEPLOY_CONFIG for:
Intune deployments
SCCM deployments
Silent/unattended installations
Multi-user machines
Shared workstations
Only use USER_CONFIG for:
Interactive installations by end users
Single-user devices
Testing scenarios
Maintain documentation of your configuration including:
Which workspaces are pre-configured
What settings are enforced
Expected user experience
Support contact for issues
Inform users:
Workspaces will be pre-configured
They still need to log in with their credentials
Configuration happens on first app launch
Contact IT if workspaces don't appear
Recommended security settings:
{
"lockingOption": "windowsCredentials",
"useBackgroundLock": true,
"useLockWhenInactive": true,
"lockInactivityDelay": 300,
"clearClipboardSensitiveData": true,
"clipboardTimer": 60,
"shareUsageData": false
}
Why:
Enforces Windows Hello authentication
Locks app immediately when backgrounded
Auto-locks after 5 minutes of inactivity
Clears clipboard after 60 seconds
Disables usage data collection (optional)
All URLs must:
Include protocol (
https://)Be valid, accessible URLs
Not end with trailing slash (app will normalize)
Examples:
https://devolutions-server.company.comhttps://password-manager.devolutions.appdevolutions-server.company.com(missing https://)http://devolutions-server.company.com(HTTP not recommended)
Domain-Joined: Use Roaming AppData (
TARGET_LOCATION="roaming") for profile syncStandalone: Use Local AppData (
TARGET_LOCATION="local") or System (TARGET_LOCATION="system")
{
"dvls": [
{
"name": "Devolutions Server",
"serverUrl": "https://devolutions-server.example.com"
}
]
}
msiexec /i Workspace.msi /qn /norestart DEPLOY_CONFIG="\\server\share\Config.cfg"
Pre-configuration allows IT administrators to deploy Devolutions Password Manager with pre-configured settings and workspaces (Devolutions Server and Devolutions Cloud instances) across managed macOS endpoints. This eliminates the need for end-users to manually configure the application after installation.
Zero-touch deployment: Users start with fully configured applications
Consistency: Ensure all users have the same workspaces and settings
Time savings: Eliminate manual configuration steps
Centralized management: Configure from MDM console
Policy enforcement: Can prevent users from changing settings
Enterprise standard: Recommended approach for managed macOS fleets
IT Admin configures workspaces and settings via MDM or configuration files
MDM pushes configuration to managed devices
User launches app for the first time
App reads configuration and creates workspaces automatically
User authenticates to complete the connection (enters credentials)
Authentication required: Pre-configured workspaces are created in a "pending" state. Users must still authenticate (log in) to complete the connection.
First launch only: Configuration is applied once on first launch. Subsequent changes require app reinstallation or manual configuration.
Credentials NOT Stored: Pre-configuration does NOT include user credentials. Users must log in with their own credentials.
Deploy configuration via Mobile Device Management (MDM) solutions for managed macOS environments.
Use case: Jamf Pro, Microsoft Intune for Mac, other MDM solutions
Priority: Highest (overrides all file-based configurations)
Preference domain:
net.devolutions.authenticator
Centralized management: Configure from MDM console
Policy enforcement: Can prevent users from changing settings
Highest priority: Overrides local configuration files
Enterprise standard: Recommended approach for managed macOS fleets
See MDM/Managed Preferences section for detailed instructions.
Deploy a pre-created .cfg file to target systems.
Use Case: Scripted deployments, non-MDM environments, testing
System-Wide Location:
/Library/Application Support/Devolutions/Workspace/DefaultConfig.cfgPer-User Location:
~/Library/Application Support/Workspace/Config.cfg
See Configuration file structure section for details.
For manual configuration or scripting:
# Set language
defaults write net.devolutions.authenticator language -string "en-US"
# Enable tray minimize
defaults write net.devolutions.authenticator reduceToTrayOnClose -bool true
# Set locking option
defaults write net.devolutions.authenticator lockingOption -string "biometric"
Use case: Manual setup, testing, shell scripts
Download or copy the Jamf Pro JSON Schema for Devolutions Password Manager:
Click to expand: Devolutions Password Manager Jamf Pro JSON Schema
{
"title": "Devolutions Password Manager Configuration (net.devolutions.authenticator)",
"description": "Configuration settings for Devolutions Password Manager deployed via Jamf Pro. These settings are deployed as managed preferences to managed devices.",
"__version": "1.0",
"__preferencedomain": "net.devolutions.authenticator",
"options": {
"remove_empty_properties": true
},
"properties": {
"dvls": {
"title": "DVLS Configuration",
"description": "Devolutions Server connection settings",
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"title": "Server Name",
"description": "Display name for the Devolutions Server",
"type": "string",
"default": "Devolutions Server"
},
"serverUrl": {
"title": "Server URL",
"description": "Full URL to the Devolutions Server (e.g., https://server.company.com)",
"type": "string",
"pattern": "^https?://.*"
},
"serverVersion": {
"title": "Server Version",
"description": "Devolutions Server version (optional)",
"type": "string",
"default": ""
}
},
"required": ["serverUrl"]
},
"default": []
},
"hubs": {
"title": "Devolutions Cloud Configuration",
"description": "Devolutions Cloud connection settings",
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"title": "Devolutions Cloud URL",
"description": "Full Devolutions Cloud URL (e.g., https://yourcompany.devolutions.app)",
"type": "string",
"pattern": "^https://.*\\.devolutions\\.app$"
},
"organizationId": {
"title": "Organization ID",
"description": "Organization identifier for Devolutions Cloud",
"type": "string"
},
"type": {
"title": "Devolutions Cloud Type",
"description": "Devolutions Cloud connection type (optional)",
"type": "string"
},
"version": {
"title": "Devolutions Cloud Version",
"description": "Devolutions Cloud version compatibility",
"type": "string",
"default": "2020"
}
},
"required": ["url"]
},
"default": []
},
"configs": {
"title": "Application Settings",
"description": "User preferences and application behavior settings",
"type": "object",
"properties": {
"language": {
"title": "Language",
"description": "Default language for Devolutions Password Manager interface",
"type": "string",
"enum": [
"en-US", "fr", "de", "es", "cs", "hu", "it", "nl", "pl", "ru", "sv", "tr", "uk", "zh-CHS", "zh-TW"
],
"default": "en-US",
"options": {
"enum_titles": [
"English", "Français", "Deutsch", "Español", "Čeština", "Magyar", "Italiano",
"Nederlands", "Polski", "Русский", "Svenska", "Türkçe", "Українська", "简体中文", "繁體中文"
]
}
},
"reduceToTrayOnClose": {
"title": "Minimize to Tray on Close",
"description": "When enabled, closing the window minimizes to system tray instead of quitting",
"type": "boolean",
"default": false
},
"clearClipboardSensitiveData": {
"title": "Clear Clipboard Sensitive Data",
"description": "Automatically clear sensitive data from clipboard after a specified timeout",
"type": "boolean",
"default": false
},
"clipboardTimer": {
"title": "Clipboard Timeout (seconds)",
"description": "Duration in seconds before clearing clipboard when sensitive data clearing is enabled",
"type": "integer",
"enum": [30, 60, 120, 180, 240, 300, 0],
"default": 30,
"options": {
"enum_titles": ["30 seconds", "1 minute", "2 minutes", "3 minutes", "4 minutes", "5 minutes", "Never"]
}
},
"useFavicon": {
"title": "Use Favicons",
"description": "Download and display website favicons for entries",
"type": "boolean",
"default": false
},
"useEntriesSyncOnDatasourceAccess": {
"title": "Sync Entries on Workspace Access",
"description": "Automatically synchronize entries when accessing a workspace",
"type": "boolean",
"default": false
},
"useHubEmbeddedBrowser": {
"title": "Use Devolutions Cloud Embedded Browser",
"description": "Open Devolutions Cloud connections in embedded browser (disable if using credential providers)",
"type": "boolean",
"default": true
},
"lockingOption": {
"title": "Locking Method",
"description": "Authentication method used when locking/unlocking Devolutions Password Manager. Leave empty for no locking method.",
"type": "string",
"enum": ["", "password", "biometric"],
"default": "",
"options": {
"enum_titles": ["None", "Password/PIN", "Biometric (Touch ID)"]
}
},
"useBackgroundLock": {
"title": "Lock When Backgrounded",
"description": "Automatically lock the application when minimized or sent to system tray",
"type": "boolean",
"default": false
},
"useLockWhenInactive": {
"title": "Auto-Lock When Inactive",
"description": "Automatically lock the application after a period of inactivity",
"type": "boolean",
"default": false
},
"lockInactivityDelay": {
"title": "Inactivity Lock Delay (seconds)",
"description": "Time in seconds before locking due to inactivity (requires Auto-Lock to be enabled)",
"type": "integer",
"enum": [30, 60, 120, 180, 240, 300],
"default": 30,
"options": {
"enum_titles": ["30 seconds", "1 minute", "2 minutes", "3 minutes", "4 minutes", "5 minutes"]
}
}
}
},
"preventStartup": {
"title": "Prevent Startup",
"description": "When true, prevents Devolutions Password Manager from starting automatically after configuration deployment",
"type": "boolean",
"default": true
}
}
}
In Jamf Pro, navigate to: Computers – Configuration Profiles – Application & Custom Settings
Click Configure and upload the JSON schema file
Configure your desired settings using the GUI interface provided by Jamf
Scope the profile to your target computers
Deploy the configuration profile
If not using Jamf Pro, you can create a standard macOS configuration profile:
Example profile (com.devolutions.workspace.mobileconfig):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PayloadContent</key>
<array>
<dict>
<key>PayloadType</key>
<string>net.devolutions.authenticator</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>PayloadIdentifier</key>
<string>net.devolutions.authenticator.config</string>
<key>PayloadUUID</key>
<string>GENERATE-UUID-HERE</string>
<key>PayloadDisplayName</key>
<string>Devolutions Password Manager Configuration</string>
<key>language</key>
<string>en-US</string>
<key>reduceToTrayOnClose</key>
<true/>
<key>lockingOption</key>
<string>biometric</string>
<key>dvls</key>
<array>
<dict>
<key>name</key>
<string>Corporate DVLS</string>
<key>serverUrl</key>
<string>https://devolutions-server.company.com</string>
</dict>
</array>
</dict>
</array>
</dict>
</plist>
Deploy via:
Jamf Pro: Configuration Profiles – Upload profile
Microsoft Intune: Device Configuration – Custom profile
Other MDMs: Custom configuration profile upload
Navigate to: Devices – Configuration profiles – Create profile.
Platform: macOS.
Profile type: Custom.
Upload the configuration profile (
.mobileconfigfile).Assign to target groups.
Deploy.
On a managed Mac:
# Check if preferences are set
defaults read net.devolutions.authenticator
# Check for specific setting
defaults read net.devolutions.authenticator language
Configuration files use the .cfg extension and contain JSON-formatted data.
{
"hubs": [
{
"url": "https://mycompany.devolutions.app",
"organizationId": "00000000-0000-0000-0000-000000000000",
"type": "Business",
"version": ""
}
],
"dvls": [
{
"name": "Production DVLS",
"serverUrl": "https://devolutions-server.company.com",
"serverVersion": ""
},
{
"name": "Development DVLS",
"serverUrl": "https://devolutions-server-dev.company.com",
"serverVersion": ""
}
],
"configs": {
"language": "en-US",
"reduceToTrayOnClose": true,
"clearClipboardSensitiveData": true,
"clipboardTimer": 30,
"useFavicon": true,
"useEntriesSyncOnDatasourceAccess": false,
"useHubEmbeddedBrowser": true,
"shareUsageData": false,
"lockingOption": "biometric",
"useBackgroundLock": true,
"useLockWhenInactive": true,
"lockInactivityDelay": 300
}
}
Array of Devolutions Cloud instances to configure.
| Field | Type | Required | Description |
|---|---|---|---|
| url | string | Yes | Devolutions Cloud URL (e.g., https://mycompany.devolutions.app) |
| organizationId | string | Yes | Organization GUID |
| type | string | No | Always "Business" (auto-populated) |
| version | string | No | Devolutions Cloud version (auto-populated on first connection) |
Array of Devolutions Server instances to configure.
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | Yes | Display name for the server |
| serverUrl | string | Yes | (Devolutions Server URL (e.g., https://devolutions-server.company.com) |
| serverVersion | string | No | Server version (auto-populated on first connection) |
Application settings to pre-configure.
See Configuration settings reference for complete list.
Path:
~/Library/Application Support/Workspace/Config.cfgPriority: Highest for user-specific configs
Path:
/Library/Application Support/Devolutions/Workspace/DefaultConfig.cfgPriority: Applied if user config doesn't exist
Priority: Highest (overrides all file-based configs)
Preference domain:
net.devolutions.authenticatorKeys: Same as
configsobject in JSON formatConfiguration: Via MDM profile or
defaultscommand
Configuration sources are checked in the following order (first found wins):
macOS managed preferences – MDM/Jamf policies (highest priority)
User configuration file – User-specific config
System configuration file – System-wide default (copied to user location)
Complete reference of all configurable settings.
| Export Key (Config/MDM) | Type | Default | Description |
|---|---|---|---|
| language | String | en-US |
Application UI language |
| reduceToTrayOnClose | Boolean | false |
Minimize to tray instead of exiting |
| clearClipboardSensitiveData | Boolean | false |
Auto-clear clipboard timer |
| clipboardTimer | Integer | 30 |
Seconds before clearing clipboard (1-999) |
| useFavicon | Boolean | false |
Download website favicons for entries |
| useEntriesSyncOnDatasourceAccess | Boolean | false |
Auto-sync entries when accessing workspace |
| useHubEmbeddedBrowser | Boolean | true |
Use embedded browser for Devolutions Cloud authentication |
| shareUsageData | Boolean | true |
Share anonymous usage statistics |
| lockingOption | String | (none) | Lock method: password, biometric |
| useBackgroundLock | Boolean | false |
Lock when minimized to tray |
| useLockWhenInactive | Boolean | false |
Lock after period of inactivity |
| lockInactivityDelay | Integer | 30 |
Seconds before auto-lock (30-3600) |
| Code | Language |
|---|---|
en-US |
English (United States) |
fr |
French |
de |
German |
es |
Spanish |
cs |
Czech |
hu |
Hungarian |
it |
Italian |
nl |
Dutch |
pl |
Polish |
ru |
Russian |
sv |
Swedish |
tr |
Turkish |
uk |
Ukrainian |
zh-CHS |
Chinese (Simplified) |
zh-TW |
Chinese (Traditional) |
| Value | Description | Requirements |
|---|---|---|
| password | Master password | User sets password on first lock |
| biometric | Touch ID | Touch ID hardware required |
Using Jamf JSON Schema:
Upload the JSON schema to Jamf Pro
Configure via GUI:
Devolutions Server configuration: Add server with URL
https://devolutions-server.company.comLocking Method: Biometric (Touch ID)
Lock When Backgrounded: Enabled
Auto-Lock When Inactive: Enabled
Inactivity Lock Delay: 5 minutes (300 seconds)
Scope to target computers
Deploy
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PayloadContent</key>
<array>
<dict>
<key>PayloadType</key>
<string>net.devolutions.authenticator</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>PayloadIdentifier</key>
<string>net.devolutions.authenticator.config</string>
<key>PayloadUUID</key>
<string>REPLACE-WITH-UNIQUE-UUID</string>
<key>PayloadDisplayName</key>
<string>Devolutions Password Manager Cloud Configuration</string>
<key>hubs</key>
<array>
<dict>
<key>url</key>
<string>https://mycompany.devolutions.app</string>
<key>organizationId</key>
<string>12345678-1234-1234-1234-123456789abc</string>
<key>type</key>
<string>Business</string>
<key>version</key>
<string>2020</string>
</dict>
</array>
<key>configs</key>
<dict>
<key>language</key>
<string>en-US</string>
<key>lockingOption</key>
<string>biometric</string>
</dict>
</dict>
</array>
</dict>
</plist>
#!/bin/bash
# Configure Devolutions Server (complex structure requires plist file)
defaults write net.devolutions.authenticator dvls -array-add \
'{name = "Production DVLS"; serverUrl = "https://devolutions-server.company.com"; }'
# Configure application settings
defaults write net.devolutions.authenticator language -string "en-US"
defaults write net.devolutions.authenticator lockingOption -string "biometric"
defaults write net.devolutions.authenticator useBackgroundLock -bool true
defaults write net.devolutions.authenticator useLockWhenInactive -bool true
defaults write net.devolutions.authenticator lockInactivityDelay -int 300
defaults write net.devolutions.authenticator clearClipboardSensitiveData -bool true
defaults write net.devolutions.authenticator clipboardTimer -int 60
#!/bin/bash
# Create system-wide configuration directory
sudo mkdir -p "/Library/Application Support/Devolutions/Workspace"
# Deploy configuration file
sudo cp "/path/to/config.cfg" "/Library/Application Support/Devolutions/Workspace/DefaultConfig.cfg"
# Set proper permissions
sudo chmod 644 "/Library/Application Support/Devolutions/Workspace/DefaultConfig.cfg"
Create config.cfg:
{
"dvls": [
{
"name": "Production DVLS",
"serverUrl": "https://devolutions-server-prod.company.com"
},
{
"name": "Development DVLS",
"serverUrl": "https://devolutions-server-dev.company.com"
},
{
"name": "Test DVLS",
"serverUrl": "https://devolutions-server-test.company.com"
}
],
"configs": {
"language": "en-US",
"shareUsageData": false
}
}
Deploy via script or manually place in system-wide location.
Configuration profile installed but settings not applying.
Verify preference domain: Ensure using
net.devolutions.authenticator(notnet.devolutions.workspace).Check profile status: System Preferences – Profiles – Verify profile is installed.
Force profile refresh:
sudo profiles renew -type enrollment.Check for conflicts: Remove any existing user configuration files.
Review logs: Check Console.app for Devolutions Password Manager – related errors.
Configuration file present but not being applied.
Check file location: Verify correct path (
/Library/Application Support/Devolutions/Workspace/DefaultConfig.cfg).Check JSON validity: Validate JSON syntax (no trailing commas, proper quotes).
Check permissions: Ensure file is readable by all users (
chmod 644).Check ownership: Should be owned by root or admin.
Delete user config: Remove
~/Library/Application Support/Workspace/Config.cfgto allow system config to apply.
Touch ID not activating.
Hardware Check: Verify Mac has Touch ID hardware
Touch ID Setup: Ensure Touch ID is configured in System Preferences – Touch ID
Fallback: System automatically falls back to password if hardware unavailable
Check logs: Review application logs for biometric initialization errors
Unsure which preference domain to use.
Solution: Always use net.devolutions.authenticator for all Devolutions Password Manager configurations (both mobile and desktop).
Settings revert to defaults after restart.
MDM vs User config: MDM settings have highest priority and will override user changes
User vs System config: System config only applies if user config doesn't exist
File permissions: Verify write permissions to user config location
Import fails with "workspace already exists" message.
Explanation: Configuration parser detects duplicates by normalized URL (case-insensitive, trailing slash removed).
Remove existing workspace manually before applying configuration.
Edit configuration to remove duplicate entries.
Delete user config file to force re-import of system config.
Before deploying to all users:
Create a test computer group in Jamf/Intune.
Apply configuration to test group.
Verify workspaces and settings work as expected.
Roll out to production.
Always use MDM/Managed preferences for:
Jamf Pro managed Macs
Intune managed Macs
Any MDM-managed environment
Benefits:
Centralized management
Policy enforcement
Highest priority (overrides local configs)
Enterprise standard approach
Maintain documentation of your MDM configuration including:
Which workspaces are pre-configured
What settings are enforced
Expected user experience
Support contact for issues
Inform users:
Workspaces will be pre-configured
They still need to log in with their credentials
Configuration happens on first app launch
Contact IT if workspaces don't appear
Recommended security settings:
{
"lockingOption": "biometric",
"useBackgroundLock": true,
"useLockWhenInactive": true,
"lockInactivityDelay": 300,
"clearClipboardSensitiveData": true,
"clipboardTimer": 60,
"shareUsageData": false
}
Why:
Enforces Touch ID authentication
Locks app immediately when backgrounded
Auto-locks after 5 minutes of inactivity
Clears clipboard after 60 seconds
Disables usage data collection (optional)
All URLs must:
Include protocol (
https://)Be valid, accessible URLs
Not end with trailing slash (app will normalize)
Examples:
https://devolutions-server.company.comhttps://password-manager.devolutions.appdevolutions-server.company.com(missing https://)http://devolutions-server.company.com(HTTP not recommended)
For Jamf Pro deployments, always use the JSON schema:
Provides user-friendly GUI interface
Validates configuration before deployment
Prevents syntax errors
Shows all available options with descriptions
{
"dvls": [
{
"name": "Devolutions Server",
"serverUrl": "https://devolutions-server.example.com"
}
]
}
net.devolutions.authenticator
/Library/Application Support/Devolutions/Workspace/DefaultConfig.cfg
defaults read net.devolutions.authenticator
MDM (Mobile Device Management) pre–configuration allows IT administrators to automatically provision Devolutions Password Manager workspaces (Devolutions Server and Devolutions Cloud) and application settings on managed iOS devices before users first launch the app.
Zero–touch deployment: Users receive pre–configured workspaces.
Consistent configuration: Ensure all users have the same settings.
Reduced support burden: No need to manually guide users through setup.
Enforce security policies: Pre–configure biometric lock, clipboard timers, etc.
IT Admin configures workspaces and settings in MDM console (Jamf or Apple MDM).
MDM pushes configuration to managed devices.
User launches app for the first time.
App reads MDM configuration and creates workspaces automatically.
User authenticates to complete the connection (enters credentials).
Authentication Required: Pre–configured workspaces are created in a "pending" state. Users must still authenticate (log in) to complete the connection.
First Launch Only: Configuration is applied once on first launch. Subsequent changes require app reinstallation or manual configuration.
Credentials NOT Stored: MDM pre–configuration does NOT include user credentials. Users must log in with their own credentials.
Jamf Pro server or Apple MDM solution
Devolutions Password Manager deployed via MDM (App Store or in–house)
iOS 13.0 or later on managed devices
Devices enrolled in MDM
Log in to Jamf Pro.
Navigate to Mobile Device Apps – Find "Devolutions Password Manager" app.
Click on the app – Go to App Configuration tab.
Click Add to create a new configuration.
In the App configuration screen:
Select: Upload specfile to the Jamf AppConfig Generator for a GUI form (recommended), OR
Select: Enter configuration directly as a plist/dictionary in Jamf Pro
Jamf Pro uses the AppConfig community standard for iOS managed app configuration. The specfile provides a GUI form in the Jamf AppConfig Generator where administrators can configure settings without writing raw configuration.
Download the Devolutions Password Manager AppConfig specfile.
Open the Jamf AppConfig Generator.
Upload the specfile and configure settings using the GUI form.
Download the generated configuration plist from the generator.
In Jamf Pro, navigate to Mobile Device Apps – Devolutions Password Manager – App Configuration.
Paste the generated plist into the App Configuration field, scope to target devices, and deploy.
If not using the specfile, you can enter configuration directly as a plist dictionary in Jamf Pro. Use the flat key format below — the app automatically transforms flat keys (e.g., dvls_serverUrl, hub_url) into the internal nested structure:
<dict>
<!–– Devolutions Server ––>
<key>dvls_serverUrl</key>
<string>https://devolutions-server.company.com</string>
<!–– Devolutions Cloud ––>
<key>hub_url</key>
<string>https://password-manager.devolutions.app</string>
<key>hub_organizationId</key>
<string>your–org–id</string>
<!–– Application Settings ––>
<key>language</key>
<string>en–US</string>
<key>lockingOption</key>
<string>biometric</string>
<key>shareUsageData</key>
<false/>
<key>useBackgroundLock</key>
<true/>
<key>backgroundLockDelay</key>
<integer>0</integer>
<key>useLockWhenInactive</key>
<true/>
<key>lockInactivityDelay</key>
<integer>300</integer>
<key>useFavicon</key>
<true/>
<key>autoSearch</key>
<false/>
<key>useHubEmbeddedBrowser</key>
<true/>
</dict>
Note: The flat key format (dvls_serverUrl, hub_url) is used for Jamf managed app configuration. The app automatically detects this format and transforms it into the internal nested structure. A display name is auto–generated from the DVLS URL.
Set Distribution Method to appropriate scope (users, devices, or groups).
Click Save.
Push the configuration to target devices.
On a managed iOS device:
Install/launch Devolutions Password Manager.
App should automatically show pre–configured workspaces.
User taps workspace – enters credentials – connects.
{
"name": string, // Display name (required)
"serverUrl": string, // Full URL with https:// (required)
"serverVersion": string // Version like "2024.1" (optional)
}
{
"url": string, // Full URL with https:// (required)
"organizationId": string, // Org ID (optional)
"type": "business", // Always "business" (required)
"version": "2020" // Always "2020" (required)
}
| Setting | Type | Valid Values | Description |
|---|---|---|---|
| language | String | "en-US", "fr", "de", "es", etc. | App display language |
| lockingOption | String | "", "biometric" | App locking method |
| shareUsageData | Boolean | true, false | Share anonymous usage analytics |
| useBackgroundLock | Boolean | true, false | Lock when app goes to background |
| backgroundLockDelay | Integer | 0, 60, 300, 900, 1800, 3600 | Delay before locking when backgrounded (seconds) |
| useLockWhenInactive | Boolean | true, false | Enable auto-lock after inactivity |
| lockInactivityDelay | Integer | 30, 60, 120, 180, 240, 300 | Inactivity timeout (seconds) |
| useFavicon | Boolean | true, false | Use website favicons |
| autoSearch | Boolean | true, false | Enable auto-search in vaults |
| useHubEmbeddedBrowser | Boolean | true, false | Use embedded browser for Devolutions Cloud authentication |
| highlightSpecialCharacters | Boolean | true, false | Highlight special characters in passwords |
Jamf Configuration (using schema GUI):
Devolutions Server: Add one server
Name: "Corporate DVLS"
Server URL: "https://devolutions-server.acme.com"
Server Version: "2024.1"
Devolutions Cloud instances: Leave empty
Application settings: Leave default
Direct JSON (if not using schema):
{
"dvls": [
{
"name": "Corporate DVLS",
"serverUrl": "https://devolutions-server.acme.com",
"serverVersion": "2024.1"
}
]
}
Jamf Configuration (using schema GUI):
Devolutions Cloud instances: Add one Devolutions Cloud instance
Devolutions Cloud URL: "https://password-manager.devolutions.app"
Organization ID: (leave empty or enter your org ID)
Application Settings:
Locking Method: "Biometric (Touch ID/Face ID)"
Lock When Backgrounded: Enabled
Background Lock Delay: "Immediately"
Auto–Lock When Inactive: Enabled
Inactivity Lock Delay: "3 minutes"
Direct JSON (if not using schema):
{
"hubs": [
{
"url": "https://password-manager.devolutions.app",
"organizationId": "",
"type": "business",
"version": "2020"
}
],
"configs": {
"lockingOption": "biometric",
"useBackgroundLock": true,
"backgroundLockDelay": 0,
"useLockWhenInactive": true,
"lockInactivityDelay": 180
}
}
Jamf Configuration (using schema GUI):
Devolutions Server: Add multiple
Server 1: Name "Production DVLS", URL "https://devolutions-server–prod.company.com"
Server 2: Name "Test DVLS", URL "https://devolutions-server–test.company.com"
Devolutions Cloud instances: Add one
Devolutions Cloud URL: "https://password-manager.devolutions.app"
Organization ID: "org–abc123"
Application Settings:
Language: "English"
Share Usage Data: Disabled
Direct JSON (if not using schema):
{
"dvls": [
{
"name": "Production devolutions-server",
"serverUrl": "https://devolutions-server–prod.company.com",
"serverVersion": "2024.1"
},
{
"name": "Test devolutions-server",
"serverUrl": "https://devolutions-server–test.company.com",
"serverVersion": "2024.1"
}
],
"hubs": [
{
"url": "https://password-manager.devolutions.app",
"organizationId": "org–abc123",
"type": "business",
"version": "2020"
}
],
"configs": {
"language": "en–US",
"shareUsageData": false
}
}
Problem: Users report no pre–configured workspaces appear.
Solutions:
Verify MDM enrollment:
iOS: Settings – General – VPN & Device Management – Check profile
Check configuration syntax:
Validate JSON syntax (use jsonlint.com)
Ensure all required fields are present
Verify app is MDM–managed:
App must be deployed via MDM (not manually installed from App Store)
Re–apply configuration:
Delete app – Reinstall via MDM – Configuration applies on first launch
Users stuck with pending workspaces they can't remove.
New in version 2025.3.2: Users can now delete pending workspaces
From drawer menu: Long–press workspace – Select "Remove"
From pending screen: Tap "Remove" button
Settings don't match expected values.
Check data types:
Booleans: Use
true/false(not"true"/"false"strings)Integers: Use numbers without quotes (e.g.,
60not"60")Strings: Always use quotes (e.g.,
"en–US")
Verify setting names:
Check spelling (e.g.,
lockInactivityDelaynotlockInactivityTimeout)Case–sensitive (use exact casing shown in schema)
Duplicate workspaces appear. Configuration was applied multiple times (app reinstalled or configuration changed).
Pre–configuration checks for existing workspaces by URL
If duplicates exist, users can delete extras via drawer menu
Face ID/Touch ID not activating.
Check device support: Verify device has Face ID or Touch ID hardware
Check iOS settings: Ensure Face ID/Touch ID is set up in Settings
Check permissions: App may need biometric permission from user
Fallback: System automatically falls back to passcode if biometric unavailable
Before deploying to all users:
Create a test user/device group in Jamf.
Apply configuration to test group.
Verify workspaces and settings work as expected.
Roll out to production.
For Jamf Pro deployments:
Always use the AppConfig specfile (option A).
Provides user–friendly GUI form via the Jamf AppConfig Generator.
Validates configuration before deployment.
Prevents syntax errors.
Shows all available options with descriptions.
Maintain documentation of your MDM configuration including:
Which workspaces are pre–configured
What settings are enforced
Expected user experience
Support contact for issues
Inform users:
Workspaces will be pre–configured
They still need to log in with their credentials
Configuration happens on first app launch
Contact IT if workspaces don't appear
Recommended security settings:
{
"lockingOption": "biometric",
"useBackgroundLock": true,
"backgroundLockDelay": 0,
"useLockWhenInactive": true,
"lockInactivityDelay": 300,
"shareUsageData": false
}
Why:
Enforces Face ID/Touch ID authentication
Locks app immediately when backgrounded
Auto–locks after 5 minutes of inactivity
Disables usage data collection (optional)
Minimum Version: 2025.3.2 (for full pending workspace support)
Devolutions Server versions: Devolutions Server 2023.3+ recommended
iOS: 13.0+ required
All URLs must:
Include protocol (
https://)Be valid, accessible URLs
Not end with trailing slash (app will normalize)
Examples:
https://devolutions-server.company.comhttps://password-manager.devolutions.appdevolutions-server.company.com(missing https://)http://devolutions-server.company.com(HTTP not recommended)
For organizations with multiple environments (prod, dev, test):
Create separate Jamf configuration profiles for each environment
Scope each profile to appropriate device groups
Users in each environment get correct workspaces automatically
{
"dvls": [
{
"name": "Devolutions Server",
"serverUrl": "https://devolutions-server.example.com"
}
]
}
net.devolutions.workspace.mobile
Download the AppConfig specfile.
Upload to the Jamf AppConfig Generator.
Configure settings via the GUI form.
Download the generated plist.
In Jamf Pro: Mobile Device Apps – Devolutions Password Manager – App Configuration.
Paste the plist, scope to target devices, and deploy.