Products · API reference
dot.json
The fields of dot.json, the file that tells Dash what your dot is and what it may use.
dot.json tells Dash who your dot is and what it's allowed to use. Pages aren't listed here; they live in dot.ts.
Add the $schema line and your editor checks and completes the file as you type:
{
"$schema": "https://unpkg.com/@monimesl/dot-runtime/dot.schema.json",
"package": "sl.yourcompany.meter",
"name": "Meter Top-up",
"version": "1.0.0"
}A field that isn't in this table fails the build. Project configuration shows the fields in use.
| Field | Type | Required | What it is |
|---|---|---|---|
id | string | No | The ID Monime gives the dot when you register it. Publishing needs it. Payments in a live test work only once the dot is published and this is set. |
$schema | string | No | The schema editors use to check and complete this file. |
package | string | Yes | The dot's package name: a reverse domain name you own, such as "sl.yourcompany.meter". It never changes once the dot is published. Up to 128 characters. |
name | string | Yes | The dot's display name, which Dash shows. |
version | string | Yes | The dot's version, in semantic versioning (semver.org), such as "1.0.0". Raise it for every release. |
permissions | object | No | What the dot may use. Each value is the reason Dash shows the person when it asks. |
permissions.account | string | No | Why the dot needs the person's name, their phone number or email address, and an ID for them that's unique to the dot, from dash.account.signIn(). |
permissions.camera | string | No | Why the dot needs the camera, to take a photo with dash.media.pickPhoto({ source: 'camera' }) or scan a QR code with dash.media.scanCode(). |
permissions.photoLibrary | string | No | Why the dot needs the person to choose one of their photos, with dash.media.pickPhoto({ source: 'library' }). |
permissions.files | string | No | Why the dot needs the person to choose a file from their phone, with dash.media.pickFile(). |
permissions.contacts | string | No | Why the dot needs the person to choose a phone number from their contacts, with dash.contacts.pickPhone(). |
permissions.reminders | string | No | Why the dot sets reminders with dash.reminders.set(), such as "Remind you when your order is ready". Each brings the person back to one of the dot's pages. |
permissions.payments | string | No | Why the dot takes payments with dash.payments.request(), such as "Pay for tickets". Monime's review reads it. Dash doesn't ask the person for this permission: they confirm each payment instead. The money goes to the Space that owns the dot. |
network | object | No | Where the dot may send requests with dash.network. Without it, it may send none. |
network.hosts | string[] | With network | The hosts the dot sends requests to and shows pictures from: host names, such as "api.example.com", or "*.example.com" for any of a domain's subdomains, but not the domain itself. At least 1, each up to 253 characters, with no repeats. |
dash | object | No | What the dot needs from Dash. |
dash.minApiVersion | string | No | The oldest Dash API version the dot needs, such as "1.0". It's "1.0" when left out. Raise it when the dot uses a newer call without checking dash.supports(...) first. |
Keep reading
What changed in DotWhat each Dot release changes for building dots, newest first.API referenceEvery component, Dash call and option a dot can use, with a short example for each component.Pages and dot APIWhat you pass to definePage and defineDot, what a page can do through this, and the types for events, page colors, the theme and tests.