approvals - hyperfocus/porc GitHub Wiki
Approval and Change Control in PORC
PORC supports integration with enterprise change management systems like ServiceNow to enforce approval gates before infrastructure is applied.
Overview
When a blueprint requires change control, PORC enforces it by:
- Requiring a valid
change_record
ID. - Verifying its state before triggering
apply
. - Blocking execution unless the change is approved or an override is requested.
Blueprint Flag
In the blueprint:
"metadata": {
"approval_required": true,
"external_id": "github:org/repo@sha"
}
Approval Metadata
After validation, PORC adds this to metadata:
"approval": {
"change_record": "CHG123456",
"validated": true,
"override": false
}
Validation Process
- PORC queries the ServiceNow API for the change ID.
- It ensures the record is in an
implement
orscheduled
state. - If not valid,
apply
is blocked unless manually overridden.
Override Logic
If an override is requested:
- The approval block is bypassed
- PORC marks the run with
"override": true
- This is tracked in logs and reports for audit
Future Features
- Audit log export to SIEM
- Emergency change workflow
- Team-specific approval rules