key: provider

description: Ingress controller type used by kubernetes


key: options

description:
These options are NOT for configuring Ingress's addon template.
They are used for its ConfigMap options specifically.

type: string

type: number

type: object


key: nodeSelector

description: NodeSelector key pair


key: extraArgs

description: Ingress controller extra arguments


key: dnsPolicy

description: DNS Policy


key: extraEnvs

description: Extra Env vars

type: array


key: extraVolumes

description: Extra volumes


key: extraVolumeMounts

description: Extra volume mounts


key: updateStrategy

description: nginx daemonset upgrade strategy


key: httpPort

description: Http port for ingress controller daemonset


key: httpsPort

description: Https port for ingress controller daemonset


key: networkMode

description: NetworkMode selector for ingress controller pods. Default is HostNetwork


key: tolerations

description: Tolerations for Deployments


key: defaultBackend

description: Enable or disable nginx default-http-backend

type: boolean


key: defaultHttpBackendPriorityClassName

description: Priority class name for Nginx-Ingress's "default-http-backend" deployment


key: nginxIngressControllerPriorityClassName

description: Priority class name for Nginx-Ingress's "nginx-ingress-controller" daemonset


key: serviceClusterIpRange

description: Virtual IP range that will be used by Kubernetes services


key: serviceNodePortRange

description: Port range for services defined with NodePort type


key: podSecurityPolicy

description: Enabled/Disable PodSecurityPolicy


key: alwaysPullImages

description: Enable/Disable AlwaysPullImages admissions plugin


key: secretsEncryptionConfig

description: Secrets encryption provider config


key: auditLog

description: Audit Log Configuration


key: admissionConfiguration

description: AdmissionConfiguration


key: eventRateLimit

description: Event Rate Limit configuration


key: clusterCidr

description: CIDR Range for Pods in cluster


key: clusterDomain

description: Domain of the cluster (default: "cluster.local")


key: infraContainerImage

description: The image whose network/ipc namespaces containers in each pod will use


key: clusterDnsServer

description: Cluster DNS service ip


key: failSwapOn

description: Fail if swap is enabled


key: generateServingCertificate

description: Generate per node kubelet serving certificates created using kube-ca


key: lb-version

description: overrides autodetection. Only support v2.


key: use-octavia

description: uses Octavia V2 service catalog endpoint


key: subnet-id

description: overrides autodetection.


key: floating-network-id

description: If specified, will create floating ip for loadbalancer, or do not create floating ip.


key: lb-method

description: default to ROUND_ROBIN.


key: provider

description: Monitoring server provider


key: options

description:
These options are NOT for configuring the Metrics-Server's addon template.
They are used to pass command args to the metric-server's deployment containers specifically.


key: nodeSelector

description: NodeSelector key pair


key: updateStrategy

description: Update strategy


key: replicas

description: Number of monitoring addon pods

type: integer


key: tolerations

description: Tolerations for Deployments


key: metricsServerPriorityClassName

description: Priority class name for Metrics-Server's "metrics-server" deployment


key: plugin

description: Network Plugin That will be used in kubernetes cluster


description: Plugin options to configure network properties


key: mtu

description: Set MTU for CNI provider


key: calicoNetworkProvider

description: CalicoNetworkProvider


key: canalNetworkProvider

description: CanalNetworkProvider


key: flannelNetworkProvider

description: FlannelNetworkProvider


key: weaveNetworkProvider

description: WeaveNetworkProvider


key: aciNetworkProvider

description: AciNetworkProvider


description: Network plugin daemonset upgrade strategy


key: force

description:
Drain node even if there are pods not managed by a ReplicationController, Job, or DaemonSet
Drain will not proceed without Force set to true if there are such pods


key: ignoreDaemonSets

description:
If there are DaemonSet-managed pods, drain will not proceed without IgnoreDaemonSets set to true
(even when set to true, kubectl won't delete pods - so setting default to true)


key: deleteLocalData

description: Continue even if there are pods using emptyDir


key: gracePeriod

description:
Period of time in seconds given to each pod to terminate gracefully.
If negative, the default value specified in the pod will be used


key: timeout

description: Time to wait (in seconds) before giving up for one try


key: maxUnavailableWorker

description: MaxUnavailableWorker input can be a number of nodes or a percentage of nodes (example, max_unavailable_worker: 2 OR max_unavailable_worker: 20%)


key: maxUnavailableControlplane

description: MaxUnavailableControlplane input can be a number of nodes or a percentage of nodes


key: ipAddress

description: link-local IP for nodelocal DNS


key: updateStrategy

description: Nodelocal DNS daemonset upgrade strategy


key: nodeSelector

description: NodeSelector key pair


key: nodeLocalDnsPriorityClassName

description: Priority class name for NodeLocal's "node-local-dns" daemonset


key: url

description: URL for the registry


key: user

description: User name for registry acces


key: password

description: Password for registry access


key: isDefault

description: Default registry


key: ecrCredentialPlugin

description: ECRCredentialPlugin


key: nodeName

description: Name of the host provisioned via docker machine


key: address

description: IP or FQDN that is fully resolvable and used for SSH communication


key: port

description: Port used for SSH communication


key: internalAddress

description: Optional - Internal address that will be used for components communication


key: role

description: Node role in kubernetes cluster (controlplane, worker, or etcd)


key: hostnameOverride

description: Optional - Hostname of the node


description: SSH usesr that will be used by RKE


key: dockerSocket

description: Optional - Docker socket on the node that will be used in tunneling


key: sshAgentAuth

description: SSH Agent Auth enable


key: sshKey

description: SSH Private Key


key: sshKeyPath

description: SSH Private Key Path


key: sshCert

description: SSH Certificate


key: sshCertPath

description: SSH Certificate Path


key: labels

description: Node Labels


key: taints

description: Node Taints


key: etcd

description: Etcd Service


key: kubeApi

description: KubeAPI Service


key: kubeController

description: KubeController Service


key: scheduler

description: Scheduler Service


key: kubelet

description: Kubelet Service


key: kubeproxy

description: KubeProxy Service


description: etcd image


key: alpine

description: Alpine image


key: nginxProxy

description: rke-nginx-proxy image


key: certDownloader

description: rke-cert-deployer image


key: kubernetesServicesSidecar

description: rke-service-sidekick image


key: kubedns

description: KubeDNS image


key: dnsmasq

description: DNSMasq image


key: kubednsSidecar

description: KubeDNS side car image


key: kubednsAutoscaler

description: KubeDNS autoscaler image


key: coredns

description: CoreDNS image


key: corednsAutoscaler

description: CoreDNS autoscaler image


key: nodelocal

description: Nodelocal image


key: kubernetes

description: Kubernetes image


key: flannel

description: Flannel image


key: flannelCni

description: Flannel CNI image


key: calicoNode

description: Calico Node image


key: calicoCni

description: Calico CNI image


key: calicoControllers

description: Calico Controllers image


key: calicoCtl

description: Calicoctl image


key: calicoFlexVol

description: CalicoFlexVol image


key: canalNode

description: Canal Node Image


key: canalCni

description: Canal CNI image


key: canalControllers

description: Canal Controllers Image needed for Calico/Canal v3.14.0+


key: canalFlannel

description: CanalFlannel image


key: canalFlexVol

description: CanalFlexVol image


key: weaveNode

description: Weave Node image


key: weaveCni

description: Weave CNI image


key: podInfraContainer

description: Pod infra container image


key: ingress

description: Ingress Controller image


key: ingressBackend

description: Ingress Controller Backend image


key: ingressWebhook

description: Ingress Webhook image


key: metricsServer

description: Metrics Server image


key: windowsPodInfraContainer

description: Pod infra container image for Windows


key: aciCniDeployContainer

description: Cni deployer container image for Cisco ACI


key: aciHostContainer

description: host container image for Cisco ACI


key: aciOpflexContainer

description: opflex agent container image for Cisco ACI


key: aciMcastContainer

description: mcast daemon container image for Cisco ACI


key: aciOvsContainer

description: OpenvSwitch container image for Cisco ACI


key: aciControllerContainer

description: Controller container image for Cisco ACI


key: aciGbpServerContainer

description: GBP Server container image for Cisco ACI


key: aciOpflexServerContainer

description: Opflex Server container image for Cisco ACI


key: nodes

description: Kubernetes nodes


key: services

description: Kubernetes components


key: network

description: Network configuration used in the kubernetes cluster (flannel, calico)


key: authentication

description: Authentication configuration used in the cluster (default: x509)


key: addons

description: YAML manifest for user provided addons to be deployed on the cluster


key: addonsInclude

description: List of urls or paths for addons


key: systemImages

description: List of images used internally for proxy, cert download and kubedns


key: sshKeyPath

description: SSH Private Key Path


key: sshCertPath

description: SSH Certificate Path


key: sshAgentAuth

description: SSH Agent Auth enable


key: authorization

description: Authorization mode configuration used in the cluster


key: ignoreDockerVersion

description: Enable/disable strict docker version checking


key: enableCriDockerd

description: Enable/disable using cri-dockerd


key: kubernetesVersion

description: Kubernetes version to use (if kubernetes image is specified, image version takes precedence)


key: privateRegistries

description: List of private registries and their credentials


key: ingress

description: Ingress controller used in the cluster


key: clusterName

description: Cluster Name used in the kube config


key: cloudProvider

description: Cloud Provider options


key: prefixPath

description: kubernetes directory path


key: winPrefixPath

description: kubernetes directory path for windows


key: addonJobTimeout

description: Timeout in seconds for status check on addon deployment jobs


key: bastionHost

description: Bastion/Jump Host configuration


key: monitoring

description: Monitoring Config


key: restore

description: RestoreCluster flag


key: rotateCertificates

description: Rotating Certificates Option


key: rotateEncryptionKey

description: Rotate Encryption Key Option


key: dns

description: DNS Config


key: upgradeStrategy

description: Upgrade Strategy for the cluster


key: caCertificates

description: Rotate CA Certificates


key: services

description: Services to rotate their certs


key: router-id

description: required


key: enabled

description: Enable/disable secrets encryption provider config


key: customConfig

description: Custom Encryption Provider configuration object


description: shopware cli project configuration definition file

required: entity payload

enum: equals multi contains prefix suffix not range until equalsAll equalsAny

type: string integer array boolean null

enum: AND OR XOR

required: type field

const: multi

required: type queries


key: url

description: URL to Shopware instance


description: When enabled, the assets will not be copied to the public folder


description: When enabled, the assets of extensions will be removed from the extension public folder. (Requires Shopware 6.5.2.0)


description: Paths to delete for the final build


description: Client ID of integration


description: Client Secret of integration


key: username

description: Username of admin user


key: password

description: Password of admin user


description: Disable SSL check for API requests


key: payload

description: API payload


key: type

description: filter type


key: field

description: field


key: value

description: value


description: Contains OpenRewrite resource descriptors like recipes and styles

format: duration


description: Identifies the resource type


description: Username


description: Password or access token


key: PythonVersion

description: An enumeration.


key: image

description: The name of the Docker image to run


key: entrypoint

description: The Docker entrypoint


description: The absolute path to the home directory inside the container

default: /root


Credentials for pulling a private container


key: python

description:
The major version of Python
Mutually exclusive with the image


key: env

description: The mapping or the list of environment variables


key: build

description: The bash commands to run during build stage


key: setup

description: The bash commands to run on the boot


key: cache

description: The directories to be cached between configuration runs


key: ports

description: Port numbers/mapping to expose


key: ide

description: The IDE to run


key: init

description: The bash commands to run


key: path

description: The path to the folder that must be stored as an output artifact


key: mount

description: Must be set to `true` if the artifact files must be saved in real-time


key: commands

description: The bash commands to run


key: artifacts

description: The list of output artifacts


key: port

description: The port, that application listens to or the mapping


key: gateway

description: The gateway IP address or domain to publish the service


key: $schema

description: The explicit schema set. It is optional, as GherKing is supported by schemastore.org, thus most IDE.


key: source

description: The source folder or glob pattern of the input feature files.


key: base

description: The base folder of the input feature files.


key: destination

description: The destination folder to put the output feature files.


key: clean

description: Whether the destination directory should be clean in advance.


key: verbose

description: Whether some information should be displayed on the screen.


key: install

description: Whether the missing precompilers (gpc-* packages) should be installed and save to the package.json. Packages will be installed in the current folder, and package.json created if it is not there yet.


key: compilers

description: The precompilers to use and their configuration.


key: gpcCustom

description: A custom precompiler configuration, implemented either as an object or a PreCompiler class.


description: Either the NPM package name to use, or the path to a JS file containing a PreCompiler.


key: configuration

description: The configuration object, if necessary, to be passed to the custom precompiler class.


key: gpcReplacer

description: This GherKing Precompiler is responsible to replace keys in feature files with given values.

const: gpc-replacer

type: string integer boolean number

required: path configuration


description: The key-value pairs to replace in the feature files.


key: gpcFilter

description: The Filter precompiler is responsible for including or excluding the elements of a feature file in the result, which match a cucumber-tag-expression (e.g., has a given tag, does not have a given tag).

const: gpc-filter

default: not @wip


description: Cucumber-tag-expression the filtering is based on


key: gpcForLoop

description: A precompiler of GherKing to loop scenarios and scenario outlines to repeat them.

const: gpc-for-loop

default: loop


key: maxValue

description: Maximum value of iteration.


key: tagName

description: Tag used to mark scenarios or outlines to be repeated.


key: format

description: Format of the scenario or outline name after repeating. These tokens must be used: ${name}, ${i}.


key: limitToMaxValue

description: Whether higher iteration values than the max should be limited to the max or error should be thrown (false).


key: gpcMacro

description: This precompiler is responsible for defining macros in feature files and then executing them.

const: gpc-macro


key: gpcRemoveComments

description: This precompiler removes all or particular type of semantic comments from the feature file.

const: gpc-remove-comments

enum: NONE BEFORE_TAGS PRECEDING DESCRIPTION TAG ROW DOC_STRING STEP START END ALL


key: keep

description: To set which comment types should be kept, not removed.


key: gpcRemoveDuplicates

description: The RemoveDuplicates precompiler is responsible for having only a reasonable amount of tags and/or rows in each feature file.

const: gpc-remove-duplicates


key: processTags

description: Should tags on the same level and from parent be de-duplicated.


key: processRows

description: Should table rows be de-duplicated.


key: gpcScenarioNumbering

description: The ScenarioNumbering precompiler is responsible for adding an index to all scenarios and scenario outlines.

const: gpc-scenario-numbering


description: The format, how index should be added to the name of the scenario/scenairo outline. Possible tokens: ${name} the original name, ${i} the index


key: gpcScenarioOutlineExpander

description: This precompiler is responsible for converting Scenario Outlines to single Scenarios as Cucumber would do and adds the first column as a tag.

const: gpc-scenario-outline-expander


key: ignoreTag

description: Tag used to mark scenarios to be ignored during expanding Scenario Outlines.


key: gpcScenarioOutlineNumbering

description: This precompiler can add numbering column to Examples tables, and apply formatting to the name of the Scenario Outline.

const: gpc-scenario-outline-numbering

default: ${name} - ${parameters}


key: addParameters

description: Should the example parameters be added to the name of the Scenario Outline.


key: parameterDelimiter

description: The delimiter to use when adding the parameters to the name of the Scenario Outline.


key: parameterFormat

description: The format how the output Scenario Outline name should look with the parameters. Tokens to use: ${name}, ${parameters}


key: addNumbering

description: Should an index be added to the name of the Scenario Outline.


key: numberingFormat

description: The format how the output Scenario Outline name should look with the index. Tokens to use: ${name}, ${i}


key: strictNaming

description: Should the existing numbering field (num) block execution (true) or be used for numbering (false).


key: gpcStepGroups

description: The StepGroups precompiler is responsible for correcting the gherkin keywords of steps to make the tests more readable.

const: gpc-step-groups


key: gpcTestData

description: This precompiler can load external data (JSON, CSV, or XLS/XLSX) into exmaples table.

const: gpc-test-data

type: string number


key: keepTag

description: Whether the load-tags should be kept or removed.


key: defaultValue

description: The default value to be added to the table if a column/value is not found.


key: appendData

description: Whether the loaded data should be appended to the existing rows of the examples table or overwritten.


key: ignoreKeyCase

description: Whether the casing of the example columns and data columns should be ignored.


key: gpcLicense

description: This precompiler can be used to inject License statement into the feature files.

const: gpc-license

enum: start end


key: licenseFile

description: The file's path where the license is stored.


key: licenseText

description: The exact license text. It can contain the ${LICENSE} token to set the content of the license file.


key: placement

description: The place to inject the license text, either in start or end comment.


key: formatOptions

description: Options to pass to gherkin-formatter, on how to format the output feature files.


key: oneTagPerLine

description: Should the tags be rendered separately, one by line?


key: separateStepGroups

description: Should step groups (when-then) be separated?


key: compact

description: Should empty lines be skipped, removed from the result?


key: lineBreak

description: The line break character(s).


key: indentation

description: The indentation character(s).


key: arrowParens

description: Include parentheses around a sole arrow function parameter.

default: always


description: Always include parens. Example: `(x) => x`


description: Omit parens when possible. Example: `x => x`


key: bracketSameLine

description: Put > of opening tags on the last line instead of on a new line.


key: bracketSpacing

description: Print spaces between brackets.


key: cursorOffset

description:
Print (to stderr) where a cursor at the given position would move to after formatting.
This option cannot be used with --range-start and --range-end.


key: editorconfig

description: Whether parse the .editorconfig file in your project and convert its properties to the corresponding Prettier configuration. This configuration will be overridden by .prettierrc, etc.


key: embeddedLanguageFormatting

description: Control how Prettier formats quoted code embedded in the file.

default: auto


description: Format embedded code if Prettier can automatically identify it.


description: Never automatically format embedded code.


key: endOfLine

description: Which end of line characters to apply.

default: lf


description: Line Feed only (\n), common on Linux and macOS as well as inside git repos


description: Carriage Return + Line Feed characters (\r\n), common on Windows


description: Carriage Return character only (\r), used very rarely


description:
Maintain existing
(mixed values within one file are normalised by looking at what's used after the first line)


key: filepath

description: Specify the input filepath. This will be used to do parser inference.


key: htmlWhitespaceSensitivity

description: How to handle whitespaces in HTML.

default: css


description: Respect the default value of CSS display property.


description: Whitespaces are considered sensitive.


description: Whitespaces are considered insensitive.


key: insertPragma

description: Insert @format pragma into file's first docblock comment.


key: jsxSingleQuote

description: Use single quotes in JSX.


key: parser

description: Which parser to use.


description: Flow


description: JavaScript


description: TypeScript


description: CSS


description: Less


description: SCSS


description: JSON


description: JSON.stringify


description: GraphQL


description: Markdown


description: MDX


description: Vue


description: YAML


description: Ember / Handlebars


description: HTML


description: Angular


description: Lightning Web Components


description: Custom parser


key: pluginSearchDirs

description:
Custom directory that contains prettier plugins in node_modules subdirectory.
Overrides default behavior when plugins are searched relatively to the location of Prettier.
Multiple values are accepted.


description: Disable plugin autoloading.


key: plugins

description: Add a plugin. Multiple plugins can be passed as separate `--plugin`s.


key: printWidth

description: The line length where Prettier will try wrap.


key: proseWrap

description: How to wrap prose.

default: preserve


description: Wrap prose if it exceeds the print width.


description: Do not wrap prose.


description: Wrap prose as-is.


key: quoteProps

description: Change when properties in objects are quoted.

default: as-needed


description: Only add quotes around object properties where required.


description: If at least one property in an object requires quotes, quote all properties.


description: Respect the input use of quotes in object properties.


key: rangeEnd

description:
Format code ending at a given character offset (exclusive).
The range will extend forwards to the end of the selected statement.
This option cannot be used with --cursor-offset.


key: rangeStart

description:
Format code starting at a given character offset.
The range will extend backwards to the start of the first line containing the selected statement.
This option cannot be used with --cursor-offset.


key: requirePragma

description:
Require either '@prettier' or '@format' to be present in the file's first docblock comment
in order for it to be formatted.


key: semi

description: Print semicolons.


key: singleAttributePerLine

description: Enforce single attribute per line in HTML, Vue and JSX.


key: singleQuote

description: Use single quotes instead of double quotes.


key: tabWidth

description: Number of spaces per indentation level.


key: trailingComma

description: Print trailing commas wherever possible when multi-line.


description: Trailing commas where valid in ES5 (objects, arrays, etc.)


description: No trailing commas.


description: Trailing commas wherever possible (including function arguments).


key: useTabs

description: Indent with tabs instead of spaces.


key: vueIndentScriptAndStyle

description: Indent script and style tags in Vue files.


key: overrides

description: Provide a list of patterns to override prettier configuration.


key: files

description: Include these files in this override.


key: excludeFiles

description: Exclude these files from this override.


key: options

description: The options to apply for this override.


key: livenessProbe

description:
Periodic probe of container liveness.
Container will be restarted if the probe fails.
More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes


key: readinessProbe

description:
Periodic probe of container service readiness.
Container will be removed from service endpoints if the probe fails.
More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes


key: name

description: Unique name for the component. It must be DNS-friendly


key: type

description: The type of component.

enum: http worker predeploy grpc-sso-proxy cron


description:
The service name is only useful for grpc-sso-proxy components. If present,
a health service will be spun up for the service name, and it can be
possible to perform auto updates of binaries.


key: command

description: Command describes how to run the workload


SSO Proxy settings for http components (grpc-sso-proxy has it enabled by default)


key: autoscaling

description: Autoscaling settings for components of type http, grpc-sso-proxy or worker


key: clientOf

description: datastores that connect to otherones need to pass in the reference claim here


description: The application name should match the repository's


key: components

description: Workloads to run


description: Tokens minted to securely interact with other applications


description: Named egress rules


key: datastores

description: List of datastores to provision


description: pass OIDC IDToken to upstream via Authorization Bearer header


description: skip requests that have verified JWT bearer tokens


description: bypass authentication for requests that match the method & path. Format: method=path_regex OR path_regex alone for all methods


key: $filter

description:
    An OData filter

    http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptionfilter

$filter

in: query


key: $orderby


key: $select

description:
    The OData `$select` query option.

    This is a comma separated string of fields to select. Only filtering flat properties is
    supported.

    http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptionselect


key: $team

description: A custom filter for filtering the query by teams the requesting user is a member of.

$team

enum: member manager


key: $top

description: Limit the number of entities returned.


key: appId

description: The ID of the app on which to perform an operation

appId

in: path


description: The ID of the app OAuth2 secret on which to perform an operation


key: appSamlSecretId

description: The ID of the app SAML secret on which to perform an operation


key: appServiceId

description: The id of the app service secret on which to perform an operation


key: assetId

description: The ID of the asset on which to perform an operation


key: blockId

description: The ID of the block on which to perform an operation, but without the organization scope.


key: blockVersion

description: The version of the block on which to perform an operation.


key: endpoint

description: The URL of the endpoint associated with the subscription.

endpoint

format: uri


key: language

description: The language on which to perform an operation


key: organizationId

description: The ID of the organization on which to perform an operation


key: resourceId

description: The ID of the resource on which to perform an operation


key: resourceType

description: The type of the resource on which to perform an operation


key: screenshotId

description: The ID of the app an app screenshot


key: view

description: The view of the resource to fetch.


description: The OAuth2 client credentials

required: appId redirectUri scope


key: schema

description: A representation of a user’s OAuth2 consent when logging in to an app.


description: The app ID to manage the OAuth2 consent for


key: redirectUri

description: The URI to redirect the user back to.


key: scope

description: The OAuth2 scope requested by the app.


key: resource

description: A resource definition

format: binary


description: A `multipart/form-data` representation of a resource.


key: assets

description: A list of assets that should be linked to the resource.


key: user

description: A user profile


key: app

description: An app response


description: A block definition response


key: default

description: The default error response.


key: invite

description: An invite response


An OAuth2 authorization code.


key: organization

description: An organization response


description: A resource response


key: subscriptions

description: A subscription response.


description: A mapping of resources names to resource subscriptions.


key: ActionDefinition

description: The base properties of an action definition.


key: remapBefore

description: This may be used to remap data before it is passed into the action function.


key: remapAfter

description: This may be used to remap data after it is passed into the action function.


key: onSuccess

description: Another action that is dispatched when the action has been dispatched successfully.


key: onError

description: Another action that is dispatched when the action has failed to dispatch successfully.


key: type

description:
This action sends a Google Analytics event.

It returns the input data.


key: target

description: The name of the analytics target event to send.


key: config

description: A remapper whose result will be sent to Google Analytics as additional context


key: App

description: An app definition defines what an app will look like.

format: hostname

default: unlisted

enum: public unlisted private

format: url


key: id

description:
The unique identifier for the app.

This value will be generated automatically by the API.


key: path

description:
The URL path segment on which this app is reachable.

This may only contain lower case characters, numbers, and hyphens. By default this is a
normalized version of the app name.


key: domain

description:
The domain name on which this app should be served.

If this is unspecified, the app will be served from the path on the domain of the server
`HOSTNAME` variable.


key: visibility

description:
Determine the app visibility of the app in the Appsemble app store.

This doesn’t affect whether or not the app can be accessed on its own domain.

- **public**: The app is publicly listed in the Appsemble app store.
- **unlisted**: The app store page can be accessed, but the app isn’t listed publicly in the
  Appsemble app store.
- **private**: The app is only visible to people who are part of the organization.


key: showAppDefinition

description: Whether or not people who have access to the app may see the app definition.


key: locked

description:
Determines whether this app should be locked from being updated.

This must be set to `false` before any other changes can be made to an app.


key: template

description: Determines whether this app should be included when fetching for templates.


key: longDescription

description:
A long description for the app.

The long desciption will be rendered on the app details page. Markdown content is supported.


key: screenshotUrls

description: A list of URLs referencing app screenshots


key: googleAnalyticsID

description: If this is specified, Google analytics will be applied to the app


key: sentryDsn

description:
The Sentry DSN to use for this app.

If this is specified, the given Sentry DSN will be used for error tracking. Apps without a custom
domain fall back to use the Appsemble server Sentry DSN.


key: sentryEnvironment

description:
The name that should be used as the sentry environment.

  This is only applied when `sentryDsn` is specified.


key: AppAccount

description: An user account connected to an app

format: email


key: name

description: The name as it is available in the app.


key: email

description: The email address as it is available in the app.


description: Whether this email address has been verified.


key: role

description: The role of the user within the app


key: sso

description: The single sign on configurations which link the user to an external account.


key: avatar

description: The URL of the avatar of the member.


key: AppDefinition

description: An app definition describes what an Appsemble app looks like.

required: name defaultPage pages

enum: login opt-in startup

default: en


description:
The human readable name of the app.

This will be displayed for example on the home screen or in the browser tab.


key: roles

description:
The list of roles that are allowed to view this app.

This list is used as the default roles for the roles property on pages and blocks, which can be
overridden by defining them for a specific page or block. Note that these roles must be defined in
`security.roles`.


key: description

description:
A short description describing the app.

This will be displayed on the app store.


key: layout

description: Properties related to the layout of the app.


key: notifications

description:
The strategy to use for apps to subscribe to push notifications.

If specified, push notifications can be sent to subscribed users via the _Notifications_ tab in the
app details page in Appsemble Studio. Setting this to `opt-in` allows for users to opt into
receiving push notifications by pressing the subscribe button in the App settings page. Setting this
to `startup` will cause Appsemble to immediately request for the permission upon opening the app.
If this is set to `login`, the app will request permissions for push notification once the user
logs in.

> **Note**: Setting `notifications` to `startup` is not recommended, due to its invasive nature.


key: defaultPage

description:
The name of the page that should be displayed when the app is initially loaded.

This **must** match the name of a page defined for the app.


key: defaultLanguage

description: The default language for the app.


key: resources

description:
Resources define how Appsemble can store data for an app.

The most basic resource has a `schema` property and defines the minimal security rules.


key: additionalProperties

description: A single resource definition.


key: security

description: Role definitions that may be used by the app.


key: pages

description: The pages of the app.


key: cron

description: A list of cron jobs that are associated with this app.


key: anchors

description: Helper property that can be used to store YAML anchors.


key: AppLayoutDefinition

description: The layout definition allows you to tweak several layout elements of the app.

enum: navbar navigation hidden

default: navbar

default: navigation

enum: bottom left-menu hidden

default: left-menu


key: login

description: The location of the login button.


key: settings

description:
The location of the settings button.

If set to `navigation`, it will only be visible if `login` is also visible in `navigation`.


key: feedback

description:
The location of the feedback button.

If set to `navigation`, it will only be visible if `login` is also visible in `navigation`.


key: navigation

description:
The navigation type to use.

If this is omitted, a collapsable side navigation menu will be rendered on the left.


key: AppMessages

description: The response object of an messages create call.

required: language messages


key: language

description: The language the messages represent.


key: force

description: If this is true, the app lock is ignored.


description: Settings for login in apps using third party OAuth2 providers

required: authorizationUrl clientId clientSecret icon name scope tokenUrl

format: date-time


key: id

description: An autogenerated ID


key: authorizationUrl

description: The OAuth2 redirect URL.


key: tokenUrl

description: The URL to request access tokens from.


key: clientId

description: The public client id which identifies Appsemble to the authorization server.


key: clientSecret

description: The OAuth2 client secret.


key: icon

description: A Font Awesome icon which represents the OAuth2 provider.


key: name

description: A display name which represents the OAuth2 provider.


key: scope

description: The login scope that will be requested from the authorization server.


key: userInfoUrl

description: The URL to request user info from


key: remapper

description: A remapper to apply on retrieved user information from the user info endpoint.


key: created

description: When the secret was created originally.


key: updated

description: When the secret was last updated.


key: AppServiceSecret

description: App service secret settings

required: urlPatterns authenticationMethod

enum: http-basic client-certificate client-credentials cookie custom-header query-parameter


description: An autogenerated ID.


key: serviceName

description: An optional name to give extra clarity what the secret is used for.


key: urlPatterns

description: The url pattern that is matched when a proxied request action is called.


key: authenticationMethod

description: The method to authenticate the request action with.


key: identifier

description: The parameter name, header name, username or certificate that goes with the secret.


key: secret

description: The secret to authenticate the proxied outgoing request with.


description: The URL to request access tokens from.


key: AppsembleMessages

description: A mapping of the messages for this language


key: core

description: Translations for the core of the app.


key: app

description: Translations for global block messages and meta properties of the app.


key: blocks

description: Translations for the core of the app.


key: additionalProperties

description: The name of the block type.


description: The version of the block.


key: messageIds

description: A list of custom message IDs used by the app.


key: ArrayRemapperDefinition

description:
If a remapper is an array, it represents a chain of remappers.

Each item represents a remapper which is called with the result of the remapper before it.

If an array is nested, it will be flattened. This allows you to create reusable remappers and
reference them using YAML anchors.


key: Asset

description: The response object of an asset create call.


key: id

description: The unique identifier for the asset.


key: mime

description: The IANA MIME type of the asset.


key: filename

description: The filename of the asset.


key: name

description: The given name of the asset. Assets may be referenced by their name or ID in the API.


key: BlockDefinition

description: A block that is displayed on a page.

required: type version

enum: float grow static

default: bottom right

enum:
top left
top
top right
left
right
bottom left
bottom
bottom right


key: type

description:
The type of the block.

A block type follows the format `@organization/name`. If the organization is _appsemble_, it may
be omitted.

Some examples:

- `form`
- `@amsterdam/splash`


key: version

description:
The version of the block to use.

Since blocks may change over time, a version must be specified in order to ensure that the block
will remain the same until it is manually updated.


key: layout

description: An override of the block’s default.


key: header

description: An optional header to render above the block.


key: roles

description:
The list of roles that are allowed to view this block.

If a user does not have the right role, the block is not rendered.


key: position

description: For floating blocks this propert defines where the block should float.


key: parameters

description:
A free form mapping of named parameters.

The exact meaning of the parameters depends on the block type.


key: actions

description: A mapping of actions that can be fired by the block to action handlers.


key: BlockVersion

description:
A version of a block definition

Block versions can’t be updated or deleted. This ensures apps that use a block version can never
be broken by alterations of block definitions.

required: name version files

enum: public unlisted

default: public

default: grow

enum: float grow static hidden


description:
The name of a block.

This uses the same form as scoped npm packages. For example, `@appsemble/form`.


key: description

description: The description of the block.


key: longDescription

description: The long description of the block.


key: icon

description: An icon to represent the block in Appsemble studio.


key: iconUrl

description: The relative URL on which the icon is served


description: A [semver](https://semver.org) representation of the block version.


key: visibility

description:
Whether the block should be listed publicly for users who aren’t part of the block’s organization.

- **`public`**: The block is visible for everyone.
- **`unlisted`**: The block will only be visible if the user is logged in and is part of the block’s organization.


description:
How the block will be displayed on the screen.

- **`float`**: The block will float somewhere on the screen.
- **`grow`**: The block will be positioned in the main page. It will grow to fill up remaining
  space on the page.
- **`static`**: The block will be positioned in the main page. It will take up a fixed amount of
  space.
- **`hidden`**: The block will not be rendered at all.


description:
An object which describes the actions a block can trigger.

This will be used to validate app definitions.


description:
A draft 7 JSON schema to use for block parameter validation.

If the parameters of a block definition don’t conform to this schema, the app definition will be
considered invalid.


key: events

description: An object describing the names of the events the block can listen and emit to.


key: listen

description: A mapping of events this block may listen on


key: additionalProperties


key: emit

description: A mapping of events this block may emit


description: A mapping of events this block may emit


key: resources

description: deprecated


key: messages

description:
The translated messages for the block.

English (`en`) messages are required.


key: en

description: A mapping of language IDs to their English translation


description: The default translations to use.


description: A mapping of language IDs to their internationalized translation


description: The translated messages for this language.


key: files

description: A list of file assets that belong to the app version.


key: examples

description: A list of exmples how the block can be used within an app definition.


key: type

description: Run another action if a certain contition is met.


key: if

description:
A remapper to determine the condition to check.

If this yields a truthy value, the `then` action is called. Otherwise the `else` action is
called.


key: then

description: This action is called if the `if` remapper yields a truthy value.


key: else

description: This action is called if the `if` remapper yields a falsy value.


key: CronDefinition

description: A cron definition defines tasks that Appsemble will run periodically for the app.


key: schedule

description:
A crontab string to define when the action should be run.

See [Crontab guru](https://crontab.guru) for details


key: action

description: The action to run when the cronjob is triggered.


key: CustomFontDefinition

description: A custom font definition.

required: source family


key: source

description: Use a custom font.


key: family

description:
The font family to use in the app.

Make sure the font is available using custom CSS.


description:
This action opens a pop-up dialog that can be used to seamlessly transition to a new set of blocks temporarily.

Dialogs can be closed by calling the [`dialog.ok`](#DialogOkActionDefinition) or
[`dialog.error`](#DialogErrorActionDefinition). Users can still manually close dialogs, which
should be supported by the app.

Blocks with the layout type `float` (e.g. `action-button`) do not work in this action.


key: title

description: An optional title to set in the dialog header.


key: closable

description: Whether users are allowed to close the dialog by clicking outside of it or on the close button.


key: fullscreen

description: Whether the dialog should be displayed full screen as if it’s a new page, or as a pop-up.


key: blocks

description: A list of blocks to display in the dialog.


description:
Close an open dialog.

The dialog action that opened the dialog will be rejected with the data passed to this action.


description: Download the data as a file.


key: filename

description: The filename to save the file as. This must include a file extension.


description:
Run an action for each entry in an array.

The actions are run in parallel.

If the input is not an array, the action will be applied to the input instead.


key: serial

description: Runs the action in series instead of parallel


key: do

description: This action is called for each item in the input array.


key: type

description:
The email action can be used to send emails via the Appsemble server.

If `to`, `cc`, and `bcc` all end up being empty, no emails will be sent but the action will still continue as normal.


key: to

description: The address the email should be sent to. Can be either in the format of `test@example.com`, or `John Doe <test@example.com>`


key: from

description: The name of the sender of the email.


key: cc

description: The list of additional email addresses email should be sent to. Uses the same format as `to`. Every email address in the CC is visible to all recipients.


key: bcc

description: The list of additional email addresses email should be sent to. Uses the same format as `to`. Email addresses in the BCC are hidden from other recipients.


key: subject

description: The subject of the email.


key: body

description: The body of the email. The content of the body is converted to HTML using the Markdown syntax.


key: attachments

description:
The attachments to include in the email.

The remapper must resolve to an object containing the following properties:

- `target`: The asset ID or link to download contents from to add as an attachment. This is mutually exclusive with `content`.
- `content`: The raw content to include as the file content. This is mutually exclusive with `target`.
- `filename`: The filename to include the attachment as.
- `accept` If the target is a URL, this will be set as the HTTP `Accept` header when downloading the file.

If the attachment is a string, it will be treated as the target.


key: Error

description: The generic error object returned by any expected API errors.

example: Not Found

example: Entity not found


key: statusCode

description: Matches the HTTP response status code.


key: error

description: Matches the HTTP response status description.


key: message

description: A message describing the error.


description:
This action allows for other blocks to emit data upon triggering the action.

This can be used to make blocks interact with each other, such as triggering the `data-loader`
block to refresh itself by sending an event action that matches the name of what the block is
listening to.


key: event

description: The name of the event to emit.


key: waitFor

description: If specified, the action will wait for this event to have been emitted and respond with its data.


key: EventsDefinition

description: An object describing the names of the events the block can listen and emit to.


key: listen

description:
This property defines the events this block will listen on.

The key is the name of the event will listen on. The value is a user defined event name which should
match the name of an emitted event on the same page.


key: emit

description:
This property defines the events this block will emit.

The key is the name of the event will emit. The value is a user defined event name which should
match the name of a event on the same page that’s being listened on.


key: type

description:
On [flow pages](#flow-page-definition-sub-pages), return to the previous page if
it is present. If this is called on the first page, nothing happens.


description:
On [flow pages](#flow-page-definition-sub-pages), triggers the
[`onFlowFinish`](#flow-page-actions-definition-on-flow-finish) action on the page.


description:
On [flow pages](#flow-page-definition-sub-pages), proceed to the next page if it
is present. Otherwise, the flow is considered to be complete and [`flow.finish`](#flowfinish) will
be called instead.


key: FlowPageActionsDefinition

description: These actions are fired on a flow page.


key: onFlowCancel

description: This action gets triggered when `flow.cancel` gets called.


key: onFlowFinish

description:
This action gets triggered when a flow is finished.

A flow is finished when `flow.finish` gets called, or when `flow.next` gets called on the final
subpage. This action has a special property in which the cumulative input data from each previous subpage gets sent, instead of the individual block that triggered this action.


key: FlowPageDefinition

description: This describes what a page will look like in the app.

required: type steps name

enum: corner-dots hidden


key: steps

description: Steps belonging to this page's flow.


key: progress

description: The method that should be used to display the status of flow pages.


key: retainFlowData

description:
Whether to retain the flow data when navigating away to another page outside the flow.

By default the flow page retains it's data after navigating once. Set to false to clear it.


key: name

description:
The name of an app.

This field is always required and must be unique within the app, meaning that it is not possible to
have two pages with the same name. The name of the page is displayed at the *app bar* of each page as well as in the side navigational menu.

> **Note**: The URL used to navigate to pages is determined by this property.


key: hideName

description: Whether or not the page name should be displayed in the *app bar*.


key: navTitle

description:
The name of the page when displayed in the navigation menu.

  Context property `name` can be used to access the name of the page.


key: hideNavTitle

description:
Whether or not the page should be displayed in navigational menus.

  By default all pages without parameters are added to navigational menus. Set to `true` to hide the
  page from menus.


key: navigation

description:
The type of navigation displayed on the page.

This overrides the navigation property of the app itself. Defaults to `left-menu` if navigation or
App navigation are not set.

Set to `bottom` to use a navigation pane at the bottom of the screen instead of the default side
menu. Set to `hidden` to display no navigational menus at all.


key: icon

description:
An optional icon from the fontawesome icon set

This will be displayed in the navigation menu.


key: parameters

description:
Page parameters can be used for linking to a page that should display a single resource.

This defined as a list of strings representing the properties to pass through. More often than not
passing `id` through is sufficient, depending on the block.


key: roles

description:
The list of roles that are allowed to view this page.

If the user doesn’t have any of the roles in the list the page will be unavailable to them. An empty
list can be used to specify that users need to log in but do not need a specific role.

Users trying to visit a page without having the correct roles will be redirected to the first page
that they are allowed to view. If there aren’t any accessible pages, the user will be logged out and
instructed to contact the app owner to get permissions.


description: On [flow pages](#flow-page-definition-sub-pages), move to a specific step.


key: step

description:
The name of the step to move to.

This is a remapper which gets called with the action input and context.


key: GoogleFontDefinition

description: A Google font definition.

enum:
ABeeZee
Abel
Abhaya Libre
Abril Fatface
Aclonica
Acme
Actor
Adamina
Advent Pro
Aguafina Script
Akaya Kanadaka
Akaya Telivigala
Akronim
Aladin
Alata
Alatsi
Aldrich
Alef
Alegreya
Alegreya SC
Alegreya Sans
Alegreya Sans SC
Aleo
Alex Brush
Alfa Slab One
Alice
Alike
Alike Angular
Allan
Allerta
Allerta Stencil
Allison
Allura
Almarai
Almendra
Almendra Display
Almendra SC
Alumni Sans
Amarante
Amaranth
Amatic SC
Amethysta
Amiko
Amiri
Amita
Anaheim
Andada Pro
Andika
Andika New Basic
Angkor
Annie Use Your Telescope
Anonymous Pro
Antic
Antic Didone
Antic Slab
Anton
Antonio
Arapey
Arbutus
Arbutus Slab
Architects Daughter
Archivo
Archivo Black
Archivo Narrow
Are You Serious
Aref Ruqaa
Arima Madurai
Arimo
Arizonia
Armata
Arsenal
Artifika
Arvo
Arya
Asap
Asap Condensed
Asar
Asset
Assistant
Astloch
Asul
Athiti
Atkinson Hyperlegible
Atma
Atomic Age
Aubrey
Audiowide
Autour One
Average
Average Sans
Averia Gruesa Libre
Averia Libre
Averia Sans Libre
Averia Serif Libre
Azeret Mono
B612
B612 Mono
Bad Script
Bahiana
Bahianita
Bai Jamjuree
Ballet
Baloo 2
Baloo Bhai 2
Baloo Bhaina 2
Baloo Chettan 2
Baloo Da 2
Baloo Paaji 2
Baloo Tamma 2
Baloo Tammudu 2
Baloo Thambi 2
Balsamiq Sans
Balthazar
Bangers
Barlow
Barlow Condensed
Barlow Semi Condensed
Barriecito
Barrio
Basic
Baskervville
Battambang
Baumans
Bayon
Be Vietnam
Be Vietnam Pro
Bebas Neue
Belgrano
Bellefair
Belleza
Bellota
Bellota Text
BenchNine
Benne
Bentham
Berkshire Swash
Besley
Beth Ellen
Bevan
Big Shoulders Display
Big Shoulders Inline Display
Big Shoulders Inline Text
Big Shoulders Stencil Display
Big Shoulders Stencil Text
Big Shoulders Text
Bigelow Rules
Bigshot One
Bilbo
Bilbo Swash Caps
BioRhyme
BioRhyme Expanded
Birthstone
Birthstone Bounce
Biryani
Bitter
Black And White Picture
Black Han Sans
Black Ops One
Blinker
Bodoni Moda
Bokor
Bona Nova
Bonbon
Bonheur Royale
Boogaloo
Bowlby One
Bowlby One SC
Brawler
Bree Serif
Brygada 1918
Bubblegum Sans
Bubbler One
Buda
Buenard
Bungee
Bungee Hairline
Bungee Inline
Bungee Outline
Bungee Shade
Butcherman
Butterfly Kids
Cabin
Cabin Condensed
Cabin Sketch
Caesar Dressing
Cagliostro
Cairo
Caladea
Calistoga
Calligraffitti
Cambay
Cambo
Candal
Cantarell
Cantata One
Cantora One
Capriola
Caramel
Carattere
Cardo
Carme
Carrois Gothic
Carrois Gothic SC
Carter One
Castoro
Catamaran
Caudex
Caveat
Caveat Brush
Cedarville Cursive
Ceviche One
Chakra Petch
Changa
Changa One
Chango
Charm
Charmonman
Chathura
Chau Philomene One
Chela One
Chelsea Market
Chenla
Cherish
Cherry Cream Soda
Cherry Swash
Chewy
Chicle
Chilanka
Chivo
Chonburi
Cinzel
Cinzel Decorative
Clicker Script
Coda
Coda Caption
Codystar
Coiny
Combo
Comfortaa
Comic Neue
Coming Soon
Commissioner
Concert One
Condiment
Content
Contrail One
Convergence
Cookie
Copse
Corben
Cormorant
Cormorant Garamond
Cormorant Infant
Cormorant SC
Cormorant Unicase
Cormorant Upright
Courgette
Courier Prime
Cousine
Coustard
Covered By Your Grace
Crafty Girls
Creepster
Crete Round
Crimson Pro
Crimson Text
Croissant One
Crushed
Cuprum
Cute Font
Cutive
Cutive Mono
DM Mono
DM Sans
DM Serif Display
DM Serif Text
Damion
Dancing Script
Dangrek
Darker Grotesque
David Libre
Dawning of a New Day
Days One
Dekko
Dela Gothic One
Delius
Delius Swash Caps
Delius Unicase
Della Respira
Denk One
Devonshire
Dhurjati
Didact Gothic
Diplomata
Diplomata SC
Do Hyeon
Dokdo
Domine
Donegal One
Doppio One
Dorsa
Dosis
DotGothic16
Dr Sugiyama
Duru Sans
Dynalight
EB Garamond
Eagle Lake
East Sea Dokdo
Eater
Economica
Eczar
El Messiri
Electrolize
Elsie
Elsie Swash Caps
Emblema One
Emilys Candy
Encode Sans
Encode Sans Condensed
Encode Sans Expanded
Encode Sans SC
Encode Sans Semi Condensed
Encode Sans Semi Expanded
Engagement
Englebert
Enriqueta
Ephesis
Epilogue
Erica One
Esteban
Euphoria Script
Ewert
Exo
Exo 2
Expletus Sans
Explora
Fahkwang
Fanwood Text
Farro
Farsan
Fascinate
Fascinate Inline
Faster One
Fasthand
Fauna One
Faustina
Federant
Federo
Felipa
Fenix
Festive
Finger Paint
Fira Code
Fira Mono
Fira Sans
Fira Sans Condensed
Fira Sans Extra Condensed
Fjalla One
Fjord One
Flamenco
Flavors
Fleur De Leah
Fondamento
Fontdiner Swanky
Forum
Francois One
Frank Ruhl Libre
Fraunces
Freckle Face
Fredericka the Great
Fredoka One
Freehand
Fresca
Frijole
Fruktur
Fugaz One
Fuggles
GFS Didot
GFS Neohellenic
Gabriela
Gaegu
Gafata
Galada
Galdeano
Galindo
Gamja Flower
Gayathri
Gelasio
Gemunu Libre
Gentium Basic
Gentium Book Basic
Geo
Georama
Geostar
Geostar Fill
Germania One
Gideon Roman
Gidugu
Gilda Display
Girassol
Give You Glory
Glass Antiqua
Glegoo
Gloria Hallelujah
Glory
Gluten
Goblin One
Gochi Hand
Goldman
Gorditas
Gothic A1
Gotu
Goudy Bookletter 1911
Gowun Batang
Gowun Dodum
Graduate
Grand Hotel
Grandstander
Gravitas One
Great Vibes
Grechen Fuemen
Grenze
Grenze Gotisch
Grey Qo
Griffy
Gruppo
Gudea
Gugi
Gupter
Gurajada
Habibi
Hachi Maru Pop
Hahmlet
Halant
Hammersmith One
Hanalei
Hanalei Fill
Handlee
Hanuman
Happy Monkey
Harmattan
Headland One
Heebo
Henny Penny
Hepta Slab
Herr Von Muellerhoff
Hi Melody
Hina Mincho
Hind
Hind Guntur
Hind Madurai
Hind Siliguri
Hind Vadodara
Holtwood One SC
Homemade Apple
Homenaje
IBM Plex Mono
IBM Plex Sans
IBM Plex Sans Arabic
IBM Plex Sans Condensed
IBM Plex Sans Devanagari
IBM Plex Sans Hebrew
IBM Plex Sans KR
IBM Plex Sans Thai
IBM Plex Sans Thai Looped
IBM Plex Serif
IM Fell DW Pica
IM Fell DW Pica SC
IM Fell Double Pica
IM Fell Double Pica SC
IM Fell English
IM Fell English SC
IM Fell French Canon
IM Fell French Canon SC
IM Fell Great Primer
IM Fell Great Primer SC
Ibarra Real Nova
Iceberg
Iceland
Imbue
Imprima
Inconsolata
Inder
Indie Flower
Inika
Inknut Antiqua
Inria Sans
Inria Serif
Inter
Irish Grover
Istok Web
Italiana
Italianno
Itim
Jacques Francois
Jacques Francois Shadow
Jaldi
JetBrains Mono
Jim Nightshade
Jockey One
Jolly Lodger
Jomhuria
Jomolhari
Josefin Sans
Josefin Slab
Jost
Joti One
Jua
Judson
Julee
Julius Sans One
Junge
Jura
Just Another Hand
Just Me Again Down Here
K2D
Kadwa
Kaisei Decol
Kaisei HarunoUmi
Kaisei Opti
Kaisei Tokumin
Kalam
Kameron
Kanit
Kantumruy
Karantina
Karla
Karma
Katibeh
Kaushan Script
Kavivanar
Kavoon
Kdam Thmor
Keania One
Kelly Slab
Kenia
Khand
Khmer
Khula
Kirang Haerang
Kite One
Kiwi Maru
Klee One
Knewave
KoHo
Kodchasan
Koh Santepheap
Kosugi
Kosugi Maru
Kotta One
Koulen
Kranky
Kreon
Kristi
Krona One
Krub
Kufam
Kulim Park
Kumar One
Kumar One Outline
Kumbh Sans
Kurale
La Belle Aurore
Lacquer
Laila
Lakki Reddy
Lalezar
Lancelot
Langar
Lateef
Lato
League Script
Leckerli One
Ledger
Lekton
Lemon
Lemonada
Lexend
Lexend Deca
Lexend Exa
Lexend Giga
Lexend Mega
Lexend Peta
Lexend Tera
Lexend Zetta
Libre Barcode 128
Libre Barcode 128 Text
Libre Barcode 39
Libre Barcode 39 Extended
Libre Barcode 39 Extended Text
Libre Barcode 39 Text
Libre Barcode EAN13 Text
Libre Baskerville
Libre Caslon Display
Libre Caslon Text
Libre Franklin
Life Savers
Lilita One
Lily Script One
Limelight
Linden Hill
Literata
Liu Jian Mao Cao
Livvic
Lobster
Lobster Two
Londrina Outline
Londrina Shadow
Londrina Sketch
Londrina Solid
Long Cang
Lora
Love Ya Like A Sister
Loved by the King
Lovers Quarrel
Luckiest Guy
Lusitana
Lustria
M PLUS 1p
M PLUS Rounded 1c
Ma Shan Zheng
Macondo
Macondo Swash Caps
Mada
Magra
Maiden Orange
Maitree
Major Mono Display
Mako
Mali
Mallanna
Mandali
Manjari
Manrope
Mansalva
Manuale
Marcellus
Marcellus SC
Marck Script
Margarine
Markazi Text
Marko One
Marmelad
Martel
Martel Sans
Marvel
Mate
Mate SC
Maven Pro
McLaren
Meddon
MedievalSharp
Medula One
Meera Inimai
Megrim
Meie Script
Merienda
Merienda One
Merriweather
Merriweather Sans
Metal
Metal Mania
Metamorphous
Metrophobic
Michroma
Milonga
Miltonian
Miltonian Tattoo
Mina
Miniver
Miriam Libre
Mirza
Miss Fajardose
Mitr
Modak
Modern Antiqua
Mogra
Molengo
Molle
Monda
Monofett
Monoton
Monsieur La Doulaise
Montaga
MonteCarlo
Montez
Montserrat
Montserrat Alternates
Montserrat Subrayada
Moul
Moulpali
Mountains of Christmas
Mouse Memoirs
Mr Bedfort
Mr Dafoe
Mr De Haviland
Mrs Saint Delafield
Mrs Sheppards
Mukta
Mukta Mahee
Mukta Malar
Mukta Vaani
Mulish
MuseoModerno
Mystery Quest
NTR
Nanum Brush Script
Nanum Gothic
Nanum Gothic Coding
Nanum Myeongjo
Nanum Pen Script
Nerko One
Neucha
Neuton
New Rocker
New Tegomin
News Cycle
Newsreader
Niconne
Niramit
Nixie One
Nobile
Nokora
Norican
Nosifer
Notable
Nothing You Could Do
Noticia Text
Noto Kufi Arabic
Noto Music
Noto Naskh Arabic
Noto Nastaliq Urdu
Noto Rashi Hebrew
Noto Sans
Noto Sans Adlam
Noto Sans Adlam Unjoined
Noto Sans Anatolian Hieroglyphs
Noto Sans Arabic
Noto Sans Armenian
Noto Sans Avestan
Noto Sans Balinese
Noto Sans Bamum
Noto Sans Bassa Vah
Noto Sans Batak
Noto Sans Bengali
Noto Sans Bhaiksuki
Noto Sans Brahmi
Noto Sans Buginese
Noto Sans Buhid
Noto Sans Canadian Aboriginal
Noto Sans Carian
Noto Sans Caucasian Albanian
Noto Sans Chakma
Noto Sans Cham
Noto Sans Cherokee
Noto Sans Coptic
Noto Sans Cuneiform
Noto Sans Cypriot
Noto Sans Deseret
Noto Sans Devanagari
Noto Sans Display
Noto Sans Duployan
Noto Sans Egyptian Hieroglyphs
Noto Sans Elbasan
Noto Sans Elymaic
Noto Sans Georgian
Noto Sans Glagolitic
Noto Sans Gothic
Noto Sans Grantha
Noto Sans Gujarati
Noto Sans Gunjala Gondi
Noto Sans Gurmukhi
Noto Sans HK
Noto Sans Hanifi Rohingya
Noto Sans Hanunoo
Noto Sans Hatran
Noto Sans Hebrew
Noto Sans Imperial Aramaic
Noto Sans Indic Siyaq Numbers
Noto Sans Inscriptional Pahlavi
Noto Sans Inscriptional Parthian
Noto Sans JP
Noto Sans Javanese
Noto Sans KR
Noto Sans Kaithi
Noto Sans Kannada
Noto Sans Kayah Li
Noto Sans Kharoshthi
Noto Sans Khmer
Noto Sans Khojki
Noto Sans Khudawadi
Noto Sans Lao
Noto Sans Lepcha
Noto Sans Limbu
Noto Sans Linear A
Noto Sans Linear B
Noto Sans Lisu
Noto Sans Lycian
Noto Sans Lydian
Noto Sans Mahajani
Noto Sans Malayalam
Noto Sans Mandaic
Noto Sans Manichaean
Noto Sans Marchen
Noto Sans Masaram Gondi
Noto Sans Math
Noto Sans Mayan Numerals
Noto Sans Medefaidrin
Noto Sans Meroitic
Noto Sans Miao
Noto Sans Modi
Noto Sans Mongolian
Noto Sans Mono
Noto Sans Mro
Noto Sans Multani
Noto Sans Myanmar
Noto Sans N Ko
Noto Sans Nabataean
Noto Sans New Tai Lue
Noto Sans Newa
Noto Sans Nushu
Noto Sans Ogham
Noto Sans Ol Chiki
Noto Sans Old Hungarian
Noto Sans Old Italic
Noto Sans Old North Arabian
Noto Sans Old Permic
Noto Sans Old Persian
Noto Sans Old Sogdian
Noto Sans Old South Arabian
Noto Sans Old Turkic
Noto Sans Oriya
Noto Sans Osage
Noto Sans Osmanya
Noto Sans Pahawh Hmong
Noto Sans Palmyrene
Noto Sans Pau Cin Hau
Noto Sans Phags Pa
Noto Sans Phoenician
Noto Sans Psalter Pahlavi
Noto Sans Rejang
Noto Sans Runic
Noto Sans SC
Noto Sans Samaritan
Noto Sans Saurashtra
Noto Sans Sharada
Noto Sans Shavian
Noto Sans Siddham
Noto Sans Sinhala
Noto Sans Sogdian
Noto Sans Sora Sompeng
Noto Sans Soyombo
Noto Sans Sundanese
Noto Sans Syloti Nagri
Noto Sans Symbols
Noto Sans Symbols 2
Noto Sans Syriac
Noto Sans TC
Noto Sans Tagalog
Noto Sans Tagbanwa
Noto Sans Tai Le
Noto Sans Tai Tham
Noto Sans Tai Viet
Noto Sans Takri
Noto Sans Tamil
Noto Sans Tamil Supplement
Noto Sans Telugu
Noto Sans Thaana
Noto Sans Thai
Noto Sans Thai Looped
Noto Sans Tifinagh
Noto Sans Tirhuta
Noto Sans Ugaritic
Noto Sans Vai
Noto Sans Wancho
Noto Sans Warang Citi
Noto Sans Yi
Noto Sans Zanabazar Square
Noto Serif
Noto Serif Ahom
Noto Serif Armenian
Noto Serif Balinese
Noto Serif Bengali
Noto Serif Devanagari
Noto Serif Display
Noto Serif Dogra
Noto Serif Ethiopic
Noto Serif Georgian
Noto Serif Grantha
Noto Serif Gujarati
Noto Serif Gurmukhi
Noto Serif Hebrew
Noto Serif JP
Noto Serif KR
Noto Serif Kannada
Noto Serif Khmer
Noto Serif Lao
Noto Serif Malayalam
Noto Serif Myanmar
Noto Serif Nyiakeng Puachue Hmong
Noto Serif SC
Noto Serif Sinhala
Noto Serif TC
Noto Serif Tamil
Noto Serif Tangut
Noto Serif Telugu
Noto Serif Thai
Noto Serif Tibetan
Noto Serif Yezidi
Noto Traditional Nushu
Nova Cut
Nova Flat
Nova Mono
Nova Oval
Nova Round
Nova Script
Nova Slim
Nova Square
Numans
Nunito
Nunito Sans
Odibee Sans
Odor Mean Chey
Offside
Oi
Old Standard TT
Oldenburg
Oleo Script
Oleo Script Swash Caps
Open Sans
Open Sans Condensed
Oranienbaum
Orbitron
Oregano
Orelega One
Orienta
Original Surfer
Oswald
Otomanopee One
Over the Rainbow
Overlock
Overlock SC
Overpass
Overpass Mono
Ovo
Oxanium
Oxygen
Oxygen Mono
PT Mono
PT Sans
PT Sans Caption
PT Sans Narrow
PT Serif
PT Serif Caption
Pacifico
Padauk
Palanquin
Palanquin Dark
Palette Mosaic
Pangolin
Paprika
Parisienne
Passero One
Passion One
Pathway Gothic One
Patrick Hand
Patrick Hand SC
Pattaya
Patua One
Pavanam
Paytone One
Peddana
Peralta
Permanent Marker
Petit Formal Script
Petrona
Philosopher
Piazzolla
Piedra
Pinyon Script
Pirata One
Plaster
Play
Playball
Playfair Display
Playfair Display SC
Podkova
Poiret One
Poller One
Poly
Pompiere
Pontano Sans
Poor Story
Poppins
Port Lligat Sans
Port Lligat Slab
Potta One
Pragati Narrow
Prata
Preahvihear
Press Start 2P
Pridi
Princess Sofia
Prociono
Prompt
Prosto One
Proza Libre
Public Sans
Puritan
Purple Purse
Qahiri
Quando
Quantico
Quattrocento
Quattrocento Sans
Questrial
Quicksand
Quintessential
Qwigley
Racing Sans One
Radley
Rajdhani
Rakkas
Raleway
Raleway Dots
Ramabhadra
Ramaraja
Rambla
Rammetto One
Rampart One
Ranchers
Rancho
Ranga
Rasa
Rationale
Ravi Prakash
Recursive
Red Hat Display
Red Hat Text
Red Rose
Redressed
Reem Kufi
Reenie Beanie
Reggae One
Revalia
Rhodium Libre
Ribeye
Ribeye Marrow
Righteous
Risque
Roboto
Roboto Condensed
Roboto Mono
Roboto Slab
Rochester
Rock Salt
RocknRoll One
Rokkitt
Romanesco
Ropa Sans
Rosario
Rosarivo
Rouge Script
Rowdies
Rozha One
Rubik
Rubik Beastly
Rubik Mono One
Ruda
Rufina
Ruge Boogie
Ruluko
Rum Raisin
Ruslan Display
Russo One
Ruthie
Rye
STIX Two Text
Sacramento
Sahitya
Sail
Saira
Saira Condensed
Saira Extra Condensed
Saira Semi Condensed
Saira Stencil One
Salsa
Sanchez
Sancreek
Sansita
Sansita Swashed
Sarabun
Sarala
Sarina
Sarpanch
Satisfy
Sawarabi Gothic
Sawarabi Mincho
Scada
Scheherazade
Scheherazade New
Schoolbell
Scope One
Seaweed Script
Secular One
Sedgwick Ave
Sedgwick Ave Display
Sen
Sevillana
Seymour One
Shadows Into Light
Shadows Into Light Two
Shanti
Share
Share Tech
Share Tech Mono
Shippori Mincho
Shippori Mincho B1
Shojumaru
Short Stack
Shrikhand
Siemreap
Sigmar One
Signika
Signika Negative
Simonetta
Single Day
Sintony
Sirin Stencil
Six Caps
Skranji
Slabo 13px
Slabo 27px
Slackey
Smokum
Smythe
Sniglet
Snippet
Snowburst One
Sofadi One
Sofia
Solway
Song Myung
Sonsie One
Sora
Sorts Mill Goudy
Source Code Pro
Source Sans Pro
Source Serif Pro
Space Grotesk
Space Mono
Spartan
Special Elite
Spectral
Spectral SC
Spicy Rice
Spinnaker
Spirax
Squada One
Sree Krushnadevaraya
Sriracha
Srisakdi
Staatliches
Stalemate
Stalinist One
Stardos Stencil
Stick
Stick No Bills
Stint Ultra Condensed
Stint Ultra Expanded
Stoke
Strait
Style Script
Stylish
Sue Ellen Francisco
Suez One
Sulphur Point
Sumana
Sunflower
Sunshiney
Supermercado One
Sura
Suranna
Suravaram
Suwannaphum
Swanky and Moo Moo
Syncopate
Syne
Syne Mono
Syne Tactile
Tajawal
Tangerine
Taprom
Tauri
Taviraj
Teko
Telex
Tenali Ramakrishna
Tenor Sans
Text Me One
Texturina
Thasadith
The Girl Next Door
Tienne
Tillana
Timmana
Tinos
Titan One
Titillium Web
Tomorrow
Tourney
Trade Winds
Train One
Trirong
Trispace
Trocchi
Trochut
Truculenta
Trykker
Tulpen One
Turret Road
Ubuntu
Ubuntu Condensed
Ubuntu Mono
Uchen
Ultra
Uncial Antiqua
Underdog
Unica One
UnifrakturCook
UnifrakturMaguntia
Unkempt
Unlock
Unna
Urbanist
VT323
Vampiro One
Varela
Varela Round
Varta
Vast Shadow
Vesper Libre
Viaoda Libre
Vibes
Vibur
Vidaloka
Viga
Voces
Volkhov
Vollkorn
Vollkorn SC
Voltaire
Waiting for the Sunrise
Wallpoet
Walter Turncoat
Warnes
Wellfleet
Wendy One
WindSong
Wire One
Work Sans
Xanh Mono
Yaldevi
Yanone Kaffeesatz
Yantramanav
Yatra One
Yellowtail
Yeon Sung
Yeseva One
Yesteryear
Yomogi
Yrsa
Yusei Magic
ZCOOL KuaiLe
ZCOOL QingKe HuangYou
ZCOOL XiaoWei
Zen Dots
Zen Loop
Zen Tokyo Zoo
Zeyada
Zhi Mang Xing
Zilla Slab
Zilla Slab Highlight

family: Open Sans

source: google


key: source

description: Use a font from [Google Fonts](https://fonts.google.com).


key: family

description:
The font to use in the app.

Any font available on [Google Fonts](https://fonts.google.com) may be used.


key: Health

description: A health check status


key: database

description: Whether or not the database status is healthy


key: JSONPointer

description: A JSON pointer which may be used to reference a JSON schema.


key: $ref

description: A JSON schema reference.

pattern: ^#\/definitions\/

example: #/definitions/MyReusableSchema


key: default

description: The default value that will be used.


key: title

description:
A short title of the instance.

This is used in various places inside Appsemble Studio.


key: description

description:
A description of the instance.

This is used in various places inside Appsemble Studio.


key: JSONSchemaAnyOf

description: A JSON schema which determines the value must match one or more of the given schemas.


key: properties

description: The JSON schema must match one or more of the given schemas.


key: examples

description: An example value which is valid according to this schema.


description: The default value which is used if no value is supplied.


key: JSONSchemaArray

description: A JSON schema for an array.


key: type

description: The type of the JSON schema. An array means a list of data.


key: example

description: An example array which is valid according to this schema.


key: maxItems

description: The minimum amount of items the array is allowed to have.


key: minItems

description: The maximum amount of items the array is allowed to have.


key: uniqueItems

description: If true, all items in the array need to be unique


key: items

description: This property describes what the items in an array should look like.


key: JSONSchemaBoolean

description: A JSON schema for a boolean.


description: The type of the JSON schema. A boolean means either true or false.


description: An example boolean which is valid according to this schema.


key: enum

description: If an enum is specified, the type can be safely removed.


key: const

description: If const is specified, the type can be safely removed.


key: JSONSchemaConst

description: A JSON schema which describes a constant


description: The given value must exactly match one the value specified here.


description:
A short title of the instance.

This is used in various places inside Appsemble Studio.


description:
A description of the instance.

This is used in various places inside Appsemble Studio.


key: JSONSchemaEnum

description: A JSON schema for an enum.


description: A specific set of values this property is allowed to have.


key: enumDescriptions

description:
An array is descriptions for the enum values.

The description is applied to the enum value at the same index.


description: An example which is valid according to this schema.


key: default

description: The default value which is used if no value is supplied.


key: JSONSchemaInteger

description: A JSON schema for an integer.


description: The type of the JSON schema. An integer means a fractionless number.


description: An example integer which is valid according to this schema.


key: minimum

description: The minimum value of the number.


key: maximum

description: The maximum value of the number.


key: multipleOf

description:
The value must be a multiple of this number.

For example, if this is set to 3, then the values 0, 3, 6, 9, etc. will be allowed, but not 1, 2, 4,
5, 7, 8, etc.


key: JSONSchemaMultiType

description: A JSON schema which defines multiple types.

enum: array boolean integer null number string

enum: date-time time date duration email idn-email hostname idn-hostname ipv4 ipv6 uuid uri uri-reference iri iri-reference uri-template json-pointer relative-json-pointer regex action binary event-emitter event-listener fontawesome

format: regex


key: type

description: The type of the JSON schema. It’s recommended to use only one.


key: examples


key: maxItems

description: The minimum amount of items the array is allowed to have.


key: minItems

description: The maximum amount of items the array is allowed to have.


key: uniqueItems

description: If true, all items in the array need to be unique


key: items

description: This property describes what the items in an array should look like.


key: maxProperties

description: The maximum number of properties the object is allowed to have.


key: minProperties

description: The minimum number of properties the object is must have.


key: properties

description: A mapping of object keys for the object to nested JSON schemas.


key: required

description: A list of properties that are required.


description: A property name which is required on the object.


key: additionalProperties

description:
Describe if this object is allowed to have properties besides those defined in `properties`

It’s recommended to set this to `false`.


description:
If false, the object may not have any additional properties.

If true, the object may have **any** type of additional properties. This is **not** recommended.


description: If this is a JSON schema, it describes any additional properties.


key: format

description: The format values should adhere to.


key: minLength

description: The minimum length of the string.


key: maxLength

description:
The maximum length of the string.

It’s highly recommended to set this property, even if it’s a big number. For example 5000 characters
is plenty for most larger input fields. Not doing so may result in extremely large user input, which
results in a bad user experience.


key: pattern

description:
A regular expression to describe user input.

Regular expressions are a powerful way to enforce proper user input, but the learning curve is high.
If you don’t know what this is, we recommend to omit this field for now.


key: title

description:
A short title of the instance.

This is used in various places inside Appsemble Studio.


key: description

description:
A description of the instance.

This is used in various places inside Appsemble Studio.


key: JSONSchemaNot

description: A JSON schema which may not be matched.


key: not

description: The JSON schema which the value may not match.


key: examples

description: An example value which is valid according to this schema.


key: default

description: The default value which is used if no value is supplied.


key: JSONSchemaNull

description: A JSON schema of type null only accepts a null value


key: type

description: Only accept a null value.


key: JSONSchemaNumber

description: A JSON schema for a number which has fractions.


description: The type of the JSON schema. A number represents a number which has fractions. For fractionless numbers, use `integer` instead.


key: enum

description: If an enum is specified, the type can be safely removed.


key: const

description: If const is specified, the type can be safely removed.


key: items

description: An example number which is valid according to this schema.


key: minimum

description: The minimum value of the number.


key: maximum

description: The maximum value of the number.


key: exclusiveMinimum

description: The value must be bigger than this number. The given value itself is not allowed.


key: exclusiveMaximum

description: The value must be smaller than this number. The given value itself is not allowed.


key: multipleOf

description:
The value must be a multiple of this number.

For example, if this is set to 0.5, then the values 0, 0.5, 1, 1.5, 2, 2.5, etc. will be allowed,
but not 0.3, 1.7, etc.


key: title


key: description


key: JSONSchemaObject

description: A JSON schema for an object.

required: type additionalProperties


description: The type of the JSON schema.


description: An example object which is valid according to this schema.


key: maxProperties

description: The maximum number of properties the object is allowed to have.


key: minProperties

description: The minimum number of properties the object is must have.


key: required

description: A list of properties that are required.


description: A property name which is required on the object.


key: properties

description: A mapping of object keys for the object to nested JSON schemas.


key: additionalProperties

description:
Describe if this object is allowed to have properties besides those defined in `properties`

It’s recommended to set this to `false`.


description:
If false, the object may not have any additional properties.

If true, the object may have **any** type of additional properties. This is **not** recommended.


description: If this is a JSON schema, it describes any additional properties.


key: JSONSchemaOneOf

description: A JSON schema which determines the value must match exactly one of the given schemas.


description: The JSON schema must match exactly one of the given schemas.


key: example

description: An example value which is valid according to this schema.


key: default

description: The default value which is used if no value is supplied.


description:
A short title of the instance.

This is used in various places inside Appsemble Studio.


description:
A description of the instance.

This is used in various places inside Appsemble Studio.


key: JSONSchemaRemapper

description: A JSON schema which allows a format of remapper without a type.


key: format

description: Allow a remapper definition. This is supported for blocks only.


key: JSONSchemaRoot

description: A top level JSON schema.


key: definitions

description: This property may be used to store JSON schemas that may be referenced from other places.


key: $schema

description: The JSON schema meta schema. You probably don’t need to specify this explicitly.


key: type

description: The type of the JSON schema.


key: items

description: An example object which is valid according to this schema.


description: The maximum number of properties the object is allowed to have.


description: The minimum number of properties the object is must have.


description: A list of properties that are required.


description: A property name which is required on the object.


description: A mapping of object keys for the object to nested JSON schemas.


description:
Describe if this object is allowed to have properties besides those defined in `properties`

It’s recommended to set this to `false`.


description:
If false, the object may not have any additional properties.

If true, the object may have **any** type of additional properties. This is **not** recommended.


description: If this is a JSON schema, it describes any additional properties.


key: title


key: description


key: JSONSchemaString

description: A JSON schema for a string.


description: The type of the JSON schema. A string is the technical term for a piece of text.


description: An example string which is valid according to this schema.


description: The default value which is used if no value is supplied.


key: enum

description: If an enum is specified, the type can be safely removed.


key: const

description: If const is specified, the type can be safely removed.


description: The format values should adhere to.


key: minLength

description: The minimum length of the string.


key: maxLength

description:
The maximum length of the string.

It’s highly recommended to set this property, even if it’s a big number. For example 5000 characters
is plenty for most larger input fields. Not doing so may result in extremely large user input, which
results in a bad user experience.


key: pattern

description:
A regular expression to describe user input.

Regular expressions are a powerful way to enforce proper user input, but the learning curve is high.
If you don’t know what this is, we recommend to omit this field for now.


key: multiline

description: If true, Appsemble renders a textarea in the graphical JSON editor.


description: The link action can be used to redirect the user to other pages or absolute URLs.


key: to

description: The name of the page to link to. Subpages can be referred to using arrays. If this matches with an absolute URL, link will open this instead of matching it with a page or subpage.


description: Link back to the previous page in the browser history.


description: Link to the next page in the browser history.


description:
Output the result of the action into the console.

This is mostly useful for debugging blocks during development.


key: level

description: The logging level on which to log.

enum: error info warn

default: info


key: LoopPageActionsDefinition

description: These actions are fired on a loop page.


key: onLoad

description: This action is used to define the data to pass onto the loop type array


key: onFlowCancel

description: This action gets triggered when `flow.cancel` gets called.


key: onFlowFinish

description:
This action gets triggered when a flow is finished.

A flow is finished when `flow.finish` gets called, or when `flow.next` gets called on the final
subpage. This action has a special property in which the cumulative input data from each previous subpage gets sent, instead of the individual block that triggered this action.


key: LoopPageDefinition

description:
This describes what a loop page will look like in the app.

!!
This feature is still under development and is very unstable
!!

required: type foreach actions name


key: progress

description: The method that should be used to display the status of flow pages.


key: retainFlowData

description:
Whether to retain the flow data when navigating away to another page outside the flow.

By default the flow page retains it's data after navigating once. Set to false to clear it.


key: name

description:
The name of an app.

This field is always required and must be unique within the app, meaning that it is not possible to
have two pages with the same name. The name of the page is displayed at the *app bar* of each page as well as in the side navigational menu.

> **Note**: The URL used to navigate to pages is determined by this property.


key: hideName

description: Whether or not the page name should be displayed in the *app bar*.


key: navTitle

description:
The name of the page when displayed in the navigation menu.

  Context property `name` can be used to access the name of the page.


key: hideNavTitle

description:
Whether or not the page should be displayed in navigational menus.

  By default all pages without parameters are added to navigational menus. Set to `true` to hide the
  page from menus.


key: navigation

description:
The type of navigation displayed on the page.

This overrides the navigation property of the app itself. Defaults to `left-menu` if navigation or
App navigation are not set.

Set to `bottom` to use a navigation pane at the bottom of the screen instead of the default side
menu. Set to `hidden` to display no navigational menus at all.


key: icon

description:
An optional icon from the fontawesome icon set

This will be displayed in the navigation menu.


key: parameters

description:
Page parameters can be used for linking to a page that should display a single resource.

This defined as a list of strings representing the properties to pass through. More often than not
passing `id` through is sufficient, depending on the block.


key: roles

description:
The list of roles that are allowed to view this page.

If the user doesn’t have any of the roles in the list the page will be unavailable to them. An empty
list can be used to specify that users need to log in but do not need a specific role.

Users trying to visit a page without having the correct roles will be redirected to the first page
that they are allowed to view. If there aren’t any accessible pages, the user will be logged out and
instructed to contact the app owner to get permissions.


key: type

description:
Run another action if one of the cases is true.

Only the first case that equals true is called.


key: case

description: The case to be matched.


key: action

description: Action to be called if the case equals true.


key: Member

description: A member of an organization.

enum: Member Translator APIReader APIUser AppEditor Maintainer Owner


key: primaryEmail

description: The primary email address of the user.


key: properties

description: Additional custom properties that a user might have.


description:
Display a message to the user.

This is useful in combination with action chaining to notify users they have performed a certain action.


key: body

description: The body of the message.


key: color

description: The Bulma color to apply to the message.

enum: dark primary link success info warning danger


key: layout

description: The position of the message on the screen.

enum: bottom top

default: bottom


key: dismissable

description: Boolean value indicating whether the user is able to dismiss the message manually.


key: timeout

description: The time in milliseconds how long the message should be visible.


description:
Do nothing when this action is triggered.

This is the default action for block actions that are not required.


key: NotificationHookDataDefinition

description: The data used to display the content of the notification.


key: title

description: The title of the notification.


key: content

description: The body of the notification.


key: link

description:
The URL of the page the user gets redirected to after being clicked.

If the URL is relative, it will be relative to the app.


key: NotificationHookDefinition

description: The strategy used to notify users.

enum: all single both


key: to

description:
The list of roles to notify.

Aside from roles, `$author` can also be used to notify the author of the resource.


key: subscribe

description:
If set, allows users to manually subscribe for notifications for this resource regardless of roles.

The following values are allowed:
- `all`: Allows users to be notified about actions on all of the resources of this type.
- `single`: Allows users to be notified about actions a single instance of a resource of this
  type.
- `both`: Allows users to be notified about all resources or a single resource of this type.


key: type

description: Send notifications to one or all the users of an app.


description: The description of the notification.


description:
To whom the notification should be sent.

Use `all` to send the notification to all app subscribed users.
Or notify specific users by passing either a single user id or an array of user ids.

Nothing is sent if the value is **not** a valid user id.


description: OAuth2 client credentials


key: code

description: The OAuth2 authorization code.


description: OAuth2 client credentials

required: description scopes

enum: apps:write blocks:write organizations:write resources:read resources:write assets:write teams:read teams:write


key: id

description: The generated client id


key: secret

description: The generated client secret


key: description

description: A description for the user to recognize the client.


key: expires

description: When the client credentials expire automatically.


key: scopes

description: The scopes that have been granted to the client.


key: ObjectRemapperDefinition

description:
An object based remapper is defined by a specific implementation

Object based remappers may only define 1 key. The allowed value depends on the remapper.

required: condition then else

required: case value

enum: index length

enum: id locale url

enum: data url

enum: sub name email email_verified picture profile locale

required: index props

required: index keys

required: choice length

enum: lower upper

required: start title

enum: info warn error


The remapper goes through the given array and applies the given remappers on each individual item.
This can be very handy when sorting arrays by certain data. The remapper always returns an array.
Output can be an empty array if the supplied data isn’t an array.

For example, if you want to sort through a list of people and only get their occupations you can do
the following:

Input:

```json
[
  {
    "name": "Peter",
    "occupation": "Delivery driver"
  },
  {
    "name": "Otto",
    "occupation": "Scientist"
  },
  {
    "name": "Harry",
    "occupation": "CEO"
  }
]
```

```yaml
array.map:
  object.omit:
    - name
```

Result:

```json
[{ "occupation": "Delivery driver" }, { "occupation": "Scientist" }, { "occupation": "CEO" }]
```

Another great use for `array.map` is to combine it with the `if` remapper and sort your arrays on
specific values.

Using the same input data from the previous example, look at how you can change the code to get
people from a specific occupation:

```yaml
- array.map:
    if:
      condition: { equals: [{ prop: occupation }, Scientist] }
      then:
        object.from:
          name:
            prop: name
          occupation:
            prop: occupation
      else: null
- null.strip: null
```

Result:

```json
[
  {
    "name": "Otto",
    "occupation": "Scientist"
  }
]
```

Because `array.map` returns an array, every item has to return something. This is why we have to
return the full object with the data we want in the `then` section. It’s also why we return `null`.
This results in an array consisting of `null` values and objects with actual data in them. To solve
this problem, we use the `null.strip` remapper to remove any null values which results in a clean
array.


Filters out unique values from an array. The value Remapper is applied to each entry in the array
using its result to determine uniqueness.

If the value Remapper results in undefined or null, the entire entry is used for uniqueness.

If the input is not an array, the input is returned without any modifications.

Input:

```json
[1, 1, 2, 3]
```

```yaml
array.unique: null
```

Result:

```json
[1, 2, 3]
```

You can also check for more complex values in arrays. The remapper accepts remappers as well, so you
can also use entire objects to check for unique values.

For this example, we have the following extended data with some duplicate values:

```json
[
  {
    "name": "Peter",
    "occupation": "Delivery driver",
    "age": 19
  },
  {
    "name": "Peter",
    "occupation": "Photographer",
    "age": 19
  },
  {
    "name": "Otto",
    "occupation": "Scientist",
    "age": 50
  },
  {
    "name": "Harry",
    "occupation": "CEO",
    "age": 20
  }
]
```

We can be fairly sure in this list of people the first two Peters are the same person but with a
different occupation. To get more complex unique values from here, we can do the following:

```yaml
array.unique:
  object.from:
    name: { prop: name }
    age: { prop: age }
```

This then checks the array for unique values in both the `name` and `age` fields. The result of this
remapper is a filtered list:

```json
[
  {
    "name": "Peter",
    "occupation": "Delivery driver",
    "age": 19
  },
  {
    "name": "Otto",
    "occupation": "Scientist",
    "age": 50
  },
  {
    "name": "Harry",
    "occupation": "CEO",
    "age": 20
  }
]
```


description:
Creates a new array based on a provided array of remappers. This array can also consist of static
values.

For example:

```yaml
array.from:
  - Peter
  - Otto
  - Harry
```

```json
["Peter", "Otto", "Harry"]
```

This remapper can also be used to convert given data into an array.

Input:

```json
{
  "name": "Peter",
  "occupation": "Delivery driver"
}
```

```yaml
array.from:
  - root: null # Takes the data passed to this remapper, explained more in the 'Data' page
```

Result:

```json
[
  {
    "name": "Peter",
    "occupation": "Delivery driver"
  }
]
```


description:
Append new values to the end of an array. If the input is not an array an empty array is returned.

Using the array from the previous example, we can add a new object on top of it using this remapper:

```yaml
array.append:
  - object.from:
      name: James
      occupation: News reporter
```

Result:

```json
[
  {
    "name": "Peter",
    "occupation": "Delivery driver"
  },
  {
    "name": "Otto",
    "occupation": "Scientist"
  },
  {
    "name": "Harry",
    "occupation": "CEO"
  },
  {
    "name": "James",
    "occupation": "News reporter"
  }
]
```


description:
Remove values from an array. The input is expected to be the index(es) of the items to be deleted.
Accepts an array of static or remapper values.

With the previous example we added a new person to the list of people, so now we can remove that
person. We already know the index of this person in the array is `3`, so it’s easy:

```yaml
array.omit:
  - 3
```

Result:

```json
[
  {
    "name": "Peter",
    "occupation": "Delivery driver"
  },
  {
    "name": "Otto",
    "occupation": "Scientist"
  },
  {
    "name": "Harry",
    "occupation": "CEO"
  }
]
```

However, usually we don’t know the exact index of the item we want to delete. Because the remapper
accepts remappers as input we can get the desired item’s ID from another source as well. Take the
following example:

In this example we assume the data from the previous example is passed to this table block using a
data loader’s emitting event called “people”. When the user clicks on one of the people in the
table, it gets the list of people again. Using the index of this person, and the `array.omit`
remapper, the person gets removed from the list.

```yaml
type: table
version: 0.20.38
events:
  listen:
    data: people
parameters:
  fields:
    - label: Name
      value: { prop: name }
      onClick: removePerson
    - label: Occupation
      value: { prop: occupation }
actions:
  removePerson:
    type: resource.query
    resource: citizensNYC
    remapAfter:
      array.omit:
        - context: index # This gets the index of the item in the table, explained more in the 'Data' page.
    onSuccess:
      type: resource.update
      resource: citizensNYC
```


key: if

description:
Check if condition results in a truthy value.

Returns value of `then` if condition is truthy, otherwise it returns the value of `else`.

For example:

```yaml
if:
  condition: { equals: [{ prop: inputValue }, 4] }
  then:
    static: You guessed right!
  else:
    static: You guessed wrong!
```

If the `inputValue` is `4`, it goes to the `then` remapper and returns:
```
You guessed right!
```

If the `inputValue` is something other than `4`, it goes to the `else` remapper and returns:
```
You guessed wrong!
```


key: condition

description: The condition to check.


key: then

description: This remapper is used if the condition returns true.


key: else

description: This remapper is used if the condition returns false.


key: equals

description:
Compare all computed remapper values against each other.

Returns `true` if all entries are equal, otherwise `false`.

In the following example, if the `inputValue` and `expectedValue` are of the same value, the
condition will return `true` and the `then` remapper will fire.

```yaml
condition:
  equals:
    - prop: inputValue
    - prop: expectedValue
```


key: gt

description:
**(gt = Greater than)**

Compare the first computed remapper value with the second computed remapper value.

Returns `true` if the first entry is greater than the second entry.

For example, if `stock` is more than 5 here, it returns `true`.

```yaml
condition:
  gt:
    - prop: stock
    - 5
```


key: lt

description:
**(lt = Lesser than)

Compare the first computed remapper value with the second computed remapper value.

Returns `true` if the first entry is lesser than the second entry.

For example, if `stock` is less than 5 here, it returns `true`.

```yaml
condition:
  lt:
    - prop: stock
    - 5
```


key: not

description:
Compare all computed remapper values against the first.

Returns `false` if all entries are equal to the first entry, otherwise `true`.

If only one remapper or none is passed, the remapper value gets computed and then inverted.

If `number` in the following example is something other than 4, the condition returns `true`.

```yaml
condition:
  not:
    - prop: number
    - 4
```


key: match

description:
Check if any case results in a truthy value.

Returns the value of the first case where the condition equals true, otherwise returns null.

In the following example, let's say the `Gem` is a "Ruby". The match remapper then returns
`value: 75`.

```yaml
match:
  - case: { equals: [{ prop: Gem }, Diamond] }
    value: 100
  - case: { equals: [{ prop: Gem }, Ruby] }
    value: 75
  - case: { equals: [{ prop: Gem }, Gold] }
    value: 50
  - case: { equals: [{ prop: Gem }, Sapphire] }
    value: 25
```


key: case

description: The condition to check.


key: value

description: This remapper is used if the case is true


key: array

description:
Get the current array.map’s index or length.

Returns nothing when not in the context of `array.map’s`.

For example:

Input:
```json
["a", "b", "c"]
```

This remapper definition maps through the input array and creates an object with the length of the
array and the current index of the loop:
```yaml
array.map:
  object.from:
    length: { array: length }
    index: { array: index }
```

Result:
```json
[
  {
    "index": 0,
    "length": 3
  },
  {
    "index": 1,
    "length": 3
  },
  {
    "index": 2,
    "length": 3
  }
]
```


key: app

description:
Gives actual information about the current app. Using this remapper you will have access to the
following information:

- `id`: App ID
- `locale`: Current locale (user selected language) of the app
- `url`: Base URL of the app

Example:

```json
{
  "id": 11,
  "locale": "en",
  "url": "https://example-app.examplecompany.appsemble.app"
}
```