- 10 minutes to read

Context Options

Context Options control how Nodinite processes logged events. Add these key-value pairs to Log Events to override defaults, automate repository binding, and enable Search Field extraction.

Key capabilities:

Message Type control - Override auto-detection or force specific types
Search Field extraction - Enable format-specific field expressions
Repository automation - Create Integrations, Services, and Systems via JSON
Property overrides - Customize Log Status, endpoints, filenames, and metadata

Context Options control Step 2 of the processing pipeline—Message Type determination—ensuring correct Search Field Expressions are evaluated in Step 3.

Warning

From Nodinite 5.1+, context keys use ExtendedProperties/1.0 prefix. Legacy IM.DefaultProperties/1.0 keys remain supported but use the new format for new development.

1. Message and Payload Control

Control how payloads are processed and Message Types are determined.

Context Key Value Purpose
ExtendedProperties/1.0#MessageTypeName string Override/force Message Type name
ExtendedProperties/1.0#MessageTypeExtractFromBody true/false Enable auto-extraction from payload
ExtendedProperties/1.0#Filename
ExtendedProperties/1.0#FullFilePath
Filename / FileName / filename
originalFilename
string Default filename for resend/download
ExtendedProperties/1.0#EndPointUri string Webhook URI for resend operations
ExtendedProperties/1.0#Exception string Serialized .NET exception (JSON)
ExtendedProperties/1.0#EndPointName string Override Endpoint name

Message Type Name

Purpose: Override or force the Message Type name for proper Search Field extraction.

When to use:

  • Non-XML formats (EDI, flat files, JSON without schema) that can't be auto-detected
  • Override auto-detection based on business logic
  • Complex routing scenarios with format-specific handling
Context Key Value Example
ExtendedProperties/1.0#MessageTypeName Any unique string https://nodinite.com/Customers/1.0#Batch

Tip

Version the namespace using /1.0 or /2016/05/17 notation for uniqueness.

Example: A flat file invoice without a Message Type won't extract Search Fields. Setting ExtendedProperties/1.0#MessageTypeName = "FlatFileInvoice/1.0" enables extraction of invoice numbers, customer IDs, and amounts.

Extract Message Type from Payload

Purpose: Control automatic Message Type extraction from payloads.

If ExtendedProperties/1.0#MessageTypeName is NOT set and MessageTypeExtractFromBody = true, the Logging Service extracts:

  • XML: TargetNameSpace#RootNodeName
  • JSON: Schema identifier properties
  • EDIFACT: UNA field
Context Key Value
ExtendedProperties/1.0#MessageTypeExtractFromBody true (enable) or false (disable)

Example: For region-based routing, set MessageTypeName = "Invoice-EU/1.0" and MessageTypeExtractFromBody = false to prevent XML namespace from overriding your business logic.

File Name

Purpose: Pre-set filename for Resend, Repair, and Save operations in the Web Client.

Context Key Value
ExtendedProperties/1.0#Filename
ExtendedProperties/1.0#FullFilePath
Filename / FileName / filename
originalFilename
Valid file path (Windows path rules)

Note

Requires a body/payload to function.

Example Result
c:\temp\in\order123.txt Filename: order123.txt, Folder: c:\temp\in\
c:\temp\in\ Auto-generated filename, Folder: c:\temp\in\
c:\temp Filename: temp, Folder: c:\

Webhook

Set the Webhook URI for resend/repair operations.

Context Key Value
ExtendedProperties/1.0#EndPointUri Webhook URL string

Review: ResendWebhookSettings system parameter

Exception

Pass serialized .NET exceptions in JSON format.

Context Key Value
ExtendedProperties/1.0#Exception JSON string

Endpoint Name

Override the Endpoint name.

Context Key Value
ExtendedProperties/1.0#EndPointName String value

2. Repository Binding

Automatically create and bind Repository Model entities (Integrations, Services, Systems, Contracts) via JSON context.

Quick Reference

Context Key Purpose Value
ExtendedProperties/1.0#RepositoryBinding Complete JSON structure See 2.1
ExtendedProperties/1.0#IntegrationName Integration name string
ExtendedProperties/1.0#ServiceName Service name string
ExtendedProperties/1.0#ServiceSystemName Service system string
ExtendedProperties/1.0#ServiceDirection Service direction int or string
ExtendedProperties/1.0#ExternalServiceRelationName External service name string
ExtendedProperties/1.0#ExternalServiceRelationSystemName External service system string
ExtendedProperties/1.0#InternalServiceRelationName Internal service name string
ExtendedProperties/1.0#InternalServiceRelationDirection Internal service direction int or string
ExtendedProperties/1.0#ContractName Contract name string
ExtendedProperties/1.0#ContractSystemName Contract system string

Available from Nodinite 4.3.0.72+

2.1 Repository Binding JSON

Create complete repository structures with a single JSON value. Replaces individual context keys (2.2-2.5).

Note

The structure documented below is for Nodinite v7. Earlier versions may have different field requirements.

Structure:

{
  "Name": "Transport Contract Name",
  "Service": {
    "Name": "Service Name",
    "Direction": "Send|Receive|TwoWaySend|TwoWayReceive",
    "System": { "Name": "System Name" },
    "Integration": { "Name": "Integration Name" },
    "ExternalServiceRelations": [{ 
      "Name": "Service", 
      "Direction": "Send|Receive",
      "System": { "Name": "System" } 
    }],
    "InternalServiceRelations": [{ 
      "Name": "Service",
      "Direction": "Send|Receive",
      "System": { "Name": "System" }
    }],
    "BPMs": [{ /* See section 2.2 */ }]
  }
}

Repository Binding - Service relations

Root Object

Field Required Purpose Example
Name Transport Contract name (can be same for all services) Default, Standard Transport Contract
Service Service definition Service object below

Service Object

Field Required Purpose Example
Name Service name Bank - Loan Request, INT1337-RCV-Order-Incoming
Direction Data flow direction Send, Receive, TwoWaySend, TwoWayReceive
System Hosting system { "Name": "Mule" }
Integration Parent integration { "Name": "INT004 - Bank (2 Way)" }
ExternalServiceRelations Cross-system connections Array of external service objects
InternalServiceRelations Same-system connections Array of internal service objects
BPMs Business process positioning Array of BPM objects (see 2.2)

ExternalServiceRelations (Cross-System)

Links to services in different systems. Used to show cross-system integration flows.

Field Required Purpose Example
Name Target service name Bank Service, Broker A - Get Quote
Direction Target service direction Send, Receive
System Target system { "Name": "Bank System" }

Important

Direction refers to the direction of the target service, not the current service. For example, if the current service is "Receive" and points to a downstream "Send" service, set Direction = "Send".

InternalServiceRelations (Same-System)

Links to services in the same system. Used to show internal routing or transformation steps.

Field Required Purpose Example
Name Target service name (same system) Receive Quotes, Order Router
Direction Target service direction Send, Receive
System Target system (same as current) { "Name": "Mule" }

Example

{
  "Name": "Receive Quotes via JSON",
  "Service": {
    "Name": "Receive Quotes",
    "Direction": "TwoWayReceive",
    "System": { "Name": "Mule" },
    "Integration": { "Name": "INT004 - Bank (2 Way)" },
    "ExternalServiceRelations": [{
      "Name": "Broker A - Get Quote",
      "Direction": "Send",
      "System": { "Name": "Broker A" }
    }],
    "InternalServiceRelations": [{
      "Name": "Bank - Loan Request",
      "Direction": "Receive",
      "System": { "Name": "Mule" }
    }]
  }
}

For Swagger/Log API:

"ExtendedProperties/1.0#RepositoryBinding": "{\"Name\":\"Receive Quotes via JSON\",\"Service\":{\"Name\":\"Receive Quotes\",\"Direction\":\"TwoWayReceive\",\"System\":{\"Name\":\"Mule\"},\"Integration\":{\"Name\":\"INT004 - Bank (2 Way)\"},\"ExternalServiceRelations\":[{\"Name\":\"Broker A - Get Quote\",\"System\":{\"Name\":\"Broker A\"}}],\"InternalServiceRelations\":[{\"Name\":\"Bank - Loan Request\"}]}}"

2.2 Business Process Model (BPM)

BPMs organize process steps as a matrix: domains (rows) × steps (columns).

           Step 0        Step 1        Step 2
Sales      Order         [empty]       [empty]
           Received

Planning   [empty]       Order         [empty]
                         Planned

Logistics  [empty]       [empty]       Order
                                       Packed

Note

Steps are 0-based in code (0, 1, 2) but display as 1-based in UI (Step 1, Step 2, Step 3). Step numbers must always be non-negative (0 or positive integers).

BPM Object

Field Required Purpose Example
Name Process flow name INT1337 - Order-to-Cash Flow
ArtifactRenaming UI display name Order Received from Customer
Domain Row position { "Name": "Sales", "Index": 0 }
Step Column position (0-based) 0, 1, 2
ServiceRelations Flow arrows between cells Array of service relation objects

Domain Object

Field Required Purpose Example
Name Business domain Sales, Planning, Logistics, Finance
Index Row order (0-based) 0, 1, 2, 3

ServiceRelations (BPM Flow Arrows)

Links between BPM process steps, displayed as arrows in the BPM matrix visualization.

Field Required Purpose Values
Name Target service name Service name string
Direction Target service flow direction Send, Receive, TwoWay
System Target service system { "Name": "System Name" }
Domain Target row { "Name": "Sales", "Index": 0 }
Step Target column (0-based) 0, 1, 2
ArtifactRenaming Relation display name String
Label Arrow label text String
ConnectorStyle Connector line style 0=Arrow, 1=DottedArrow, 2=Line, 3=DottedLine, 4=StraightArrow, 5=StraightDottedArrow
SourceAttachmentPoint Arrow start position 1=Left, 2=Up, 3=Right, 4=Down
TargetAttachmentPoint Arrow end position 1=Left, 2=Up, 3=Right, 4=Down

Important

Direction and System fields are required for proper BPM reconstruction. The Direction refers to the target service's direction, not the current service. Including System and Domain in every ServiceRelation ensures Nodinite can reconstruct the process flow even when events arrive out of sequence due to network delays, retries, or asynchronous processing.

BPM Example

"BPMs": [{
  "Name": "INT1337 - Order-to-Cash Flow",
  "ArtifactRenaming": "Order Entry in ERP",
  "Domain": { "Name": "Planning", "Index": 1 },
  "Step": 1,
  "ServiceRelations": [{
    "Name": "INT1337-RCV-Order-Incoming",
    "Direction": "Receive",
    "System": { "Name": "Portal" },
    "Domain": { "Name": "Sales", "Index": 0 },
    "Step": 0,
    "Label": "From Portal",
    "ConnectorStyle": 0,
    "SourceAttachmentPoint": 3,
    "TargetAttachmentPoint": 1
  }]
}]

2.3 Individual Context Keys (Legacy)

Use when not using the complete JSON structure.

Integration

Context Key Value
ExtendedProperties/1.0#IntegrationName string (e.g., INT001 - X to Y)

Note

Integration created only when Service or Contract is also created.

Service

Context Key Value Purpose
ExtendedProperties/1.0#ServiceName string Service name
ExtendedProperties/1.0#ServiceSystemName string System name (auto-created)
ExtendedProperties/1.0#ServiceDirection string/int Direction (see table below)

Direction Values:

String Integer
None -2
Unknown -1
Receive 0
Send 1
TwoWayReceive 10
TwoWaySend 11

External Service Relations

Context Key Value Purpose
ExtendedProperties/1.0#ExternalServiceRelationName string Target service in another system
ExtendedProperties/1.0#ExternalServiceRelationSystemName string Target system name

Internal Service Relations

Context Key Value Purpose
ExtendedProperties/1.0#InternalServiceRelationName string Target service in same system
ExtendedProperties/1.0#InternalServiceRelationDirection string/int Direction (see table above)

Contract

Note

Requires UseContracts system parameter = true.

Context Key Value Purpose
ExtendedProperties/1.0#ContractName string Contract name
ExtendedProperties/1.0#ContractSystemName string System name (optional)

3. Event Property Overrides

Override default Log Event properties. System adds comments to indicate overridden values.

Context Key Value Type Purpose
ExtendedProperties/1.0#LogText string Custom log text
ExtendedProperties/1.0#LogStatus long/string Override log status code
ExtendedProperties/1.0#ProcessingServerName string (255) Server name
ExtendedProperties/1.0#ProcessName string (512) Process name
ExtendedProperties/1.0#ProcessingModuleName string Module name
ExtendedProperties/1.0#ProcessingModuleType string (512) Module type
ExtendedProperties/1.0#ProcessingTime int (ms) Processing duration
ExtendedProperties/1.0#ServiceInstanceActivityId Guid Activity identifier

Log Text

Context Key Value
ExtendedProperties/1.0#LogText string

Example:

{"ExtendedProperties/1.0#LogText": "The node that unites different systems. Or as we call it Nodinite"}

Log Status

New 5.3.0.40 Override the Log Status set by Log Agents (e.g., Azure Logic Apps Logging).

Context Key Value
ExtendedProperties/1.0#LogStatus long or string

Examples:

{"ExtendedProperties/1.0#LogStatus": 42}
{"ExtendedProperties/1.0#LogStatus": "42"}

Next Steps