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.
![]()
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 exportAPI
# 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
Search
POST /setting/search returns a list of all settings with:
actor_name— Current user’s display nameuser_role— Current user’s rolesettings— Array ofListSettingApiSettingitemskeys— Array ofListSettingApiKeyitems
Get
POST /setting/get returns a single setting composed of sections:
| Section | Field | Description |
|---|---|---|
| Names | names | Name resources for the setting |
| Descriptions | descriptions | Description resources |
| Colors | colors | Color/branding resources (searchable via color_search) |
| Flags | flags | Feature flag configurations |
| Departments | departments | Department assignments |
| Profiles | profiles | Profile assignments |
| Auths | auths | Auth provider links |
| Provider Keys | provider_keys | API provider key resources |
| Auth Item Keys | auth_item_keys | Auth item key resources |
| Systems | systems | System-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
| Task | CLI | API Endpoint |
|---|---|---|
| List settings | glow settings search | POST /setting/search |
| Get setting | glow settings get | POST /setting/get |
| Create setting | glow settings create | POST /setting/create |
| Update setting | glow settings update | POST /setting/update |
| Duplicate setting | — | POST /setting/duplicate |
| Delete settings | glow settings delete | POST /setting/delete |
| Save draft | glow settings draft | PATCH /setting/draft |
| List drafts | — | POST /setting/drafts |
| Decrypt key | — | POST /setting/decrypt |
| CSV import | — | POST /setting/csv |
| Export | glow settings export | POST /setting/export |
| Refresh | — | POST /setting/refresh |
Related
- Settings API Reference
- Settings CLI Reference
- Auths Guide — auth provider management