New to Kestra?
Use blueprints to kickstart your first workflows.
Audit Microsoft Access databases for debit-credit reconciliation deltas, detect unposted transaction backlogs, alert Slack, and automate audit isolation.
Across financial institutions, insurance carriers, manufacturing plants, and healthcare organizations, critical departmental operations still rely on legacy Microsoft Access (.accdb and .mdb) desktop databases for operational bookkeeping, journal entries, policy underwriting logs, and inventory tracking. Because desktop Access lacks enterprise-grade server monitoring, these databases suffer from silent operational failures: unposted batch transactions accumulate, debit/credit ledger imbalances develop without warning, and unchecked file inflation approaches Access's fatal 2 GB file ceiling, causing catastrophic file corruption.
This blueprint establishes an automated Day 2 operations sentinel for Microsoft Access databases using Kestra's embedded pure-Java UCanAccess JDBC driver. It connects to local or storage-backed Access files, audits financial ledgers for reconciliation parity, detects unposted transaction backlogs, routes urgent alerts to Slack, and safely flags out-of-balance entries to prevent erroneous monthly financial closures.
periodic_schedule) initiates the diagnostic audit daily at 06:00 UTC, with manual on-demand execution supported via configurable inputs.setup_test_database) dynamically seeds a self-contained test Access database with sample ledger transactions when no external file URI is supplied, ensuring out-of-the-box testability.probe_ledger_integrity) executes an aggregate SQL query via io.kestra.plugin.jdbc.access.Query using pure-Java UCanAccess JDBC, computing total debits, total credits, net balance delta, and pending unposted row counts.classify_database_health) evaluates query outputs using Pebble templating to assign an operational status: CRITICAL_LEDGER_MISMATCH if debit/credit variance exceeds threshold, WARNING_UNPOSTED_BACKLOG if pending entries accumulate, HEALTHY_RECONCILED when balances match, or PROBE_FAILED on corrupt files or lock errors.route_by_health_status) directs execution along dedicated branches according to classified severity.CRITICAL_LEDGER_MISMATCH, a structured Slack incident card alerts financial operations with exact debit/credit figures and discrepancy amounts.check_remediation) evaluates auto_flag_discrepancies and dry_run toggles. If enabled, flag_unbalanced_records issues an update query appending -AUDIT_HOLD to unposted account codes, isolating discrepancies before ledger posting.log_audit_summary) commits an immutable summary entry capturing execution ID, row counts, and evaluated balance deltas.Legacy Access databases are typically managed with fragile desktop macros or local Visual Basic for Applications (VBA) scripts that fail silently when client machines disconnect or users lock files. Kestra runs the UCanAccess engine directly inside containerized Linux workers, enabling declarative scheduled execution, atomic secret masking, centralized execution logs, and multi-channel alerting without external Windows Server virtual machines or manual desktop oversight.
plugin-jdbc-access plugin installed..accdb or .mdb file accessible on the worker filesystem or uploaded to Kestra internal storage.SLACK_WEBHOOK_URL: Webhook URL for posting operational incident notifications to Slack.SLACK_WEBHOOK_URL in your Kestra namespace secrets.database_path: finance_ledger.accdb, access_file_uri: "") to verify the automated seed, probe, and classification cycle.access_file_uri to the Kestra storage URI (kestra:///...) or provide the worker filesystem path in database_path.periodic_schedule to activate daily background reconciliation surveillance.COMPACT=TRUE connection properties to prevent databases from exceeding the 2 GB Access file limit.io.kestra.plugin.jdbc.duckdb or io.kestra.plugin.snowflake) to sync reconciled Access tables directly into analytical warehouses.io.kestra.plugin.email.MailSend) to email daily reconciliation certificates to controllers and finance managers.