Set up an OPC UA source in SiteWise Edge
You can use the AWS IoT SiteWise console or a SiteWise Edge gateway capability to define and add an OPC UA source to your SiteWise Edge gateway to represent a local OPC UA server.
Topics
Configure an OPC UA source (console)
You can use the console to configure the OPC UA source with the following procedure.
To configure an OPC UA source using the AWS IoT SiteWise console
-
Navigate to the AWS IoT SiteWise console
. -
In the navigation pane, choose Gateways.
-
Select the SiteWise Edge gateway to add an OPC UA source.
-
Choose Add data source.
-
Enter a name for the source.
-
Enter the Local endpoint of the data source server. The endpoint can be the IP address or hostname. You may also add a port number to the local endpoint. For example, your local endpoint might look like this:
opc.tcp://203.0.113.0:49320
Note
If your SiteWise Edge gateway has a
Deployment type
of Siemens Industrial Edge device - new and you want to ingest data from the Edge OPC UA Server application running on the same Siemens Industrial Edge Device as the AWS IoT SiteWise Edge application, enteropc.tcp://ie-opcua:48010
. -
(Optional) For Node ID for selection, add node filters to limit which data streams are ingested to the AWS Cloud. By default, SiteWise Edge gateways use the root node of a server to ingest all data streams. You can use node filters to reduce your SiteWise Edge gateway's startup time and CPU usage by only including paths to data that you model in AWS IoT SiteWise. By default, SiteWise Edge gateways upload all OPC UA paths except those that start with
/Server/
. To define OPC UA node filters, you can use node paths and the*
and**
wildcard characters. For more information, see Use OPC UA node filters in SiteWise Edge. -
For Destinations, choose the destination for the source data:
-
AWS IoT SiteWise real-time – Choose this to send data directly to AWS IoT SiteWise storage. Ingest and monitor data in real-time, and process data at the edge.
-
AWS IoT SiteWise Buffered using Amazon S3 – Send data in parquet format to Amazon S3 and then import into AWS IoT SiteWise storage. Choose this option to ingest data in batches, and store historical data in a cost-effective way. You can configure your preferred Amazon S3 bucket location, and the frequency at which you want data to be uploaded to Amazon S3. You can also choose what to do with the data after ingestion into AWS IoT SiteWise. You can choose to have the data available in both SiteWise and Amazon S3 or you can choose to delete it automatically from Amazon S3.
-
The Amazon S3 bucket is a staging and buffering mechanism and supports files in the parquet format.
-
If you select the check box Import data into AWS IoT SiteWise storage, data is uploaded into Amazon S3 first, and then into AWS IoT SiteWise storage.
-
If you select the check box Delete data from Amazon S3, data is deleted from Amazon S3, after it is imported into SiteWise storage.
-
If you clear the check box Delete data from Amazon S3, data is stored both in Amazon S3, and in SiteWise storage.
-
-
If you clear the check box Import data into AWS IoT SiteWise storage, data is stored only in Amazon S3. It is not imported into SiteWise storage.
Visit Manage data storage for details on the various storage options AWS IoT SiteWise provides. To learn more about pricing options, see AWS IoT SiteWise pricing
. -
-
AWS IoT Greengrass stream manager – Use AWS IoT Greengrass stream manager to send data to the following AWS Cloud destinations: channels in AWS IoT Analytics, streams in Amazon Kinesis Data Streams, asset properties in AWS IoT SiteWise, or objects in Amazon Simple Storage Service (Amazon S3). For more information, see Manage data streams on the AWS IoT Greengrass Core in AWS IoT Greengrass Version 2 Developer Guide.
Enter a name for the AWS IoT Greengrass stream.
While configuring a data source, Node ID for selection is used to determine the destination of the data flow.
-
If the same data is published to both AWS IoT SiteWise real-time and AWS IoT SiteWise Buffered using Amazon S3, you must add two data sources that publish to both destinations.
-
To split the data so that a part of it is published to AWS IoT SiteWise real-time, and the other part to AWS IoT SiteWise Buffered using Amazon S3, you must filter for the following data aliases:
/Alias01/Data1 /Alias02/Data1 /Alias03/Data1 /Alias03/Data2
For example, you can add a data source pointing to
/**/Data1
node filter, to AWS IoT SiteWise real-time, and another data source pointing to/**/Data2
AWS IoT SiteWise buffered using Amazon S3
-
-
In the Advanced configuration pane, you can do the following:
-
Choose a Message security mode for connections and data in transit between your source server and your SiteWise Edge gateway. This field is the combination of the OPC UA security policy and message security mode. Choose the same security policy and message security mode that you specified for your OPC UA server.
-
If your source requires authentication, choose an AWS Secrets Manager secret from the Authentication configuration list. The SiteWise Edge gateway uses the authentication credentials in this secret when it connects to this data source. You must attach secrets to your SiteWise Edge gateway's AWS IoT Greengrass component to use them for data source authentication. For more information, see Configure data source authentication for SiteWise Edge.
Tip
Your data server might have an option named Allow anonymous login. If this option is Yes, then your source doesn't require authentication.
-
(Optional) You can activate a data stream prefix by selecting Activate data stream prefix - optional.
-
Enter a Data stream prefix. The SiteWise Edge gateway adds this prefix to all data streams from this source. Use a data stream prefix to distinguish between data streams that have the same name from different sources. Each data stream should have a unique name within your account.
-
-
(Optional) Choose a Data type conversion option to convert unsupported OPC UA data types into strings before ingesting them into AWS IoT SiteWise. Convert array values with simple data types to JSON strings and DateTime data types to ISO 8601 strings. For more information, see Converting unsupported data types.
-
(Optional) For Property groups, choose Add new group.
-
Enter a Name for the property group.
-
For Properties:
-
For Node paths, add OPC UA node filters to limit which OPC UA paths are uploaded to AWS IoT SiteWise. The format is similar to Node ID for selection.
-
-
For Group settings, do the following:
-
For Data quality setting, choose the type of data quality that you want AWS IoT SiteWise Collector to ingest.
-
For Scan mode setting, configure the standard subscription properties using Scan mode. You can select Subscribe or Poll. For more information about scan mode, see Filter data ingestion ranges with OPC UA.
-
-
-
-
Choose Save.
Configure an OPC UA source (CLI)
You can define OPC UA data sources for an SiteWise Edge gateway using the AWS CLI. To
do this, create an OPC UA capability configuration JSON file and use the update-gateway-capability-configuration
This capability has the following namespace.
-
iotsitewise:opcuacollector:2
Request syntax
{ "sources": [ { "name": "
string
", "endpoint": { "certificateTrust": { "type": "TrustAny
" | "X509
", "certificateBody": "string
", "certificateChain": "string
", }, "endpointUri": "string
", "securityPolicy": "NONE
" | "BASIC128_RSA15
" | "BASIC256
" | "BASIC256_SHA256
" | "AES128_SHA256_RSAOAEP
" | "AES256_SHA256_RSAPSS
", "messageSecurityMode": "NONE
" | "SIGN
" | "SIGN_AND_ENCRYPT
", "identityProvider": { "type": "Anonymous
" | "Username
", "usernameSecretArn": "string
" }, "nodeFilterRules": [ { "action": "INCLUDE
", "definition": { "type": "OpcUaRootPath
", "rootPath": "string
" } } ] }, "measurementDataStreamPrefix": "string
", "typeConversions": { "array": "JsonArray
", "datetime": "ISO8601String
" }, "destination": { "type": "StreamManager
", "streamName": "string
", "streamBufferSize":integer
, }, "propertyGroups": [ { "name": "string
", "nodeFilterRuleDefinitions": [ { "type": "OpcUaRootPath
", "rootPath": "string
" } ], "deadband": { "type": "PERCENT
" | "ABSOLUTE
", "value":double
, "eguMin":double
, "eguMax":double
, "timeoutMilliseconds":integer
}, "scanMode": { "type": "EXCEPTION
" | "POLL
", "rate":integer
, "timestampToReturn": "SOURCE_TIME
" | "SERVER_TIME
" }, "dataQuality": { "allowGoodQuality":true
|false
, "allowBadQuality":true
|false
, "allowUncertainQuality":true
|false
}, "subscription": { "dataChangeTrigger": "STATUS
" | "STATUS_VALUE
" | "STATUS_VALUE_TIMESTAMP
", "queueSize":integer
, "publishingIntervalMilliseconds":integer
, "snapshotFrequencyMilliseconds":integer
} } ] } ] }
Request body
- sources
-
A list of OPC UA source definition structures that each contain the following information:
- name
-
A unique, friendly name for the source.
- endpoint
-
An endpoint structure that contains the following information:
- certificateTrust
-
A certificate trust policy structure that contains the following information:
- type
-
The certificate trust mode for the source. Choose one of the following:
-
TrustAny
– The SiteWise Edge gateway trusts any certificate when it connects to the OPC UA source. -
X509
– The SiteWise Edge gateway trusts an X.509 certificate when it connects to the OPC UA source. If you choose this option, you must definecertificateBody
incertificateTrust
. You can also definecertificateChain
incertificateTrust
.
-
- certificateBody
-
(Optional) The body of an X.509 certificate.
This field is required if you choose
X509
fortype
incertificateTrust
. - certificateChain
-
(Optional) The chain of trust for an X.509 certificate.
This field is used only if you choose
X509
fortype
incertificateTrust
.
- endpointUri
-
The local endpoint of the OPC UA source. For example, your local endpoint might look like
opc.tcp://203.0.113.0:49320
. - securityPolicy
-
The security policy to use so that you can secure messages that are read from the OPC UA source. Choose one of the following:
-
NONE
– The SiteWise Edge gateway doesn't secure messages from the OPC UA source. We recommend that you choose a different security policy. If you choose this option, you must also chooseNONE
formessageSecurityMode
. -
BASIC256_SHA256
– TheBasic256Sha256
security policy. -
AES128_SHA256_RSAOAEP
– TheAes128_Sha256_RsaOaep
security policy. -
AES256_SHA256_RSAPSS
– TheAes256_Sha256_RsaPss
security policy. -
BASIC128_RSA15
– (Deprecated) TheBasic128Rsa15
security policy is deprecated in the OPC UA specification because it's no longer considered secure. We recommend that you choose a different security policy. For more information, see Basic128Rsa15. -
BASIC256
– (Deprecated) TheBasic256
security policy is deprecated in the OPC UA specification because it's no longer considered secure. We recommend that you choose a different security policy. For more information, see Basic256.
Important
If you choose a security policy other than
NONE
, you must chooseSIGN
orSIGN_AND_ENCRYPT
formessageSecurityMode
. You must also configure your source server to trust the SiteWise Edge gateway. For more information, see Set up OPC UA servers to trust the AWS IoT SiteWise Edge gateway. -
- messageSecurityMode
-
The message security mode to use to secure connections to the OPC UA source. Choose one of the following:
-
NONE
– The SiteWise Edge gateway doesn't secure connections to the OPC UA source. We recommend that you choose a different message security mode. If you choose this option, you must also chooseNONE
forsecurityPolicy
. -
SIGN
– Data in transit between the SiteWise Edge gateway and the OPC UA source is signed but not encrypted. -
SIGN_AND_ENCRYPT
– Data in transit between the gateway and the OPC UA source is signed and encrypted.
Important
If you choose a message security mode other than
NONE
, you must choose asecurityPolicy
other thanNONE
. You must also configure your source server to trust the SiteWise Edge gateway. For more information, see Set up OPC UA servers to trust the AWS IoT SiteWise Edge gateway. -
- identityProvider
-
An identity provider structure that contains the following information:
- type
-
The type of authentication credentials required by the source. Choose one of the following:
-
Anonymous
– The source doesn't require authentication to connect. -
Username
– The source requires a user name and password to connect. If you choose this option, you must defineusernameSecretArn
inidentityProvider
.
-
- usernameSecretArn
-
(Optional) The ARN of an AWS Secrets Manager secret. The SiteWise Edge gateway uses the authentication credentials in this secret when it connects to this source. You must attach secrets to your SiteWise Edge gateway's IoT SiteWise connector to use them for source authentication. For more information, see Configure data source authentication for SiteWise Edge.
This field is required if you choose
Username
fortype
inidentityProvider
.
- nodeFilterRules
-
A list of node filter rule structures that define the OPC UA data stream paths to send to the AWS Cloud. You can use node filters to reduce your SiteWise Edge gateway's startup time and CPU usage by only including paths to data that you model in AWS IoT SiteWise. By default, SiteWise Edge gateways upload all OPC UA paths except those that start with
/Server/
. To define OPC UA node filters, you can use node paths and the*
and**
wildcard characters. For more information, see Use OPC UA node filters in SiteWise Edge.Each structure in the list must contain the following information:
- action
-
The action for this node filter rule. You can choose the following option:
-
INCLUDE
– The SiteWise Edge gateway includes only data streams that match this rule.
-
- definition
-
A node filter rule structure that contains the following information:
- type
-
The type of node filter path for this rule. You can choose the following option:
-
OpcUaRootPath
– The SiteWise Edge gateway evaluates this node filter path against the root of the OPC UA path hierarchy.
-
- rootPath
-
The node filter path to evaluate against the root of the OPC UA path hierarchy. This path must start with
/
.
- measurementDataStreamPrefix
-
A string to prepend to all data streams from the source. The SiteWise Edge gateway adds this prefix to all data streams from this source. Use a data stream prefix to distinguish between data streams that have the same name from different sources. Each data stream should have a unique name within your account.
- typeConversions
-
The types of conversions available for unsupported OPC UA data types. Each data type is converted to strings. For more information, see Converting unsupported data types.
- array
-
The simple array data type that is converted to strings. You can choose the following option:
-
JsonArray
– Indicates that you choose to convert your simple array data types to strings.
-
- datetime
-
The DateTime data type that is converted to strings. You can choose the following option:
-
ISO8601String
– Indicates that you choose to convert ISO 8601 data types to strings.
-
- destination
-
Configuration for the destination of the data stream.
- type
-
The type of the destination.
- streamName
-
The name of the stream. The stream name should be unique.
- streamBufferSize
-
The buffer size of the stream. This is important for managing the flow of data from OPC UA sources.
- propertyGroups
-
(Optional) The list of property groups that define the
deadband
andscanMode
requested by the protocol.- name
-
The name of the property group. This should be a unique identifier.
- deadband
-
The
deadband
value defines the minimum change in a data point's value that must occur before the data is sent to the cloud. It contains the following information:- type
-
The supported types of deadband. You can choose the following options:
-
ABSOLUTE
– A fixed value that specifies the minimum absolute change required to consider a data point significant enough to be sent to the cloud. -
PERCENT
– A dynamic value that specifies the minimum change required as a percentage of the last sent data point's value. This type of deadband is useful when the data values vary significantly over time.
-
- value
-
The value of the deadband. When
type
isABSOLUTE
, this value is a unitless double. Whentype
isPERCENT
, this value is a double between1
and100
. - eguMin
-
(Optional) The engineering unit minimum when using a
PERCENT
deadband. You set this if the OPC UA server doesn't have engineering units configured. - eguMax
-
(Optional) The engineering unit maximum when using a
PERCENT
deadband. You set this if the OPC UA server doesn't have engineering units configured. - timeoutMilliseconds
-
The duration in milliseconds before timeout. The minimum is
100
.
- scanMode
-
The
scanMode
structure that contains the following information:- type
-
The supported types of
scanMode
. Accepted values arePOLL
andEXCEPTION
. - rate
-
The sampling interval for the scan mode.
- timestampToReturn
-
The source of the timestamp. You can choose the following options:
-
SOURCE_TIME
– Uses the timestamp from your device. -
SERVER_TIME
– Uses the timestamp from your server.
Note
Use
TimestampToReturn
with version 2.5.0 or later of the IoT SiteWise OPC UA collector component. If you use this feature with earlier versions, configuration updates fail. For more information, see Update the version of an AWS IoT SiteWise component. -
- nodeFilterRuleDefinitions
-
(Optional) A list of node paths to include in the property group. Property groups can't overlap. If you don't specify a value for this field, the group contains all paths under the root, and you can't create additional property groups. The
nodeFilterRuleDefinitions
structure contains the following information:- type
-
OpcUaRootPath
is the only supported type. This specifies that the value ofrootPath
is a path relative to the root of the OPC UA browsing space. - rootPath
-
A comma-delimited list that specifies the paths (relative to the root) to include in the property group.
Capability configuration examples
The following example defines an OPC UA SiteWise Edge gateway capability configuration from a payload stored in a JSON file.
aws iotsitewise update-gateway-capability-configuration \ --capability-namespace "iotsitewise:opcuacollector:2" \ --capability-configuration file://opc-ua-configuration.json
Example : OPC UA source configuration
The following opc-ua-configuration.json
file
defines a basic, insecure OPC UA source configuration.
{ "sources": [ { "name": "Wind Farm #1", "endpoint": { "certificateTrust": { "type": "TrustAny" }, "endpointUri": "opc.tcp://203.0.113.0:49320", "securityPolicy": "NONE", "messageSecurityMode": "NONE", "identityProvider": { "type": "Anonymous" }, "nodeFilterRules": [] }, "measurementDataStreamPrefix": "" } ] }
Example : OPC UA source configuration with defined property groups
The following opc-ua-configuration.json
file
defines a basic, insecure OPC UA source configuration with defined
property groups.
{ "sources": [ { "name": "source1", "endpoint": { "certificateTrust": { "type": "TrustAny" }, "endpointUri": "opc.tcp://10.0.0.9:49320", "securityPolicy": "NONE", "messageSecurityMode": "NONE", "identityProvider": { "type": "Anonymous" }, "nodeFilterRules": [ { "action": "INCLUDE", "definition": { "type": "OpcUaRootPath", "rootPath": "/Utilities/Tank" } } ] }, "measurementDataStreamPrefix": "propertyGroups", "propertyGroups": [ { "name": "Deadband_Abs_5", "nodeFilterRuleDefinitions": [ { "type": "OpcUaRootPath", "rootPath": "/Utilities/Tank/Temperature/TT-001" }, { "type": "OpcUaRootPath", "rootPath": "/Utilities/Tank/Temperature/TT-002" } ], "deadband": { "type":"ABSOLUTE", "value": 5.0, "timeoutMilliseconds": 120000 } }, { "name": "Polling_10s", "nodeFilterRuleDefinitions": [ { "type": "OpcUaRootPath", "rootPath": "/Utilities/Tank/Pressure/PT-001" } ], "scanMode": { "type": "POLL", "rate": 10000 } }, { "name": "Percent_Deadband_Timeout_90s", "nodeFilterRuleDefinitions": [ { "type": "OpcUaRootPath", "rootPath": "/Utilities/Tank/Flow/FT-*" } ], "deadband": { "type":"PERCENT", "value": 5.0, "eguMin": -100, "eguMax": 100, "timeoutMilliseconds": 90000 } } ] } ] }
Example : OPC UA source configuration with properties
The following JSON example for
opc-ua-configuration.json
defines an OPC UA
source configuration with the following properties:
-
Trusts any certificate.
-
Uses the
BASIC256
security policy to secure messages. -
Uses the
SIGN_AND_ENCRYPT
mode to secure connections. -
Uses authentication credentials stored in a Secrets Manager secret.
-
Filters out data streams except those whose path starts with
/WindFarm/2/WindTurbine/
. -
Adds
/Washington
to the start of every data stream path to distinguish between this "Wind Farm #2" and a "Wind Farm #2" in another area.
{ "sources": [ { "name": "Wind Farm #2", "endpoint": { "certificateTrust": { "type": "TrustAny" }, "endpointUri": "opc.tcp://203.0.113.1:49320", "securityPolicy": "BASIC256", "messageSecurityMode": "SIGN_AND_ENCRYPT", "identityProvider": { "type": "Username", "usernameSecretArn": "arn:aws:secretsmanager:
region
:123456789012:secret:greengrass-windfarm2-auth-1ABCDE" }, "nodeFilterRules": [ { "action": "INCLUDE", "definition": { "type": "OpcUaRootPath", "rootPath": "/WindFarm/2/WindTurbine/" } } ] }, "measurementDataStreamPrefix": "/Washington" } ] }
Example : OPC UA source configuration with certificate trust
The following JSON example for
opc-ua-configuration.json
defines an OPC UA
source configuration with the following properties:
-
Trusts a given X.509 certificate.
-
Uses the
BASIC256
security policy to secure messages. -
Uses the
SIGN_AND_ENCRYPT
mode to secure connections.
{ "sources": [ { "name": "Wind Farm #3", "endpoint": { "certificateTrust": { "type": "X509", "certificateBody": "-----BEGIN CERTIFICATE----- MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w 0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZ WF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIw EAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5 jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBh MCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBb WF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMx HzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQE BBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVI k60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQ ITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nr AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auN KyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6Guo EDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw 3rrszlaEXAMPLE= -----END CERTIFICATE-----", "certificateChain": "-----BEGIN CERTIFICATE----- MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w 0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZ WF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIw EAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5 jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBh MCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBb WF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMx HzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQE BBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVI k60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQ ITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nr AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auN KyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6Guo EDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw 3rrszlaEXAMPLE= -----END CERTIFICATE-----" }, "endpointUri": "opc.tcp://203.0.113.2:49320", "securityPolicy": "BASIC256", "messageSecurityMode": "SIGN_AND_ENCRYPT", "identityProvider": { "type": "Anonymous" }, "nodeFilterRules": [] }, "measurementDataStreamPrefix": "" } ] }