Skip to Content
Settings

Settings

Settings manages your Glow instance configuration — names, descriptions, colors, feature flags, departments, profiles, auth providers, provider keys, and system options. It supports full CRUD operations, a draft system with optimistic locking, and encrypted key management.

Settings page showing configuration panels for models, features, and display options

What is Settings?

Settings is the central configuration artifact for a Glow instance. It controls everything from branding (names, descriptions, colors) to access control (auth providers, profiles, departments) to operational flags (feature toggles, system options). A setting is composed of multiple sections, each containing resources that can be independently managed.

Settings uses a composable infra architecture — you can search for all settings, get one by ID, create new ones, update existing ones, duplicate, delete, and manage drafts with version-controlled optimistic locking.

Quick Start

CLI

Calls below use $GLOW_INSTANCE_URL + $GLOW_TOKEN — see Authentication to export them once.

# List all settings glow settings search # Get a specific setting by ID glow settings get --body '{"settings_id": "setting-uuid"}' # Get a setting with a specific draft loaded glow settings get --body '{"settings_id": "setting-uuid", "draft_id": "draft-uuid"}' # Create a new setting glow settings create --body '{"settings": [{"name": "CS Department Config", "description": "Settings for CS TA training"}]}' # Update a setting glow settings update --body '{"settings": [{"settings_id": "setting-uuid", "name": "Updated Name"}]}' # Delete settings glow settings delete --body '{"setting_ids": ["setting-uuid-1", "setting-uuid-2"]}' # Export settings as CSV glow settings export

API

# Search all settings curl -X POST $GLOW_INSTANCE_URL/setting/search \ -H "Authorization: Bearer $GLOW_TOKEN" \ -H "Content-Type: application/json" \ -d '{}' # Get a specific setting curl -X POST $GLOW_INSTANCE_URL/setting/get \ -H "Authorization: Bearer $GLOW_TOKEN" \ -H "Content-Type: application/json" \ -d '{"settings_id": "setting-uuid"}' # Create settings curl -X POST $GLOW_INSTANCE_URL/setting/create \ -H "Authorization: Bearer $GLOW_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "settings": [{ "name": "CS Department Config", "description": "Settings for CS TA training program" }] }'

CRUD Operations

POST /setting/search returns a list of all settings with:

  • actor_name — Current user’s display name
  • user_role — Current user’s role
  • settings — Array of ListSettingApiSetting items
  • keys — Array of ListSettingApiKey items

Get

POST /setting/get returns a single setting composed of sections:

SectionFieldDescription
NamesnamesName resources for the setting
DescriptionsdescriptionsDescription resources
ColorscolorsColor/branding resources (searchable via color_search)
FlagsflagsFeature flag configurations
DepartmentsdepartmentsDepartment assignments
ProfilesprofilesProfile assignments
AuthsauthsAuth provider links
Provider Keysprovider_keysAPI provider key resources
Auth Item Keysauth_item_keysAuth item key resources
SystemssystemsSystem-level configuration

The response also includes can_edit, disabled_reason, draft_version, and group_id for draft collaboration.

Create

POST /setting/create accepts an array of CreateSettingItem objects and returns per-item results.

Update

POST /setting/update accepts an array of UpdateSettingItem objects and returns per-item results.

Duplicate

POST /setting/duplicate clones a setting:

curl -X POST $GLOW_INSTANCE_URL/setting/duplicate \ -H "Authorization: Bearer $GLOW_TOKEN" \ -H "Content-Type: application/json" \ -d '{"setting_id": "setting-uuid"}'

Returns success, setting_id (new UUID), and message.

Delete

POST /setting/delete bulk-deletes settings by ID array:

curl -X POST $GLOW_INSTANCE_URL/setting/delete \ -H "Authorization: Bearer $GLOW_TOKEN" \ -H "Content-Type: application/json" \ -d '{"setting_ids": ["setting-uuid-1", "setting-uuid-2"]}'

Working with Drafts

Settings supports a draft system with optimistic locking for safe concurrent editing.

Saving a Draft

PATCH /setting/draft creates or updates a draft:

curl -X PATCH $GLOW_INSTANCE_URL/setting/draft \ -H "Authorization: Bearer $GLOW_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "input_draft_id": "existing-draft-uuid", "expected_version": 3, "name": "Updated TA Training Config", "department_ids": ["dept-cs", "dept-math"], "profile_ids": ["ta-1", "ta-2"], "auth_ids": ["auth-sso"] }'

Key fields:

  • input_draft_id — UUID of an existing draft to update (omit for new draft)
  • expected_version — Optimistic lock version (must match server’s version)
  • Resource IDs — department_ids, color_ids, profile_ids, auth_ids, provider_key_ids, auth_item_key_ids, threshold_ids
  • Inline values — name, name_id, description, description_id, flag_id

Response: success, draft_id, new_version, message, and form_state (server-authoritative form values).

Listing Drafts

POST /setting/drafts returns all drafts owned by the current profile:

curl -X POST $GLOW_INSTANCE_URL/setting/drafts \ -H "Authorization: Bearer $GLOW_TOKEN"

Loading a Draft

Pass draft_id to the get endpoint:

glow settings get --body '{"settings_id": "setting-uuid", "draft_id": "draft-uuid"}'

Decrypting Keys

Settings can store encrypted provider keys. To decrypt:

curl -X POST $GLOW_INSTANCE_URL/setting/decrypt \ -H "Authorization: Bearer $GLOW_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "setting_id": "setting-uuid", "key_id": "key-uuid" }'

Returns key (decrypted value), name, and actor_name.

CSV Import

Settings supports bulk import via CSV:

curl -X POST $GLOW_INSTANCE_URL/setting/csv \ -H "Authorization: Bearer $GLOW_TOKEN" \ -F "file=@settings.csv"

Returns upload_id, items (parsed setting items), mapped_fields, and row_count for preview before saving.

Common Operations

TaskCLIAPI Endpoint
List settingsglow settings searchPOST /setting/search
Get settingglow settings getPOST /setting/get
Create settingglow settings createPOST /setting/create
Update settingglow settings updatePOST /setting/update
Duplicate settingPOST /setting/duplicate
Delete settingsglow settings deletePOST /setting/delete
Save draftglow settings draftPATCH /setting/draft
List draftsPOST /setting/drafts
Decrypt keyPOST /setting/decrypt
CSV importPOST /setting/csv
Exportglow settings exportPOST /setting/export
RefreshPOST /setting/refresh
Last updated on