- 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>
162 lines
5.1 KiB
Go
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
|
|
}
|