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:
-
By policy: ruleSeverities: { policyHandle: 50 } — applies severities from a saved policy
-
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.