Files
probo/pkg/coredata/connector_provider.go
Aurélien Sibiril c2db47e698 Require CLIENT_SECRET for new access-review connectors → Drop Snyk, Ramp, Lever, Deel access-review providers
- Require CLIENT_SECRET for new access-review connectors
- Use Heroku account UUID as ExternalID
- Bump GitHub orgs picker to per_page=100
- Drop Snyk, Ramp, Lever, Deel access-review providers

Signed-off-by: Aurélien Sibiril <81782+aureliensibiril@users.noreply.github.com>
2026-05-17 17:22:50 +02:00

162 lines
5.1 KiB
Go

// Copyright (c) 2025-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.
package coredata
import (
"database/sql/driver"
"fmt"
)
type ConnectorProvider string
const (
ConnectorProviderSlack ConnectorProvider = "SLACK"
ConnectorProviderGoogleWorkspace ConnectorProvider = "GOOGLE_WORKSPACE"
ConnectorProviderLinear ConnectorProvider = "LINEAR"
// _ ConnectorProvider = "FIGMA" — formerly Figma; removed (no driver, no OAuth config, no usage)
ConnectorProviderOnePassword ConnectorProvider = "ONE_PASSWORD"
ConnectorProviderHubSpot ConnectorProvider = "HUBSPOT"
ConnectorProviderDocuSign ConnectorProvider = "DOCUSIGN"
ConnectorProviderNotion ConnectorProvider = "NOTION"
ConnectorProviderBrex ConnectorProvider = "BREX"
ConnectorProviderTally ConnectorProvider = "TALLY"
ConnectorProviderCloudflare ConnectorProvider = "CLOUDFLARE"
ConnectorProviderOpenAI ConnectorProvider = "OPENAI"
ConnectorProviderSentry ConnectorProvider = "SENTRY"
ConnectorProviderSupabase ConnectorProvider = "SUPABASE"
ConnectorProviderGitHub ConnectorProvider = "GITHUB"
ConnectorProviderIntercom ConnectorProvider = "INTERCOM"
ConnectorProviderResend ConnectorProvider = "RESEND"
ConnectorProviderMicrosoft365 ConnectorProvider = "MICROSOFT_365"
ConnectorProviderGitLab ConnectorProvider = "GITLAB"
ConnectorProviderBitbucket ConnectorProvider = "BITBUCKET"
ConnectorProviderHeroku ConnectorProvider = "HEROKU"
ConnectorProviderPagerDuty ConnectorProvider = "PAGERDUTY"
ConnectorProviderAsana ConnectorProvider = "ASANA"
ConnectorProviderNetlify ConnectorProvider = "NETLIFY"
ConnectorProviderClickUp ConnectorProvider = "CLICKUP"
ConnectorProviderVercel ConnectorProvider = "VERCEL"
ConnectorProviderMonday ConnectorProvider = "MONDAY"
)
func ConnectorProviders() []ConnectorProvider {
return []ConnectorProvider{
ConnectorProviderSlack,
ConnectorProviderGoogleWorkspace,
ConnectorProviderLinear,
ConnectorProviderOnePassword,
ConnectorProviderHubSpot,
ConnectorProviderDocuSign,
ConnectorProviderNotion,
ConnectorProviderBrex,
ConnectorProviderTally,
ConnectorProviderCloudflare,
ConnectorProviderOpenAI,
ConnectorProviderSentry,
ConnectorProviderSupabase,
ConnectorProviderGitHub,
ConnectorProviderIntercom,
ConnectorProviderResend,
ConnectorProviderMicrosoft365,
ConnectorProviderGitLab,
ConnectorProviderBitbucket,
ConnectorProviderHeroku,
ConnectorProviderPagerDuty,
ConnectorProviderAsana,
ConnectorProviderNetlify,
ConnectorProviderClickUp,
ConnectorProviderVercel,
ConnectorProviderMonday,
}
}
func (cp ConnectorProvider) String() string {
return string(cp)
}
func (cp *ConnectorProvider) Scan(value any) error {
var s string
switch v := value.(type) {
case string:
s = v
case []byte:
s = string(v)
default:
return fmt.Errorf("unsupported type for ConnectorProvider: %T", value)
}
switch s {
case "SLACK":
*cp = ConnectorProviderSlack
case "GOOGLE_WORKSPACE":
*cp = ConnectorProviderGoogleWorkspace
case "LINEAR":
*cp = ConnectorProviderLinear
case "ONE_PASSWORD":
*cp = ConnectorProviderOnePassword
case "HUBSPOT":
*cp = ConnectorProviderHubSpot
case "DOCUSIGN":
*cp = ConnectorProviderDocuSign
case "NOTION":
*cp = ConnectorProviderNotion
case "BREX":
*cp = ConnectorProviderBrex
case "TALLY":
*cp = ConnectorProviderTally
case "CLOUDFLARE":
*cp = ConnectorProviderCloudflare
case "OPENAI":
*cp = ConnectorProviderOpenAI
case "SENTRY":
*cp = ConnectorProviderSentry
case "SUPABASE":
*cp = ConnectorProviderSupabase
case "GITHUB":
*cp = ConnectorProviderGitHub
case "INTERCOM":
*cp = ConnectorProviderIntercom
case "RESEND":
*cp = ConnectorProviderResend
case "MICROSOFT_365":
*cp = ConnectorProviderMicrosoft365
case "GITLAB":
*cp = ConnectorProviderGitLab
case "BITBUCKET":
*cp = ConnectorProviderBitbucket
case "HEROKU":
*cp = ConnectorProviderHeroku
case "PAGERDUTY":
*cp = ConnectorProviderPagerDuty
case "ASANA":
*cp = ConnectorProviderAsana
case "NETLIFY":
*cp = ConnectorProviderNetlify
case "CLICKUP":
*cp = ConnectorProviderClickUp
case "VERCEL":
*cp = ConnectorProviderVercel
case "MONDAY":
*cp = ConnectorProviderMonday
default:
return fmt.Errorf("invalid ConnectorProvider value: %q", s)
}
return nil
}
func (cp ConnectorProvider) Value() (driver.Value, error) {
return cp.String(), nil
}