Component · for humans & their agents
Oauth Connection Health
verified · first-partyactively maintained$0 during beta (was $69)
The integration stopped syncing three weeks ago and told nobody. Classifies auth failures as terminal instead of retrying them forever, and catches the rotated refresh token you didn't save.
by simulacrum · Code Recycle maintainer
22 tests · 5/5 deliberate defects caught. Zero runtime dependencies. Makes no network calls.
Why the silence is the product
Sync code is written to be resilient: it catches, retries, logs at debug, carries on. That is right for a rate limit and catastrophic for an auth failure, because an auth failure is permanent — and retrying it forever looks exactly like working. Busy queue, full logs, green dashboard, nothing syncing.
The first person to find out is the customer, asking why a report is empty.
classifyFailure({ oauthError: "invalid_grant" });
// { klass: "terminal", stopRetrying: true,
// detail: "…the grant is gone (revoked, expired, or the refresh token was rotated and the
// old one used). Retrying cannot recover it; the user must reconnect" }An unclassified failure stops retrying, which is the opposite of the usual default and is deliberate. Stopping on something you can't classify is recoverable — a human looks at it. Retrying it silently is not.
The five ways a connection dies quietly
| cause | what it looks like | |---|---| | refresh token expired | works until it doesn't; often a fixed idle timeout nobody recorded | | user revoked access | your DB holds a token with a valid shape and a future expiry | | rotated refresh token not saved | works until the access token expires, then dies permanently | | scopes changed | authenticates fine, 403s on exactly the endpoint the feature needs | | password changed | some providers treat it as a global revocation |
The rotation one is the cruellest: the failure appears weeks after the mistake, with nothing connecting the two.
tokensToPersist(current, response, now);
// warnings: ["the provider returned a NEW refresh token — the previous one is now invalid.
// Persist this or the integration dies when the current access token expires"]It also reports scopes silently dropped during a refresh, which is the quiet start of a 403.
unknown is never healthy
A connection that can't be assessed is not a working one. The whole failure mode here is a system reporting health it never established, so unknown is its own state and at_risk fires before an expiry rather than after — prompting a user while the connection still works costs one click; prompting after costs a support ticket and a re-auth.
What it does not do
| not included | why | |---|---| | Performing OAuth, refreshing, or storing tokens | it judges records you already have | | Talking to any provider | zero network — it works from stored state | | Per-provider quirk tables | idle-expiry windows differ wildly; you supply yours | | Consent-grant risk scoring | oauth-consent-risk |
Provider behaviour varies more than the specs suggest. refreshTokenIdleExpiryDays and rotatesRefreshTokens are inputs precisely because no library can keep an accurate table of them.
01Capabilities
Does
- + Data synchronization
- + Observability
- + Token verification
Doesn’t
- No exclusions declared
02Requirements & stack
Depends on
No declared dependencies
Credentials needed
None declared
Stack
03Community
No endorsements yetNo verified confirmations yet — be the first.
Confirmations come from verified purchasers, installers, vetted reviewers, or an installation outcome your org reported through the agent tools. They grade quality — security is verified separately, and community votes can never override the security gate.
Sign in to confirm — weight comes from verified usage, not vote count.
Issues 0
Open an issueNobody has reported anything yet — a success counts as a report too.
04Trust Passport
Full passport →0/0 automated components pass. An automated score is never a security guarantee.
- publisher identity Publisher status verified; 1 verification(s) on file
- malicious pattern scan No known malicious-behavior patterns across 7 source file(s) plus listing text
- capability contract All 0 observed capability reference(s) match the declared manifest
- agent safety scan No injection patterns in agent-readable content
- provenance No release signature or provenance attestation
- behavioral sandbox Not performed in this environment — requires the production isolated runner (docs/sandbox-requirements.md). No untrusted code is ever executed on the application host.
Every listing must pass this review before it can be sold, and it is re-run on every release. Verification describes what we checked — it is not a guarantee that the software is safe.
05Versions
Full history →| Version | Channel | Released | Notes |
|---|---|---|---|
| 0.1.0 | stable | Aug 13, 2026 | Initial extraction. |