Appearance
Definitions and data
Definitions describe what the app should do. Records are the actual information the app stores and retrieves.
| Definition | Example | Purpose |
|---|---|---|
| UserType | Teacher | An organization access role |
| ObjectType | Student | A kind of record |
| DynamicField | Name, Grade, Active | A typed part of an ObjectType's schema |
| Relationship definition | Student ↔ Teacher | Which types of records may connect |
| DynamicQuery | Active Teachers | Source ObjectType, filters, and output fields |
| DynamicGroup | Student roster | A dataset plus table, form or spreadsheet presentation |
| DynamicView | Student dashboard | A page composed from groups and other components |
A UserType may optionally reference an ObjectType for profile data. These are still separate definitions: a role controls access; a profile schema describes data.
Fields and queries
A select or multiselect field can have manual choices or reference a reusable DynamicQuery. That reference includes an option label field and an optional value field; record ID is the default value mapping.
Groups can read an ObjectType directly or use a query for rows. A group field may independently use a query for live relationship choices. Views supply typed record contexts; group scopes explicitly define how those contexts narrow rows.
Configuration is not execution
Saved queries now execute with the selected role’s data permissions, and DynamicGroups render their results as tables, forms or Sheets. Query-backed field mappings remain configuration-only: live option lookup and record-time validation are still required.
Relationship directions at a glance
Under Definitions & Relationships → Relationships, the panel above the table explains both directions of every active relationship. For Enrollment → Section with Sources per target = Many and Targets per source = One, it says each Enrollment record can connect to at most one Section record, and each Section record can connect to many Enrollment records.
Adding or editing a relationship updates its explanation as fields change. Drafts show Unsaved; Cancel restores the saved explanation, while Save updates the active overview. Partial drafts prompt for missing ObjectTypes or limits. “One” always means at most one connection, not that a connection is required. The panel describes definitions; it does not grant access or change record connections.

