Repository Binding
Repository Binding lets a Log Event create and bind Repository Model entities (Integrations, Services, Systems, Contracts) when the Logging Service processes it. Put the JSON structure as a string in the ExtendedProperties/1.0#RepositoryBinding context key, or use the individual (legacy) keys.
Important
You must enable the AllowRepositoryAutomapping System Parameter for the Logging Service to honor Repository Binding data.
Available from Nodinite 4.3.0.72+
Reference
Structure
One RepositoryBinding value creates the complete structure and replaces the individual keys.
Note
The structure documented below is for Nodinite v7. Earlier versions may have different field requirements.
The outline below is a fragment that shows the allowed values; see Examples for valid JSON.
{
"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"
}],
"BPMs": [ BPM objects, see BPM Binding ]
}
}

Diagram showing External and Internal Service Relations in a Repository Binding structure.
Root Object
| Field | Required | Purpose | Example |
|---|---|---|---|
Name |
✅ Yes | Transport Contract name (can be the same for all services) | Default, Standard Transport Contract |
Service |
✅ Yes | Service definition | Service object |
Service Object
| Field | Required | Purpose | Example |
|---|---|---|---|
Name |
✅ Yes | Service name | Bank - Loan Request, INT1337-RCV-Order-Incoming |
Direction |
✅ Yes | Direction of the Service; it draws the direction arrows on connectors in the Integration Landscape (values) | Send, Receive, TwoWaySend, TwoWayReceive |
System |
✅ Yes | Hosting System | { "Name": "Mule" } |
Integration |
✅ Yes | Parent Integration | { "Name": "INT004 - Bank (2 Way)" } |
ExternalServiceRelations |
❌ No | Cross-system connections | Array of external relation objects |
InternalServiceRelations |
❌ No | Same-system connections | Array of internal relation objects |
BPMs |
❌ No | Business process positioning | Array of BPM objects, see BPM Binding |
ExternalServiceRelations (Cross-System)
Links to services in different systems. Used to show cross-system integration flows.
| Field | Required | Purpose | Example |
|---|---|---|---|
Name |
✅ Yes | Target service name | Bank Service, Broker A - Get Quote |
Direction |
✅ Yes | Target service direction | Send, Receive |
System |
✅ Yes | 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.
Note
The
Systemfield is not required for Internal Service Relations. The system is assumed to be the same as the parent Service's system. If the target service does not exist, it will be created within the parent Service's system.
| Field | Required | Purpose | Example |
|---|---|---|---|
Name |
✅ Yes | Target service name (same system) | Receive Quotes, Order Router |
Direction |
✅ Yes | Target service direction | Send, Receive |
Individual Keys (Legacy)
Use these Context Options when you don't use the complete JSON structure.
| Context Key | Value | Purpose |
|---|---|---|
ExtendedProperties/1.0#IntegrationName |
string (e.g., INT001 - X to Y) |
Integration name |
ExtendedProperties/1.0#ServiceName |
string |
Service name |
ExtendedProperties/1.0#ServiceSystemName |
string |
System name of the Service (auto-created) |
ExtendedProperties/1.0#ServiceDirection |
string / int |
Direction of the Service (values) |
ExtendedProperties/1.0#ExternalServiceRelationName |
string |
Target service in another system |
ExtendedProperties/1.0#ExternalServiceRelationSystemName |
string |
Target system name |
ExtendedProperties/1.0#InternalServiceRelationName |
string |
Target service in the same system |
ExtendedProperties/1.0#InternalServiceRelationDirection |
string / int |
Direction of the target service (values) |
ExtendedProperties/1.0#ContractName |
string |
Contract name |
ExtendedProperties/1.0#ContractSystemName |
string |
System name of the Contract (optional) |
Note
The Integration is created only when a Service or Contract is also created. The Contract keys require the UseContracts system parameter =
true.
Service Direction Values
ServiceDirection and InternalServiceRelationDirection accept the string or the integer.
| String | Integer |
|---|---|
None |
-2 |
Unknown |
-1 |
Receive |
0 |
Send |
1 |
TwoWayReceive |
10 |
TwoWaySend |
11 |
Examples
Repository Binding JSON
{
"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"
}]
}
}
For Scalar, Swagger, and the Log API
The context value is a string, so escape the JSON. This is the same example as one Context entry:
"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\",\"Direction\":\"Send\",\"System\":{\"Name\":\"Broker A\"}}],\"InternalServiceRelations\":[{\"Name\":\"Bank - Loan Request\",\"Direction\":\"Receive\"}]}}"
To try it, explore the operations in Scalar or Swagger. For a Repository Binding with a BPM position, see the BPM Binding example.