Add OKTA connector provider enum and settings
Introduce the OKTA value to the connector_provider enum (Go const, ConnectorProviders slice, IsValid switch, GraphQL @goEnum, and the Postgres ALTER TYPE migration) and an OktaConnectorSettings struct holding the customer's Okta org domain. Okta is a per-tenant IdP with no central API gateway, so the connector is keyed on the org domain rather than a shared host. The oktaDomain field on CreateAPIKeyConnectorInput lets the API-key flow carry it. Signed-off-by: Aurélien Sibiril <81782+aureliensibiril@users.noreply.github.com>
This commit is contained in:
@@ -58,6 +58,7 @@ const (
|
|||||||
ConnectorProviderAnthropic ConnectorProvider = "ANTHROPIC"
|
ConnectorProviderAnthropic ConnectorProvider = "ANTHROPIC"
|
||||||
ConnectorProviderCursor ConnectorProvider = "CURSOR"
|
ConnectorProviderCursor ConnectorProvider = "CURSOR"
|
||||||
ConnectorProviderDatadog ConnectorProvider = "DATADOG"
|
ConnectorProviderDatadog ConnectorProvider = "DATADOG"
|
||||||
|
ConnectorProviderOkta ConnectorProvider = "OKTA"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@@ -103,6 +104,7 @@ func ConnectorProviders() []ConnectorProvider {
|
|||||||
ConnectorProviderAnthropic,
|
ConnectorProviderAnthropic,
|
||||||
ConnectorProviderCursor,
|
ConnectorProviderCursor,
|
||||||
ConnectorProviderDatadog,
|
ConnectorProviderDatadog,
|
||||||
|
ConnectorProviderOkta,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -143,7 +145,8 @@ func (v ConnectorProvider) IsValid() bool {
|
|||||||
ConnectorProviderTailscale,
|
ConnectorProviderTailscale,
|
||||||
ConnectorProviderAnthropic,
|
ConnectorProviderAnthropic,
|
||||||
ConnectorProviderCursor,
|
ConnectorProviderCursor,
|
||||||
ConnectorProviderDatadog:
|
ConnectorProviderDatadog,
|
||||||
|
ConnectorProviderOkta:
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -111,6 +111,17 @@ type (
|
|||||||
Region string `json:"region"`
|
Region string `json:"region"`
|
||||||
Domain string `json:"domain"`
|
Domain string `json:"domain"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// OktaConnectorSettings holds the customer's Okta org domain (the bare
|
||||||
|
// host, e.g. "acme.okta.com") supplied with the API token. It is the
|
||||||
|
// single-tenant identifier the driver and name resolver use to build
|
||||||
|
// the per-org API host (https://<domain>/api/v1/...). Okta has no
|
||||||
|
// central API gateway — every org authenticates against its own
|
||||||
|
// domain — so the host is operator-supplied and validated (see
|
||||||
|
// connector.NormalizeOktaDomain) before it reaches URL construction.
|
||||||
|
OktaConnectorSettings struct {
|
||||||
|
Domain string `json:"domain"`
|
||||||
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
// GrantType returns the OAuth2 grant type recorded on the connector's
|
// GrantType returns the OAuth2 grant type recorded on the connector's
|
||||||
|
|||||||
15
pkg/coredata/migrations/20260604T418207Z.sql
Normal file
15
pkg/coredata/migrations/20260604T418207Z.sql
Normal 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 'OKTA';
|
||||||
@@ -60,6 +60,7 @@ enum ConnectorProvider
|
|||||||
)
|
)
|
||||||
CURSOR @goEnum(value: "go.probo.inc/probo/pkg/coredata.ConnectorProviderCursor")
|
CURSOR @goEnum(value: "go.probo.inc/probo/pkg/coredata.ConnectorProviderCursor")
|
||||||
DATADOG @goEnum(value: "go.probo.inc/probo/pkg/coredata.ConnectorProviderDatadog")
|
DATADOG @goEnum(value: "go.probo.inc/probo/pkg/coredata.ConnectorProviderDatadog")
|
||||||
|
OKTA @goEnum(value: "go.probo.inc/probo/pkg/coredata.ConnectorProviderOkta")
|
||||||
}
|
}
|
||||||
|
|
||||||
type ConnectorProviderInfo {
|
type ConnectorProviderInfo {
|
||||||
@@ -135,6 +136,7 @@ input CreateAPIKeyConnectorInput {
|
|||||||
metabaseInstanceUrl: String
|
metabaseInstanceUrl: String
|
||||||
posthogRegion: String
|
posthogRegion: String
|
||||||
posthogInstanceUrl: String
|
posthogInstanceUrl: String
|
||||||
|
oktaDomain: String
|
||||||
}
|
}
|
||||||
|
|
||||||
type CreateAPIKeyConnectorPayload {
|
type CreateAPIKeyConnectorPayload {
|
||||||
|
|||||||
Reference in New Issue
Block a user