Get desktop application:
View/edit binary Protocol Buffers messages
Used as response type in: rpc.API.ConfigureTool, rpc.API.DuplicateTool
Used as field type in:
, , ,A slug identifier for this tool used to reference it regardless of the build/environment; E.g. get-order, or get-order-2
Sentence case the action name e.g "Get order"
Skipped for auto generated tools
The action in the schema e.g "getOrder"
The names of the APIs in which this action sits
The name of the model on which this tool operates on.
Title of the tool. Default value: a template with the first field of the model if it's a text field, otherwise empty.
Template language support: markdown
The name of the entity associated with this tool, in a singular form (e.g. order, user). The word is lowercased; for generated tools it is the name of the model
The name of the entity associated with this tool, in a plural form (e.g. orders, users). The word is lowercased; for generated tools it is derived from name of the model
What features are enabled for this tool
A list of ... list actions, aka views. E.g. For a listOrders action; these would be tabs that show filtered orders by status (Processed, Pending, Completed) For auto-generated configs, this is only populated for: - list actions, with links to other list actions for the same model. - delete actions, with links to all list actions for the same model.
Only for List actions; Support offset and cursor
List of extenal links that will be displayed with this tool; used only for Get actions. Nothing for auto generated
Things you can do to this entry All update, deletes, creates, read and write on the same model. Only for List & Get; empty for mutations
The action to use to get an entry on this model. Default to a get action on the same model Used for: - fetching the record for prefilling a mutation - the link for clicking a row in a List - the action to call after a mutation
The action to use to create a new entry for this model. By default, this action link will be created for LIST and GET actions in the case where a CREATE action exists for the same model. It should be used to add a button on the tool to `Create a new/another record`
Embeded action groups are tools that will be displayed inline (embedded) withing the one that we're defining. These tools will be rendered within this action's configuration, and can have specific config overrides.
Configuration for different views that are enabled for this tool. A tool can be configured to be displayable in multiple types of views, for example, as a table, as an email inbox, or a kanban board. Each view will require specific configuration, these are supplied as part of the DisplayLayoutConfig message.
An optional array of sections. These act as groups of response/request fields depending of the type of the action: * create/update/write actions - sections can be used to split the forms in multiple subforms * list actions - sections can be used to combine multiple fields in one column/grid * get/ read actions - sections can be used to group response fields Fields are added to sections by having their `section_name` field referencing a section's... name.
Any validation errors for this tool
Any validation errors for this tool or any child elements of this tool (e.g. an action link that has an error)
Used in:
, , , , , ,The shape of this data is the input for the target action (i.e. 'where' and not 'values') but with JSON paths for field values. Is a full object tree e.g. { "where": { "id": "$.id" // JSON path on the current action repsonse. Can be recursive } }
Title/label to be displayed as part of the link/button created for this action link.
Empty by default
An optional string template which is to be displayed as a description/tagline for this link.
Empty by default
When the link is used within a list of action links, this field will be used to order items.
If this link should be opened up as a dialog/modal.
A CEL expression used to control the visibility of the action link. e.g. if expression is not true then the link will be hidden.
Any validation errors if
A kanban-like board display for list views. Each item in a list will be displayed as a card within swimlanes generated by a group_by_field
Used in:
A link to a get action that will be used when the item is expanded
The primary content of the card
The secondary content of the card
Content to be displayed in the right hand side of the card
If an avatar/image is to be displayed with every card
URL for the image.
The response field that will be used to group items within swimlanes
An optional update action that will be used when an item will move between swimlanes
Used in:
Export data TBC more options
Used in:
TBD
Used in:
Used in:
DataMapping maps a response value or a scalar value to inputs. For each input's key we can have one of: - a path to a response field - a dataMapping object (for nested fields) - a scalar value
Used in:
Used in:
The type of the view: e.g. Inbox, Board, List, Calendar, Table, Data Grid
Any validation errors for this display layout
Any validation errors for this display layout or any child elements of it (e.g. an action link that has an error)
Used in:
Used in:
A CEL expression used to control the visibility of the link. e.g. if expression is not true then the link will be hidden.
A gallery view for displaying a list of images.
Used in:
The primary content
The secondary content
The image to be displayed.
Used in:
The field that contains the image.
The alt text of the image.
A data-grid view, similar to a table view but providing rich editing and data manipulation features.
Used in:
The primary content
The secondary content
The action to be used when editing rows inline.
If the inline editing of rows is enabled.
An email inbox style display for list views. Each item in a list will be displayed as a row with an exapandable view
Used in:
A link to a get action that will be used when the item is expanded
The primary content of the row
The secondary content of the row
Content to be displayed in the right hand side of the row
If an avatar/image is to be displayed with every row
URL for the image.
Used in:
, , , , , , , , ,ProgressIndicatorConfig specifies configuration for a Stepper like field
Used in:
Path to the response field that gives us the stepper status. The field should be an ENUM state; though the stepper could work with any other type
Array of steps that should be displayed
If this progress indicator should be enabled or not
Used in:
Order of the step
Displayable title; If not set, value will be used
The values of the field which give the current state of the stepper. This is a repeated field to allow multiple values to map to the same step: e.g. For an order status * New => New * Awaiting packing || Items Picked || Packed => Processing * Handed to courier || In Transit => Shipped * Received => Completed
A display layouts for viewing db records (i.e. a get tool)
Used in:
Used in:
common fields
For a relation field - A list action with the fewest required inputs on the target model Used to display a lookup/dropdown to allow selecting a entry for this field
For a relation field - Used for loading a preview
If `type` is set to TYPE_ENUM then this value is the name of the the enum that the type refers to.
If this field is set then this type is referring to another model. In the case of TYPE_MODEL this type _is_ the model named here. In the case of other types e.g. TYPE_ID this type is referencing a field on the model named here, and the specific field being referenced is indicated by `field_name`.
This field indicates which field on `model_name` this type is referencing. This field should only be set if `model_name` is set.
The scope of the request(input) field. Not to be confused with field_type which gives us the data type, this type tells us if the input controls pagination, filters or it's a generic input field
The section field allows the grouping of inputs into sections for a leaner and better UI/UX. References a Section's name.
A CEL expression used to control the visibility of the field. e.g. if expression is not true then the field will be hidden.
Any validation errors for this field
Any validation errors for this field or any child elements of it (e.g. an action link that has an error)
Used in:
Generic input fields
Fields that control pagination
Fields used to filter the results of a list action (e.g. where)
Inputs used to control sorting of results
Used in:
default to sentence case
Based on @sortable()
Set if this field is a FK and link to a get/list action on the target model Or set to an appropriate list action if this field is a to-many field - for example, linking to listSaleItems(sale.id)
for file fields only, display images inline
If `type` is set to TYPE_ENUM then this value is the name of the the enum that the type refers to.
If this field is set then this type is referring to another model. In the case of TYPE_MODEL this type _is_ the model named here. In the case of other types e.g. TYPE_ID this type is referencing a field on the model named here, and the specific field being referenced is indicated by `field_name`.
This field indicates which field on `model_name` this type is referencing. This field should only be set if `model_name` is set.
The scope of the response field. Not to be confused with field_type which gives us the data type, this type tells us if the response is part of the pagination info or a generic api result field
The section field allows the grouping of responses into sections for a leaner and better UI/UX. References a Section's name.
A CEL expression used to control the visibility of the field. e.g. if expression is not true then the field will be hidden.
Any validation errors for this field
Any validation errors for this field or any child elements of it (e.g. an action link that has an error)
Used in:
Generic response fields (model fields, message fields)
Fields giving pagination info (e.g. cursor, pageSize, etc)
Fields with aggregated facet data
Used in:
Controls the visibility of the response field
Used in:
,This indicates that the value is NULL
A section represents a grouping of fields.
Used in:
A name that's referenced by response/request fields. Acts as an ID.
A title that will be displayed with this section
A description for this section. Can be used to display user help text or any other copy
Ordering of sections within a tool
A CEL expression used to control the visibility of the whole section. e.g. if expression != true then the section will be hidden
If this section should be displayed or not; this superseeds the visibility condition.
Used in:
, , , , , , , , , , , ,e.g. "{{$.firstName}} {{$.lastName}}" template syntax TBC.
If markdown is supported for this template. e.g. Italic text: _{{$.Var}}_
Used in:
A reference that persists for this tool group from build to build
Title of the group
A list of decorated ActionLinks which will be embedded within this group
Any validation errors for this group
Any validation errors for this group or any child elements of it (e.g. an action link that has an error)
When embedding ActionLinks, we need to provide extra-configuration that will override the link's target tool configuration
Used in:
The config for responses of the target tool for this embedded action can be altered for this embed group
Tools is a wrapper for a collection of action configs/tools
Used in:
, , , , ,A human friendly error message; e.g.: `The target tool does not exist.`
The field that is invalid: e.g. `tool_id` for a missing link's target tool.