PROPERTY CONFIGURATION

Property Workflows are ways of creating custom property ‘templates’ that are used to apply a set of Custom Properties with static Category & Key values.

Property Workflows are defined as JSON configurations (similar to Channels), and are made of many property objects.

The actions here focus on managing the template, whereas the Custom Property creation is handled elsewhere.


Property Configuration Object

{
    "id": "54a1c20e-a09e-49c8-b0dd-341fa32fb7aa",
    "configurationJson": "{...}",
    "name": "Vualto Example Schema",
    "referenceId": "Reference-Id"
}

ConfigurationJson

The configuration JSON is the actual content of the workflow, and it is made up of multiple ‘properties’ inside of a configuration.

{
    "configuration": [
        {
            "name": "Identifier1",
            "displayName": "Test Property",
            "type": "TextField",
            "category": "Category",
            "key": "TextFieldData",
            "defaultValue": "DefaultValue",
            "required": false
        },
        {
            "name": "Identifier2",
            "displayName": "Test Property 2",
            "type": "SelectList",
            "category": "Category",
            "key": "SelectListData",
            "additionalProperties": {
                "options": [ "Option1", "Option2" ]
            }
        }
    ]
}

You can have as many of these as you want, and aside from the Type and AdditionalProperties elements, there are no restrictions on the values. See below for this information.

Property Types:

The ‘type’ property for an object must also be a supported value. It is used to inform the system of the value type (i.e. Date, Time, etc.).

TextField - for any value that doesn’t need formatting or validation.

TextArea - for any long values which benefit from multi-line display.

DateField - for any value which is formatted as a Date. Recommended to specify dateFormat in Additional Properties.

TimeField - for any value which is formatted as a Time. Recommended to specify timeFormat in Additional Properties.

CheckBox - for any value which should only be ‘True’ or ‘False’.

SelectList - for any value which has a finite set of possibilities. Required to specify options in Additional Properties.

Additional Properties:

Additional Properties are extra details which can enable data constraints & validation. All of them are optional, meaning you can drop the ‘additionalProperties’ from the JSON all together.

minimumLength: {int} - the minimum length to allow for the property value.

maximumLength: {int} - the maximum length to allow for the property value.

minimumValue: {int} - the minimum value to allow for the property value. Note: this will enforce a numerical-only value.

maximumValue: {int} - the maximum value to allow for the property value. Note: this will enforce a numerical-only value.

requireNumber: {bool} - whether to enforce a numerical-only value (allows for any value otherwise).

options: {JSON Array} - an array of values to permit, preventing all others. Example: [ "option1", "option2" ]

dateFormat: {string} - the DateTime format to parse the value as (e.g. ‘dd/MM/yyyy’).

timeFormat: {string} - the TimeSpan format to parse the value as (e.g. ‘hh:mm:ss’).

regexFormat: {string} - the REGEX format to validate the value against (e.g. ‘\d+’).

jsonFormat: {string} - the JSON Schema to validate the value against.

requireJson: {bool} - whether to enforce a JSON-only value (a simpler alternative to jsonFormat).


Supported Actions

POST /propertyconfiguration/

Add or Update a Property Configuration.

Request Body:

{
  "Id": null,
  "Name": "Example Configuration",
  "ReferenceId": "reference-id",
  "ConfigurationJson": "{...}"
}

If the Id is specified then it will perform an Update, else it will Add a new one.

Response: 200 OK or 400 Bad Request if the configuration is invalid.


GET /propertyconfiguration/

Gets all Property Configurations.

Response:

200 OK and a JSON array containing multiple Property Configuration objects.

or

204 No Content if no Property Configuration was found.


GET /propertyconfiguration/{id}

Get a Property Configuration by Id.

Response: 200 OK and JSON containing the Property Configuration object.


GET /propertyconfiguration/reference/{referenceId}

Get a Property Configuration by Reference Id.

Response: 200 OK and JSON containing the Property Configuration object.


DEL /propertyconfiguration/{id}

Delete a Property Configuration by Id.

Response: 410 Gone


DEL /propertyconfiguration/reference/{referenceId}

Delete a Property Configuration by Reference Id.

Response: 410 Gone