Zwing Docs

Event log and jobs

Inbound event logs, DIP jobs, job tasks, statuses, and how the DIP Event Log grid filters them

Pipeline at a glance

For a single inbound request, GIP persists:

  1. EventLog — one row per accepted payload (blob storage path, current high-level status, metadata).
  2. DipJobs — one or more jobs per event log when routing matches connectors and connector–event mappings (each job is scoped to a connector + outbound/inbound event pair).
  3. DipJobTask — one row per event task node in the mapping’s tree for that job; tracks execution status and blob paths for input/output.

The DIP Event Log and connector Jobs views surface jobs (and drill into job tasks). The event log document is the anchor for “what arrived”; jobs are “what we tried to do for each mapping.”

Event log (EventLogModel)

FieldRole
blobPathStorage location of the raw inbound body.
enrichBlobPathOptional path after enrichment.
metaDataArray of structured metadata fragments for tracing.
eventId / appIdResolved inbound event and owning app.
statusEventLogStatusEnum: pending, enriched, jobs-created, blocked.
errorMessage when processing stops early.
ssoEnterpriseIdTenant key.
eventCodeDenormalized code for search/display.
refDocNoBusiness reference (e.g. document number) when provided.
blockedByDateOptional scheduling / blocking hint.
connectorsConnector ids involved after routing.
timestampsHistory of status transitions with optional retryCount per step.

Indexes support listing by tenant + time, by appId, and by eventId.

Jobs (DipJobsModel)

Each job represents work for one connector–event mapping branch:

FieldRole
connectorIdConnector instance.
ingressEventLogIdParent event log.
connectorAppEventIdMapping between connector-scoped app/event context (internal id).
outboundEventIdSource event for this path.
inboundAppId / outboundAppIdApps for display and routing.
inputDataPath / enrichedDataPath / transformedDataPathBlob paths for pipeline stages.
storeIdOptional retail context.
statusDipJobStatusEnum (see below).
refDocNoBusiness reference propagated to the job.
retryCount / maxRetryRetry bookkeeping; cap often comes from the mapping.
transactionDateBusiness date for ordering/replay.
isRetryableWhether automated/cron retry may pick this job up.
timestampsStatus history array (same pattern as event log).

Job statuses (DipJobStatusEnum)

pending, processing, success, failed, partial-success, discarded, filter-validation-failed, blocked.

These align with the labels shown in the DIP jobs grid (EVENT_JOB_STATUS_VALUES in the frontend eventLogs utility).

Job tasks (DipJobTaskModel)

Runtime counterpart to configured EventTask: one row per node in the tree for a given job.

FieldRole
jobIdParent job.
eventTaskIdLink to the configured template task.
typeSame family as event tasks: enrich, transform, filter, mapping, dispatch, extract, http.
parentIdTree structure among job tasks.
statuspending, processing, success, failed, discarded.
inputDataPath / outputDataPathBlob paths for this step.
httpMetadataPathExtra trace for HTTP steps.
continueOnFailureCopied from configuration.
retryCount / errorPer-step retry and failure message.
timestampsStatus transition history.

Tracing in the DIP UI

  • Global Event Log (/event-log/list): EventJobsGrid loads job rows with filters; filter options for app, inbound event, connector, status, and date range are populated from ACS overview endpoints and applied as query parameters.
  • Connector summary: Same grid component scoped to a connector (jobs for that connector only).
  • Retry: retryJobsByIds posts to the egress retry API with selected job ids (see Egress runtime and retry).

Session state stores the AG Grid filter model so filters survive navigation (EventJobsGrid.vue).

Analytics / listing API (ACS)

EventJobQueryDto (analytics controller) supports server-side filtering:

  • appIds, inboundEventIds, connectorIds, jobIds (Mongo id arrays)
  • refDocNos (strings)
  • status (array of DipJobStatusEnum)
  • createdAtFrom / createdAtTo

The frontend maps grid chip filters into these keys via getEventsLogPayloadFromGridModel (utility/eventLogs.ts).

Edit on GitHub