Add SigNoz access review driver
Add a SigNoz connector so its organization members can be pulled into access-review campaign snapshots. SigNoz authenticates with a SIGNOZ-API-KEY admin service-account key and a customer-supplied base URL (a SigNoz Cloud region/tenant host or a self-hosted instance). The driver lists users via GET /api/v1/user, which returns the role (ADMIN/EDITOR/VIEWER) inline so admin detection works in a single call, and maps the SigNoz user status (active / pending_invite / deleted) to the account active flag. The name resolver reads the organization display name from GET /api/v2/orgs/me to title the access source. Wire the provider through the coredata enum and settings, the connector-provider registry (driver and name-resolver factories), the console API-key input schema and validation, the access-review source label, and the SigNoz brand logo. Co-authored-by: Bryan FRIMIN <bryan@frimin.fr> Signed-off-by: Aurélien Sibiril <81782+aureliensibiril@users.noreply.github.com>
This commit is contained in:
@@ -73,6 +73,17 @@ func apiKeyConnectorSettings(input types.CreateAPIKeyConnectorInput) (json.RawMe
|
||||
}
|
||||
|
||||
return json.Marshal(&coredata.GrafanaConnectorSettings{BaseURL: *input.GrafanaBaseURL})
|
||||
case coredata.ConnectorProviderSigNoz:
|
||||
if input.SignozBaseURL == nil || *input.SignozBaseURL == "" {
|
||||
return nil, fmt.Errorf("cannot create signoz connector: signozBaseUrl is required")
|
||||
}
|
||||
|
||||
u, err := url.Parse(*input.SignozBaseURL)
|
||||
if err != nil || (u.Scheme != "http" && u.Scheme != "https") || u.Host == "" {
|
||||
return nil, fmt.Errorf("cannot create signoz connector: signozBaseUrl must be an http(s) URL")
|
||||
}
|
||||
|
||||
return json.Marshal(&coredata.SigNozConnectorSettings{BaseURL: *input.SignozBaseURL})
|
||||
case coredata.ConnectorProviderOnePassword:
|
||||
if input.OnePasswordScimBridgeURL == nil || *input.OnePasswordScimBridgeURL == "" {
|
||||
return nil, fmt.Errorf("cannot create 1password connector: onePasswordScimBridgeURL is required")
|
||||
|
||||
@@ -24,6 +24,8 @@ enum ConnectorProvider
|
||||
OPENAI @goEnum(value: "go.probo.inc/probo/pkg/coredata.ConnectorProviderOpenAI")
|
||||
POSTHOG @goEnum(value: "go.probo.inc/probo/pkg/coredata.ConnectorProviderPostHog")
|
||||
SENTRY @goEnum(value: "go.probo.inc/probo/pkg/coredata.ConnectorProviderSentry")
|
||||
SIGNOZ
|
||||
@goEnum(value: "go.probo.inc/probo/pkg/coredata.ConnectorProviderSigNoz")
|
||||
SUPABASE
|
||||
@goEnum(value: "go.probo.inc/probo/pkg/coredata.ConnectorProviderSupabase")
|
||||
GITHUB @goEnum(value: "go.probo.inc/probo/pkg/coredata.ConnectorProviderGitHub")
|
||||
@@ -133,6 +135,7 @@ input CreateAPIKeyConnectorInput {
|
||||
supabaseOrganizationSlug: String
|
||||
githubOrganization: String
|
||||
grafanaBaseUrl: String
|
||||
signozBaseUrl: String
|
||||
onePasswordScimBridgeUrl: String
|
||||
metabaseInstanceUrl: String
|
||||
posthogRegion: String
|
||||
|
||||
Reference in New Issue
Block a user