- 3 minutes to read

LogStatusCodeAutoSyncPolicy - System Parameter

New 7.5.24

Control exactly how the Nodinite Logging Service creates and maintains Log Status Code definitions when incoming events arrive from a Log Agent.

  • ✅ Protect manually curated Log Status Code definitions from being overwritten by incoming events
  • ✅ Allow new codes to be created automatically while leaving existing ones untouched
  • ✅ Disable auto-sync entirely for full manual governance
  • ✅ Override the global policy per Message Type for fine-grained control

Info

When an event arrives the Logging Service checks whether a matching Log Status Code definition exists for the originating Log Agent. The LogStatusCodeAutoSyncPolicy parameter decides what happens next.

System Parameter Name Data Type Default value
LogStatusCodeAutoSyncPolicy json {"default":"Upsert","messageTypes":{}}

This feature is available from Nodinite version 7.x.


Policy modes

Three modes are available. The default field in the JSON value sets the global behaviour. Individual Message Types can override it using the messageTypes map.

Mode Behaviour
Upsert Creates the Log Status Code definition if it does not exist, or overwrites it if it does. This is the classic Nodinite behaviour and the default.
CreateMissingOnly Creates the Log Status Code definition only if it does not already exist. Existing definitions are never overwritten. A warning is logged when an incoming event would have caused an overwrite but was suppressed.
Disabled The Logging Service never creates or updates Log Status Code definitions from incoming events. All definitions must be managed manually in the Web Client.

JSON structure

Property Data type Example Description
default string "Upsert" The global policy applied to all Message Types unless a specific override is defined. Accepted values: Upsert, CreateMissingOnly, Disabled.
messageTypes object {"Vendor.Order/*": "CreateMissingOnly"} Optional map of Message Type name patterns to a policy mode. Keys are matched case-insensitively and support a trailing * wildcard.

Default — Upsert for all (classic behaviour)

{
  "default": "Upsert",
  "messageTypes": {}
}

Protect all definitions — never overwrite

{
  "default": "CreateMissingOnly",
  "messageTypes": {}
}

Full manual governance — disable all auto-sync

{
  "default": "Disabled",
  "messageTypes": {}
}

Mixed — protect one namespace, allow Upsert elsewhere

{
  "default": "Upsert",
  "messageTypes": {
    "Vendor.ResilientEvent/*": "CreateMissingOnly",
    "Legacy.FixedCodes/*": "Disabled"
  }
}

In this example all events whose Message Type name starts with Vendor.ResilientEvent/ will never overwrite existing Log Status Code definitions. Events matching Legacy.FixedCodes/* will not trigger any auto-sync at all. Everything else uses Upsert.


Frequently Asked Questions

How do I change the value?

Changing a value for the pre-defined System Parameters is described in the generic 'How do I change the System Parameters' article. You must be a member of the built-in Administrator Role.

Do I need to restart anything?

No. The Logging Service reads this parameter at runtime for each event batch. Changes take effect for newly processed events without a service restart.

What happens when an incoming event would have overwritten a code under CreateMissingOnly?

The existing definition is left unchanged and a warning entry is written to the service log. This lets you audit suppressed overwrites without disrupting normal processing.

Does the wildcard match partial names?

Only a trailing * is supported. The key Vendor.Order/* matches Vendor.Order/1.0 and Vendor.Order/Dispatch but not Vendor.OrderLine/1.0. Matching is case-insensitive.

What is the evaluation order when multiple patterns could match?

The messageTypes map is evaluated in declaration order. The first matching pattern wins. If no pattern matches, the default mode is used.


Next Step

What is a Log Status Code?
Logging Service
Log Agents