Rotating a provider credential, end to end
A new credential is entered once, sealed on save, and never rendered back to any screen. Verification is therefore behavioural rather than visual: the next operation on that channel either succeeds against the provider or it does not. Work already accepted by the provider finishes under the old value; work not yet handed over uses the new one.
The flow#
- Trigger — a credential has to change: it expired, the provider rotated it, somebody left, or it is suspected of having been seen.
- User or external event — a person opens the mailbox or integration and enters the new value; or the provider invalidates the old one first and Connect finds out by failing.
- Authentication and workspace resolution — the session resolves to one workspace, and the credential being replaced belongs to that workspace alone.
- Ingest — the value arrives once, in the save. It is not logged, not echoed into a response and not written into any audit entry.
- Canonical record — the settings store seals it. What is kept afterwards cannot be rendered back to a screen, including to the person who typed it.
- Reasoning — none. Replacing a credential is an instruction, not a judgement the engine makes.
- Knowledge, memory and rules — untouched. A credential is not memory, and forgetting a memory does not remove one.
- Autonomy and approval — a permission question rather than an autonomy one: only a member allowed to change integrations can make this change.
- Action through a provider — the next operation on the channel presents the new value. The provider is the only judge of whether it is right.
- Result — health verdicts follow. Authenticating is not the same as being healthy: a mailbox that connects and returns nothing is a quiet mailbox, which is a signal rather than an error.
- Relationship, timeline and memory — nothing about any person changes. A rotation is invisible to the people the workspace talks to.
- Audit, usage and Needs You — the change is recorded as a change, without the value; a connection that fails afterwards escalates into Needs You rather than going quiet.
| Stage | What you see | What changes | What can fail |
|---|---|---|---|
| Entering the value | A field that clears, never a field that shows what is stored | The sealed value replaces the previous one | Pasting a value with invisible whitespace, which the provider will reject as wrong |
| First use | The channel works, or a health verdict changes | Nothing else | The provider has not yet activated the new credential |
| Verification | A health verdict, a successful fetch or a successful send | Health state | Confusing 'connected' with 'working' |
| Old value withdrawn | Nothing, if the order was right | The provider stops accepting the previous value | Withdrawing it before the new one is proved, which turns a rotation into an outage |
Verifying something you cannot read#
A screen that could show a stored credential would be a screen that leaks one, so no screen shows it. This changes how you confirm a rotation worked: there is nothing to compare, and the only meaningful evidence is the provider accepting an operation.
Save the new value while the old one is still valid at the provider.
Result You have a working state to fall back to if the new value was mistyped.
Force an operation that must reach the provider — a fetch, or a send you were going to make anyway.
Result Success is evidence. A screen that merely stops showing an error is not.
Read the health verdict rather than the connection state.
Result Connected means the credentials were accepted. Healthy means mail is actually moving, which is the question you had.
Only then withdraw the old value at the provider.
Result The rotation is finished, and at no point was the channel without a credential that works.
Work that is in flight#
- An operation the provider has already accepted completes at the provider. A rotation cannot reach back into it, and it does not need to.
- An operation not yet handed over uses the new value, because the value is read at the moment of use rather than cached at start-up.
- An operation refused because the old value stopped working is held rather than discarded, and the reason surfaces where health surfaces.
- A fetch that cannot complete does not advance its read cursor. Advancing a cursor past mail that was never read is how a mail agent loses messages permanently, so a refusal leaves the cursor where it was.
A connection based on a provider's own sign-in refreshes itself in normal operation, which is a rotation happening continuously rather than an event. The stored configuration is rewritten each time a fresh token arrives; a design that treated that record as read-only would drop every refresh and the connection would fail days later for no visible reason.
The failure this ordering prevents#
The expensive version of this operation is a copy. A credential copied somewhere convenient — a file, a second configuration, a note — is correct until whoever owns the original rotates it, and then it is wrong in a way nothing detects until the next restart. The symptom arrives long after the cause and looks exactly like a bad deployment, which is where the investigation goes first and stays longest.
A copy of a password somebody else rotates is that failure written up on its own terms. The rule it produces is short: one owner per credential, read at the moment of use, copied nowhere.
Questions#
Can I check what is currently stored before replacing it?
No, and that is deliberate. Stored credentials are sealed on save and never rendered back, to any audience, including the person who entered them. If you are unsure what is stored, replace it — a rotation is cheap and a leak is not.
Does rotating a credential interrupt conversations?
It should not, if the new value is proved before the old one is withdrawn. What interrupts conversations is the reverse order, which leaves the channel with no working credential for however long the correction takes.
Does a rotation appear in the decision record?
The change is recorded as a change — who made it and when — without the value. That is enough to answer why a channel started or stopped working on a given day and not enough to be worth stealing.