For the complete documentation index, see llms.txt. This page is also available as Markdown.
ReferenceBeta

Assets

Complete reference for assets: queries, mutations, and types for the trackable business objects your workspace monitors and manages.

Assets represent any trackable business object - vehicles, equipment, personnel, or any other entity you need to monitor and manage.

Queries

assetTypes

Lists asset types in the caller's workspace.

assetTypes(
    filter: CatalogItemFilter
    first: Int
    after: String
    last: Int
    before: String
    orderBy: CatalogItemOrder = { field: ORDER, direction: ASC }
  ): AssetTypeConnection!

Arguments

Name
Type
Description

filter

CatalogItemFilter

Filtering options for the returned asset types.

first

Int

The first n elements from the paginated list.

after

String

The elements that come after the specified cursor.

last

Int

The last n elements from the paginated list.

before

String

The elements that come before the specified cursor.

orderBy

CatalogItemOrder

The ordering options for the returned asset types.

Input types:

CatalogItemFilter

Filtering options for catalog items.

Field
Type
Description

titleContains

String

Partial match on title (case-insensitive contains).

codes

[Code!]

Match any of these codes.

CatalogItemOrder

Ordering options for catalog items.

Field
Type
Description

field

The field to order by.

direction

The direction to order.

Output types:

AssetTypeConnection

A paginated list of AssetType items.

Implements: Connection

Field
Type
Description

edges

A list of edges.

nodes

A list of nodes in the connection (without edge metadata).

pageInfo

Information about the current page.

total

The total count of items matching the filter.


asset (query)

Retrieves an asset by its ID.

Arguments

Name
Type
Description

id

ID!

The ID of the asset to retrieve.

Output types:

Asset

A physical or logical asset being tracked.

Implements: Node, Titled, Customizable, Versioned

Field
Type
Description

id

ID!

A globally unique identifier. This ID is opaque and should not be parsed by clients.

version

Int!

The version number for optimistic locking. Incremented on each update. Can be provided in update/delete mutations to prevent lost updates. If omitted, the update proceeds without stale-read protection.

title

String!

The human-readable display name.

workspace

The workspace that owns this asset.

type

The asset type classification.

customFields

Typed custom field values, one entry per set field code. Each element is a concrete CustomFieldValue implementation matching the field's FieldType — select fields via inline fragments. The system-reserved code geojson_data is excluded — it is exposed through GeoObject.geojsonData instead.

primaryDevice

The primary device (isPrimary=true among DEVICE-type custom fields).

groups

The groups this asset belongs to.


assets

Lists assets in the caller's workspace.

Arguments

Name
Type
Description

filter

AssetFilter

Filtering options for the returned assets.

first

Int

The first n elements from the paginated list.

after

String

The elements that come after the specified cursor.

last

Int

The last n elements from the paginated list.

before

String

The elements that come before the specified cursor.

orderBy

AssetOrder

The ordering options for the returned assets.

Input types:

AssetFilter

Filtering options for assets.

Field
Type
Description

typeIds

[ID!]

Filter by asset types (OR within field).

deviceIds

[ID!]

Filter by linked devices (OR within field).

titleContains

String

Partial match on title (case-insensitive contains).

customFields

Filter by custom field values. Unlike the ID list filters above, the conditions in this list combine with AND: an asset must satisfy every one of them. See CustomFieldFilter for how a single condition matches.

CustomFieldFilter

A filter condition for a custom field value.

One condition is one code compared one way. Where a filter input takes a LIST of these (AssetFilter.customFields, GeoObjectFilter.customFields), the entries combine with AND — an entity must satisfy every one of them, and repeating a code narrows rather than widens.

Inside a single condition:

  • IN matches when the stored value equals ANY member of the list — the list itself is an OR.

  • On a multi-value field (isMulti OPTIONS / REFERENCE), a positive operator matches when ANY stored value satisfies it: ["red","blue"] matches {operator: EQ, value: {string: "red"}}. NE and IS_NULL are the inversions of that, so they match only when NO stored value qualifies — NE "red" does not match ["red","blue"].

  • A code with no field definition behind it is treated as SQL NULL: IS_NULL and NE match every entity, every other operator matches none.

Field
Type
Description

code

The custom field code to filter by.

operator

The comparison operator.

value

The value to compare against. Null for IS_NULL and IS_NOT_NULL operators.

CustomFieldFilterValue

Typed filter value for custom fields. Exactly one field must be set (@oneOf). Choose the variant that matches the custom field's data type:

FieldType
Variant
Example

STRING, TEXT

string

{ string: "hello" }

DECIMAL

decimal

{ decimal: "42.50" }

INTEGER

integer

{ integer: 42 }

BOOLEAN

boolean

{ boolean: true }

DATE

date

{ date: "2024-01-15" }

DATETIME

datetime

{ datetime: "2024-01-15T10:30:00Z" }

OPTIONS

string

{ string: "option_code" }

DEVICE, REFERENCE

id

{ id: "019a6a3f-..." }

(IN operator)

stringList

{ stringList: ["a", "b"] }

(IN operator)

idList

{ idList: ["uuid1", "uuid2"] }

This input type uses @oneOf - exactly one field must be provided.

Field
Type
Description

string

String

String value — for STRING, TEXT, OPTIONS fields.

decimal

Arbitrary-precision decimal value — for DECIMAL fields.

integer

Signed 64-bit integer value — for INTEGER fields.

boolean

Boolean

Boolean value — for BOOLEAN fields.

date

Date value — for DATE fields.

datetime

Date-time value — for DATETIME fields.

id

ID

ID value — for DEVICE, REFERENCE fields.

stringList

[String!]

List of strings — for IN operator on string-based fields.

idList

[ID!]

List of IDs — for IN operator on reference fields.

AssetOrder

Ordering options for assets.

Field
Type
Description

field

The standard field to order by. Mutually exclusive with customFieldCode.

customFieldCode

The custom field code to order by. Mutually exclusive with field. Supported field types: STRING, DECIMAL, INTEGER, DATE, DATETIME, and the reference types DEVICE and single-value REFERENCE, which sort by the title of the entity they point at rather than by the stored id. TEXT, OPTIONS, BOOLEAN and GEOJSON are not supported for sorting, nor is a multi-value REFERENCE or a REFERENCE at an entity with no title.

direction

The direction to order.

Output types:

AssetConnection

A paginated list of Asset items.

Implements: Connection

Field
Type
Description

edges

A list of edges.

nodes

[Asset!]!

A list of nodes in the connection (without edge metadata).

pageInfo

Information about the current page.

total

The total count of items matching the filter.


Mutations

assetCreate

Creates a new asset.

Arguments

Name
Type
Description

input

AssetCreateInput!

The input fields for creating the asset.

Input types:

AssetCreateInput

Input for creating a new asset.

Field
Type
Description

typeId

ID!

The asset type ID.

title

String!

The asset display name.

customFields

The custom field values.

CustomFieldsPatchInput

Input for updating custom field values using a patch model.

set provides typed values (create/overwrite); unset removes fields by code. Primary status travels with the value on the primary-capable variants (DEVICE/REFERENCE) via their required isPrimary flag — there is no separate setPrimary/unsetPrimary list.

Field
Type
Description

set

Field values to set or overwrite.

unset

[Code!]

Field codes to remove entirely.

CustomFieldValueInput

A single custom-field value to set, addressed by code.

Omitting value is the same as passing null, so an entry clears the field unless it carries one. An isDefault override cannot be changed on its own: send the current value alongside it.

Field
Type
Description

code

The custom field code.

value

The typed value. Null clears the field but keeps the key (distinct from unset).

isDefault

Boolean

Overrides the definition's isDefault for this entity, in either direction. Omit to leave any existing override untouched; the override is dropped when the field is unset or its value is cleared.

CustomFieldValueDataInput

Typed custom-field value. Exactly one variant must be set (@oneOf), matching the custom field's declared FieldType:

FieldType
Variant

STRING, TEXT

string

DECIMAL

decimal

INTEGER

integer

BOOLEAN

boolean

DATE

date

DATETIME

datetime

GEOJSON

geojson

DEVICE

device

REFERENCE (single)

reference

REFERENCE (multi)

references

OPTIONS (single)

option

OPTIONS (multi)

options

This input type uses @oneOf - exactly one field must be provided.

Field
Type
Description

string

String

STRING / TEXT value.

decimal

DECIMAL value (arbitrary precision, string-encoded).

integer

INTEGER value (signed 64-bit).

boolean

Boolean

BOOLEAN value.

date

DATE value.

datetime

DATETIME value.

geojson

GEOJSON value.

device

DEVICE value (primary-capable).

reference

REFERENCE value for a single-value field (primary-capable).

references

REFERENCE value for an isMulti field (primary-capable).

option

OPTIONS value for a single-value field.

options

[Code!]

OPTIONS value for an isMulti field.

DeviceValueInput

DEVICE custom-field value.

Field
Type
Description

id

ID!

The device to assign.

isPrimary

Boolean!

Whether this device is the entity's primary DEVICE. Required — prevents silent demotion.

reassign

Boolean

If the device is already assigned to another asset, detach it there and reassign it here, atomically, instead of failing with VALIDATION_ERROR. Asset holders only. A DEVICE field may only be defined on an AssetType since v0.7.0, but definitions written before it stay live, and on such a field reassign: true is rejected with VALIDATION_ERROR naming it: only an asset holds a device exclusively, so there is nothing to detach it from.

ReferenceValueInput

REFERENCE custom-field value for a single-value field.

Field
Type
Description

id

ID!

The referenced entity ID.

isPrimary

Boolean!

Whether this reference is the entity's primary REFERENCE. Required — prevents silent demotion.

ReferenceListValueInput

REFERENCE custom-field value for an isMulti field.

Field
Type
Description

ids

[ID!]!

The referenced entity IDs, in the order they are stored.

isPrimary

Boolean!

Whether this reference is the entity's primary REFERENCE. Required — prevents silent demotion.

Output types:

AssetPayload

The result of an asset mutation.

Field
Type
Description

asset

The created or updated asset.

Asset (entity)

A physical or logical asset being tracked.

Implements: Node, Titled, Customizable, Versioned

Field
Type
Description

id

ID!

A globally unique identifier. This ID is opaque and should not be parsed by clients.

version

Int!

The version number for optimistic locking. Incremented on each update. Can be provided in update/delete mutations to prevent lost updates. If omitted, the update proceeds without stale-read protection.

title

String!

The human-readable display name.

workspace

The workspace that owns this asset.

type

The asset type classification.

customFields

Typed custom field values, one entry per set field code. Each element is a concrete CustomFieldValue implementation matching the field's FieldType — select fields via inline fragments. The system-reserved code geojson_data is excluded — it is exposed through GeoObject.geojsonData instead.

primaryDevice

The primary device (isPrimary=true among DEVICE-type custom fields).

groups

The groups this asset belongs to.


assetUpdate

Updates an existing asset.

Arguments

Name
Type
Description

input

AssetUpdateInput!

The input fields for updating the asset.

Input types:

AssetUpdateInput

Input for updating an existing asset.

Field
Type
Description

id

ID!

The asset ID to update.

version

Int

The current version for optimistic locking. If omitted, auto-increments without conflict check.

title

String

The new display name.

customFields

The custom field changes.

CustomFieldsPatchInput

Input for updating custom field values using a patch model.

set provides typed values (create/overwrite); unset removes fields by code. Primary status travels with the value on the primary-capable variants (DEVICE/REFERENCE) via their required isPrimary flag — there is no separate setPrimary/unsetPrimary list.

Field
Type
Description

set

Field values to set or overwrite.

unset

[Code!]

Field codes to remove entirely.

CustomFieldValueInput

A single custom-field value to set, addressed by code.

Omitting value is the same as passing null, so an entry clears the field unless it carries one. An isDefault override cannot be changed on its own: send the current value alongside it.

Field
Type
Description

code

The custom field code.

value

The typed value. Null clears the field but keeps the key (distinct from unset).

isDefault

Boolean

Overrides the definition's isDefault for this entity, in either direction. Omit to leave any existing override untouched; the override is dropped when the field is unset or its value is cleared.

CustomFieldValueDataInput

Typed custom-field value. Exactly one variant must be set (@oneOf), matching the custom field's declared FieldType:

FieldType
Variant

STRING, TEXT

string

DECIMAL

decimal

INTEGER

integer

BOOLEAN

boolean

DATE

date

DATETIME

datetime

GEOJSON

geojson

DEVICE

device

REFERENCE (single)

reference

REFERENCE (multi)

references

OPTIONS (single)

option

OPTIONS (multi)

options

This input type uses @oneOf - exactly one field must be provided.

Field
Type
Description

string

String

STRING / TEXT value.

decimal

DECIMAL value (arbitrary precision, string-encoded).

integer

INTEGER value (signed 64-bit).

boolean

Boolean

BOOLEAN value.

date

DATE value.

datetime

DATETIME value.

geojson

GEOJSON value.

device

DEVICE value (primary-capable).

reference

REFERENCE value for a single-value field (primary-capable).

references

REFERENCE value for an isMulti field (primary-capable).

option

OPTIONS value for a single-value field.

options

[Code!]

OPTIONS value for an isMulti field.

DeviceValueInput

DEVICE custom-field value.

Field
Type
Description

id

ID!

The device to assign.

isPrimary

Boolean!

Whether this device is the entity's primary DEVICE. Required — prevents silent demotion.

reassign

Boolean

If the device is already assigned to another asset, detach it there and reassign it here, atomically, instead of failing with VALIDATION_ERROR. Asset holders only. A DEVICE field may only be defined on an AssetType since v0.7.0, but definitions written before it stay live, and on such a field reassign: true is rejected with VALIDATION_ERROR naming it: only an asset holds a device exclusively, so there is nothing to detach it from.

ReferenceValueInput

REFERENCE custom-field value for a single-value field.

Field
Type
Description

id

ID!

The referenced entity ID.

isPrimary

Boolean!

Whether this reference is the entity's primary REFERENCE. Required — prevents silent demotion.

ReferenceListValueInput

REFERENCE custom-field value for an isMulti field.

Field
Type
Description

ids

[ID!]!

The referenced entity IDs, in the order they are stored.

isPrimary

Boolean!

Whether this reference is the entity's primary REFERENCE. Required — prevents silent demotion.

Output types:

AssetPayload

The result of an asset mutation.

Field
Type
Description

asset

The created or updated asset.

Asset (entity)

A physical or logical asset being tracked.

Implements: Node, Titled, Customizable, Versioned

Field
Type
Description

id

ID!

A globally unique identifier. This ID is opaque and should not be parsed by clients.

version

Int!

The version number for optimistic locking. Incremented on each update. Can be provided in update/delete mutations to prevent lost updates. If omitted, the update proceeds without stale-read protection.

title

String!

The human-readable display name.

workspace

The workspace that owns this asset.

type

The asset type classification.

customFields

Typed custom field values, one entry per set field code. Each element is a concrete CustomFieldValue implementation matching the field's FieldType — select fields via inline fragments. The system-reserved code geojson_data is excluded — it is exposed through GeoObject.geojsonData instead.

primaryDevice

The primary device (isPrimary=true among DEVICE-type custom fields).

groups

The groups this asset belongs to.


assetDelete

Deletes an asset.

Refused with IN_USE while another live entity points at it through one of its own fields, custom-field values and field definitions included; the error's blockers name the first five of them, and hasMoreBlockers says whether it left any out.

Arguments

Name
Type
Description

input

AssetDeleteInput!

The input fields for deleting the asset.

Input types:

AssetDeleteInput

Input for deleting an asset.

Field
Type
Description

id

ID!

The asset ID to delete.

version

Int

The current version for optimistic locking. If omitted, auto-increments without conflict check.

Output types:

DeletePayload

The result of a delete mutation.

Field
Type
Description

deletedId

ID!

The ID of the deleted entity.


assetTypeCreate

Creates a new asset type.

Arguments

Name
Type
Description

input

AssetTypeCreateInput!

The input fields for creating the asset type.

Input types:

AssetTypeCreateInput

Input for creating an asset type.

Field
Type
Description

code

The machine-readable code. Auto-generated from title if omitted.

title

String!

The display name.

order

Int

The display order. Auto-calculated as last position if omitted.

meta

The display properties.

customFieldDefinitions

Operations on custom field definitions for this asset type. Only create is allowed when creating a new catalog item.

CatalogItemMetaInput

Display properties for catalog items.

Field
Type
Description

description

String

The description.

hidden

Boolean

Whether the item is hidden from regular UI lists.

CustomFieldDefinitionInput

A single operation on a custom field definition within the parent catalog item. Exactly one action must be provided.

This input type uses @oneOf - exactly one field must be provided.

Field
Type
Description

create

Create a new custom field definition.

update

Update an existing custom field definition.

delete

Delete a custom field definition.

archive

Archive a custom field definition (non-destructive deactivation).

restore

Restore a previously archived custom field definition.

CustomFieldDefinitionCreateData

Data for creating a custom field definition within its parent catalog item.

A type carries at most 50 active definitions, and at most 100 in total — active and archived together. Archiving a field frees an active slot but not a total one: an archived definition accepts no new values, so it cannot grow, but it keeps its row and the values already stored under it, and only delete releases that. System-level fields owned by the entity type rather than by the type, such as the platform's own geojson_data, sit in a separate scope and never reduce either allowance. A type belongs to exactly one workspace, so the allowances are per type.

Neither bound is expressible in the schema and both are enforced by the server: a create past either is rejected with VALIDATION_ERROR, naming the total bound when both are reached, since that is the one archiving cannot resolve. Since the commands in one customFieldDefinitions list share a transaction, a batch that crosses a bound is rejected whole — it does not fill the type to the limit and stop.

Field
Type
Description

code

The machine-readable code. Must start with cf_, so a custom-field code can never be confused with an entity's own field name. Auto-generated from the title if omitted, prefix included. The prefix also keeps this input clear of the platform's own reserved code geojson_data.

title

String!

The display name.

description

String

The description.

fieldType

The data type. Immutable after creation.

order

Int

The display order. Auto-calculated as last position if omitted.

params

The type-specific parameters. Exactly one variant must be provided.

isDefault

Boolean

Whether the field is on by default for entities of this type. Defaults to false.

FieldParamsInput

Field parameters input. Exactly one field must be provided.

This input type uses @oneOf - exactly one field must be provided.

Field
Type
Description

string

Parameters for STRING field type.

text

Parameters for TEXT field type.

decimal

Parameters for DECIMAL field type.

integer

Parameters for INTEGER field type.

boolean

Parameters for BOOLEAN field type.

date

Parameters for DATE field type.

datetime

Parameters for DATETIME field type.

geojson

Parameters for GEOJSON field type.

options

Parameters for OPTIONS field type.

device

Parameters for DEVICE field type.

reference

Parameters for REFERENCE field type.

StringFieldParamsInput

Parameters for STRING field type.

Field
Type
Description

isRequired

Boolean!

Whether a value is required.

minLength

Int

The minimum character length.

maxLength

Int

The maximum character length. Narrows the FieldType.STRING limit; it cannot raise it.

defaultString

String

The default value.

trim

Boolean

Whether to trim whitespace.

TextFieldParamsInput

Parameters for TEXT field type.

Field
Type
Description

isRequired

Boolean!

Whether a value is required.

maxLength

Int

The maximum character length. Narrows the FieldType.TEXT limit of 65,535; it cannot raise it.

defaultText

String

The default value.

trim

Boolean

Whether to trim whitespace.

DecimalFieldParamsInput

Parameters for DECIMAL field type.

Field
Type
Description

isRequired

Boolean!

Whether a value is required.

minDecimal

The minimum allowed value.

maxDecimal

The maximum allowed value.

scale

Int!

Digits after the decimal point. Must be >= 0. Values sent with more fractional digits than scale are rounded using HALF_UP before storage.

defaultDecimal

The default value.

IntegerFieldParamsInput

Parameters for INTEGER field type.

Field
Type
Description

isRequired

Boolean!

Whether a value is required.

minInteger

The minimum allowed value.

maxInteger

The maximum allowed value.

defaultInteger

The default value.

BooleanFieldParamsInput

Parameters for BOOLEAN field type.

Field
Type
Description

isRequired

Boolean!

Whether a value is required.

defaultBoolean

Boolean

The default value.

DateFieldParamsInput

Parameters for DATE field type.

Field
Type
Description

isRequired

Boolean!

Whether a value is required.

defaultDate

The default value.

DateTimeFieldParamsInput

Parameters for DATETIME field type.

Field
Type
Description

isRequired

Boolean!

Whether a value is required.

defaultDatetime

The default value.

GeoJsonFieldParamsInput

Parameters for GEOJSON field type.

Field
Type
Description

isRequired

Boolean!

Whether a value is required.

allowedTypes

The allowed geometry types. Null means all types are allowed.

OptionsFieldParamsInput

Parameters for OPTIONS field type.

Field
Type
Description

isRequired

Boolean!

Whether a value is required.

isMulti

Boolean

Whether multiple options can be selected.

options

The available options.

defaultOptions

The default option code.

FieldOptionInput

Input for an option definition. When updating options: if an entry without code is provided, a new option is created. If the label already exists within this field, an error is returned.

Field
Type
Description

code

The unique code. Auto-generated from label if omitted.

label

String!

The display label. Must be unique within the custom field.

description

String

The description.

isArchived

Boolean

Whether this option is archived.

DeviceFieldParamsInput

Parameters for DEVICE field type.

Field
Type
Description

isRequired

Boolean!

Whether a value is required.

refSubtypeIds

[ID!]

The device type IDs a value may belong to. Omit or leave empty to allow any device type.

ReferenceFieldParamsInput

Parameters for REFERENCE field type.

Field
Type
Description

isRequired

Boolean!

Whether a value is required.

isMulti

Boolean

Whether multiple entities can be referenced.

refEntityTypeCode

The target entity type code, e.g. asset, geo_object, schedule, tag, user_catalog_item. The customFieldTypes query lists the accepted values for a given owner.

refSubtypeIds

[ID!]

The subtype IDs a value may belong to (AssetType / GeoObjectType / catalog). Required for user_catalog_item, which needs exactly one catalog; rejected for target types that nothing narrows further. Omit or leave empty to allow the whole target type.

defaultRefIds

[ID!]

The default referenced entity IDs.

CustomFieldDefinitionUpdateData

Data for updating an existing custom field definition. Note: fieldType cannot be changed.

Field
Type
Description

code

The code of the field definition to update.

title

String

The new display name.

description

String

The new description.

order

Int

The new display order.

params

The updated parameters. Only isRequired and type-specific fields can be changed.

isDefault

Boolean

The new type-level default. Omit to leave unchanged.

CustomFieldDefinitionDeleteData

Data for permanently deleting a custom field definition.

If entities have values for this field, the default behavior is to reject the deletion. Use onValues: CASCADE to explicitly allow deletion with all associated values.

Prefer archiving for non-destructive deactivation.

Field
Type
Description

code

The code of the field definition to delete.

onValues

What to do when existing entities have values for this field. Defaults to REJECT to prevent accidental data loss.

CustomFieldDefinitionArchiveData

Data for archiving or restoring a custom field definition.

Archiving deactivates the field without data loss:

  • The field definition and all its values are preserved.

  • The field no longer appears in forms and accepts no new values.

  • Existing values remain readable and visible in history/exports.

Field
Type
Description

code

The code of the field definition to archive.

CustomFieldDefinitionRestoreData

Data for restoring a previously archived custom field definition.

Restoring makes the field active again, so it is refused with VALIDATION_ERROR when the type is already at the active limit stated on CustomFieldDefinitionCreateData — otherwise archiving would be a way around that limit. The total limit never refuses a restore: the row already exists and is already counted, so restoring moves it between the two buckets without adding to the total. Restoring a definition that is already active is never refused either, since it adds no field to the type; it still bumps the definition's version.

Field
Type
Description

code

The code of the field definition to restore.

Output types:

AssetTypePayload

The result of an asset type mutation.

Field
Type
Description

assetType

The created or updated asset type.

AssetType (entity)

A classification type for assets.

Implements: CatalogItem, Node, Versioned, Titled

Field
Type
Description

id

ID!

A globally unique identifier.

version

Int!

The version number for optimistic locking.

title

String!

The human-readable display name. Can be localized.

code

A machine-readable code, unique within the catalog for a given workspace. A workspace item may reuse the code of the system item it overrides.

order

Int!

The display order within the same level or category.

catalog

The catalog this item belongs to.

workspace

The workspace that owns this item. Null for system items.

meta

Metadata about this item including description, origin, and display properties.

customFieldDefinitions

Custom field definitions specific to this asset type, ordered by display order.


assetTypeUpdate

Updates an asset type.

Arguments

Name
Type
Description

input

AssetTypeUpdateInput!

The input fields for updating the asset type.

Input types:

AssetTypeUpdateInput

Input for updating an asset type.

Field
Type
Description

id

ID!

The item ID to update.

version

Int

The current version for optimistic locking. If omitted, auto-increments without conflict check.

title

String

The new display name.

order

Int

The new display order.

meta

The display properties.

customFieldDefinitions

Operations on custom field definitions belonging to this asset type.

CatalogItemMetaInput

Display properties for catalog items.

Field
Type
Description

description

String

The description.

hidden

Boolean

Whether the item is hidden from regular UI lists.

CustomFieldDefinitionInput

A single operation on a custom field definition within the parent catalog item. Exactly one action must be provided.

This input type uses @oneOf - exactly one field must be provided.

Field
Type
Description

create

Create a new custom field definition.

update

Update an existing custom field definition.

delete

Delete a custom field definition.

archive

Archive a custom field definition (non-destructive deactivation).

restore

Restore a previously archived custom field definition.

CustomFieldDefinitionCreateData

Data for creating a custom field definition within its parent catalog item.

A type carries at most 50 active definitions, and at most 100 in total — active and archived together. Archiving a field frees an active slot but not a total one: an archived definition accepts no new values, so it cannot grow, but it keeps its row and the values already stored under it, and only delete releases that. System-level fields owned by the entity type rather than by the type, such as the platform's own geojson_data, sit in a separate scope and never reduce either allowance. A type belongs to exactly one workspace, so the allowances are per type.

Neither bound is expressible in the schema and both are enforced by the server: a create past either is rejected with VALIDATION_ERROR, naming the total bound when both are reached, since that is the one archiving cannot resolve. Since the commands in one customFieldDefinitions list share a transaction, a batch that crosses a bound is rejected whole — it does not fill the type to the limit and stop.

Field
Type
Description

code

The machine-readable code. Must start with cf_, so a custom-field code can never be confused with an entity's own field name. Auto-generated from the title if omitted, prefix included. The prefix also keeps this input clear of the platform's own reserved code geojson_data.

title

String!

The display name.

description

String

The description.

fieldType

The data type. Immutable after creation.

order

Int

The display order. Auto-calculated as last position if omitted.

params

The type-specific parameters. Exactly one variant must be provided.

isDefault

Boolean

Whether the field is on by default for entities of this type. Defaults to false.

FieldParamsInput

Field parameters input. Exactly one field must be provided.

This input type uses @oneOf - exactly one field must be provided.

Field
Type
Description

string

Parameters for STRING field type.

text

Parameters for TEXT field type.

decimal

Parameters for DECIMAL field type.

integer

Parameters for INTEGER field type.

boolean

Parameters for BOOLEAN field type.

date

Parameters for DATE field type.

datetime

Parameters for DATETIME field type.

geojson

Parameters for GEOJSON field type.

options

Parameters for OPTIONS field type.

device

Parameters for DEVICE field type.

reference

Parameters for REFERENCE field type.

StringFieldParamsInput

Parameters for STRING field type.

Field
Type
Description

isRequired

Boolean!

Whether a value is required.

minLength

Int

The minimum character length.

maxLength

Int

The maximum character length. Narrows the FieldType.STRING limit; it cannot raise it.

defaultString

String

The default value.

trim

Boolean

Whether to trim whitespace.

TextFieldParamsInput

Parameters for TEXT field type.

Field
Type
Description

isRequired

Boolean!

Whether a value is required.

maxLength

Int

The maximum character length. Narrows the FieldType.TEXT limit of 65,535; it cannot raise it.

defaultText

String

The default value.

trim

Boolean

Whether to trim whitespace.

DecimalFieldParamsInput

Parameters for DECIMAL field type.

Field
Type
Description

isRequired

Boolean!

Whether a value is required.

minDecimal

The minimum allowed value.

maxDecimal

The maximum allowed value.

scale

Int!

Digits after the decimal point. Must be >= 0. Values sent with more fractional digits than scale are rounded using HALF_UP before storage.

defaultDecimal

The default value.

IntegerFieldParamsInput

Parameters for INTEGER field type.

Field
Type
Description

isRequired

Boolean!

Whether a value is required.

minInteger

The minimum allowed value.

maxInteger

The maximum allowed value.

defaultInteger

The default value.

BooleanFieldParamsInput

Parameters for BOOLEAN field type.

Field
Type
Description

isRequired

Boolean!

Whether a value is required.

defaultBoolean

Boolean

The default value.

DateFieldParamsInput

Parameters for DATE field type.

Field
Type
Description

isRequired

Boolean!

Whether a value is required.

defaultDate

The default value.

DateTimeFieldParamsInput

Parameters for DATETIME field type.

Field
Type
Description

isRequired

Boolean!

Whether a value is required.

defaultDatetime

The default value.

GeoJsonFieldParamsInput

Parameters for GEOJSON field type.

Field
Type
Description

isRequired

Boolean!

Whether a value is required.

allowedTypes

The allowed geometry types. Null means all types are allowed.

OptionsFieldParamsInput

Parameters for OPTIONS field type.

Field
Type
Description

isRequired

Boolean!

Whether a value is required.

isMulti

Boolean

Whether multiple options can be selected.

options

The available options.

defaultOptions

The default option code.

FieldOptionInput

Input for an option definition. When updating options: if an entry without code is provided, a new option is created. If the label already exists within this field, an error is returned.

Field
Type
Description

code

The unique code. Auto-generated from label if omitted.

label

String!

The display label. Must be unique within the custom field.

description

String

The description.

isArchived

Boolean

Whether this option is archived.

DeviceFieldParamsInput

Parameters for DEVICE field type.

Field
Type
Description

isRequired

Boolean!

Whether a value is required.

refSubtypeIds

[ID!]

The device type IDs a value may belong to. Omit or leave empty to allow any device type.

ReferenceFieldParamsInput

Parameters for REFERENCE field type.

Field
Type
Description

isRequired

Boolean!

Whether a value is required.

isMulti

Boolean

Whether multiple entities can be referenced.

refEntityTypeCode

The target entity type code, e.g. asset, geo_object, schedule, tag, user_catalog_item. The customFieldTypes query lists the accepted values for a given owner.

refSubtypeIds

[ID!]

The subtype IDs a value may belong to (AssetType / GeoObjectType / catalog). Required for user_catalog_item, which needs exactly one catalog; rejected for target types that nothing narrows further. Omit or leave empty to allow the whole target type.

defaultRefIds

[ID!]

The default referenced entity IDs.

CustomFieldDefinitionUpdateData

Data for updating an existing custom field definition. Note: fieldType cannot be changed.

Field
Type
Description

code

The code of the field definition to update.

title

String

The new display name.

description

String

The new description.

order

Int

The new display order.

params

The updated parameters. Only isRequired and type-specific fields can be changed.

isDefault

Boolean

The new type-level default. Omit to leave unchanged.

CustomFieldDefinitionDeleteData

Data for permanently deleting a custom field definition.

If entities have values for this field, the default behavior is to reject the deletion. Use onValues: CASCADE to explicitly allow deletion with all associated values.

Prefer archiving for non-destructive deactivation.

Field
Type
Description

code

The code of the field definition to delete.

onValues

What to do when existing entities have values for this field. Defaults to REJECT to prevent accidental data loss.

CustomFieldDefinitionArchiveData

Data for archiving or restoring a custom field definition.

Archiving deactivates the field without data loss:

  • The field definition and all its values are preserved.

  • The field no longer appears in forms and accepts no new values.

  • Existing values remain readable and visible in history/exports.

Field
Type
Description

code

The code of the field definition to archive.

CustomFieldDefinitionRestoreData

Data for restoring a previously archived custom field definition.

Restoring makes the field active again, so it is refused with VALIDATION_ERROR when the type is already at the active limit stated on CustomFieldDefinitionCreateData — otherwise archiving would be a way around that limit. The total limit never refuses a restore: the row already exists and is already counted, so restoring moves it between the two buckets without adding to the total. Restoring a definition that is already active is never refused either, since it adds no field to the type; it still bumps the definition's version.

Field
Type
Description

code

The code of the field definition to restore.

Output types:

AssetTypePayload

The result of an asset type mutation.

Field
Type
Description

assetType

The created or updated asset type.

AssetType (entity)

A classification type for assets.

Implements: CatalogItem, Node, Versioned, Titled

Field
Type
Description

id

ID!

A globally unique identifier.

version

Int!

The version number for optimistic locking.

title

String!

The human-readable display name. Can be localized.

code

A machine-readable code, unique within the catalog for a given workspace. A workspace item may reuse the code of the system item it overrides.

order

Int!

The display order within the same level or category.

catalog

The catalog this item belongs to.

workspace

The workspace that owns this item. Null for system items.

meta

Metadata about this item including description, origin, and display properties.

customFieldDefinitions

Custom field definitions specific to this asset type, ordered by display order.


assetTypeDelete

Deletes an asset type.

Refused with IN_USE while another live entity points at it through one of its own fields, custom-field values and field definitions included; the error's blockers name the first five of them, and hasMoreBlockers says whether it left any out.

Arguments

Name
Type
Description

input

CatalogItemDeleteInput!

The input fields for deleting the asset type.

Input types:

CatalogItemDeleteInput

Input for deleting a catalog item.

Field
Type
Description

id

ID!

The catalog item ID to delete.

version

Int

The current version for optimistic locking. If omitted, auto-increments without conflict check.

Output types:

DeletePayload

The result of a delete mutation.

Field
Type
Description

deletedId

ID!

The ID of the deleted entity.


Objects

AssetType

A classification type for assets.

Implements: CatalogItem, Node, Versioned, Titled

Field
Type
Description

id

ID!

A globally unique identifier.

version

Int!

The version number for optimistic locking.

title

String!

The human-readable display name. Can be localized.

code

A machine-readable code, unique within the catalog for a given workspace. A workspace item may reuse the code of the system item it overrides.

order

Int!

The display order within the same level or category.

catalog

The catalog this item belongs to.

workspace

The workspace that owns this item. Null for system items.

meta

Metadata about this item including description, origin, and display properties.

customFieldDefinitions

Custom field definitions specific to this asset type, ordered by display order.


Asset

A physical or logical asset being tracked.

Implements: Node, Titled, Customizable, Versioned

Field
Type
Description

id

ID!

A globally unique identifier. This ID is opaque and should not be parsed by clients.

version

Int!

The version number for optimistic locking. Incremented on each update. Can be provided in update/delete mutations to prevent lost updates. If omitted, the update proceeds without stale-read protection.

title

String!

The human-readable display name.

workspace

The workspace that owns this asset.

type

The asset type classification.

customFields

Typed custom field values, one entry per set field code. Each element is a concrete CustomFieldValue implementation matching the field's FieldType — select fields via inline fragments. The system-reserved code geojson_data is excluded — it is exposed through GeoObject.geojsonData instead.

primaryDevice

The primary device (isPrimary=true among DEVICE-type custom fields).

groups

The groups this asset belongs to.

Arguments of customFields

Name
Type
Description

codes

[Code!]

Limit returned fields to these codes. Returns all fields if not specified.

Arguments of groups

Name
Type
Description

filter

Filtering options for the returned groups.

first

Int

The first n elements from the paginated list.

after

String

The elements that come after the specified cursor.

last

Int

The last n elements from the paginated list.

before

String

The elements that come before the specified cursor.

orderBy

The ordering options for the returned groups. Default: { field: TITLE, direction: ASC }.


AssetPayload

The result of an asset mutation.

Field
Type
Description

asset

The created or updated asset.


AssetTypePayload

The result of an asset type mutation.

Field
Type
Description

assetType

The created or updated asset type.


Inputs

AssetFilter

Filtering options for assets.

Field
Type
Description

typeIds

[ID!]

Filter by asset types (OR within field).

deviceIds

[ID!]

Filter by linked devices (OR within field).

titleContains

String

Partial match on title (case-insensitive contains).

customFields

Filter by custom field values. Unlike the ID list filters above, the conditions in this list combine with AND: an asset must satisfy every one of them. See CustomFieldFilter for how a single condition matches.


AssetOrder

Ordering options for assets.

Field
Type
Description

field

The standard field to order by. Mutually exclusive with customFieldCode.

customFieldCode

The custom field code to order by. Mutually exclusive with field. Supported field types: STRING, DECIMAL, INTEGER, DATE, DATETIME, and the reference types DEVICE and single-value REFERENCE, which sort by the title of the entity they point at rather than by the stored id. TEXT, OPTIONS, BOOLEAN and GEOJSON are not supported for sorting, nor is a multi-value REFERENCE or a REFERENCE at an entity with no title.

direction

The direction to order.


AssetCreateInput

Input for creating a new asset.

Field
Type
Description

typeId

ID!

The asset type ID.

title

String!

The asset display name.

customFields

The custom field values.


AssetUpdateInput

Input for updating an existing asset.

Field
Type
Description

id

ID!

The asset ID to update.

version

Int

The current version for optimistic locking. If omitted, auto-increments without conflict check.

title

String

The new display name.

customFields

The custom field changes.


AssetDeleteInput

Input for deleting an asset.

Field
Type
Description

id

ID!

The asset ID to delete.

version

Int

The current version for optimistic locking. If omitted, auto-increments without conflict check.


AssetTypeCreateInput

Input for creating an asset type.

Field
Type
Description

code

The machine-readable code. Auto-generated from title if omitted.

title

String!

The display name.

order

Int

The display order. Auto-calculated as last position if omitted.

meta

The display properties.

customFieldDefinitions

Operations on custom field definitions for this asset type. Only create is allowed when creating a new catalog item.


AssetTypeUpdateInput

Input for updating an asset type.

Field
Type
Description

id

ID!

The item ID to update.

version

Int

The current version for optimistic locking. If omitted, auto-increments without conflict check.

title

String

The new display name.

order

Int

The new display order.

meta

The display properties.

customFieldDefinitions

Operations on custom field definitions belonging to this asset type.


Enums

AssetOrderField

Fields available for ordering assets.

Value
Description

TITLE

Order by title.


Pagination types

AssetConnection

A paginated list of Asset items.

Implements: Connection

Field
Type
Description

edges

A list of edges.

nodes

[Asset!]!

A list of nodes in the connection (without edge metadata).

pageInfo

Information about the current page.

total

The total count of items matching the filter.


AssetEdge

An edge in the Asset connection.

Implements: Edge

Field
Type
Description

cursor

String!

An opaque cursor for this edge.

node

The asset at the end of the edge.


AssetTypeConnection

A paginated list of AssetType items.

Implements: Connection

Field
Type
Description

edges

A list of edges.

nodes

A list of nodes in the connection (without edge metadata).

pageInfo

Information about the current page.

total

The total count of items matching the filter.


AssetTypeEdge

An edge in the AssetType connection.

Implements: Edge

Field
Type
Description

cursor

String!

An opaque cursor for this edge.

node

The asset type at the end of the edge.


See also

Last updated

Was this helpful?