--- myst: html_meta: "description lang=en": "Kasm Workspaces Import / Export Schema Versioning" "keywords": "Kasm, Export, Import, Schema, Restore, Versioning" "property=og:locale": "en_US" --- ```{title} Configuration Schema Versioning ``` (schema-version)= ## Configuration Schema Versioning and Details ### Alembic Version The `default_properties.yaml` as well as the schema and configurations exports will include an `alembic_version` property. The value is a unique hash that indicates the schema revision of the database and thus the format and properties that make up and import/export file. This version typically changes with each build of the application. The system will only allow imports and seeding of files that match it's internal `alembic_version`. This means that Administrators are not able to automatically export configurations from an older build of Workspaces and import it in a newer version - only between like versions. ### All Users Group ID The **All Users** group has special significance within the application and must be defined in the schema with group_id `68d557ac-4cac-42cc-a9f3-1c7c853de0f3` ### Default Global Settings The `default_properties.yaml` that ships with each build of workspaces will have a list of {doc}`Global Settings <../settings>` (`settings:`). Administrators are welcome to adjust the default values, but they should not add or remove settings as the system is expecting these exact settings to be defined. ````{dropdown} Example Global Settings :animate: fade-in Below is an example of a few global settings. The full configuration will have dozens. It is ok to adjust the values, but none of the entries should be removed, or other properties altered. ```{code-block} yaml :caption: '**Global Settings**' :emphasize-lines: 8,16 settings: - category: logging description: The logging protocol used, allowed values are internal, https, splunk, and elasticsearch name: log_protocol sanitize: false services_restart: manager,api title: Log Protocol value: internal value_type: string - category: logging description: The port to use for logging communication. name: log_port sanitize: false services_restart: manager,api title: Log Port value: '443' value_type: int ``` ```` ### Default Group Settings The `default_properties.yaml` that ships with each build of workspaces will have a list default {doc}`Group Settings <../groups>`. The system defaults are those that have no `group_id assigned`. Administrators should not add/remove or adjust the defaults. However, Administrators can assign additional group settings to existing groups, such as the **All Users** group, to change default behaviors for users. ````{dropdown} Example Group Settings :animate: fade-in Do not adjust the Default Group Settings - those that don't have `group_id`'s assigned. ```{code-block} yaml :caption: '**Default Group Settings (No Group ID Assigned)**' :emphasize-lines: 3 group_settings: - description: Allow audio streaming for a Kasm. group_id: null group_setting_id: "${uuid:group_setting_id:2}" name: allow_kasm_audio value: 'False' value_type: bool ``` ```{code-block} yaml :caption: '**Group Setting assigned to a specific group**' :emphasize-lines: 3 group_settings: - description: Allow audio streaming for a Kasm. group_id: 68d557ac-4cac-42cc-a9f3-1c7c853de0f3 group_setting_id: "${uuid:group_setting_id:1001}" name: allow_kasm_audio value: 'True' value_type: bool ``` ````