Add Better Stack access review connector

Better Stack exposes team members and pending invitations through its
Uptime API. Wire it as an access-review connector so a Better Stack
team can be reviewed in access-review campaigns.

Better Stack has no third-party OAuth app for listing members (its
OAuth is an end-user MCP sign-in), so the connector authenticates with
a Bearer API token plus the team name that scopes the team-members
listing. The driver paginates /api/v2/team-members, maps roles and
invitation records into account records, and the source name is
resolved from the configured team.

This wires the full surface: the provider enum and migration, the
connector settings, the registry registration with the team-name extra
setting, the GraphQL input and resolver marshaling, the frontend field
mapping and connector logo, and cassette-backed driver tests.

Signed-off-by: Aurélien Sibiril <81782+aureliensibiril@users.noreply.github.com>
This commit is contained in:
Aurélien Sibiril
2026-06-08 23:08:42 +02:00
parent c71a090fe4
commit 29b72ebc3b
15 changed files with 529 additions and 0 deletions

View File

@@ -39,6 +39,7 @@ const (
ConnectorProviderSentry ConnectorProvider = "SENTRY"
ConnectorProviderSigNoz ConnectorProvider = "SIGNOZ"
ConnectorProviderSupabase ConnectorProvider = "SUPABASE"
ConnectorProviderBetterStack ConnectorProvider = "BETTER_STACK"
ConnectorProviderGitHub ConnectorProvider = "GITHUB"
ConnectorProviderIntercom ConnectorProvider = "INTERCOM"
ConnectorProviderResend ConnectorProvider = "RESEND"
@@ -87,6 +88,7 @@ func ConnectorProviders() []ConnectorProvider {
ConnectorProviderSentry,
ConnectorProviderSigNoz,
ConnectorProviderSupabase,
ConnectorProviderBetterStack,
ConnectorProviderGitHub,
ConnectorProviderIntercom,
ConnectorProviderResend,
@@ -131,6 +133,7 @@ func (v ConnectorProvider) IsValid() bool {
ConnectorProviderSentry,
ConnectorProviderSigNoz,
ConnectorProviderSupabase,
ConnectorProviderBetterStack,
ConnectorProviderGitHub,
ConnectorProviderIntercom,
ConnectorProviderResend,

View File

@@ -136,6 +136,10 @@ type (
ZendeskConnectorSettings struct {
Subdomain string `json:"subdomain"`
}
BetterStackConnectorSettings struct {
TeamName string `json:"team_name"`
}
)
// GrantType returns the OAuth2 grant type recorded on the connector's

View File

@@ -0,0 +1,15 @@
-- Copyright (c) 2026 Probo Inc <hello@getprobo.com>.
--
-- Permission to use, copy, modify, and/or distribute this software for any
-- purpose with or without fee is hereby granted, provided that the above
-- copyright notice and this permission notice appear in all copies.
--
-- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-- PERFORMANCE OF THIS SOFTWARE.
ALTER TYPE connector_provider ADD VALUE IF NOT EXISTS 'BETTER_STACK';