Departments
Departments are the organizational boundary in Glow. They scope nearly every resource — profiles, documents, parameters, fields, scenarios, simulations, and cohorts — so that different groups within your institution can work independently.
What is a Department?
A department is a top-level organizational unit that controls visibility and access across Glow. Every resource is scoped to one or more departments, and profiles can only see and manage resources within their assigned departments.
University example: The “University” department might be described as an “Innovative base of knowledge in the emerging field of computing.” All CS-related resources — profiles for Professor Smith and TA Johnson, parameters like Temperament and Class, documents like the Academic Integrity Policy — are scoped to this department.
How It Connects: The 5-Step Workflow
Departments underpin every step of the Glow workflow by scoping resources:
- Create Personas — Personas are scoped to a department.
- Assign to Scenarios — Scenarios, documents, and their parameters/fields are all scoped to a department.
- Add to Simulations — Simulations are scoped to a department.
- Add to Cohorts — Cohorts are scoped to a department. Only profiles belonging to the same department can be added.
- Run Attempts — Learners only see simulations within cohorts from their department.
Departments connect to nearly everything. They are the first resource you should set up when configuring a new Glow instance.
Create a department
Via the CLI
Calls below use
$GLOW_INSTANCE_URL+$GLOW_TOKEN— see Authentication to export them once.
glow departments create --body '{
"departments": [
{
"name": "University",
"description": "Innovative base of knowledge in the emerging field of computing"
}
]
}'Via the API
All endpoints use POST and require an Authorization: Bearer header.
curl -X POST $GLOW_INSTANCE_URL/department/create \
-H "Authorization: Bearer $GLOW_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"departments": [
{
"name": "University",
"description": "Innovative base of knowledge in the emerging field of computing"
}
]
}'Member assignment
Profiles belong to one or more departments and can only manage resources within those departments. Assignment happens by updating each profile’s department_ids, but the department detail surface is the natural place to audit who currently sits inside a scope.
What Departments Scope
| Resource | How departments apply |
|---|---|
| Profiles | A profile belongs to one or more departments and can only manage resources within those departments |
| Documents | Each document is scoped to a department |
| Parameters | Each parameter is scoped to a department |
| Fields | Each field is scoped to a department |
| Scenarios | Scenarios inherit department scope |
| Simulations | Simulations are scoped to a department |
| Cohorts | Cohorts are scoped to a department; only same-department profiles can be members |
Settings and flags
Departments have a settings section that controls department-level configuration. Settings are managed through the settings field on the department get response and the setting_ids field on the draft endpoint. Flags toggle department-level feature behavior.
The draft cycle
Departments support the draft workflow. Changes are saved as a draft before being published, with expected_version providing optimistic concurrency.
glow departments draft --body '{
"input_draft_id": "dept-draft-uuid",
"expected_version": 2,
"name": "University",
"description": "Innovative base of knowledge in the emerging field of computing"
}'Via the API, use PATCH /department/draft with fields like input_draft_id, expected_version, name, description, flag_id, and setting_ids.
Search & filter
curl -X POST $GLOW_INSTANCE_URL/department/search \
-H "Authorization: Bearer $GLOW_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"search": "University",
"page_size": 10
}'Bulk operations
Bulk delete and update follow the canonical all-matching shape — explicit IDs, or all: true with flat filter fields plus optional excluded_ids and a patch body. The persona surface is the prove-out; departments follow the same shape.
Delete by explicit IDs:
glow departments delete --body '{"department_ids": ["dept-1", "dept-2"]}'Delete all matching a filter (with exclusions):
glow departments delete --body '{
"all": true,
"search": "deprecated",
"excluded_ids": ["dept-keep-this-one"]
}'Bulk update via patch:
glow departments update --body '{
"all": true,
"search": "archived-",
"patch": { "archived": true }
}'Common Operations
| Task | CLI | API Endpoint |
|---|---|---|
| List all departments | glow departments list | POST /department/search |
| Get a department | glow departments get --body '{...}' | POST /department/get |
| Create departments | glow departments create --body '{...}' | POST /department/create |
| Update departments | glow departments update --body '{...}' | POST /department/update |
| Duplicate a department | — | POST /department/duplicate |
| Delete departments | glow departments delete --body '{...}' | POST /department/delete |
| Bulk delete (filter) | glow departments delete --body '{"all": true, "filter_…": "…"}' | POST /department/delete |
| Export to CSV | glow departments export | POST /department/export |
| Save a draft | glow departments draft --body '{...}' | PATCH /department/draft |
| List drafts | — | POST /department/drafts |
Related
- Departments API
- Departments CLI
- Profiles Guide — profiles belong to departments
- Documents Guide — documents are scoped to departments
- Parameters Guide — parameters are scoped to departments
- Cohorts Guide — cohorts are scoped to departments