From f7ef7a62eab879aa0731f97ec468a86fc276ecc1 Mon Sep 17 00:00:00 2001 From: Mohamed Habib Date: Wed, 29 Oct 2025 12:17:57 -0700 Subject: [PATCH 1/2] fix invitation error (#2361) --- ui/src/routes/api/auth/workos/webhooks.tsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ui/src/routes/api/auth/workos/webhooks.tsx b/ui/src/routes/api/auth/workos/webhooks.tsx index b386755ec..89a57c3e3 100644 --- a/ui/src/routes/api/auth/workos/webhooks.tsx +++ b/ui/src/routes/api/auth/workos/webhooks.tsx @@ -74,9 +74,10 @@ export const Route = createFileRoute('/api/auth/workos/webhooks')({ } if (userInvitations.length > 0) { - const orgDetails = await getOrganisationDetails(orgId); - let orgName = orgDetails.name; for (const invitation of userInvitations) { + const orgDetails = await getOrganisationDetails(invitation.organizationId!); + let orgName = orgDetails.name; + console.log(`Syncing organization ${orgName} to backend and statesman`); try { await syncOrgToBackend(invitation.organizationId!, orgName, null); await syncOrgToStatesman(invitation.organizationId!, orgName, personalOrgDisplayName, invitation.userId!, invitation.userEmail!); From f4bab31e83eaec8e16121dba011770b444e6c605 Mon Sep 17 00:00:00 2001 From: Brian Reardon Date: Wed, 29 Oct 2025 12:59:30 -0700 Subject: [PATCH 2/2] handle aws endpoint env var (#2362) --- taco/internal/storage/s3store.go | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/taco/internal/storage/s3store.go b/taco/internal/storage/s3store.go index d51c91ed1..fafeaa33f 100644 --- a/taco/internal/storage/s3store.go +++ b/taco/internal/storage/s3store.go @@ -34,14 +34,18 @@ type s3Store struct { // NewS3Store creates a new S3-backed unit store. // Region can be empty to use the default AWS config chain. +// Supports custom endpoints via AWS_ENDPOINT environment variable (for Tigris, MinIO, etc.) func NewS3Store(ctx context.Context, bucket, prefix, region string) (UnitStore, error) { if bucket == "" { return nil, fmt.Errorf("s3 bucket is required") } + var ( cfg aws.Config err error ) + + // Load default config with region if region != "" { cfg, err = config.LoadDefaultConfig(ctx, config.WithRegion(region)) } else { @@ -50,7 +54,25 @@ func NewS3Store(ctx context.Context, bucket, prefix, region string) (UnitStore, if err != nil { return nil, err } - cli := s3.NewFromConfig(cfg) + + // Check for custom endpoint (for S3-compatible storage like Tigris, MinIO, etc.) + endpoint := os.Getenv("AWS_ENDPOINT") + var cli *s3.Client + + if endpoint != "" { + // Use custom endpoint for S3-compatible storage + cli = s3.NewFromConfig(cfg, func(o *s3.Options) { + o.BaseEndpoint = aws.String(endpoint) + // Force path-style addressing for S3-compatible storage + o.UsePathStyle = true + }) + fmt.Printf("S3Store: Using custom endpoint: %s (path-style)\n", endpoint) + } else { + // Standard AWS S3 + cli = s3.NewFromConfig(cfg) + fmt.Printf("S3Store: Using AWS S3 in region: %s\n", cfg.Region) + } + return &s3Store{client: cli, bucket: bucket, prefix: strings.Trim(prefix, "/")}, nil }