Production-grade scaffold for an Automated Holiday (Leave) Flow built on Logic App Standard and deployed via Azure DevOps (YAML).
The solution handles: request intake → manager approval → calendar entry → notifications, with safe promotion through environments and an explicit rollback path.
Discovery → Cutover → Verification → Rollback
- Discovery — inventory connectors, permissions, SLAs, stakeholder map, KPIs.
- Cutover — time-boxed deployment + switch of the request source (e.g., Teams card).
- Verification — synthetic + live smoke checks, run history, alerts quiet for 60 min.
- Rollback — revert to legacy request path; disable triggers; collect diagnostics.
sequenceDiagram
autonumber
participant U as User (Teams/Form)
participant L as Logic App (Standard)
participant M as Manager (Approval)
participant G as Graph/Outlook
participant S as SharePoint (List)
U->>L: Submit holiday request
L->>L: Validate dates & policy checks
L->>M: Send Adaptive Card for approval
M-->>L: Approve/Reject
alt Approved
L->>G: Create calendar event
L->>S: Write record (audit)
L->>U: Confirmation
else Rejected
L->>U: Notify with reason
end
.
├─ README.md
├─ RUNBOOK.md
├─ azure-pipelines.yml
├─ pipelines/
│ └─ templates/
│ ├─ stage-infra.yml
│ ├─ stage-app.yml
│ ├─ job-tests.yml
│ └─ steps-kv-setup.yml
├─ infra/
│ ├─ main.bicep
│ ├─ modules/
│ │ ├─ app-plan.bicep
│ │ ├─ logicapp-standard.bicep
│ │ ├─ keyvault.bicep
│ │ └─ insights.bicep
│ └─ parameters/
│ ├─ dev.json
│ ├─ test.json
│ └─ prod.json
├─ app/
│ ├─ host.json
│ ├─ connections.json
│ └─ workflows/
│ ├─ holiday_request/
│ │ ├─ workflow.json
│ │ └─ def.json
│ └─ utils_notify/
│ └─ def.json
├─ scripts/
│ ├─ health-check.ps1
│ └─ test-trigger.ps1
└─ .gitignore
- No org names, IPs, or secrets in repo.
- Use Managed Identity for Graph/SharePoint/Teams where possible.
- App settings resolve to Key Vault references; see
pipelines/templates/steps-kv-setup.yml.
Environments: dev → test → prod with approvals before prod.
Stages
ValidateInfra— Bicep build + what-if.DeployInfra— RG/App Service Plan/Logic App Standard/Key Vault/App Insights.BuildAndPackageApp— archiveapp/for zip deploy.DeployApp— zip deploy to Logic App Standard site.PostDeployTests— synthetic trigger and health checks.Promote— repeat for next environment after approval.
git init
git add .
git commit -m "Initial: Logic App holiday flow with multi-stage pipeline"
git branch -M main
# git remote add origin https://github.com/<you>/<repo>.git
# git push -u origin mainKeep sensitive values in Azure DevOps variable groups, environment secrets, or Key Vault. This repo contains no sensitive details.