Schedulers

SSIS

SSISDB holds executions, per-component row counts and the parameter values actually used.

The .dtsx file may well be in source control. What is not in source control is which version was deployed, which parameter values were supplied at execution, and which environment reference was bound — all of which live in SSISDB and any of which can change behaviour completely.

SSIS is also unusual in offering per-component row counts natively. Where logging level permits, catalog.execution_data_statistics records how many rows crossed each path between components, which is exactly the reconciliation most stacks make you infer.

What is read

What Decim reads from SSIS

Every item below is read-only, and each is a specific view, endpoint or file rather than a category of access. If something here is unacceptable in your environment, it can be removed from the query catalogue — see the agent for how that works.

SSIS — metadata sources
What From Why it matters
Executionscatalog.executionsPackage, project, folder, status, start and end
Component timingscatalog.executable_statisticsPer-executable duration and result
Row counts per pathcatalog.execution_data_statisticsRows crossing each data-flow path — the native reconciliation
Parameter values usedcatalog.execution_parameter_valuesWhat was actually supplied, not what the package defaults to
Messagescatalog.event_messagesWarnings and errors per execution
Project versionscatalog.object_versionsWhich build was deployed, and when
Environment bindingscatalog.environment_referencesWhich environment supplied the values

Permissions required

Written out in full, because "read-only access" is not a specification. Nothing below grants the ability to write, and row access is requested only on the specific tables you name.

Read access to the SSIS catalog sql
USE SSISDB;
CREATE USER decim_agent FOR LOGIN decim_agent;

-- ssis_logreader gives read access to the execution and logging views
-- without any ability to execute or deploy packages.
ALTER ROLE ssis_logreader ADD MEMBER decim_agent;

-- Catalog views are also readable individually if you prefer explicit grants:
GRANT SELECT ON catalog.executions                TO decim_agent;
GRANT SELECT ON catalog.executable_statistics     TO decim_agent;
GRANT SELECT ON catalog.execution_data_statistics TO decim_agent;
GRANT SELECT ON catalog.execution_parameter_values TO decim_agent;
GRANT SELECT ON catalog.event_messages            TO decim_agent;

What it builds

What this source contributes to the pipeline topology and to the evidence available during an investigation:

  • Data-flow topology with genuine per-path row counts
  • The parameter values that actually applied to a given run
  • Deployment history, correlatable against an incident window
  • Component-level durations for anomaly detection

Nodes learned from a definition are marked declared; nodes observed running are marked observed; nodes both declared and observed are verified. Where two sources disagree, the disagreement is recorded as a drift note rather than resolved silently.

Failure modes

Failure modes it surfaces

What this source is uniquely good at proving — and, just as usefully, at disproving. An investigation that can refute a hypothesis cheaply is worth as much as one that confirms it.

Failure modes SSIS evidence distinguishes
Failure mode The signal
Wrong environment boundParameter values differing from the previous good run
Rows lost between componentsPath counts diverging inside one data flow
Package succeeded with zero rowsExecution success with all path counts at zero
Redeployment mid-incidentNew row in object_versions inside the window

Limits

What this integration cannot tell you. Stated because an investigation that overstates its sources produces confident wrong answers, which is worse than an honest blocked.

  • Package-deployment-model (legacy) packages do not use SSISDB at all and leave only what their own logging captured
  • SSISDB retention defaults to 365 days but the cleanup job is often disabled or failing — verify rather than assume
  • Script components are compiled and their logic is not readable from the catalog

Related integrations

  • SQL Server Agent — Job steps are rows in msdb, not files in git. Reads sysjobs, sysjobsteps and sysjobhistory.
  • SQL Server — Reads catalog metadata, procedure bodies and write activity — the definitions git never sees.
  • Azure Data Factory — Pipeline JSON lives in the factory unless git integration is enabled — and live mode is the default.

See all integrations, or how the sources are combined into one graph.

Get started

Investigating a SSIS pipeline?

Bring an incident you already know the answer to. If Decim gets it wrong, that is a more useful demo than one where it doesn't.