Advanced application management in SpiderOak Groups and Enterprise

Last updated

The SpiderOak Groups or Enterprise application preferences and backup selection can be centrally managed via 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.

Remote Preferences and 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 registry settings:

Boolean:

  • String (REG_SZ) of True or False
  • REG_DWORD or REG_QWORD with values 0 for False, 1 for True.

String:

  • String (REG_SZ)

Integer:

 alt

 alt

  • String (REG_SZ) representation of the integer (example: "12345")
  • REG_DWORD or REG_QWORD of the value.

MacOS X and Linux

On MacOS X and Linux systems the application preferences are stored in a JSON-formatted file. This is a text file with no extension stored locally on the filesystem.

On MacOS, 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.

 alt

 alt

 alt

 alt

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 or False.
  • 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.

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.

MacOS and Linux Policy

 alt

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"]
    }
}