---
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
```
````