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:
@@ -706,6 +706,21 @@ func (r *resendNameResolver) ResolveInstanceName(_ context.Context) (string, err
|
||||
return "Resend", nil
|
||||
}
|
||||
|
||||
// betterStackNameResolver returns the Better Stack team name captured when
|
||||
// the API-key connector was created. The team name is the human-readable
|
||||
// instance identifier, so no HTTP call is required.
|
||||
type betterStackNameResolver struct {
|
||||
teamName string
|
||||
}
|
||||
|
||||
func NewBetterStackNameResolver(teamName string) NameResolver {
|
||||
return &betterStackNameResolver{teamName: teamName}
|
||||
}
|
||||
|
||||
func (r *betterStackNameResolver) ResolveInstanceName(_ context.Context) (string, error) {
|
||||
return r.teamName, nil
|
||||
}
|
||||
|
||||
// gitlabNameResolver resolves the GitLab group name.
|
||||
type gitlabNameResolver struct {
|
||||
httpClient *http.Client
|
||||
|
||||
Reference in New Issue
Block a user