Probe every access review connector on status check

Bad API keys and expired OAuth tokens showed Connected because
probes ran only for OAuth2 and many providers had no ProbeURL.
Add a registry ProbeConnection dispatcher with static, dynamic,
and custom probes so all 41 providers are checked on demand.

Signed-off-by: Bryan Frimin <bryan@probo.com>
This commit is contained in:
Bryan Frimin
2026-06-11 16:47:19 +02:00
parent 26d64a970f
commit 8d8a5ebb26
22 changed files with 587 additions and 106 deletions

View File

@@ -116,6 +116,8 @@ function sourceLabel(connectorProvider: string | null | undefined): string {
return "Metabase";
case "SIGNOZ":
return "SigNoz";
case "CURSOR":
return "Cursor";
default:
return connectorProvider;
}
@@ -231,6 +233,7 @@ export function AccessReviewSourceRow({ fKey, connectionId, organizationId }: Pr
};
const showOrgSelector = accessSource.needsConfiguration || accessSource.selectedOrganization;
const canReconnect = (accessSource.connector?.oauth2Scopes.length ?? 0) > 0;
return (
<Tr>
@@ -246,10 +249,14 @@ export function AccessReviewSourceRow({ fKey, connectionId, organizationId }: Pr
)}
{accessSource.connectionStatus === "DISCONNECTED" && (
<div className="flex items-center gap-2">
<Badge variant="danger" size="sm">{__("Disconnected")}</Badge>
<Button variant="secondary" onClick={handleReconnect}>
{__("Reconnect")}
</Button>
<Badge variant="danger" size="sm">
{canReconnect ? __("Disconnected") : __("Invalid credentials")}
</Badge>
{canReconnect && (
<Button variant="secondary" onClick={handleReconnect}>
{__("Reconnect")}
</Button>
)}
</div>
)}
</Td>