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": {
    // ...
  }
}
VariableRequiredDescription

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": {
      "loss_enabled": true
    },
    "overwrite_values": {
      "theft_enabled": true
    },
    "computed_values": {
      "policy_start_date": {
        "value": {
          "type": "jsonlogic",
          "schema": {
            "var": "active_policy.quote.customer_input.start_date"
          }
        }
      }
    },
    "requests": [
      {
        "type": "quote"
      },
      {
        "type": "policy",
        "field_definition": [
          {
            "name": "optin1",
            "validation": "required_true"
          }
        ]
      },
      {
        "type": "payment"
      }
    ]
  },
  "layout": {
    // ...
  },
  "flow": [
    {
      // ...
    }
  ]
}
VariableRequiredExampleDescription

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.date_format

No

"DD/MM/YYYY"

See date 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