Skip to content

Form

A form for collecting data from a user.

PropertyTypeRequiredDescription
iduuidYesThe form's unique identifier.
namestringYesThe form's name.
descriptionstringNoThe form's description.
versionstringNo
instructionsstring or array<File>NoThe form's instructions.
jsonSchemaFormJsonSchemaNoThe form's JSON schema used to render the form and validate responses.
uiSchemaFormUISchemaNoThe form's UI schema used to render the form in the browser.
mappingToCommonGrantsMappingSchemaNoA mapping from form schema to CommonGrants schema.
mappingFromCommonGrantsMappingSchemaNoA mapping from CommonGrants schema to form schema.
customFieldsrecord<CustomField>NoCustom attributes about the form itself, not custom fields within the form.
createdAtutcDateTimeYesThe timestamp (in UTC) at which the record was created.
lastModifiedAtutcDateTimeYesThe timestamp (in UTC) at which the record was last modified.

A JSON example of this model.

{
"id": "b7c1e2f4-8a3d-4e2a-9c5b-1f2e3d4c5b6a",
"name": "Form A",
"description": "Form A description",
"instructions": "Form A instructions",
"jsonSchema": {
"$id": "formA.json",
"type": "object",
"properties": {
"name": {
"first": {
"type": "string"
},
"last": {
"type": "string"
}
},
"email": {
"type": "string"
},
"phone": {
"type": "string"
}
}
},
"uiSchema": {
"type": "VerticalLayout",
"elements": [
{
"type": "Group",
"label": "Name",
"elements": [
{
"type": "Control",
"scope": "#/properties/name/first"
},
{
"type": "Control",
"scope": "#/properties/name/last"
}
]
},
{
"type": "Control",
"scope": "#/properties/email"
},
{
"type": "Control",
"scope": "#/properties/phone"
}
]
},
"mappingToCommonGrants": {
"name": {
"firstName": {
"field": "name.first"
},
"lastName": {
"field": "name.last"
}
},
"emails": {
"primary": {
"field": "email"
}
},
"phones": {
"primary": {
"field": "phone"
}
}
},
"mappingFromCommonGrants": {
"name": {
"first": {
"field": "name.firstName"
},
"last": {
"field": "name.lastName"
}
},
"email": {
"field": "emails.primary"
},
"phone": {
"field": "phones.primary"
}
},
"createdAt": "2025-01-01T17:01:01",
"lastModifiedAt": "2025-01-02T17:30:00"
}
VersionChangesSchema
0.3.0
  • Renamed model from Form to FormBase
  • Added version field
FormBase.yaml
0.2.0
  • Added Form model
Form.yaml

A JSON schema used to validate form responses.

A JSON example of this model.

{
"$id": "formA.json",
"type": "object",
"properties": {
"name": {
"first": { "type": "string" },
"last": { "type": "string" }
},
"email": { "type": "string" },
"phone": { "type": "string" }
}
}
VersionChangesSchema
0.2.0
  • Added FormJsonSchema model
FormJsonSchema.yaml

A UI schema used to render the form in the browser.

A JSON example of this model.

{
"type": "VerticalLayout",
"elements": [
{
"type": "Group",
"label": "Name",
"elements": [
{ "type": "Control", "scope": "#/properties/name/first" },
{ "type": "Control", "scope": "#/properties/name/last" }
]
},
{ "type": "Control", "scope": "#/properties/email" },
{ "type": "Control", "scope": "#/properties/phone" }
]
}
VersionChangesSchema
0.2.0
  • Added FormUISchema model
FormUISchema.yaml