Files
probo/pkg/connector/provider/builtin.go
Aurélien Sibiril dbd920dc24 Add Zendesk access-review connector
Zendesk is a multi-tenant OAuth connector keyed by the customer
subdomain. The customer enters it at connect time; it rides the signed
state to the callback, is re-validated, and is stored on the connector
settings to build the API host.

List staff (agents and admins) via GET /api/v2/users.json with cursor
pagination, mapping role, active/suspended, and 2FA status; end-users
are excluded. The subdomain is validated as a single DNS label at every
trust boundary to close the SSRF vector, and the data client keeps the
SSRF-protected transport.

Zendesk OAuth across customer subdomains requires a Zendesk-approved
global OAuth client; the connector goes live once those credentials are
supplied via bootstrap.

Signed-off-by: Aurélien Sibiril <81782+aureliensibiril@users.noreply.github.com>
2026-06-04 20:55:48 +02:00

70 lines
2.2 KiB
Go

// 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.
package provider
// NewBuiltinRegistry returns a *Registry populated with every
// connector provider compiled into the binary. It panics on duplicate
// registration or invalid Registration metadata — both are programmer
// errors caught at process start, not at runtime. Probod calls this
// once at startup and threads the *Registry into every consumer.
func NewBuiltinRegistry() *Registry {
r := NewRegistry()
for _, reg := range []*Registration{
anthropicRegistration(),
asanaRegistration(),
bitbucketRegistration(),
brexRegistration(),
clerkRegistration(),
clickupRegistration(),
cloudflareRegistration(),
cursorRegistration(),
datadogRegistration(),
docusignRegistration(),
grafanaRegistration(),
githubRegistration(),
gitlabRegistration(),
googleWorkspaceRegistration(),
herokuRegistration(),
hubspotRegistration(),
intercomRegistration(),
linearRegistration(),
metabaseRegistration(),
microsoft365Registration(),
mondayRegistration(),
netlifyRegistration(),
notionRegistration(),
oktaRegistration(),
onePasswordRegistration(),
openaiRegistration(),
posthogRegistration(),
pagerdutyRegistration(),
resendRegistration(),
sendgridRegistration(),
sentryRegistration(),
slackRegistration(),
supabaseRegistration(),
tailscaleRegistration(),
tallyRegistration(),
vercelRegistration(),
zendeskRegistration(),
} {
if err := r.Register(reg); err != nil {
panic(err)
}
}
return r
}