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:
EventLog— one row per accepted payload (blob storage path, current high-level status, metadata).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).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)
| Field | Role |
|---|---|
blobPath | Storage location of the raw inbound body. |
enrichBlobPath | Optional path after enrichment. |
metaData | Array of structured metadata fragments for tracing. |
eventId / appId | Resolved inbound event and owning app. |
status | EventLogStatusEnum: pending, enriched, jobs-created, blocked. |
error | Message when processing stops early. |
ssoEnterpriseId | Tenant key. |
eventCode | Denormalized code for search/display. |
refDocNo | Business reference (e.g. document number) when provided. |
blockedByDate | Optional scheduling / blocking hint. |
connectors | Connector ids involved after routing. |
timestamps | History 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:
| Field | Role |
|---|---|
connectorId | Connector instance. |
ingressEventLogId | Parent event log. |
connectorAppEventId | Mapping between connector-scoped app/event context (internal id). |
outboundEventId | Source event for this path. |
inboundAppId / outboundAppId | Apps for display and routing. |
inputDataPath / enrichedDataPath / transformedDataPath | Blob paths for pipeline stages. |
storeId | Optional retail context. |
status | DipJobStatusEnum (see below). |
refDocNo | Business reference propagated to the job. |
retryCount / maxRetry | Retry bookkeeping; cap often comes from the mapping. |
transactionDate | Business date for ordering/replay. |
isRetryable | Whether automated/cron retry may pick this job up. |
timestamps | Status 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.
| Field | Role |
|---|---|
jobId | Parent job. |
eventTaskId | Link to the configured template task. |
type | Same family as event tasks: enrich, transform, filter, mapping, dispatch, extract, http. |
parentId | Tree structure among job tasks. |
status | pending, processing, success, failed, discarded. |
inputDataPath / outputDataPath | Blob paths for this step. |
httpMetadataPath | Extra trace for HTTP steps. |
continueOnFailure | Copied from configuration. |
retryCount / error | Per-step retry and failure message. |
timestamps | Status transition history. |
Tracing in the DIP UI
- Global Event Log (
/event-log/list):EventJobsGridloads 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:
retryJobsByIdsposts 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 ofDipJobStatusEnum)createdAtFrom/createdAtTo
The frontend maps grid chip filters into these keys via getEventsLogPayloadFromGridModel (utility/eventLogs.ts).
Related
- Ingress async and sync — where event logs and jobs are created from HTTP.
- Task tree — how configured tasks become job tasks.