Appearance
Custom Group and Sheet buttons
Owners configure Custom Group buttons in a Group or Sheet definition. Buttons belong to the Group and are inherited wherever it is placed in a View. Legacy query-only Groups must first be upgraded to contextual bindings.
Button types
- Open a View / Group: choose a destination View and optionally a Group placed inside it. Map destination contexts to the row ID or declared Group contexts. Navigation opens the authorized View and can focus its target Group.
- Group action buttons: choose an existing DynamicAction and map inputs to the current row, Group contexts or authorized prompted selections. The action dialog prepares inputs and confirms execution. Permissions, conditions and revision checks run again on the server.
- Redirect to a page: choose an application path or absolute HTTP(S) URL, with named query parameters from the row ID, Group contexts or readable displayed values. This navigates the browser; it does not execute an API request. Unreadable source bindings hide the button. Executable schemes, protocol-relative URLs and credential-bearing URLs are rejected.
Buttons have stable keys, text, icons, optional tooltips and optional narrower UserType visibility. Row placement is the default. Toolbar placement uses the selected record. Visibility never grants data access or mutation permission.
View inheritance
In Configure View → Group placement → Inherited Group buttons, inheritance starts enabled. A placement can disable inheritance, hide individual buttons, narrow UserTypes or move buttons to:
- Each row, using the clicked saved record.
- Group toolbar, using the selected record.
- View page buttons, using the selected record in the source Group.
View restrictions intersect Group grants and cannot broaden them. Read-only placements suppress DynamicActions and reject forged mutation requests, while retaining permitted navigation and redirects. Direct View page actions remain independent. Existing View-owned buttons remain supported.
Group contexts are remapped through the placement's context map. A button needing an unmapped optional context is omitted. Destinations enforce View visibility and context/data access; Group navigation always enters through a containing authorized View. References protect incompatible destination changes and retirement.
Editing and previews
Pending grid edits save before a button runs; validation failure stops invocation. Finish new-row drafts first. Summary results do not acquire record buttons. Owner previews show navigation and redirect controls, but mutation actions require a View.
DynamicActions currently create one record with up to four connections or update fields on one existing record. Conditions and duplicate checks narrow execution; explicit connection-creation grants and current revisions remain required. External API execution, response write-back and automatic triggers remain planned.

