All notable changes to Vigil will be documented in this file.
The format follows Keep a Changelog. Vigil uses Semantic Versioning.
- Terraform: replaced
storage_uses_managed_identity = truewithstorage_account_access_keyon the Function App runtime storage. Kudu (Azure's deployment engine) cannot acquire managed identity tokens in its sandboxed container, causingMalformed SCM_RUN_FROM_PACKAGEerrors during zip deploy on Linux Consumption plans. - Terraform: set
SCM_DO_BUILD_DURING_DEPLOYMENTandENABLE_ORYX_BUILDtofalsein app settings. Previously hardcoded totrue, which conflicted with the CI/CD workflow's pre-built package approach and caused those settings to revert totrueafter every function restart.
0.1.0 — 2026-03-27
Initial public release.
Core monitoring
- Timer-triggered Azure Function that fetches Synapse pipeline runs for a configurable lookback window (
HOURS_BACK, default 24 h) - Pagination support for workspaces with large numbers of pipeline runs
- Duration calculation for completed and in-progress runs
Reporting
- HTML email report delivered via Azure Communication Services, showing a summary table of succeeded, failed, and in-progress runs with per-pipeline detail
- Configurable schedule via
MONITOR_SCHEDULECRON expression (default: 06:00 and 08:00 UTC daily) - Configurable recipient list, sender address, and timezone
Archiving
- Daily CSV snapshot of all pipeline runs uploaded to Azure Blob Storage (
BLOB_STORAGE_ACCOUNT_URL) - Local filesystem fallback when running in development (
AZURE_FUNCTIONS_ENVIRONMENT=Development) - Exponential backoff retry (3 attempts) on transient blob upload failures
Security
- Managed identity authentication throughout — Synapse, Blob Storage, and Azure Communication Services require no stored credentials
- Least-privilege RBAC:
Synapse Monitoring Operatorfor Synapse,Storage Blob Data Contributorfor archive storage,Azure Communication Service Email Senderfor ACS - Deploy workflow uses a
productionGitHub environment and scoped publish-profile secret; OIDC migration path is pre-enabled viaid-token: write
Infrastructure
- Terraform IaC for the Vigil Function App stack: runtime storage account, Linux Consumption plan, Function App, managed identity, app settings, and deployment outputs
- Azure prerequisites (Synapse workspace, ACS, reports storage, App Insights/Log Analytics, RBAC assignments) documented in
AZURE_SETUP.md
CI/CD
- GitHub Actions workflow: lint (
ruff), test (pytest), deploy to Azure Functions on push tomain - Deploy job gated on
productionGitHub Environment with manual approval support - All third-party Actions pinned to full commit SHAs
Observability
- Structured logging with
custom_dimensionsforwarded to Application Insights - Explicit startup log indicating local vs production archive mode
Testing
- Pytest test suite covering config validation, email generation, archive routing, retry logic, monitor pagination, and function orchestrator control flow
- Shared fixtures in
tests/conftest.py