Skip to content

Commit 8553873

Browse files
authored
feat: add provider_type field to oauth_proxy_providers table (#1016)
Additionally - generates diff/migration and then updates server code so it can build now that some fields are nullable.
1 parent e9988d8 commit 8553873

File tree

9 files changed

+28
-18
lines changed

9 files changed

+28
-18
lines changed

server/database/schema.sql

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -570,10 +570,13 @@ CREATE TABLE IF NOT EXISTS oauth_proxy_providers (
570570
id uuid NOT NULL DEFAULT generate_uuidv7(),
571571
project_id uuid NOT NULL,
572572
oauth_proxy_server_id uuid NOT NULL,
573-
574573
slug TEXT NOT NULL CHECK (slug <> '' AND CHAR_LENGTH(slug) <= 100),
575-
authorization_endpoint TEXT NOT NULL,
576-
token_endpoint TEXT NOT NULL,
574+
575+
-- provider type: 'custom', 'gram', etc.
576+
provider_type TEXT NOT NULL DEFAULT 'custom',
577+
578+
authorization_endpoint TEXT,
579+
token_endpoint TEXT,
577580
registration_endpoint TEXT,
578581

579582
-- OAuth server capabilities

server/internal/database/models.go

Lines changed: 3 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

server/internal/mv/toolset.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -429,8 +429,8 @@ func DescribeToolset(
429429
providers = append(providers, &types.OAuthProxyProvider{
430430
ID: provider.ID.String(),
431431
Slug: types.Slug(provider.Slug),
432-
AuthorizationEndpoint: provider.AuthorizationEndpoint,
433-
TokenEndpoint: provider.TokenEndpoint,
432+
AuthorizationEndpoint: provider.AuthorizationEndpoint.String,
433+
TokenEndpoint: provider.TokenEndpoint.String,
434434
ScopesSupported: provider.ScopesSupported,
435435
GrantTypesSupported: provider.GrantTypesSupported,
436436
TokenEndpointAuthMethodsSupported: provider.TokenEndpointAuthMethodsSupported,

server/internal/oauth/impl.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@ func (s *Service) handleAuthorize(w http.ResponseWriter, r *http.Request) error
260260

261261
callbackURL := fmt.Sprintf("%s/oauth/callback", s.serverURL.String())
262262

263-
authURL, err := url.Parse(provider.AuthorizationEndpoint)
263+
authURL, err := url.Parse(provider.AuthorizationEndpoint.String)
264264
if err != nil {
265265
return oops.E(oops.CodeUnexpected, err, "failed to parse OAuth authorization URL").Log(ctx, s.logger)
266266
}
@@ -472,7 +472,7 @@ func (s *Service) handleAuthorizationCallback(w http.ResponseWriter, r *http.Req
472472

473473
callbackURL := fmt.Sprintf("%s/oauth/callback", s.serverURL.String())
474474

475-
tokenURL := provider.TokenEndpoint
475+
tokenURL := provider.TokenEndpoint.String
476476
tokenData := url.Values{}
477477
tokenData.Set("grant_type", "authorization_code")
478478
tokenData.Set("redirect_uri", callbackURL)

server/internal/oauth/repo/models.go

Lines changed: 3 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

server/internal/oauth/repo/queries.sql.go

Lines changed: 6 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

server/internal/toolsets/impl.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -701,8 +701,8 @@ func (s *Service) AddOAuthProxyServer(ctx context.Context, payload *gen.AddOAuth
701701
ProjectID: *authCtx.ProjectID,
702702
OauthProxyServerID: oauthProxyServer.ID,
703703
Slug: conv.ToLower(payload.OauthProxyServer.Slug),
704-
AuthorizationEndpoint: payload.OauthProxyServer.AuthorizationEndpoint,
705-
TokenEndpoint: payload.OauthProxyServer.TokenEndpoint,
704+
AuthorizationEndpoint: conv.ToPGTextEmpty(payload.OauthProxyServer.AuthorizationEndpoint),
705+
TokenEndpoint: conv.ToPGTextEmpty(payload.OauthProxyServer.TokenEndpoint),
706706
RegistrationEndpoint: conv.PtrToPGText(nil),
707707
ScopesSupported: payload.OauthProxyServer.ScopesSupported,
708708
ResponseTypesSupported: []string{"code"},
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
-- Modify "oauth_proxy_providers" table
2+
ALTER TABLE "oauth_proxy_providers" ALTER COLUMN "authorization_endpoint" DROP NOT NULL, ALTER COLUMN "token_endpoint" DROP NOT NULL, ADD COLUMN "provider_type" text NOT NULL DEFAULT 'custom';

server/migrations/atlas.sum

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
h1:AJ7aQqZIcGgewUmN5QncCJkrlkyWmDjEeD0h8+Wli+E=
1+
h1:EjhB4E996pJlUKO6QO2lalqjbP03NxSL8w4htf4RwNo=
22
20250502122425_initial-tables.sql h1:Hu3O60/bB4fjZpUay8FzyOjw6vngp087zU+U/wVKn7k=
33
20250502130852_initial-indexes.sql h1:oYbnwi9y9PPTqu7uVbSPSALhCY8XF3rv03nDfG4b7mo=
44
20250502154250_relax-http-security-fields.sql h1:0+OYIDq7IHmx7CP5BChVwfpF2rOSrRDxnqawXio2EVo=
@@ -77,3 +77,4 @@ h1:AJ7aQqZIcGgewUmN5QncCJkrlkyWmDjEeD0h8+Wli+E=
7777
20251126021621_add-auth-input-to-function-resource.sql h1:2vSYx5xIklau99YBK1h/Ipb0dAmR+KUqJlJlwEY5qRc=
7878
20251128143912_add-instructions-to-mcp-metadata.sql h1:WgeMPuB4wXz1c4mhf4+ZoTwtPfZ0NkTQBTXW3s4L8CE=
7979
20251202182959_agent-execution-table.sql h1:q2PyP6iOoBAkQC0pgAFPre5+Amk3Kal7Mc2Twbni0gg=
80+
20251208165035_static-oauth-proxy-providers.sql h1:zujMl7j65KUuVit7bS6766+uKR83F76NK9eHW8zBT1U=

0 commit comments

Comments
 (0)