The change-evidence ledger for Azure estates

Proof of every change in your Azure estate.

What changed, who changed it, and the before and after where Azure keeps one. Sealed every day, held for up to two years, and served to your engineers, your AI assistants and your auditors. Azure itself forgets the detail after 14 days. Read-only. No credentials held.

Control plane Entra ID Kubernetes Key Vault SQL · later
// concept
CHANGE RECORDchg_01j9…k4 · sealed
Network security group · rule db-ingress updated
12 Sep · 09:31:07 UTC · prod-network · rg-shared-net
who sp-terraform-prodautomation identity
−sourceAddressPrefix10.40.0.0/16
+sourceAddressPrefixInternet
−destinationPortRange1433
+destinationPortRange*
Activity Log + Resource Graph · one record day root anchored 13 Sep · RFC 3161
Claude query_changes(prod, 12 Sep 08:30–09:35) 11 changes · same answer every time

What ChangeOps is for

The "nobody changed anything" incident

The role grant, the firewall rule, the Key Vault setting, the policy remediation, the auto-upgrade: changes no deploy channel shows, on one timeline at 3 a.m. and a month later.

Every production change last quarter, by whom

Sealed evidence packs and a scheduled period report: every production change, by whom, as evidence for SOC 2, ISO 27001, DORA and NIS2. Anyone can verify a pack offline, without an account.

Your own AI asks the ledger

Claude, ChatGPT, GitHub Copilot, Copilot Studio and Azure SRE Agent connect over MCP with your login and your roles. The same question gets the same answer, with no model in between. Every call on the record.

How it works

From the logs Azure already writes to a sealed record

Connect, collect, record, seal. Your engineers, agents and auditors read from the same ledger.

01 · CONNECT

Approve one app, assign Reader

No secret exchanged or held, nothing installed. Federated identity, the Reader role or a narrower one, revoked from your own portal.

Read-only forever
02 · COLLECT

Read the logs Azure already writes

Activity Log, Resource Graph and Entra ID with consent alone. Kubernetes and Key Vault through your own Event Hub or Log Analytics workspace.

Raw logs read, kept only inside frozen packs
03 · RECORD

One record per change

When, where, what, who, the before and after, and a pointer to Azure's own record. The same change in two logs becomes one. Actors stay named after the identity is gone.

Housekeeping churn folded
04 · SEAL

Sealed daily, served everywhere

Each day's records are hashed into one root, chained to the day before and stamped by an outside time authority. Web app, MCP, packs and the report read the same ledger.

RFC 3161 anchor · verify offline

One ledger. Everyone reads the same record.

SERVED FROM
The ledger
people · agents · auditors
Your AI assistants, over MCPClaude, ChatGPT, GitHub Copilot, Copilot Studio, Azure SRE Agent your login ✓
Web apponboarding, connection health, timeline, evidence, admin same ids ✓
REST API and signed webhooksa webhook when a pack, report or export is ready signed ✓
Share linksany change, pack or report, scoped to your organisation any tool ✓
Evidence packs and the period reportsealed; anyone verifies offline, no account needed verifiable ✓
Your SIEM and compliance platformaudit events into your log store; packs and reports into Vanta or Drata by your own script later

Under the hood

Built as evidence, not a dashboard

What makes the record worth trusting.

SEALED

A daily root, chained and anchored

Each day's records hash into one root, chained to the day before and stamped by an RFC 3161 timestamp authority. Any later change to the past shows. A frozen pack verifies offline, years later, without ChangeOps.

READ-ONLY

No secret to steal, nothing to rotate

Admin consent, the Reader role and federated workload identity. Nothing installed in your estate. The one write ChangeOps ever makes into your cloud is evidence, into a store you designate, with a send-only role you can revoke. Fields known to carry secrets are redacted before anything is stored.

DETERMINISTIC

Facts and labels, never causation

ChangeOps runs no model of its own and sends none of your data to one. The same question returns the same answer for the same ledger state. Your agent does the reasoning.

NAMED

Actors kept after the identity is gone

Every change attributed to a person, an automation identity, Microsoft or an AI agent. The same change seen in two Azure logs is one record, and system churn is summarised so it never buries a real change.

ISOLATED

Every query scoped to your organisation

Row-level security on every query, MFA on every account, EU hosting. No raw logs kept outside frozen packs. Full export on every plan, deletion within 30 days of leaving.

AUDITED

Every call on the record

Each human and agent action is on the record before the response returns, kept two years and exportable. Admins see and revoke every connected assistant.

Where it's going

Built in phases, each with a finish line

NOW · TO LATE 2027

Connect, collect, remember

Azure connection without secrets, the control-plane collector, the two-year ledger with named actors, the MCP server with five read tools, export and deletion, and a free tier that records from the day you connect. Done when a design partner's own agent answers "what changed" over MCP.

LATER · IF FUNDED

Enterprise extras

SCIM, a provider view over many tenants, UK residency, seven-year retention. Each ships only if the build hours rise or a customer funds it.

Dates are targets and move with the build. The record format, the seal, the access model and the MCP contract do not change for three years once design partners connect; new features plug in around them.