The SpiderOak Groups or Enterprise application preferences and backup selection can be centrally managed via various means. Most administrators prefer to use our graphical Management Console. This article discusses the alternative of using a Registry configuration (for Windows) or JSON formatted configuration files (for Mac and Linux). Centrally configured settings will be used over locally-configured settings when enforcing policy.
Preferences vs. defaults
Preferences are the configuration settings that are enforced upon the application. The end user is not allowed the ability to manipulate any settings enforced through Preferences; these setting options will be inaccessible from the GUI. Defaults are settings that are configured by the application during the account setup process for the device, but not enforced after that. In case of conflicting settings, Preferences take precedence over Defaults.
Windows configuration
Windows central management is accomplished via the Registry. This enables administrators to push Registry settings via Group Policy Objects administered at the domain level. Both HKEY_CURRENT_USER
and HKEY_LOCAL_MACHINE
trees are supported with HKEY_LOCAL_MACHINE
taking priority. The Preferences address is \SOFTWARE\SpiderOak\SpiderOak Groups\Preferences
. The Defaults address is \SOFTWARE\SpiderOak\SpiderOak Groups\Defaults
.
Note that if you are manually editing preferences in HKEY_LOCAL_MACHINE
with regedit on 64-bit Windows with a 32-bit application, you need to place these in a 32-bit compatibility key, as: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\SpiderOak\SpiderOak Groups\Preferences
Supported Registry value types
The following types are used in SpiderOak Groups Registry settings:
Boolean:
- String (
REG_SZ
) of True or False REG_DWORD
orREG_QWORD
with values 0 for False, 1 for True.
String:
- String (
REG_SZ
)
Integer:
- String (
REG_SZ
) representation of the integer (example: "12345") REG_DWORD
orREG_QWORD
of the value.
Mac and Linux
On Mac and Linux the application preferences are stored in a JSON-formatted file. This is a text file with no extension stored locally on the filesystem.
On Mac, the file needs to be at /Library/Application Support/SpiderOak Groups/Preferences
. On Linux systems, please make sure it exists at /etc/SpiderOak Groups/Preferences
.
A sample JSON-formatted configuration file looks like the following:
{ "DisableSpaceCalculations": true, "ShowSplashScreenAtStartup": false }
Please note the location of commas through the above example. Every line except the last is followed by a comma (,).
To specify Defaults instead of Preferences, simply name the file Defaults instead of Preferences.
Supported JSON value types
- Boolean:
true
orfalse
. - String: Enclose the value within double-quotes
"like this string here"
. - Integer: Plain value, such as
9000
.
Preferences
Preferences that note specific options with a string require use of one of those strings.
Interface
Autorun: Boolean
- This setting will ensure that the desktop application launches at OS Startup. This will not work until the application is run for the first time.
LaunchMinimizedAtStartup: Boolean
- When enabled, the application will automatically launch minimized to the menu bar or system tray.
ShowSplashScreenAtStartup: Boolean
- Controls the display of the SpiderOak splash screen at application start.
DisableSpaceCalculations: Boolean
- Disables calculating the disk space of selections live.
AutomaticSoftwareUpdate: Boolean
- Enables or disables the periodic checking for software updates. If enabled, the end user will receive in-application notification of available updates. This setting is enabled by default.
ShowHotkeyEnabled: Boolean
- Enables or disables use of a hotkey to display the SpiderOak Groups application (Windows only).
ShowHotkeySymbol: String
- This is a single capitalized letter string value for the hotkey, such as S or O. The spacebar is represented as SPACE.
ShowHotkeyModifier: String
- This is a modifier key used with the hotkey. Options:
- Alt
- Ctrl
- Alt + Ctrl
- Alt + Shift
- Ctrl + Shift
Backup
DontArchiveFilesLargerThanEnabled: Boolean
- Controls disabling backup of large files.
DontArchiveFilesLargerThanSize: Integer
- Do not backup files larger than this many megabytes.
DontArchiveFilesOlderThanEnabled: Boolean
- Controls disabling backup of older files.
DontArchiveFilesOlderThanSeconds: Integer
- Do not backup files older than this many seconds.
Wildcards: String
- Wildcards to match against files to not back up.
FolderWildcards: String
- Wildcards for folders to not back up.
EnablePreviews: Boolean
- Enable or disable the in-client preview generator.
Schedule
For the values ending in ScanInterval
, the following options are available: Automatic, 5 Minutes, 15 Minutes, 30 Minutes, 1 Hour, 2 Hours, 4 Hours, 8 Hours, 12 Hours, 24 Hours, and 48 Hours. For the values ending in ScheduleDay
, the following options are available: Everyday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday, Weekdays, and Weekends. For the values ending in ScheduleHour
, values are strings of the integers “1” through “12”. For the AMPM
values, the value is either AM or PM.
FullScheduleEnable: Boolean
- Enable backup scheduling.
FullScanInterval: String
- Set the backup scan interval.
FullScheduleDay: String
- Which day(s) the backup is scheduled on.
FullScheduleHour: String
- Which hour the backup is scheduled on.
FullScheduleAMPM: String
- Whether the backup should run in the AM or PM.
SyncScheduleEnable: Boolean
- Enable sync scheduling.
SyncScanInterval: StringSync
- Set the sync scan interval.
SyncScheduleDay: String
- Which day(s) syncing is scheduled on.
SyncScheduleHour: String
- Which hour syncing is scheduled on.
SyncScheduleAMPM: String
- Whether syncing should run in the AM or PM.
ShareScheduleEnable: Boolean
- Enable share scheduling.
ShareScanInterval: String
- Set the share scan interval.
ShareScheduleDay: String
- Which day(s) share updating is scheduled on.
ShareScheduleHour: String
- Which hour share updating is scheduled on.
ShareScheduleAMPM: String
- Whether share updating should run in the AM or PM.
EnableAutomaticScan: Boolean
- Enable automatic re-scan of changed folders
Local copy
SecondaryCopyEnabled: Boolean
- Keep a copy of archived data blocks.
SecondaryCopyLocationType: String
- Set copy location type. Options:
- Local Folder
- FTP Server
- SFTP Server
SecondaryCopyLocation: String
- Path to copy location.
SecondaryCopyHostname: String
- If using FTP or SFTP, the server hostname.
SecondaryCopyPort: String
- FTP/SFTP port.
SecondaryCopyUsername: String
- FTP/SFTP username.
SecondaryCopyPassword: String
- FTP/SFTP password.
Network
HttpProxyEnabled: Boolean
- Enable the use of an HTTP proxy.
HttpProxyHost: String
- The proxy hostname.
HttpProxyPort: String
- The proxy port.
HttpProxyUsername: String
- The proxy username.
LimitBandwidthEnabled: Boolean
- Enable bandwidth limiting.
LimitUploadBucket: String
- Maximum upload in kilobytes per second.
PrivateCloudAddress: String
- The private cloud address to connect to instead of spideroak.com.
General
DownloadsLocation: String
- Path to the default download location.
Policy driven backup selection
A backup set policy consists of one of the following two structures: an exact
policy, or a combination of atleast
and/or atsetup
. The terms are defined as:
exact
- The backup selection policy is enforced strictly, with no user ability to add or remove paths or files to or from the backup selection
atleast
- The backup selection policy as entered is enforced, but end users have the ability to configure backup selection for locations not referenced in the policy as they see fit.
atsetup
- The backup selection is simply made at device setup time, and the end user may modify it as they please.
Each one of these policies consists of a list of selected
or deselected
paths. Selected paths are included in the backup set, and deselected paths are explicitly not backed up.
When removing policy, the application will not explicitly change the backup selection on the end-user, but simply not enforce any more policy.
Windows policy
Backup selection within the Windows application is in the Registry. HKEY_LOCAL_MACHINE
trees are supported. The location in the Registry for policy is under \SOFTWARE\SpiderOak\SpiderOak Groups\BackupSet
.
Note that if you are manually editing preferences in HKEY_LOCAL_MACHINE
with regedit on 64-bit Windows with a 32-bit application, you need to place these in a 32-bit compatability key, as: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\SpiderOak\SpiderOak Groups\BackupSet
.
TIP: WHEN ADDING MULTI-STRING VALUES TO THE REGISTRY VIA THE COMMAND LINE OR A SCRIPT, YOU CAN USE THE NULL CHARACTER (
\0
) TO SEPARATE THE VALUES.
The Registry key will contain the following values for exact policies:
exactselected
- A multi-string value containing a list of paths to select for backup.
exactdeselected
- A multi-string value containing a list of paths to deselect for backup.
The Registry key will contain the following values for atsetup and atleast selection:
atleastselected
- A multi-string value containing a list of paths to select.
atleastdeselected
- A multi-string value containing a list of paths to deselect for backup.
atsetupselected
- A multi-string value containing a list of paths to select.
atsetupdeselected
- A multi-string value containing a list of paths to deselect.
Mac and Linux policy
On MacOS X and Linux systems the application preferences are stored in a JSON-formatted file. This is a text file stored locally on the filesystem. On MacOS, the file needs to be at /Library/Application Support/SpiderOak Groups/BackupSet
. On Linux systems, please make sure it exists at /etc/SpiderOak Groups/BackupSet
.
An exact policy will consist of a single JSON object named exact
, containing member arrays named selected and/or deselected:
{ "exact": { "selected": ["path1", "path2", ...], "deselected": ["path3", "path4", ...] } }
An atleast or atsetup policy will consist of at least one JSON objects named atleast
and/or atsetup
. Each object will contain member arrays named selected
and/or deselected
. Using both atleast and atsetup the configuration file will look similar to this example:
{ "atsetup": { "selected": ["/home/admin/etc"] }, "atleast": { "selected": ["/home/admin/awk", "/home/admin/CustomProgram.conf"], "deselected": ["home/admin/awk/foo"] } }