Every credential change is logged

Connecting, updating or disconnecting any integration writes an audit entry naming which integration and who did it — never the secret value.

What it is

The credentials route builds a change list ('ghl:updated', 'stripe:disconnected') and writes an integration.credentials_changed audit row with the actor and org. The secret values are deliberately excluded.

Also called: who changed the API key · audit trail · compliance log

See it
Every credential change is logged
CustomerBuildingAmountStatus
Ivy Brubaker30×40 Garage$11,650Sent
Delia Yoder30×40 Garage$1,960Paid
Delia YoderBarndominium$5,950Draft
Ivy BrubakerBarndominium$2,530Paid
Ronan Petsch30×40 Garage$10,890Draft
An audit feed row: 'Integration credentials changed — stripe:updated — by Dana, 3:42pm'. Sample data — no customer information appears here.
How it works
  1. 1A save or disconnect is processed.
  2. 2A changed[] array records the integration and the direction.
  3. 3logAudit writes the row with actor name, user id and org id.
  4. 4Credential caches are dropped so the next call uses the new values.
Why we built it

The inline comment states the driver: 'Audit the credential change (which integration, connect vs disconnect — NEVER the secret values). Satisfies the ISP control that integration-credential changes are logged.'

The problem
  • Credential changes were invisible after the fact.
  • A security policy required logged credential changes.
Sound familiar?
What you get
A disconnected integration can be traced to a person and a time.
The log carries no secrets, so it is safe to read widely.

See it on your own jobs

Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.

or keep browsing features →