Webapp manifest
A webapp manifest is a JSON structure used to build webapps. The target audience for this is developers. In an ideal world developers should be able to build any application by constructing a webapp manifest.
Root level
{
"version": "1.0",
"schema": {
// ...
}
}
version
Yes
Signifies which parser to use for this manifest. If it's decided to change the structure of manifests, it will be required to bump this to 2.0
. Then a different parser will be able to pick it up. For now, only 1.0
is used so this guide is focused only on this version.
schema
Yes
Contents of the manifest.
Schema level
{
"config": {
"initial_screen": "start",
"currency_template": "(currency) (amount, 1.2-2, ',', ' ')",
"date_format": "DD/MM/YYYY",
"default_values": {
"data.loss_enabled": true
},
"overwrite_values": {
"data.theft_enabled": true
},
"computed_values": {
"data.policy_start_date": {
"value": {
"type": "jsonlogic",
"schema": {
"var": "active_policy.quote.customer_input.start_date"
}
}
}
},
"requests": [
{
"type": "quote"
},
{
"type": "policy",
"field_definition": [
{
"path": "data",
"name": "optin1",
"validation": "required_true"
}
]
},
{
"type": "payment"
}
]
},
"layout": {
// ...
},
"flow": [
{
// ...
}
]
}
config.initial_screen
Yes
"start"
Unique identifier (path) of the initial screen.
config.currency_template
No
"(currency) (amount, 1.2-2, ',', ' ')"
See currency configuration article for more information.
config.default_values
No
{"field":"value"}
Object of default values applied to the form.
config.overwrite_values
No
{"field":"value"}
Overwrite input
state values.
config.computed_values
No
{"field":{"value":{...}}}
Computes values and applies them into input state. See computed values guide for more information.
config.requests
No
[{ ... }]
An array of requests that should be performed for this webapp along with frontend specific field definition (validation rules). If, for example, there are some frontend only specific validation rules, they should be defined here. Other, both backend and frontend validation rules should be defined in the root field definition object (it's not stored in the manifest). More on this in the api requests guide.
layout
No
{"custom":{"components":[ ... ]}}
Definitions of the layouts that can be used in webapp flow. See layout guide for more information.
flow
Yes
[{ ... }]
An array of component definitions. See building the flow article for more information.
Last updated