Schemas
Sensor
identity\S(.*\S)? · requiredUnique business identifier (IMEI or reference)
kindsCaptors available on this probe
nameDisplay name
idStorage identifier
createdCreation timestamp
updatedLast update timestamp
descriptionDescription or model information
typeInventory item type
Packaging
identity\S(.*\S)? · requiredUnique business identifier (IMEI or reference)
kindPackaging kind
nameDisplay name
idStorage identifier
createdCreation timestamp
updatedLast update timestamp
descriptionDescription or model information
categoryPackaging category
insideInternal material
outsideExternal material
thermalThermal insulation material
thermalRateThermal protection rating (0-5)
vibrationVibration damping material
vibrationRateVibration protection rating (0-5)
Packaging dimensions (mm)
weightPackaging weight (grams)
picturesPhoto URLs
typeInventory item type
Size
heightHeight in mm
widthWidth in mm
depthDepth in mm
Logger
identity\S(.*\S)? · requiredUnique business identifier (IMEI or reference)
nameDisplay name
idStorage identifier
createdCreation timestamp
updatedLast update timestamp
descriptionDescription or model information
typeInventory item type
Gateway
identity\S(.*\S)? · requiredUnique business identifier (IMEI or reference)
nameDisplay name
idStorage identifier
createdCreation timestamp
updatedLast update timestamp
descriptionDescription or model information
typeInventory item type
Artwork
reference^[a-zA-Z0-9][a-zA-Z0… · requiredBusiness key, unique within the organization, URL-safe
namedescriptionMonitoring configuration (captor thresholds and logger parameters). Inherited: artwork, then monitoring, then datalogger
idStorage identifier
tagsFree tags, used to group and filter
statusLifecycle status. standby and monitoring are set by the monitoring lifecycle, never by a request
summarycreatorcreationDate or period of creation, free text
picturePicture URL
mediumDimensions (mm)
weightWeight (grams)
inclosureIdentity of the inclosure, the static protection
crateIdentity of the crate, the transport protection
createdupdatedChecklistItem
titledescriptionConfiguration
Settings keyed by captor (temperature, humidity, accelerometer)
Logger (datalogger box) settings
LoggerConfig
batteryBattery alert threshold (%)
storageStorage alert threshold (MB)
frequencyRecording frequency (measurements per hour)
SensorConfig
intervalMeasurement interval in seconds (temperature, humidity)
minMinimum threshold: °C for temperature, %RH for humidity
maxMaximum threshold: °C for temperature, %RH for humidity
range2g|4g|8g|16gAccelerometer measurement range (2g, 4g, 8g, 16g)
xMinX-axis minimum threshold (raw int16, -32768 to 32767)
xMaxX-axis maximum threshold (raw int16, -32768 to 32767)
yMinY-axis minimum threshold (raw int16, -32768 to 32767)
yMaxY-axis maximum threshold (raw int16, -32768 to 32767)
zMinZ-axis minimum threshold (raw int16, -32768 to 32767)
zMaxZ-axis maximum threshold (raw int16, -32768 to 32767)
Datalogger
loggerIdentity of the logger, as the inventory holds it
sensorIdentity of the sensor, as the inventory holds it
gatewayIdentity of the gateway this datalogger reaches, when there is one
noteWhere it was placed, in words
Where it was placed, relative to the artwork
Overrides the configuration of the monitoring, for this datalogger alone
GatewayAssignment
gatewayIdentity of the gateway, as the inventory holds it
positionWhere it sits in the vehicle, when the gateway reported it
Gsm
idCell tower identifier
rssiReceived signal strength, in dBm
Location
latitudeLatitude, or the relative Y position on the artwork
longitudeLongitude, or the relative X position on the artwork
altAltitude in metres
Cell the position was resolved against, when there is no satellite fix
Monitoring
typeStationary for a museum or a store, transport for a movement
The configuration this session was set up with, copied from the artwork
The dataloggers engaged, at least one
idIdentifier, public: what a URL names and what events reference
artworkReference of the monitored artwork
statusWhere the session stands. Moved by the lifecycle, never by a request
Where each gateway sits in the vehicle. Transport only
createdupdatedCoordinate
xX axis
yY axis
zZ axis
Event
typeWhat happened
severityHow much it matters
dateWhen it happened, on the device
Where the device thought it was. The object is required, a fix is not: a position resolved against a cell carries no latitude
sourceTypeWhat kind of thing the source names, which decides how the event is routed
sourceWho or what reported it: a monitoring id, a sensor or logger identity, or the email of a user
idIdentifier
organizationOrganization of the monitoring this event was routed to
monitoringMonitoring this event was routed to
artworkReference of the monitored artwork
messageWhy the threshold was crossed, on an alert
tagFree annotation carried by a notification
Rotation of the device on three axes
Acceleration of the device on three axes
speedSpeed of the device, in metres per second
sensorThe captor that crossed its threshold, on an alert. Absent when the alert reports the state of the device itself, such as its battery or its storage
valuesWhat the captor measured: three axes for an accelerometer, one value for a temperature or a humidity
createdWhen this service received it
EventCountReport
totalTotal number of events
Count per type: start, alert, position, notification, stop
Count per severity, alerts only: info, warning, critical
Count per captor, alerts only: accelerometer, temperature, humidity
MonitoringCharts
One series per captor that raised an alert. A captor with none is absent
Series
datesWhen each alert happened, as reported by the device, oldest first
valuesOne column per component of the reading, each as long as dates: one for temperature and humidity, three (x, y, z) for the accelerometer, in raw device units. An entry the alert did not carry is null
severitiesThe severity of each alert
MonitoringOverview
The monitoring
startedWhen recording started, from the start event. Absent while the monitoring is only set up
endedWhen recording stopped, from the stop event. Absent until the monitoring has ended
lastEventDate of the latest event, as reported by the device. Absent when nothing was recorded
lastReceivedWhen this service last received an event of the monitoring. A long gap is not by itself a fault: events are relayed by the mobile application, not sent by the devices
Alerts per severity. A severity with no alert is absent and reads as zero
The latest alert
Where the latest position placed it. Transport only
User
emailEmail, also used as the username
idKeycloak identifier, server-assigned
firstNameGiven name
lastNameFamily name
enabledWhether the account is active
emailVerifiedWhether the person confirmed the address; false while the invitation is pending
passwordSetWhether a password exists; only on the single-user read
locale[a-z]{2,3}(-[A-Z]{2}…Language of the emails and the login page
superAdminWhether the user holds the platform-wide super-admin role
organizationsAliases of the organizations the user belongs to
lastLoginLast login, absent when none is recorded: never logged in, older than the event retention (90 days), or login events not readable by the service
loginsLogins over the event retention (90 days), counted up to 1000; only on the single-user read, and absent when login events are not readable by the service
Organization
nameDisplay name
idKeycloak identifier, server-assigned
alias[a-z0-9][a-z0-9-]*Immutable technical alias
enabledWhether the organization is active
descriptionOptional description
locale[a-z]{2,3}(-[A-Z]{2}…Default language of its members
membersNumber of members
RoleAssignment
roleMember
idemailfirstNamelastNameenabledemailVerifiedWhether the person confirmed the address; false while the invitation is pending
roleProfile
firstNameGiven name
lastNameFamily name
emailEmail, also the username
locale[a-z]{2,3}(-[A-Z]{2}…Language of the emails and the login page
MemberInvitation
emailEmail, also used as the username
roleRole to grant in the organization
firstNameGiven name, used when the account is created
lastNameFamily name, used when the account is created
locale[a-z]{2,3}(-[A-Z]{2}…Language of the emails and the login page, used when the account is created
OrganizationMembership
aliasnameroleCurrentUser
idAccount identifier
emailAccount email, also its username
roleRealm-wide role, empty when the account holds none
Organizations the account belongs to, alias to display name
Role held per organization, absent where none is held