Struct Actions
Struct actions are complex data actions designed to be used with XINA Structs. Unlike most API actions, they may involve complex multi-step operations, and are dependent on the structs configuration of groups and databases.
Data Actions
STRUCT BUFFER IMPORT
Imports a buffer source file into a model.
Property | Value | Req | Default |
---|---|---|---|
action | "struct_buffer_import" |
✓ | |
model | model group specifier | ✓ | |
origin | origin name | ✓ | |
object_id | object ID of data file | ✓ | |
format | string |
✓ | |
conf | jsonobject |
||
strict_units | boolean |
false |
If the mn
column is an integer it will be interpretted as a literal mnemonic ID. Otherwise the name will be parsed from this format:
<name>[(<unit>[;n0=v0|n1=v1|...])]
<name>
will be used for the mnemonic name lookup. The comparison is case insensitive and any whitespace is treated as a single underscore. <unit>
is optional. If provided, it must match the unit of an associated mnemonic definition, otherwise an error is thrown. The section after unit defines discrete value mapping.
When a data set is imported the XINA server will run the following steps:
- For each row:
- validate time and value
- process mnemonic
- If mnemonic ID
- If found in definitions database:
- If mnemonic is deprecated, throw error
- Else, use mnemonic for row
- Else, throw error due to unrecognized ID
- If found in definitions database:
- Else, parse name and optional unit
- If name match found:
- If unit is provided and does not match, throw error
- If mnemonic is deprecated, throw error
- Else, use mnemonic for row
- Else, mnemonic is new, create new temporary mnemonic definition based on provided information
- If name match found:
- If mnemonic ID
- If any rows contain same mnemonic and time, throw error
- Check for time overlap in database
- If found
- If
on_overlap
=fail
, throw error - Else If
on_overlap
=delete
, delete all data from database in time range of imported data - Else (
on_overlap
=ignore
), do nothing
- If
- If found
- If new mnemonic definitions created, insert into mnemonic definition database
- Insert data into mnemonic database
STRUCT MN ALIAS
Adds one or more aliases of name/unit pairs to a single existing mnemonic.
Property | Value |
---|---|
action |
"struct_mn_edit" |
database |
mnemonic definition database specifier |
mn |
mnemonic ID |
aliases |
string[] , name/unit pair alias(es) for mnemonic |
STRUCT MN EDIT
Edits one or more properties of a single existing mnemonic.
Property | Value | Required |
---|---|---|
action |
"struct_mn_edit" |
✓ |
database |
mnemonic definition database specifier | ✓ |
mn |
mnemonic ID | ✓ |
name |
string , new name/unit pair for mnemonic |
|
state |
string |
STRUCT MN MERGE
Merges one or more existing mnemonics into a single existing mnemonic.
STRUCT EVENT
Performs context-aware event operations.
In each of these operations, events may specify a text "name"
property. This will be used to lookup a corresponding event ID from the event definitions associated with the database, and create a new definition if one is not found. If a "name"
is present, an "e_id"
may not also be present, or the action will fail. If the "name"
property value is numeric or numeric text, it will interpretted as a direct event ID reference, and will fail if an event definition with the provided ID does not already exist.
STRUCT EVENT INSERT
Inserts one or more events into a single event database.
Property | Value | Req | Default |
---|---|---|---|
action | "struct_event" |
✓ | |
op | "insert" |
✓ | |
database | event database | ✓ | |
object_id | object ID of data file | ✓ |
Any events which specify a name will have the name resolved in the corresponding event definitions database to find the event ID. If none exists, one will be created.
If the event database is configured with an event stream database, the event stream database will be checked for any update or delete change records, and the changes will be applied to the incoming events before they are inserted (with deleted events not being inserted).
If any inserted UEIDs are already present in the database, the action will fail.
STRUCT EVENT OPEN
Creates an open interval event.
Property | Value | Req | Default |
---|---|---|---|
action | "struct_event" |
✓ | |
op | "open" |
✓ | |
database | event database | ✓ | |
archive | archive ID | ✓ | |
event | event record | ✓ | |
on_duplicate | "fail" or "update" |
"fail" |
This action is only compatible with event databases configured for event streams.
STRUCT EVENT CLOSE
Closes an open interval event.
Property | Value | Req | Default |
---|---|---|---|
action | "struct_event" |
✓ | |
op | "close" |
✓ | |
database | event database | ✓ | |
object_id | object ID of data file | ✓ |
STRUCT EVENT UPDATE
STRUCT EVENT DELETE
STRUCT EVENT CLEAR
Schema Actions
STRUCT CREATE
The STRUCT CREATE action is used to create a variety of XINA Structs compatible schema elements.
STRUCT CREATE PROJECT
Creates a structs project group.
Property | Value | Req | Default |
---|---|---|---|
action | "struct_create" |
✓ | |
create | "project" |
✓ | |
parent | group specifier | ||
name | string |
✓ | |
label | string |
name | |
desc | string |
label |
If a parent
group is specified, it may not include a structs definition (since project groups must be at the top level of a struct heirarchy). The name
(and label
, if provided) must not be in use by any group siblings, or the action will fail.
STRUCT CREATE CATEGORY
Creates a structs category group.
Property | Value | Req | Default |
---|---|---|---|
action | "struct_create" |
✓ | |
create | "category" |
✓ | |
parent | group specifier | ✓ | |
name | string |
✓ | |
label | string |
name | |
desc | string |
label |
The parent
group must be either a project group or category group, or the action will fail. The name
(and label
, if provided) must not be in use by any group siblings, or the action will fail.
STRUCT CREATE MODEL
Creates a structs model group.
Property | Value | Req | Default |
---|---|---|---|
action | "struct_create" |
✓ | |
create | "model" |
✓ | |
parent | group specifier | ✓ | |
name | string |
✓ | |
label | string |
name | |
desc | string |
label | |
event | boolean |
false |
|
eventf | boolean |
false |
|
eventfs | boolean |
false |
|
group_teams | team group privilege map | ||
database_teams | team database privilege map |
The parent
group must be either a project group or category group, or the action will fail. The name
(and label
, if provided) must not be in use by any group siblings, or the action will fail.
STRUCT CREATE PIPE
Creates a struct pipe group.
Property | Value | Required | Default |
---|---|---|---|
action | "struct_create" |
✓ | |
create | "origin" |
✓ | |
model | group specifier | ✓ | |
name | string |
✓ | |
label | string |
name | |
desc | string |
label | |
group_teams | team group privilege map | ||
database_teams | team database privilege map | ||
partition | boolean or {"from": <start year>, "to": <end year>} |
false |
The parent
group must be either a project group or category group, or the action will fail. The name
(and label
, if provided) must not be in use by any group siblings, or the action will fail.
STRUCT CREATE DEF
Creates a structs definitions group, with associated databases.
Property | Value | Req | Default |
---|---|---|---|
action | "struct_create" |
✓ | |
create | "def" |
✓ | |
parent | group specifier | ✓ |
The parent
group must be either a project, category, or model group, or the action will fail.
STRUCT CREATE EVENT
Creates a new structs event database.
Property | Value | Req | Default |
---|---|---|---|
action | "struct_create" |
✓ | |
create | "event" |
✓ | |
group | group specifier | ✓ | |
type | "none" , "file" , or "files" |
"none" |
|
name | string | "event" , "eventf" , or "eventfs" |
|
label | string | name | |
desc | string | label | |
singular | string | "event" |
|
plural | string | singulars |
|
conf | JSON object | ||
fields | array of field definitions | ||
teams | team database privilege map |
STRUCT CREATE NOTEBOOK
Creates a new structs notebook database.
Property | Value | Req | Default |
---|---|---|---|
action | "struct_create" |
✓ | |
create | "notebook" |
✓ | |
parent | group specifier | ✓ | |
name | string | ✓ | |
label | string | name | |
desc | string | label | |
fields | array of field definitions | ||
teams | team database privilege map |