Hide managed connectors until fully configured

A managed (Model B) connector like Crisp needs both the Probo-held key
and a resource ID (the plugin ID) to connect, but the driver catalog
gated visibility on the key alone. A deployment that set the key without
the plugin ID (reachable through raw JSON config; the bootstrap env path
already requires both) would show Crisp as connectable and then fail
every attempt with an internal error.

Add a RequiresManagedResourceID flag to the registration and a
Registry.ManagedConnectorReady check that requires both before a managed
provider enters the catalog, so a half-configured provider stays hidden
instead of dead-ending at connect.

Signed-off-by: Aurélien Sibiril <81782+aureliensibiril@users.noreply.github.com>
This commit is contained in:
Aurélien Sibiril
2026-07-11 17:55:33 +02:00
parent a531b3242f
commit 557028e327
5 changed files with 74 additions and 4 deletions

View File

@@ -37,6 +37,11 @@ func crispRegistration() *Registration {
// deactivated until Crisp validates the production plugin and
// activates with no code change once the token is set.
ManagedAPIKey: true,
// The per-website plugin API also needs the plugin ID (a distinct value
// from the token identifier), supplied via bootstrap alongside the
// token. Require it so Crisp stays hidden until both are configured
// rather than surfacing as connectable and failing at connect time.
RequiresManagedResourceID: true,
// Crisp authenticates with the plugin token presented as HTTP Basic,
// the credential being the verbatim "identifier:key" pair.
// APIKeyBasicAuthUserPass base64-encodes it (the empty-password