Please ensure Javascript is enabled for purposes of website accessibility
Powered by Zoomin Software. For more details please contactZoomin

Data validation

Create and run a session

  • Last UpdatedJul 01, 2026
  • 2 minute read

A Session binds a class library to a dataset and executes validation rules.

Create a session

mutation {

vaas {

session {

insert(input

: [ {

name : "Windtopia Equipment Validation - Q4 2024"

classLibraryHandle : 100 datasetHandle : 200

} ]) {

handle name status etag

}

}

}

}

Required fields: name, classLibraryHandle, datasetHandle.

Run async validation

The runAsync mutation creates and starts a validation session in a single operation, with full control over validation behavior.

mutation {

dataValidation {

session {

runAsync(

request

: {

name : "Windtopia Full Validation" description :

"Q4 2024 equipment data validation" classLibraryHandle : 100

datasetHandle : 200 vocabularyIdentifier : "CFIHOS-v1.5"

retentionPeriodInMinutes : 20160 defaultObjectIntent : "UPSERT"

defaultClassIdentifier : "Equipment" ignoreWhenNotMapping : false

attemptAutoResolvingOfClassLibraryVocabulary : true

nullValueTokens : [ "N/A", "NULL", "-", "" ]

ruleSeverities : {policyHandle : 50} uniqueIdentifierContext :

{property : "TagNumber" prefix : "WT-"} fileSections : [ {

fileSectionHandle : 300 ignore : false defaultObjectIntent :

"UPSERT" defaultClassIdentifier : "Equipment"

} ]

}) {

handle name status startedAt

}

}

}

}

RunAsync request parameters

Parameter

Type

Required

Default

Description

name

string

Yes

--

Session name

classLibraryHandle

long

Yes

--

ClassLibrary to validate against

datasetHandle

long

Yes

--

Dataset to validate

description

string?

Yes

--

Session description

vocabularyIdentifier

string?

No

--

Specific vocabulary within the class library

retentionPeriodInMinutes

int?

No

10080

Retention period

defaultObjectIntent

string?

No

"UPSERT"

Default processing intent

defaultClassIdentifier

string?

No

--

Default class when not specified per object

defaultClassConcept

string?

No

--

Default class concept

defaultMaturityLevel

string?

No

--

Default maturity level

ignoreWhenNotMapping

bool?

No

--

Skip objects that don't map to the class library

attemptAutoResolvingOfClassLibraryVocabulary

bool?

No

--

Auto-resolve vocabulary matches

nullValueTokens

string[]?

No

--

Strings to treat as null (max 20 entries)

ruleSeverities

object?

No

--

Override rule severities —

provide policyHandle or individual rules array

uniqueIdentifierContext

object?

No

--

Define how unique

identifiers are constructed

from properties

fileSections

object[]?

No

--

Per-filesection overrides for

intent, class, maturity, rules, and null tokens

Rule severity overrides — two options:

  1. By policy: ruleSeverities: { policyHandle: 50 } — applies severities from a saved policy

  2. Individual rules: ruleSeverities: { rules: [{ identifier: "RULE-001", severity: "WARNING" }] } — override specific rules

Unique identifier context: Controls how unique identifiers are built from object properties:

{

"property": "TagNumber",

"prefix": "WT-",

"suffix": "-2024"

}

Start Validation (Simple)

If you created a session via insert, start validation separately:

mutation {

dataValidation {

session {

start(sessionHandle : 12345) { handle status startedAt }

}

}

}

Rule severity configuration

Assign rule severities to a session before or after starting. You can copy from an existing session, a saved policy, or use default severities:

mutation {

dataValidation {

session {

assignRuleSeverities(handle : 12345 sessionHandle : 67890) {

handle numberOfRules

}

}

}

}

Parameters:

  • handle — Target session to configure

  • sessionHandle — (optional) Copy severities from this session

  • policyHandle — (optional) Copy severities from this policy

If neither sessionHandle nor policyHandle is provided, default severities are applied.

In This Topic