api.json

$filter

in: query

description:
    An OData filter

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

$orderby

description:
    An OData filter

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

$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

$team

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

enum: member manager

$top

description: Limit the number of entities returned.

appId

in: path

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

$ref: #/components/schemas/App/properties/id

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

appSamlSecretId

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

appServiceId

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

assetId

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

blockId

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

blockVersion

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

endpoint

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

format: uri

language

description: The language on which to perform an operation

organizationId

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

resourceId

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

resourceType

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

screenshotId

description: The ID of the app an app screenshot

type: number

view

description: The view of the resource to fetch.

description: The OAuth2 client credentials

required: appId redirectUri scope

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

description: The URI to redirect the user back to.

description: The OAuth2 scope requested by the app.

description: A resource definition

$ref: #/components/schemas/Resource

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

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

format: binary

description: A user profile

$ref: #/components/schemas/User

description: An app response

description: A block definition response

description: The default error response.

description: An invite response

description: An OAuth2 authorization code.

description: An organization response

description: A resource response

description: A subscription response.

description: A mapping of resources names to resource subscriptions.

description: The base properties of an action definition.

$ref: #/components/schemas/RemapperDefinition

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

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

$ref: #/components/schemas/ActionDefinition

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

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

required: type target

description:
This action sends a Google Analytics event.

It returns the input data.

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

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

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

description:
The unique identifier for the app.

This value will be generated automatically by the API.

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.

format: hostname

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.

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.

default: unlisted

enum: public unlisted private

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

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.

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

description:
A long description for the app.

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

$ref: #/components/schemas/AppDefinition

description: A list of URLs referencing app screenshots

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

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.

format: url

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

  This is only applied when `sentryDsn` is specified.

description: An user account connected to an app

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

format: email

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

description: Whether this email address has been verified.

description: The role of the user within the app

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

$ref: #/components/schemas/SSOConfiguration

description: The URL of the avatar of the member.

required: name defaultPage pages

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

description:
The human readable name of the app.

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

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

description:
A short description describing the app.

This will be displayed on the app store.

description: Properties related to the layout of the app.

enum: login opt-in startup

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.

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.

default: en

description: The default language for the app.

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.

description: A single resource definition.

$ref: #/components/schemas/ResourceDefinition

$ref: #/components/schemas/SecurityDefinition

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

description: The pages of the app.

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

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

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

description: The location of the login button.

description:
The location of the settings button.

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

description:
The location of the feedback button.

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

description:
The navigation type to use.

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

description: The response object of an messages create call.

description: The language the messages represent.

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

description: An autogenerated ID

description: The OAuth2 redirect URL.

description: The URL to request access tokens from.

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

description: The OAuth2 client secret.

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

description: A display name which represents the OAuth2 provider.

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

description: The URL to request user info from

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

description: When the secret was created originally.

description: When the secret was last updated.

description: App service secret settings

description: An autogenerated ID.

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

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

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

description: The method to authenticate the request action with.

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

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

description: The URL to request access tokens from.

description: A mapping of the messages for this language

description: Translations for the core of the app.

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

description: Translations for the core of the app.

description: The name of the block type.

description: The version of the block.

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

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.

description: The response object of an asset create call.

description: The unique identifier for the asset.

description: The IANA MIME type of the asset.

description: The filename of the asset.

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

description: A block that is displayed on a page.

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`

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.

description: An override of the block’s default.

description: An optional header to render above the block.

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.

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

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

description:
A free form mapping of named parameters.

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

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

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.

description:
The name of a block.

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

description: The description of the block.

description: The long description of the block.

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

description: The relative URL on which the icon is served

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

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.

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

description: A mapping of events this block may listen on

description: A mapping of events this block may listen on

description: A mapping of events this block may emit

description: A mapping of events this block may emit

description: deprecated

description:
The translated messages for the block.

English (`en`) messages are required.

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.

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

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

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

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.

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

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

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

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

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

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

description: A custom font definition.

description: Use a custom font.

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.

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

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

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

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

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.

description: Runs the action in series instead of parallel

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

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.

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>`

description: The name of the sender of the email.

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.

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.

description: The subject of the email.

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

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.

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

description: Matches the HTTP response status code.

description: Matches the HTTP response status description.

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.

description: The name of the event to emit.

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

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

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.

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.

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.

description: These actions are fired on a flow page.

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

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.

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

description: Steps belonging to this page's flow.

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

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.

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.

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

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.

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.

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.

description:
An optional icon from the fontawesome icon set

This will be displayed in the navigation menu.

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.

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.

description:
The name of the step to move to.

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

description: A Google font definition.

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

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

description:
The font to use in the app.

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

description: A health check status

description: Whether or not the database status is healthy

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

description: A JSON schema reference.

description: The default value that will be used.

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.

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

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

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

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.

description: A JSON schema for an array.

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

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

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

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

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

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

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

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.

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.

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

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

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

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.

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.

description: A JSON schema for an enum.

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

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.

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.

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.

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

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

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

description: The minimum value of the number.

description: The maximum value of the number.

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.

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.

description: A JSON schema which defines multiple types.

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

enum: array boolean integer null number string

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

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

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

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

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

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

description: The minimum value of the number.

description: The maximum value of the number.

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.

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 mapping of object keys for the object to nested JSON schemas.

description: A list of properties that are required.

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

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.

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

description: The format values should adhere to.

description: The minimum length of the string.

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.

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.

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.

description: A JSON schema which may not be matched.

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

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

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.

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

description: Only accept a null value.

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.

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.

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

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

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

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

description: The minimum value of the number.

description: The maximum value of the number.

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

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

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.

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.

description: A JSON schema for an object.

description: The type of the JSON schema.

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

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

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.

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.

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.

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

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.

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

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

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.

description: A top level JSON schema.

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

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

description: The type of the JSON schema.

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

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

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.

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.

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.

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

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

description: The format values should adhere to.

description: The minimum length of the string.

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.

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.

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

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.

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

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.

description: The logging level on which to log.

description: These actions are fired on a loop page.

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

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

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

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

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

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.

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

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.

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.

description:
An optional icon from the fontawesome icon set

This will be displayed in the navigation menu.

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.

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

Only the first case that equals true is called.

description: The case to be matched.

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

description: A member of an organization.

description: The primary email address of the user.

enum: Member Translator APIReader APIUser AppEditor Maintainer Owner

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.

description: The body of the message.

enum: dark primary link success info warning danger

description: The Bulma color to apply to the message.

description: The position of the message on the screen.

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

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.

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

description: The title of the notification.

description: The body of the notification.

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.

description: The strategy used to notify users.

description:
The list of roles to notify.

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

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.

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

description: The title of the notification.

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

description: The OAuth2 authorization code.

description: OAuth2 client credentials

description: The generated client id

description: The generated client secret

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

description: When the client credentials expire automatically.

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

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

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.

description:
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.

description:
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
```

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!
```

description: The condition to check.

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

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

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
```

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
```

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
```

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
```

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
```

description: The condition to check.

description: This remapper is used if the case is true

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
  }
]
```

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"
}
```

description:
Gets a property from custom context passed by blocks. This property is specific to each block. To
understand what the context of a certain block does, check the block’s description.

For this example, we will take the [`table`](/blocks/@appsemble/table/0.20.39) block. As of now,
this block provides two options for context: `index` and `repeatedIndex`. Whenever you click on an
item in the table, it gives the index of that table row in the associated action.

So with the following example:

```yaml
type: table
version: 0.20.39
events:
  listen:
    data: contextData
parameters:
  fields:
    - label: Name
      value: { prop: name }
      onClick: clickName
    - label: Age
      value: { prop: age }
actions:
  clickName:
    remapBefore:
      context: index
    type: log
```

Clicking on the first item would log `0`, the second item `1` and so on.

description:
> **Note:** This remapper is explained more in depth in the [History](/docs/remapper/history) page

Gives the data at the history entry at the specified history index. The history at specified index
is the data that is passed to that action.

```yaml
remapBefore:
  object.from:
    title: Most influential bands of all time
    content: ...
type: noop # history 0
onSuccess:
  type: resource.query # history 1
  resource: people
  onSuccess:
    type: noop # history 2
    onSuccess:
      remapBefore:
        history: 1
      type: log # history 3
```

Result:

```json
{
  "title": "Most influential bands of all time",
  "content": ...
}
```

description:
While in a loop page, this remapper allows you to get properties from the data at the current index.

```yaml
name: Survey
type: loop
actions:
  onLoad:
    type: resource.query
    resource: questions
foreach:
  blocks:
    - type: detail-viewer
      version: 0.20.39
      parameters:
        fields:
          - label: { step: title }
```

With this example, we load an array of questions that have the `title` property. What the `step`
remapper does in this case is show the title of the current question in the loop.

The result of this is a flow page where each page shows the question’s title.

description:
Gives actual information about the current page. This remapper gives access to the following
information:

- `data`: Current page data (FlowPage)
- `url`: Full URL of the current page

Example:

```json
{
  "data": {
    "name": "Peter"
  },
  "url": "https://example-app.examplecompany.appsemble.app/en/example-page-a"
}
```

The page data only works in the context of a flow page. Let’s say you have a
[“FlowPage”](/docs/reference/app#-flow-page-definition) type with multiple subpages. Whenever you
navigate to the next page it adds the data from that page to the flow page’s data. The page remapper
allows you to access this cumulative data.

The following page definition shows a page definition for a flow page where the user has to fill in
some user information. For each subpage the result of `page: data` is shown.

```yaml
name: PageDataFlow
type: flow
steps:
  # page: data = {}
  - blocks:
      - type: form
        version: 0.20.39
        parameters:
          fields:
            - name: name
              type: string
        actions:
          onSubmit:
            type: flow.next
  # page: data = { name: "Peter" }
  - blocks:
      - type: form
        version: 0.20.39
        parameters:
          fields:
            - name: age
              type: string
        actions:
          onSubmit:
            type: flow.next
  # page: data = { name: "Peter", age: "47" }
  - blocks:
      - type: data-loader
        version: 0.20.39
        actions:
          onLoad:
            remapBefore:
              page: data
            type: log
```

The result of the final page’s log would then be:

```json
{
  "name": "Peter",
  "age": "47"
}
```

description:
Gets the chosen property from an object.

```json
{
  "name": "John",
  "age": 52
}
```

```yaml
prop: name
```

Result:

```json
"John"
```

description:
Gets the input data as it was initially passed to the remapper function.

```yaml
type: resource.query
resource: people
query:
  object.from:
    $filter: city eq 'Eindhoven'
onSuccess:
  remapBefore:
    object.from:
      name: Residents of Eindhoven
      people:
        root: null
```

Result:

```json
{
  "name": "Residents of Eindhoven",
  "people": [
    {
      "name": ...,
      "city": "Eindhoven"
    },
    ...
  ]
}
```

description:
Create a static value

```yaml
static: Hello!
```

Returns the following string:

```
Hello!
```

description:
> **Note:** This is explained much more in depth at [Translating](/docs/03-guide/translating)

This remapper allows you to easily add translations to your app. To make this remapper work, replace
any static text with `translate: {name}`. Then, in your app’s Translations page pick the language
you want to translate. You will see a list of names with input text below. Translations you manually
put in the app using the `translate` remapper are found under “Custom messages”.

After putting the translation in, any user that logs in with that language selected will see the
translated message.

Example:

```yaml
type: detail-viewer
version: 0.20.39
parameters:
  fields:
    - label: { translate: weatherTitle }
      value: { translate: weatherBody }
```

enum: sub name email email_verified picture profile locale

description:
> **Note:** For this remapper to work, the user that activated the remapper has to be logged in to
> the app

Provides some fields of user information taken from the OpenID user info. These fields are:

- `email`: User’s **primary** email address
- `email_verified`: Whether the user’s primary email address is verified or not (`boolean`)
- `locale`: The user’s default language [`BCP47`](https://en.wikipedia.org/wiki/IETF_language_tag)
  language tag (ex. `en`) (Broken)
- `name`: The user’s name
- `picture`: Full URL to the user’s profile picture web address
- `sub`: The user’s identifier

Example:

```json
{
  "email": "example@hotmail.nl",
  "email_verified": true,
  "locale": "en",
  "name": "Test User",
  "picture": "https://www.gravatar.com/avatar/f46b82357ce29bcd1099915946cda468?s=128&d=mp",
  "sub": "5c6270e2-ad31-414f-bcab-6752a2c4dcfd"
}
```

description:
Adds a specified date value to the provided date.

The value to add should be specified according to the
[parse-duration](https://www.npmjs.com/package/parse-duration) API. If you want to add a day to a
date for example, the syntax would be `date.add: 1d`.

Full list of supported unit types:
- nanoseconds (ns)
- microseconds (μs)
- milliseconds (ms)
- seconds (s, sec)
- minutes (m, min)
- hours (h, hr)
- days (d)
- weeks (w, wk)
- months
- years (y, yr)

For example:

Date now:
```json
2023-06-30T14:50:19.601Z
```

Remapper definition:
```yaml
[{ date.now: null }, { date.add: 1w } , { date.format: null }]
```

Result:
```json
2023-07-07T14:50:19.601Z
```

description:
Format a date according to the RFC3339 format.

Here is an example of a RFC3339 complicit date:
`2002-10-02T15:00:00Z`

In an app definition, it’s best to use this when you want to display a date in a specific format.
For example, if your app has a form with a Datepicker field the incoming data will be formatted
as a simple date format. If you want to format it tot he RFC3339 format, you can use this remapper.

When you submit a form with a DateField, the internal output looks like this:

```js
2023-07-03
```

You can then format the date so that it uses the RFC3339 format.

```yaml
date.format: null
```

Result:
```js
"2023-07-03T09:09:50.000Z"
```

description:
Returns the current date as a JavaScript Date object.
```yaml
date.now: null
```

Result:
```js
"Mon Jul 03 2023 11:47:18 GMT+0200 (Midden-Europese zomertijd)"
```

description:
Convert a string to a date using a given format.

For example:
```yaml
- static: 02/11/2014     # The date string to parse
- date.parse: MM/dd/yyyy # The given format to parse the date with
            # => Tue Feb 11 2014 00:00:00
```

See [date-fns](https://date-fns.org/v2.29.3/docs/parse) for the supported formats.

Leaving the format empty will try to parse the date using the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.
For example:
```yaml
date.parse:
- static: 2014-02-11T11:30:30 # The date string to parse
- date.parse: ''              # The given format to parse the date with
                      # => Tue Feb 11 2014 11:30:30
```

description:
Creates a new object based on the specified properties in the given history index. This can be very
useful when you want to combine two sources of data together. It’s also cleaner than separately
using `object.from` together with `history`.

In the following example, you can see why this might be handy. Let’s say you get the details about a
concert from a source like an action or a block. You have this information and then you want to get
some additional data like the attendees of the concert. With `from.history` you can combine the
older data like the name and date, and add the new `attendees` data. The result will be an object
with this combined data.

History index 1:

```json
{
  "name": "Rolling stones at Amsterdam Arena",
  "artist": "Rolling Stones",
  "location": "Amsterdam Arena",
  "date": "07-07-2022",
  "price": 120
}
```

Input:

```json
[ .. ]
```

```yaml
object.from:
  concertDetails:
    from.history:
      index: 1
      props:
        name: { prop: name }
        date: { prop: date }
        attendees: { root: null }
```

Result:

```json
{
  "concertDetails": {
    "attendees": [ .. ],
    "date": "07-07-2022",
    "name": "Rolling stones at Amsterdam Arena"
  }
}
```

description:
The index of the history stack item to assign.

0 is the index of the first item in the history stack.

description: Predefined mapper keys to choose what properties to apply.

description:
Assigns properties from the specified history stack index to an existing object.
Similarly to the `from.history` remapper, this allows you to get a property from a place in the
history and give it to a new object. The only difference here is that you are not creating an
entirely new object, but you are taking an existing object and assigning new values to it.

So, we can take the example from `from.history` and flip it.

History index 1:

```json
{
  "peopleAmount": 3000
}
```

Input:

```json
{
  "name": "Rolling stones at Amsterdam Arena",
  "artist": "Rolling Stones",
  "location": "Amsterdam Arena",
  "date": "07-07-2022",
  "price": 120
}
```

```yaml
object.from:
  concertDetails:
    assign.history:
      index: 1
      props:
        attendees: { prop: peopleAmount }
```

Result:

```json
{
  "concertDetails": {
    "name": "Rolling stones at Amsterdam Arena",
    "artist": "Rolling Stones",
    "location": "Amsterdam Arena",
    "date": "07-07-2022",
    "price": 120,
    "attendees": 3000
  }
}
```

description:
The index of the history stack item to assign.

0 is the index of the first item in the history stack.

description: Predefined mapper keys to choose what properties to assign.

description:
Assigns properties from the specified history stack index to the current value and excludes the
given properties.

Similarly to the other history remappers, this gives you the data from a certain point in the
history stack and allows you to modify it before adding to the current value. This one, however,
allows you to take the complete specified history data and omit certain values.

This remapper can be extremely helpful for re-using data you got before in the history stack while
filtering certain properties.

For example, let’s say you have the information for a concert but don’t want normal users to see
sensitive data about it. Using `omit.history` you can take this concert data but exclude the
sensitive parts.

History index 1:

```json
{
  "name": "Rolling stones at Amsterdam Arena",
  "artist": "Rolling Stones",
  "location": "Amsterdam Arena",
  "date": "07-07-2022",
  "bandPasswords": [ .. ],
  "bankDetailsAttendees": [ .. ]
}
```

Input:

```json
[ .. ]
```

```yaml
object.from:
  concertDetails:
    omit.history:
      index: 1
      keys:
        - bandPasswords
        - bankDetailsAttendees
```

Result:

```json
{
  "concertDetails": {
    "name": "Rolling stones at Amsterdam Arena",
    "artist": "Rolling Stones",
    "location": "Amsterdam Arena",
    "date": "07-07-2022",
    "attendees": [ .. ]
  }
}
```

description:
The index of the history stack item to assign.

0 is the index of the first item in the history stack.

description:
Exclude properties from the history stack item, based on the given object keys.

Nested properties can be excluded using arrays of keys.

For example:
```yaml
omit.history:
  index: 0
  keys:
    - foo   # Excludes the property foo
    - - bar # Excludes the property baz inside of bar
      - baz
```

description:
Let’s say you have an existing object that you want to add an additional value on top of. For this
you can use the `object.assign` remapper. The remapper takes an existing object and allows the user
to assign their own value on top of that.

Input:

```json
{
  "title": "Weekly fishing 21"
}
```

```yaml
object.assign:
  author: John Doe
```

Result:

```json
{
  "title": "Weekly fishing 21",
  "author": "John Doe"
}
```

description:
With this remapper you can create an entirely new object based on input values and other remappers.
`object.from` itself accepts remapper functions as its input which allows you to chain multiple
remappers together to make complex objects.

As a base, the remapper looks like this:

```yaml
object.from:
  username: Chris Taub
  email: example@hotmail.com
```

```json
{
  "username": "Chris Taub",
  "email": "example@hotmail.com"
}
```

Most of the time you won’t create an object just to store one value. Luckily, this is where the
chaining of remappers comes in. You can create an object that contains an `object.from` remapper
which then allows more inputs:

```yaml
object.from:
  username: Chris Taub
  email: example@hotmail.com
  addresses:
    object.from:
      work:
        object.from:
          city: Eindhoven
          address: Nachtegaallaan 15
      home:
        object.from:
          city: Amsterdam
          address: Amstel 1
```

```json
{
  "username": "Chris Taub",
  "email": "example@hotmail.com",
  "addresses": {
    "work": {
      "city": "Eindhoven",
      "address": "Nachtegaallaan 15"
    },
    "home": {
      "city": "Amsterdam",
      "address": "Amstel 1"
    }
  }
}
```

description:
In contrary to the previous remapper, what if you have an object from which you want to remove a
value? Then you can use `object.omit`. The remapper can remove properties from an existing object
based on the given object keys. This includes nested properties.

Input:

```json
{
  "title": "Weekly fishing 21",
  "author": "John Doe",
  "content": {
    "introduction": "This is the introduction for the new weekly fishing issue",
    "paragraph1": "...",
    "interview": "..."
  }
}
```

```yaml
object.omit:
  - author
  - - content
    - interview
```

Result:

```json
{
  "title": "Weekly fishing 21",
  "content": {
    "introduction": "This is the introduction for the new weekly fishing issue",
    "paragraph1": "..."
  }
}
```

description:
Pick and return a random entry from an array. If the input is not an array, the input is returned as-is.
For example:

If you input the following array:
```json
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
```

```yaml
random.choice: null
```

The result could return any one of these numbers.

You can also combine different data types in this array and have it work in the same way. If mixed in
strings, the result could be either one of the provided numbers or one of the provided strings.

```json
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, "Peter", "Patrick", "Michael", "Harry"]
```

description:
Pick and return a random integer between the provided lowest and highest values.
For example:
```yaml
random.integer:
  - 0
  - 1000
```

Returns a random integer between 0 and 1000.

description:
Pick and return a random float value between the provided lowest and highest values.
For example:
```yaml
random.float:
  - 0
  - 1
```

Returns a random float value between 0 and 1.

description:
Pick and return a random string from a given length using characters from a given input string defined in `choice`.
For example:
```yaml
random.string:
  choice: abcdefghijklmnopqrstuvwxyz0123456789
  length: 6
```

Returns a randomized string that is 6 characters long and consists of any characters in the `choice` field, like: `g8ajss9`.

description:
Convert a string to upper or lower case.
```yaml
string.case: upper
```

Result:

```json
"PATRICK"
```

description: The message id pointing to the template string to format.

description: The template default string to format.

description: A set of remappers to convert the input to usable values.

description:
Format a string using remapped input variables.
Useful for replacing static text with generated values.

```yaml
string.format:
  template: 'You have won €{lotteryAmount} in the lottery!!'
  values:
    lotteryAmount: { prop: lotteryPrize }
```

Result:

```json
"You have won €5000 in the lottery!!"
```

> **Tip:** Considering this can be inserted anywhere a remapper is accepted. You can also use this
> to choose specific URL’s more accurately.

description:
Uses RegEx to find a value in a string and replace it with a given value.

```yaml
# Input: Eindhoven is the best city in the Netherlands
string.replace:
  (beszt*)\w+: cleanest
```

Result:

```json
"Eindhoven is the cleanest city in the Netherlands"
```

description:
Create a calendar event. This event can be downloaded as an `.ics` file and
uploaded to your agenda using the [download](../reference/action#download) action.

For example, the following input:
```yaml
ics:
coordinates
  object.from:
    latitude: 38.897700545442646
    longitude: -77.03655660152435
description: "Sprint planning meeting"
duration: 1d
end: 2023-07-19
location: The Oval Office.
start: 2023-07-18
title: Important Meeting
url: https://google.nl
```

Creates the following ICS-formatted object:
```
BEGIN:VCALENDAR
VERSION:2.0
CALSCALE:GREGORIAN
PRODID:http://remappers.appsemble.localhost:9999
METHOD:PUBLISH
X-PUBLISHED-TTL:PT1H
BEGIN:VEVENT
UID:b8TsbczhfpIxPM-3lNHQz
SUMMARY:Important Meeting
DTSTAMP:20230703T102029Z
DTSTART:20230717T220000Z
DTEND:20230718T220000Z
DESCRIPTION:Sprint planning meeting
URL:https://google.nl
GEO:38.897700545442646;-77.03655123710632
LOCATION:The Oval Office.
END:VEVENT
END:VCALENDAR
```

description: The start of the icalendar event.

description: The end of the icalendar event.

description: The duration of the event.

description: The title of the event.

description: An optional description of the event.

description: An optional link to attach to the event.

description: An optional location description to attach to the event.

description:
An optional geolocation description to attach to the event.

  This must be an object with the properties `lat` or `latitude`, and `lon`, `lng` or `longitude`.

description:
Strip all null, undefined, and empty array values from an object or array.
For example, with the following input value:
```json
[0, 4, null, null, "Peter", 0.4234, null]
```
```yaml
null.strip: null
```

The null values will be removed, leaving a dense array:
```json
[0, 4, "Peter", 0.4234]
```

Instead of giving it `null` as option, you can also provide a `depth` property to specify how
deep to recurse into the object or array to remove null values.

For example, with the following input:
```json
{
  0: [0, null, "Peter"],
  1: {
    "array1": [4, null, 0.4234, null]
  }
}
```

You can specify to which degree of depth you want the null values to be removed.
With this remapper definition:
```yaml
null.strip:
  depth: 2
```

It will only check two objects in for any null values. That means only the first array within the
object will be checked. The result looks like this:
```json
{
  0: [0, "Peter"],
  1: {
    "array1": [4, null, 0.4234, null]
  }
}
```

description: Options for the null.strip remapper.

description: How deep to recurse into objects and arrays to remove null values.

description:
Logs in the browser's console and returns the incoming data and the remapper function's context.

The context contains relevant info about the app, like the URL and locale, but also contains the
remapper’s history.

The options represent the level of logging that will show in the console.

- `input`: The input data going into this remapper,
- `context`:
  - `root`: The input data going into this remapper,
  - `appId`: ID of the application,
  - `url`: Absolute URL of the page where the remapper was fired,
  - `appUrl`: Base URL of the application,
  - `pageData`: Current page data of a FlowPage (See [page remapper](./data#page)),
  - `userInfo`: User's information if they are logged in (See [user remapper](./data#user)),
  - `context`:
    - `history`: Complete list of this remapper’s history (See [history remapper](./history))
  - `history`: Complete list of this remapper’s history (See [history remapper](./history))
  - `locale`: The user’s locale,
  - `stepRef`: In a loop page, gives the properties from the loop’s current data index (See [step remapper](./data#step))

For example:

```json
{
  "input": {
    "name": "Peter",
    "age": 49,
    "birthday": "07-08-2023"
  },
  "context": {
    "root": {
      "name": "Peter",
      "age": 49,
      "birthday": "07-08-2023"
    },
    "appId": 49,
    "url": "http://remappers.appsemble.localhost:9999/en/other",
    "appUrl": "http://remappers.appsemble.localhost:9999",
    "pageData": {
      "triedAppsemble": false
    },
    "userInfo": {
      "email": "example@hotmail.com",
      "email_verified": true,
      "name": "Example User 1",
      "picture": "https://www.gravatar.com/avatar/f46b82357ce29bcd1099915946cda468?s=128&d=mp",
      "sub": "0000-0000-0000-0000",
      "locale": "en",
      "zoneinfo": "Europe/Amsterdam"
    },
    "context": {
      "history": [
        [
          0,
          4,
          null,
          null,
          "Peter",
          0.4234,
          null
        ],
        {
          "name": "Peter",
          "age": 49
        },
        {
          "name": "Peter",
          "age": 49,
          "birthday": "07-08-2023"
        }
      ]
    },
    "history": [
      [
        0,
        4,
        null,
        null,
        "Peter",
        0.4234,
        null
      ],
      {
        "name": "Peter",
        "age": 49
      },
      {
        "name": "Peter",
        "age": 49,
        "birthday": "07-08-2023"
      }
    ],
    "locale": "en",
    "stepRef": {
      "current": {
        "answerType": "multiple choice",
        "question": "How much do you enjoy working here?"
      }
    }
  }
}
```

description: An organization groups a set of users, apps, themes, and permissions together

description: The unique identifier for the organization.

description: The display name for the organization.

description: The description of the organization.

description: The email address of the organization.

description: The website of the organization.

description: The URL used to fetch the organization’s icon.

description:
The list of blocks that are displayed on the page.

Each page requires at least one block. Blocks are displayed in the order that they are defined in
the list.

description: The blocks that make up a page.

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

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.

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.

description:
An optional icon from the fontawesome icon set

This will be displayed in the navigation menu.

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.

description: A representation of an App rating.

description: A value ranging from 1 to 5 stars rating of the App.

description: An optional explanation of the given rating.

description: The name of the user who submitted the rating.

description: A boolean remapper is always returned directly.

description: A null remapper is always returned directly.

description: A numeric remapper is always returned directly.

description: A string remapper is always returned directly.

description:
Performs an HTTP request.

This can be used to call the Appsemble API or an external API in order to fetch data or send data.
When sending `POST`, `PUT`, `DELETE` and `PATCH` calls the data that is currently available
in the block gets passed through.

If the content type of the request is `text/xml` or `application/xml`, the data will be
converted to JSON.

description:
A remapper that results in the URL to send the request to.

Can be a relative URL (E.g. `/api/health`) for usage with the Appsemble API, or an absolute URL
(E.g. `https://example.com`) for usage with external sites.

description: The type of request to make.

description: A remapper that results in either an object containing each property of the query string, or a string that gets passed through as-is.

description:
remapper that results in the request body to send.

If not specified, the raw input data is used.

description:
By default requests will be proxied through the Appsemble API.

This allows to protect user data and ensures
[CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) is enabled. This behavior can be
disabled by setting this to `false`

description: The name of the schema to validate against before submitting data.

description: A resource can be anything defined as described in an app resource definition.

description: Count the number of resources a similar `resource.query` action would return.

description: The type of the resource to count.

description: The type of request to make.

description: A remapper that results in either an object containing each property of the query string, or a string that gets passed through as-is.

description:
remapper that results in the request body to send.

If not specified, the raw input data is used.

description:
By default requests will be proxied through the Appsemble API.

This allows to protect user data and ensures
[CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) is enabled. This behavior can be
disabled by setting this to `false`

description: The name of the schema to validate against before submitting data.

description: Create a resource.

description: The type of the resource to create.

description: The type of request to make.

description: A remapper that results in either an object containing each property of the query string, or a string that gets passed through as-is.

description:
remapper that results in the request body to send.

If not specified, the raw input data is used.

description:
By default requests will be proxied through the Appsemble API.

This allows to protect user data and ensures
[CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) is enabled. This behavior can be
disabled by setting this to `false`

description: The name of the schema to validate against before submitting data.

description: A definition of how this resource works.

description:
A time string representing when a resource should expire.

Example: 1d 8h 30m

description: JSON schema definitions that may be used by the app.

description:
References to other resources.

The key is the property that references the other resource. The value is an object describing the
name of the resource and how it should behave.

description: A reference to between two resource types.

description: To be documented.

description: To be documented.

description: To be documented.

description: The default roles that are allowed to perform all actions.

description: URL to use if not otherwise specified.

description: Name of the field used when accessing singular entities.

description: A definition of how versioning should happen for instances of this resource.

description: Setting this to `true` is the same as using an object with the property `data` set to `true`.

description: Overrides for 'query' requests.

description:
The list of roles that are allowed to use this action.

This will override the default roles that are assigned.

description: The query parameters to use in the request.

description: HTTP method to use for this type of request.

description: URL to use for this type of request.

description: Overrides for 'get' requests.

description:
The list of roles that are allowed to use this action.

This will override the default roles that are assigned.

description: The query parameters to use in the request.

description: HTTP method to use for this type of request.

description: URL to use for this type of request.

description: Overrides for 'count' requests.

description:
The list of roles that are allowed to use this action.

This will override the default roles that are assigned.

description: The query parameters to use in the request.

description: HTTP method to use for this type of request.

description: URL to use for this type of request.

description: Overrides for 'create' requests.

description:
The list of roles that are allowed to use this action.

This will override the default roles that are assigned.

description: The query parameters to use in the request.

description: HTTP method to use for this type of request.

description: URL to use for this type of request.

description: Overrides for 'update' requests.

description:
The list of roles that are allowed to use this action.

This will override the default roles that are assigned.

description: The query parameters to use in the request.

description: HTTP method to use for this type of request.

description: URL to use for this type of request.

description: Overrides for 'delete' requests.

description:
The list of roles that are allowed to use this action.

This will override the default roles that are assigned.

description: The query parameters to use in the request.

description: HTTP method to use for this type of request.

description: URL to use for this type of request.

description: Delete a resource.

description: The type of the resource to delete.

description: The type of request to make.

description: A remapper that results in either an object containing each property of the query string, or a string that gets passed through as-is.

description:
remapper that results in the request body to send.

If not specified, the raw input data is used.

description:
By default requests will be proxied through the Appsemble API.

This allows to protect user data and ensures
[CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) is enabled. This behavior can be
disabled by setting this to `false`

description: The name of the schema to validate against before submitting data.

description: Get a single resource.

description: The type of the resource to get.

description: The view to use for the resource.

description: The type of request to make.

description: A remapper that results in either an object containing each property of the query string, or a string that gets passed through as-is.

description:
remapper that results in the request body to send.

If not specified, the raw input data is used.

description:
By default requests will be proxied through the Appsemble API.

This allows to protect user data and ensures
[CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) is enabled. This behavior can be
disabled by setting this to `false`

description: The name of the schema to validate against before submitting data.

description: A definition of how versioning works for instances of this resource

description: If set to `false`, edits are still tracked, but exactly what changed is lost.

description: Hooks that are triggered upon calling a resource action.

description: Patch a resource.

description: The type of the resource to patch.

description: The type of request to make.

description: A remapper that results in either an object containing each property of the query string, or a string that gets passed through as-is.

description:
remapper that results in the request body to send.

If not specified, the raw input data is used.

description:
By default requests will be proxied through the Appsemble API.

This allows to protect user data and ensures
[CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) is enabled. This behavior can be
disabled by setting this to `false`

description: The name of the schema to validate against before submitting data.

description: Query a list of resources.

description: The type of the resource to query.

description: The view to use for the resource.

description: The type of request to make.

description: A remapper that results in either an object containing each property of the query string, or a string that gets passed through as-is.

description:
remapper that results in the request body to send.

If not specified, the raw input data is used.

description:
By default requests will be proxied through the Appsemble API.

This allows to protect user data and ensures
[CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) is enabled. This behavior can be
disabled by setting this to `false`

description: The name of the schema to validate against before submitting data.

description: This describes how a user is subscribed to a resource.

description: If true, the user is subscribed to any create actions for the resource type

description: If true, the user is subscribed to any update actions for the resource type

description: If true, the user is subscribed to any delete actions for the resource type

description: A mapping of resource IDs to individual resource subscriptions

description: The subscription status of a user for a single resource.

description: If true, the user is subscribed to update actions on this particular resource.

description: If true, the user will be notified when this particular resource is deleted.

description: Get the status of whether or not the user is subscriped to notifications for resource modifications.

description: The type of the resource to get the subscription state for.

description: The resource action type to get the subscription state for.

description: Subscribe to notifications on resource modifications.

description: The type of the resource to subscribe to.

description: The resource action type to subscribe to.

description: Toggle whether or not to receive notifications on resource modifications.

description: The type of the resource to toggle the subscription state for.

description: The resource action type to toggle the subscription state for.

description: Unsubscribe from notifications on resource modifications.

description: The type of the resource to unsubscribe from.

description: The resource action type to unsubscribe from.

description: Update a resource.

description: The type of the resource to update.

description: The type of request to make.

description: A remapper that results in either an object containing each property of the query string, or a string that gets passed through as-is.

description:
remapper that results in the request body to send.

If not specified, the raw input data is used.

description:
By default requests will be proxied through the Appsemble API.

This allows to protect user data and ensures
[CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) is enabled. This behavior can be
disabled by setting this to `false`

description: The name of the schema to validate against before submitting data.

description: Alternative views of a resource that are modified using remappers and support different sets of roles.

description: A custom view for a resource.

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

description: The modified view.

description: The SSL secret of an app.

description: The public SSL certificate chain in PEM format.

description: The SSL private key in PEM format.

description: A single sign on configuration which is exposed to users.

description: The URL users will be redirected to in the login process.

description: A user readable name for the configuration.

description: A Font Awesome icon.

description: A SCIM patch operation

description: Patch operations to apply to the resource

description: A SCIM patch single replace operation

description: A SCIM patch bulk replace operation

description: An app’s SCIM configuration.

description: Whether or not SCIM is enabled for the app.

description: The secret SCIM token

description: The definition of a user according to the SCIM documentation.

description: A unique identifier for the user (generally maps to the Azure AD user principal name)

description: Read-only metadata maintained by the service provider

description: A user's email. By default, one of these should be of type 'work' and have 'primary' set to true. Value contains actual address

description: The default role to apply to members.

description:
How the `default` role gets applied to users.

The following values are allowed:
- `everyone`: Every authenticated user gets the default role.
- `organization`: Every authenticated user gets the default role if they are in the same organization as the app.
- `invite`: The user has to manually get a role assigned.

> **Important**: When [OAuth2](../03-guide/oauth2) or [SAML2.0](../03-guide/saml) is used in the
> app, you must set the policy to `everyone`. This will specifically allow every configured
> authentication method on the secrets page to be used as login method. If you do not want other
> Appsemble user accounts to be able to log in, you must `disable` the `appsemble login` options
> (including the Appsemble OAuth2 option) in the secrets page. If this option is enabled, any
> Appsemble user account is able to log in to the app and will receive the default role.

description:
The default role to apply to members.

This must match with one of the roles defined within the security definition.

description: This describes how the app is secured.

description: This property defines the user roles that are available within the app.

description: Define how teams are handled by the app.

description: This describes a security role.

description: The description of the role.

description: The default page to redirect users with this role to.

description:
The name of the role to inherit from.

Note that this role must exist and can not inherit itself via this field or the `inherits` field
of the referenced role.

description:
The `share` action can be used to display a prompt that allows the user to share something with others, primarily via social media.

Depending on whether the user’s browser supports a native share function it will either display a
native dialog for sharing links, or display a more limited fallback in a dialog.

description: The url that is being shared.

description: The title that should be shared.

description: The main body that should be shared.

description:
The `static` action returns static data defined in the action definition.

This is useful for example for stubbing data.

description: The static value to return.

description:
Append data to an existing array in storage.
      If the storage entry is a single object, it turns it into an array to append the data on.

For example:
```yaml
type: storage.append
key: temp
value: { root }
storage: localStorage
remapBefore:
  object.from:
    text:
      This is a new data item
    value:
      1
```

description: The key of the storage entry.

description: The data to write on top of the storage entry.

enum: indexedDB localStorage sessionStorage appStorage

description: The mechanism used to store the data.

description:
Delete the item that is stored at the specified key.

For example:
```yaml
type: storage.delete
key: temp
storage: localStorage
```

description: The key of the storage entry to remove.

description: The mechanism used to remove the data from.

description:
Read data from the app’s local storage.

For example:
```yaml
type: storage.read
key: temp
storage: localStorage
```

description: The key of the storage entry.

description: The mechanism used to read the data from.

description:
Subtract last item from a storage entry.

      If the entry consists of only one item, turns it into a singular object.

      If the entry is a single item, the entry is removed entirely.

For example:
```yaml
type: storage.subtract
key: temp
storage: localStorage
```

description: The key of the storage entry.

description: The mechanism used to read the data from.

description:
Update an existing item in storage, or update an item inside a stored array.

For example:
```yaml
type: storage.update
key: temp
item: 1
value: { root }
storage: localStorage
remapBefore:
  object.from:
    text: { prop: text }
    value: { prop: value }
    newField: "New field"
```

description: The key of the storage entry.

description: The key of the item in an array to update.

description: The data to update the specified item with.

description: The mechanism used to store the data.

description:
Write data to the app’s local storage.

For example:
```yaml
type: storage.write
key: temp
value: { root }
storage: localStorage
remapBefore:
  object.from:
    data:
      cool data
    value:
      1
```

description: The key of the storage entry.

description: The data to write to the storage entry.

description: The mechanism used to store the data.

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

description: The name of the sub page.

description: The blocks that make up a page.

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

description: Each of the available tabs for the tabs page.

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

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.

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.

description:
An optional icon from the fontawesome icon set

This will be displayed in the navigation menu.

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.

description: Get a list of all of the user’s teams.

description: The ID of the team to invite the user to.

description: The email address of the user to invite.

description: The role to invite the user as.

description: Get a list of all of the user’s teams.

description: Get a list of all of the user’s teams.

description: Get a list of a team's members

description: The ID of a specific team to get the members from

description: This defines how teams are handled by an app.

description: If this is set to `anyone`, any logged in user may join a team. If this is set to `invite`, only users may join who have been invited.

description:
A list of app roles which may create a team.

By default teams can only be created from Appsemble Studio.

description:
The roles here determine which users may invite a team member.

The special roles `$team:member` and `$team:manager` mean that users who are already member of manager of the team may also invite new members.

description: A generic theme definition.

description:
The generic theme color of the app.

This is used for example in the URL bar on Android.

description:
The background color of the PWA splash screen.

This defaults to the theme color.

description:
The primary color used within the app.

This is used in various elements like the navbar.

description: The color used for links.

description: The color used for informational messages.

description: The color used for successful actions.

description: The color used for warning messages.

description: The color used for error messages.

description: The tileLayer to use for Leaflet maps.

description: The font to use in the app.

description:
This action throws a new exception based on the data that is passed through.

This can be used to create a custom error that ends up in the error action handler.

description: An object representing a user.

description: The ID of the user.

description: The display name of the user.

description: The primary email used for communication.

description: The locale of the user.

enum: Africa/Abidjan Africa/Accra Africa/Addis_Ababa Africa/Algiers Africa/Asmera Africa/Bamako Africa/Bangui Africa/Banjul Africa/Bissau Africa/Blantyre Africa/Brazzaville Africa/Bujumbura Africa/Cairo Africa/Casablanca Africa/Ceuta Africa/Conakry Africa/Dakar Africa/Dar_es_Salaam Africa/Djibouti Africa/Douala Africa/El_Aaiun Africa/Freetown Africa/Gaborone Africa/Harare Africa/Johannesburg Africa/Juba Africa/Kampala Africa/Khartoum Africa/Kigali Africa/Kinshasa Africa/Lagos Africa/Libreville Africa/Lome Africa/Luanda Africa/Lubumbashi Africa/Lusaka Africa/Malabo Africa/Maputo Africa/Maseru Africa/Mbabane Africa/Mogadishu Africa/Monrovia Africa/Nairobi Africa/Ndjamena Africa/Niamey Africa/Nouakchott Africa/Ouagadougou Africa/Porto-Novo Africa/Sao_Tome Africa/Tripoli Africa/Tunis Africa/Windhoek America/Adak America/Anchorage America/Anguilla America/Antigua America/Araguaina America/Argentina/La_Rioja America/Argentina/Rio_Gallegos America/Argentina/Salta America/Argentina/San_Juan America/Argentina/San_Luis America/Argentina/Tucuman America/Argentina/Ushuaia America/Aruba America/Asuncion America/Bahia America/Bahia_Banderas America/Barbados America/Belem America/Belize America/Blanc-Sablon America/Boa_Vista America/Bogota America/Boise America/Buenos_Aires America/Cambridge_Bay America/Campo_Grande America/Cancun America/Caracas America/Catamarca America/Cayenne America/Cayman America/Chicago America/Chihuahua America/Ciudad_Juarez America/Coral_Harbour America/Cordoba America/Costa_Rica America/Creston America/Cuiaba America/Curacao America/Danmarkshavn America/Dawson America/Dawson_Creek America/Denver America/Detroit America/Dominica America/Edmonton America/Eirunepe America/El_Salvador America/Fort_Nelson America/Fortaleza America/Glace_Bay America/Godthab America/Goose_Bay America/Grand_Turk America/Grenada America/Guadeloupe America/Guatemala America/Guayaquil America/Guyana America/Halifax America/Havana America/Hermosillo America/Indiana/Knox America/Indiana/Marengo America/Indiana/Petersburg America/Indiana/Tell_City America/Indiana/Vevay America/Indiana/Vincennes America/Indiana/Winamac America/Indianapolis America/Inuvik America/Iqaluit America/Jamaica America/Jujuy America/Juneau America/Kentucky/Monticello America/Kralendijk America/La_Paz America/Lima America/Los_Angeles America/Louisville America/Lower_Princes America/Maceio America/Managua America/Manaus America/Marigot America/Martinique America/Matamoros America/Mazatlan America/Mendoza America/Menominee America/Merida America/Metlakatla America/Mexico_City America/Miquelon America/Moncton America/Monterrey America/Montevideo America/Montserrat America/Nassau America/New_York America/Nipigon America/Nome America/Noronha America/North_Dakota/Beulah America/North_Dakota/Center America/North_Dakota/New_Salem America/Ojinaga America/Panama America/Pangnirtung America/Paramaribo America/Phoenix America/Port-au-Prince America/Port_of_Spain America/Porto_Velho America/Puerto_Rico America/Punta_Arenas America/Rainy_River America/Rankin_Inlet America/Recife America/Regina America/Resolute America/Rio_Branco America/Santa_Isabel America/Santarem America/Santiago America/Santo_Domingo America/Sao_Paulo America/Scoresbysund America/Sitka America/St_Barthelemy America/St_Johns America/St_Kitts America/St_Lucia America/St_Thomas America/St_Vincent America/Swift_Current America/Tegucigalpa America/Thule America/Thunder_Bay America/Tijuana America/Toronto America/Tortola America/Vancouver America/Whitehorse America/Winnipeg America/Yakutat America/Yellowknife Antarctica/Casey Antarctica/Davis Antarctica/DumontDUrville Antarctica/Macquarie Antarctica/Mawson Antarctica/McMurdo Antarctica/Palmer Antarctica/Rothera Antarctica/Syowa Antarctica/Troll Antarctica/Vostok Arctic/Longyearbyen Asia/Aden Asia/Almaty Asia/Amman Asia/Anadyr Asia/Aqtau Asia/Aqtobe Asia/Ashgabat Asia/Atyrau Asia/Baghdad Asia/Bahrain Asia/Baku Asia/Bangkok Asia/Barnaul Asia/Beirut Asia/Bishkek Asia/Brunei Asia/Calcutta Asia/Chita Asia/Choibalsan Asia/Colombo Asia/Damascus Asia/Dhaka Asia/Dili Asia/Dubai Asia/Dushanbe Asia/Famagusta Asia/Gaza Asia/Hebron Asia/Hong_Kong Asia/Hovd Asia/Irkutsk Asia/Jakarta Asia/Jayapura Asia/Jerusalem Asia/Kabul Asia/Kamchatka Asia/Karachi Asia/Katmandu Asia/Khandyga Asia/Krasnoyarsk Asia/Kuala_Lumpur Asia/Kuching Asia/Kuwait Asia/Macau Asia/Magadan Asia/Makassar Asia/Manila Asia/Muscat Asia/Nicosia Asia/Novokuznetsk Asia/Novosibirsk Asia/Omsk Asia/Oral Asia/Phnom_Penh Asia/Pontianak Asia/Pyongyang Asia/Qatar Asia/Qostanay Asia/Qyzylorda Asia/Rangoon Asia/Riyadh Asia/Saigon Asia/Sakhalin Asia/Samarkand Asia/Seoul Asia/Shanghai Asia/Singapore Asia/Srednekolymsk Asia/Taipei Asia/Tashkent Asia/Tbilisi Asia/Tehran Asia/Thimphu Asia/Tokyo Asia/Tomsk Asia/Ulaanbaatar Asia/Urumqi Asia/Ust-Nera Asia/Vientiane Asia/Vladivostok Asia/Yakutsk Asia/Yekaterinburg Asia/Yerevan Atlantic/Azores Atlantic/Bermuda Atlantic/Canary Atlantic/Cape_Verde Atlantic/Faeroe Atlantic/Madeira Atlantic/Reykjavik Atlantic/South_Georgia Atlantic/St_Helena Atlantic/Stanley Australia/Adelaide Australia/Brisbane Australia/Broken_Hill Australia/Currie Australia/Darwin Australia/Eucla Australia/Hobart Australia/Lindeman Australia/Lord_Howe Australia/Melbourne Australia/Perth Australia/Sydney Europe/Amsterdam Europe/Andorra Europe/Astrakhan Europe/Athens Europe/Belgrade Europe/Berlin Europe/Bratislava Europe/Brussels Europe/Bucharest Europe/Budapest Europe/Busingen Europe/Chisinau Europe/Copenhagen Europe/Dublin Europe/Gibraltar Europe/Guernsey Europe/Helsinki Europe/Isle_of_Man Europe/Istanbul Europe/Jersey Europe/Kaliningrad Europe/Kiev Europe/Kirov Europe/Lisbon Europe/Ljubljana Europe/London Europe/Luxembourg Europe/Madrid Europe/Malta Europe/Mariehamn Europe/Minsk Europe/Monaco Europe/Moscow Europe/Oslo Europe/Paris Europe/Podgorica Europe/Prague Europe/Riga Europe/Rome Europe/Samara Europe/San_Marino Europe/Sarajevo Europe/Saratov Europe/Simferopol Europe/Skopje Europe/Sofia Europe/Stockholm Europe/Tallinn Europe/Tirane Europe/Ulyanovsk Europe/Uzhgorod Europe/Vaduz Europe/Vatican Europe/Vienna Europe/Vilnius Europe/Volgograd Europe/Warsaw Europe/Zagreb Europe/Zaporozhye Europe/Zurich Indian/Antananarivo Indian/Chagos Indian/Christmas Indian/Cocos Indian/Comoro Indian/Kerguelen Indian/Mahe Indian/Maldives Indian/Mauritius Indian/Mayotte Indian/Reunion Pacific/Apia Pacific/Auckland Pacific/Bougainville Pacific/Chatham Pacific/Easter Pacific/Efate Pacific/Enderbury Pacific/Fakaofo Pacific/Fiji Pacific/Funafuti Pacific/Galapagos Pacific/Gambier Pacific/Guadalcanal Pacific/Guam Pacific/Honolulu Pacific/Johnston Pacific/Kiritimati Pacific/Kosrae Pacific/Kwajalein Pacific/Majuro Pacific/Marquesas Pacific/Midway Pacific/Nauru Pacific/Niue Pacific/Norfolk Pacific/Noumea Pacific/Pago_Pago Pacific/Palau Pacific/Pitcairn Pacific/Ponape Pacific/Port_Moresby Pacific/Rarotonga Pacific/Saipan Pacific/Tahiti Pacific/Tarawa Pacific/Tongatapu Pacific/Truk Pacific/Wake Pacific/Wallis

description: The time zone of the user.

description:
    An email address that is linked to a user.

    Users may use any of their email addresses to login.

description: The email address that is registered

description: Wether or not the email address has been verified by the user.

description:
Allows the user to login using an email address and a password.

Does nothing if the user is already logged in.

description: The password to login with.

description: The email to login with.

description:
Allows the user to register a new account using an email address and a password.

Does nothing if the user is already logged in.

description: The password to login with.

description: The email to login with.

description: The display name of the user.

description: The image to use for the profile picture of the user.

description:
The custom properties for the user.

Every value will be converted to a string.

description:
Allows the user to update their existing account.

Does nothing if the user isn’t logged in.

description: The new password.

description: The new email address.

description: The new display name of the user.

description: The new profile picture of the user.

description:
The custom properties for the user.

Every value will be converted to a string.

description:
    OAuth2 login for apps.

    The authorization code flow is recommended. The password flow exists for legacy apps and will be
    removed in the future.

openid: Login the user to the requesting app using OpenID.

profile: Read the user profile, including the display name and profile picture.

resources:manage: Manage app resources on behalf of a user.

description: Used for logging in to the web interface

description:
    OAuth2 login for client credentials.

    For example the Appsemble CLI uses this.

blocks:write: Register and update blocks, and publish new block versions.

resources:write: Modify app resources on behalf of a user.

teams:read: Read information about the user’s teams.

teams:write: Read information about the user’s teams.

description: Used SCIM clients

description: Used for authenticating requests made using Appsemble studio interface.

description: Appsemble developer documentation

title: Appsemble

description:
Welcome to the Appsemble API.

The app studio can be found on
> https://appsemble.app

The OpenAPI explorer can be found on
> https://appsemble.app/api-explorer

description: A list of the OAuth2 secrets for the app.

description: A list of the OAuth2 secrets for the app.

description:
            Get a partial app OAuth2 secret

            Only public facing values are output on this endpoint.

description: The updated OAuth2 secret.

description: The deleted OAuth2 secret.

description:
            Get a partial app OAuth2 secret

            Only public facing values are output on this endpoint.

description: Create a new app

dryRun

description: Validate whether an app could be created without actually creating one. Must be set to ‘true’.

description: The original YAML definition used to define the app.

description: The app icon.

description: The app icon.

description: The background color to use for the maskable icon.

description: The custom style to apply to the core app.

description: The custom style to apply to all parts of app.

description: Screenshots to showcase in the store

description: The app that was created.

language

description: The language to include the translations of, if available

description: Get all existing apps.

description: The list of all apps.

description: The language to include the translations of, if available

description: Get a single app

description: The app that matches the given id.

description: Update parts of an existing app

description: Whether the locked property should be ignored.

description: The original YAML definition used to define the app.

description: The app icon.

description: The app icon.

description: The custom style to apply to the core app.

description: The custom style to apply to all parts of app.

description: Screenshots to showcase in the store

description: Whether the Appsemble login method should be shown.

description: Whether the Appsemble OAuth2 login method should be shown.

description: The name used for emails.

description: The hostname of the SMTP server.

description: The password to use for SMTP authentication. This gets encrypted when stored.

description: The username used to authenticate against the SMTP server.

description: The port used for the SMTP server.

description: Whether TLS is being used.

description: The updated app.

description: Delete an existing app

description: The app was successfully deleted.

description: Update the locked property an app.

description: Whether the app should be locked.

description: Lock status successfully changed

description: Get the app’s email settings.

description: The current app email settings

description: The name used for emails.

description: The hostname of the SMTP server.

description: Whether a password is set.

description: The username used to authenticate against the SMTP server.

description: The port used for the SMTP server.

description: Whether TLS is being used.

description: Get the current app icon.

description: The icon of the app that matches the given id.

description: Delete the current app icon.

description: The icon has been successfully removed

description: Delete the current app’s maskable icon.

description: The icon has been successfully removed

description: Fetch all subscription settings of an app.

description: The subscription settings.

description: Subscribe to an app’s push notifications

description: A serialized PushSubscription object

description: The subscription has successfully been registered.

description: Subscribe to an app’s push notifications. If value isn’t set it will toggle between subscribing and unsubscribing.

description: The subscription has successfully been updated.

description: Fetch all members of an app.

description: The list of app members.

memberId

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

description: Get an app member.

description: The resulting app member.

description: Assign an app role to a member.

description: The role to assign.

description: Any additional properties that are allowed to be set for members.

description: The resulting app member.

description: Delete an app member.

description: The app member was deleted successfully.

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

description:
Get an app member’s profile picture.

This will return a 404 if the user has not uploaded one.

description: The profile picture of the app member.

description: Fetch all ratings of an app.

description: The list of apps ratings.

description: Submit an app rating.

description: The submitted app rating.

description: Broadcast a push notification to every subscriber of the app.

description: The data to include in the notification

description: The title of the notification. This defaults to the name of the app if not otherwise specified.

description: The content of the notification

description: The notification has been successfully broadcasted.

description: Get a list of snapshots made of the app.

description: The available snapshots

description: The ID of the snapshot.

description: The creation date of the snapshot.

snapshotId

description: The ID of the snapshot

description: The ID of the snapshot.

description: Get a single snapshot made of the app.

description: The snapshot

description: The ID of the snapshot.

description: The app definition.

description: The creation date of the snapshot.

description: Add one or multiple screenshots of an app.

description: Screenshots to showcase in the store

description: The screenshots have been successfully created.

description: The ID of the newly created screenshot.

description: Get a screenshot of an app.

description: The app screenshot

description: Delete an existing screenshot.

description: The screenshot has been successfully deleted.

description: Get the core style for this app.

description: The core stylesheet associated with this app.

description: Get the shared style for this app.

description: The shared stylesheet associated with this app.

description: Get the app style for a block.

description: The stylesheet associated with this block for this app.

description: Upload a block stylesheet for this app.

description: The new app block stylesheet.

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

description: The block style has been updated successfully.

description: Get a list of app teams.

description: The list of all teams.

description: An app team

description: The role of the user requesting the list of teams

description: Create a new team.

description: The team to create.

description: The created team

description: The role of the user who created the team

teamId

description: The ID of the team

description: Fetch an existing team.

description: The requested team

description: The role of the user who requested the team

description: Update an existing team.

description: The team to update.

description: The updated team

description: The role of the user who updated the team

description: Delete an existing team.

description: The team has successfully been deleted.

description: The ID of the team

description: Fetch the members of a team and their roles within the team.

description: The list of all members.

description: Add an app member member to a team.

description: The team to update.

description: The added member

description: The ID of the team

memberId

description: The ID of the team member

description: Get a certain team member from a team

description: The specified team member

description: Update the role of a team member.

description: The team to update.

description: The updated member

description: Remove a member from a team.

description: The team member has been removed successfully.

teamId

description: The ID of the team

description: Invite a new user to a team.

description: The team invite to create.

description: The email address of the user to invite.

description: The role to invite the user as.

description: The updated member

description: Get details of a team invite.

code

description: The ID code of the team invite

description: The team invite

description: The created member

description: A list of the SAML secrets for the app.

description: A list of the SAML secrets for the app.

description: The updated SAML secret.

description: The deleted SAML secret.

description: Get app SCIM secret configuration

description: The app SCIM configuration

description: Update app SCIM secret configuration

description: The app SCIM configuration

description: The SCIM Schema

description: The SCIM Schema

description: SCIM user

description: SCIM user

description: SCIM user

description: Integrated SCIM user schema

description: SCIM user

userId

description: The ID of the member to perform the operation on

description: SCIM user

description: SCIM user

description: SCIM user

description: SCIM user

description: Get a list of all languages with messages.

description: The list of supported languages

description: Get the Appsemble messages for this language.

description: The app messages for the selected language.

description: Get the SSL certificate of an app

description: The SSL secret of the app.

description: Update the app’s SSL secret

description: The updated SSL secret.

description: Email quota for an app

description: Number of emails sent today

description: Maximum number of emails that can be sent today

description: Date and time when the quota resets

description: Get all of the app’s assets.

description: The assets associated with the app.

description: Upload a new asset.

description: The asset to upload.

description: The request body for creating an asset.

description: The binary data of the asset. This may include a filename.

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

description: The asset that was created.

description: Delete multiple app assets.

description: An array of asset IDs to remove.

description: The app assets have been deleted successfully.

description: Get the number of assets in the app.

description: The number of assets in the app.

description: Get a single asset

description: The asset that matches the given id.

description: Remove an existing asset

description: The asset was successfully deleted.

description: Publish a block.

description: The new block version to publish.

description: Get all block’s latest definitions.

description: The list of all latest block versions.

description: Get a single block

description: The latest version of the block that matches the given id.

description: Retrieves all available versions of a block.

description: A list of versions of a block.

description: Retrieve a single block version.

filename

description: The file name of the block asset to download

description: Download a single block asset

description: The asset that has been requested.

language

description: The language to get messages for.

description: Get internationalized messages for a block.

description: A key/value mapping of block messages.

description: A key/value mapping of block messages.

description: A translated block message.

description: Get the icon of a block version.

description: The icon that represents the block.

description: Register a new account using an email address and a password.

description: The user account to register.

description: The account that was created.

description: Verify the email address of a registered user.

description: The user account to register.

description: The account was successfully verified.

description: Resend the verification code for a registered email.

description: The verification email was sent if an account was found in the database.

description: Request a reset token for resetting passwords.

description: The request has been received and an email was sent if it exists.

description: Reset a password using a password reset token.

description: The password has been reset.

description: Check whether or not the API is healthy

description: An indication the server is healthy.

description: Check the SSL certificate status for the given domain names.

description: A mapping of domain name to their SSL status

description: Get a list of timezones supported by the API

description: A list of timezones supported by the API

token

description: The token of the invite.

description: Fetch information about an invite.

description: An invite response

description: Register new OAuth2 client credentials for the authenticated user.

description: The OAuth2 client credentials

description: The newly created client credentials

description: Get a list of client credentials for the authenticated user

description: A list of client credentials entities.

clientId

description: The client id of the OAuth2 client credentials on which to perform an operation

description: Revoke the client credentials

description: The client credentials have been revoked successfully.

description: asd

description: Create an account using an OAuth2 authorization.

description: The OAuth2 client credentials

description: An access token response.

description: Get a list of the user’s connected OAuth2 accounts.

description: An access token response.

description: Unlink a linked account from the logged in user.

description: The account was unlinked successfully.

description:
        Get the user information formatted as OpenID user info.

        See https://connect2id.com/products/server/docs/api/userinfo

description: OpenID compatible user information

description: The subject (end-user) identifier.

description: The full name of the end-user

description: The URL of the profile page for the end-user.

description: The end-user’s preferred email address.

description: True if the end-user’s email address has been verified, else false.

description: Verify if the user has previously agreed to the requested OAuth2 consent.

description: Create a new OAuth2 consent.

description: Fetch the list of organizations.

description: The list of of organizations

description: Create a new organization.

description: The organization to create

description: The organization icon.

description: Get a single organization.

description: Update an organization

description: The organization icon.

description: Get the organization icon.

description: The icon that represents the organization.

description: Get a list of organization members.

description: The list of all members.

description: Request to resend an invitation.

description: The email of the person to resend the invitation to.

description: The invite has been sent.

description: Respond to a given invitation.

description:
The response of the invitation.

        If response is true, user will join the organization. If response is false, the user declines the invite and the invite is removed.

description: The response has been processed.

description: Get a list of invited organization members.

description: The list of all invites.

enum: Member Translator APIReader APIUser AppEditor Maintainer Owner

description: Invite a new member to the organization that matches the given id.

description: The member to invite.

description: The newly invited member.

description: Revoke a member invitation.

description: The email address to revoke the invite of.

description: The invitation has been successfully revoked.

memberId

description: The ID of the member to remove

description: Remove a member from the organization that matches the given id, or leave the organization if the member id matches the user’s member id

description: The member has been successfully removed.

description: The ID of the member

description: Set the role of the member within the organization.

description: The role to set.

description: The member’s role has been successfully updated.

language

description: The language to include the translations of, if available

description: Get a list of an organization’s apps. Private apps are excluded unless the user is in the organization.

description: The list of this organization’s apps.

description: Get a list of an organization’s blocks.

description: The list of this organization’s blocks.

path

description: The path to the action to execute.

description: Proxy a GET request action

description: The proxied response

data

description: The data that was passed to the action

description: Proxy a DELETE request action

description: The proxied response

description: The data that was passed to the action

description: Proxy a PATCH request action

description: The proxied response

description: The data that was passed to the action

description: Proxy a POST request action

description: The proxied response

description: The data that was passed to the action

description: Proxy a PUT request action

description: The proxied response

description: The data that was passed to the action

description: Get the known history of a resource

description: The resource that matches the given id.

description: Get all resources of this app.

description: The list of all this app’s resources of this type.

description: Create a new resource for this app.

description: The resource to create

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

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

description: The resource that was created.

description: Update existing app resources.

description: The resources to update

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

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

description: The updated resources.

description: Delete multiple app resources.

description: An array of resource IDs to remove.

description: The app resources have been deleted successfully.

description: Get a count of all resources of this app.

description: The count of all this app’s resources of this type.

description: Get the current subscription status of this resource.

description: The subscription status for this resource.

description: Get a single app resource.

description: The resource that matches the given id.

description: Update an existing app resource.

description: The updated resource.

description: Patch an existing app resource.

description: The patched resource.

description: Delete an existing app resource.

description: The app resource has been deleted successfully.

description: Get the subscription status of a resource.

description: The subscription status of the resource that matches the given id.

description: A list of the SAML secrets for the app.

description: A list of the SAML secrets for the app.

description: Get the SAML entity ID metadata

description: Continue SAML login in case of an email conflict

description: Fetch a list of all available templates.

description: The list of all available templates.

description: The name of the template.

description: The description of the template.

description: Whether this template supports pre-made resources

description: Register a new app using a template.

description: The template to use for app creation.

description: The ID of the template.

description: Include example resources.

description: Get a list of all languages with messages.

description: The list of supported languages

description: Upload messages for the given language.

description: The translation was created.

merge

description: Whether the language’s messages should be merged with its base language.

override

description: Whether the app’s language overrides should be included and merged.

description: Get the app’s messages for this language.

description: The app messages for the selected language.

description: Delete the app’s messages for this language.

description: The messages have successfully been deleted.

description: The created app service secret.

description: The list of app service secrets.

description: The updated app service secret.

description: The deleted app service secret.

description: Login using the Appsemble studio.

description: Logged in successfully.

language

description: The language to include the translations of, if available

description: Get all apps that are editable by the user.

description: The list of all editable apps.

description: Refresh an access token using the Appsemble studio

description: The refresh token to use for refreshing the session.

description: The token has been refreshed successfully.

description: Fetch the logged in user's profile.

description: The user's profile.

description: Update the logged in user's profile.

description: The user's profile.

description: Fetch the logged in user's organizations.

description: The organizations the logged in user is a member of.

description: List email addresses registered to logged in user's account.

description: The email address has been added successfully.

description: Register a new email to logged in user's account.

description: The email address has been added successfully.

description: Remove an existing email to logged in user's account.

description: The email address has been removed successfully.

description: Get the accounts that have been linked to an app and the user

description: A list of linked accounts

description: Get a single account that has been linked to an app and the current user

description: A list of linked accounts

description: Register a new app account using an email address and a password.

description: The user account to register.

description: The account’s profile picture.

description: The member’s custom properties.

description: The account that was created.

description: Update user data for a specific app

description: The member’s profile picture.

description: The member’s custom properties.

description: The preferred locale of the user.

description: A linked app account

description: Verify the email address of a registered user.

description: The user account to register.

description: The account was successfully verified.

description: Resend the verification code for a registered email.

description: The verification email was sent if an account was found in the database.

description: Request a reset token for resetting passwords.

description: The request has been received and an email was sent if it exists.

description: Reset a password using a password reset token.

description: The password has been reset.

app

description: Operations related to the App definition

asset

description: Operations related to Assets

auth

description: Operations related to the Authentication

language

description: Operations related to App translations

organization

description: Operations related to organizations

app

description: Operations related to the Resources definition

user

description: Operations related to a user.