Skip to content

fix: modernize partner integration add-ons#490

Merged
tannerlinsley merged 2 commits into
mainfrom
taren/partner-integration-addons
Jul 21, 2026
Merged

fix: modernize partner integration add-ons#490
tannerlinsley merged 2 commits into
mainfrom
taren/partner-integration-addons

Conversation

@tannerlinsley

@tannerlinsley tannerlinsley commented Jul 21, 2026

Copy link
Copy Markdown
Member

Summary:

  • move Clerk and WorkOS generators to their full-stack TanStack Start SDKs
  • update Railway, Nitro, Sentry, Cloudflare, and pnpm 11 integration output
  • preserve existing environment values and stop persisting secrets in .cta.json
  • add focused generator coverage and a patch changeset for @tanstack/create

Validation:

  • pnpm test
  • fresh WorkOS app: TypeScript and production build
  • fresh Clerk + Sentry + Railway app: TypeScript and production build

This supersedes the overlapping implementation work in #408 and #485.

Summary by CodeRabbit

  • New Features
    • Modernized Clerk and WorkOS add-ons to use TanStack Start full-stack auth.
    • Added WorkOS server callback + sign-in routes, and updated demo/header auth UI.
    • Added CSRF-protected server middleware when auth add-ons are enabled.
    • Improved Railway guidance to use Railpack with stable Nitro output.
  • Bug Fixes
    • Preserves existing .env* values when updating generated projects.
    • Avoids overwriting sensitive config values and omits non-persisted env data.
    • Safer Sentry defaults with reduced tracing/privacy exposure.
  • Documentation
    • Updated Clerk, WorkOS, and Railway setup/production instructions and environment variable templates.

@coderabbitai

coderabbitai Bot commented Jul 21, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: e835bba1-3b29-4828-a19e-266efa9af4ae

📥 Commits

Reviewing files that changed from the base of the PR and between e0bc307 and 2a7e07f.

📒 Files selected for processing (6)
  • packages/create/src/frameworks/react/add-ons/clerk/README.md
  • packages/create/src/frameworks/react/hosts/nitro/package.json
  • packages/create/src/frameworks/react/hosts/railway/package.json.ejs
  • packages/create/src/frameworks/solid/hosts/nitro/package.json
  • packages/create/src/frameworks/solid/hosts/railway/package.json
  • packages/create/tests/partner-addons.test.ts
🚧 Files skipped from review as they are similar to previous changes (5)
  • packages/create/src/frameworks/solid/hosts/railway/package.json
  • packages/create/src/frameworks/solid/hosts/nitro/package.json
  • packages/create/src/frameworks/react/hosts/railway/package.json.ejs
  • packages/create/src/frameworks/react/add-ons/clerk/README.md
  • packages/create/tests/partner-addons.test.ts

📝 Walkthrough

Walkthrough

The PR modernizes generated Clerk and WorkOS integrations for TanStack Start, preserves existing environment values, removes persisted secret values, updates Railway and pnpm templates, changes Sentry defaults, and adds scaffold-generation tests.

Changes

Partner add-on modernization

Layer / File(s) Summary
Environment persistence and file safety
packages/create/src/add-to-app.ts, packages/create/src/config-file.ts, packages/create/tests/*
Environment files preserve existing values, deletions are confirmed safely, and envVarValues is excluded from persisted configuration.
Clerk TanStack Start integration
packages/create/src/frameworks/react/add-ons/clerk/*, packages/create/tests/*
Clerk templates use the TanStack Start SDK, add secret-key metadata, update auth-state rendering, and wire generated middleware.
WorkOS AuthKit server flow
packages/create/src/frameworks/react/add-ons/workos/*, packages/create/tests/partner-addons.test.ts
WorkOS templates use TanStack Start AuthKit, generate environment metadata and callback/sign-in routes, and update authentication UI.
Hosting and pnpm build templates
packages/create/src/frameworks/*/hosts/*, packages/create/src/frameworks/*/project/base/*, packages/create/src/types.ts, packages/create/tests/partner-addons.test.ts
Railway templates use Railpack and stable Nitro, while pnpm build approvals and conditional Start middleware are generated from add-on selections.
Sentry defaults and validation
packages/create/src/frameworks/*/add-ons/sentry/*, packages/create/tests/partner-addons.test.ts
Sentry dependencies and build approvals are updated, server instrumentation disables user and HTTP-body collection, and tracing sampling is reduced.

Estimated code review effort: 4 (Complex) | ~45 minutes

Sequence Diagram(s)

sequenceDiagram
  participant User
  participant SignInRoute
  participant WorkOSAuthKit
  participant CallbackRoute
  User->>SignInRoute: Request sign-in with returnPathname
  SignInRoute->>WorkOSAuthKit: Generate sign-in URL
  WorkOSAuthKit-->>SignInRoute: Return URL
  SignInRoute-->>User: 307 redirect
  User->>CallbackRoute: OAuth callback
  CallbackRoute->>WorkOSAuthKit: Handle callback
Loading

Possibly related PRs

Suggested reviewers: schiller-manuel

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly matches the main change: modernizing partner integration add-ons across Clerk, WorkOS, Railway, Sentry, and related tooling.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch taren/partner-integration-addons

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

packages/create/tests/partner-addons.test.ts

Parsing error: "parserOptions.project" has been provided for @typescript-eslint/parser.
The file was not found in any of the provided project(s): packages/create/tests/partner-addons.test.ts


Comment @coderabbitai help to get the list of available commands.

@socket-security

socket-security Bot commented Jul 21, 2026

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addednitro@​3.0.260610-beta981008289100
Added@​workos/​authkit-tanstack-react-start@​0.11.08310010099100
Added@​clerk/​tanstack-react-start@​1.4.219610093100100
Added@​workos-inc/​node@​10.8.099100100100100

View full report

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (1)
packages/create/src/frameworks/solid/hosts/railway/package.json (1)

6-6: 🩺 Stability & Availability | 🔵 Trivial | ⚡ Quick win

Pin Nitro to a tested stable version.

"latest" makes generated Railway apps resolve different Nitro releases over time, so a scaffold can change behavior or stop building after a reinstall. Use the exact stable version covered by the Railway validation matrix and upgrade it deliberately.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/create/src/frameworks/solid/hosts/railway/package.json` at line 6,
Update the Nitro dependency in the Railway host template package configuration
from “latest” to the exact stable version covered by the Railway validation
matrix, preserving deliberate version pinning for reproducible generated apps.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@packages/create/src/frameworks/react/add-ons/clerk/README.md`:
- Around line 22-34: Update the README’s /dashboard beforeLoad example to call a
createServerFn(...).handler(...) server function that performs auth() and
returns the authorization or redirect state, rather than invoking auth()
directly in beforeLoad. Keep the unauthenticated redirect behavior unchanged.

In `@packages/create/src/frameworks/solid/add-ons/sentry/package.json`:
- Line 3: Regenerate the Solid Sentry worker manifest represented by the
generated add-on module so its emitted dependency matches the source manifest’s
`@sentry/solid` version ^10.67.0. Update the generated output associated with the
Solid Sentry add-on, preserving its existing structure and other dependency
entries.

---

Nitpick comments:
In `@packages/create/src/frameworks/solid/hosts/railway/package.json`:
- Line 6: Update the Nitro dependency in the Railway host template package
configuration from “latest” to the exact stable version covered by the Railway
validation matrix, preserving deliberate version pinning for reproducible
generated apps.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: fd25ec76-17c9-4351-832d-aca5b49bdb44

📥 Commits

Reviewing files that changed from the base of the PR and between 75db7e8 and e0bc307.

📒 Files selected for processing (45)
  • .changeset/fresh-partner-paths.md
  • packages/create/src/add-to-app.ts
  • packages/create/src/config-file.ts
  • packages/create/src/frameworks/react/add-ons/clerk/README.md
  • packages/create/src/frameworks/react/add-ons/clerk/assets/_dot_env.local.append
  • packages/create/src/frameworks/react/add-ons/clerk/assets/src/integrations/clerk/header-user.tsx
  • packages/create/src/frameworks/react/add-ons/clerk/assets/src/integrations/clerk/provider.tsx
  • packages/create/src/frameworks/react/add-ons/clerk/assets/src/routes/demo/clerk.tsx
  • packages/create/src/frameworks/react/add-ons/clerk/info.json
  • packages/create/src/frameworks/react/add-ons/clerk/package.json
  • packages/create/src/frameworks/react/add-ons/sentry/assets/instrument.server.mjs
  • packages/create/src/frameworks/react/add-ons/sentry/info.json
  • packages/create/src/frameworks/react/add-ons/sentry/package.json
  • packages/create/src/frameworks/react/add-ons/workos/README.md
  • packages/create/src/frameworks/react/add-ons/workos/assets/_dot_env.local.append
  • packages/create/src/frameworks/react/add-ons/workos/assets/src/components/workos-user.tsx
  • packages/create/src/frameworks/react/add-ons/workos/assets/src/hooks/useUser.tsx
  • packages/create/src/frameworks/react/add-ons/workos/assets/src/integrations/workos/provider.tsx
  • packages/create/src/frameworks/react/add-ons/workos/assets/src/routes/api/auth/callback.tsx
  • packages/create/src/frameworks/react/add-ons/workos/assets/src/routes/api/auth/sign-in.tsx
  • packages/create/src/frameworks/react/add-ons/workos/assets/src/routes/demo/workos.tsx
  • packages/create/src/frameworks/react/add-ons/workos/info.json
  • packages/create/src/frameworks/react/add-ons/workos/package.json
  • packages/create/src/frameworks/react/hosts/cloudflare/package.json.ejs
  • packages/create/src/frameworks/react/hosts/nitro/package.json
  • packages/create/src/frameworks/react/hosts/railway/README.md
  • packages/create/src/frameworks/react/hosts/railway/assets/nixpacks.toml
  • packages/create/src/frameworks/react/hosts/railway/info.json
  • packages/create/src/frameworks/react/hosts/railway/package.json
  • packages/create/src/frameworks/react/hosts/railway/package.json.ejs
  • packages/create/src/frameworks/react/project/base/pnpm-workspace.yaml.ejs
  • packages/create/src/frameworks/react/project/base/src/start.ts.ejs
  • packages/create/src/frameworks/solid/add-ons/sentry/package.json
  • packages/create/src/frameworks/solid/hosts/cloudflare/package.json.ejs
  • packages/create/src/frameworks/solid/hosts/nitro/package.json
  • packages/create/src/frameworks/solid/hosts/railway/README.md
  • packages/create/src/frameworks/solid/hosts/railway/assets/nixpacks.toml
  • packages/create/src/frameworks/solid/hosts/railway/info.json
  • packages/create/src/frameworks/solid/hosts/railway/package.json
  • packages/create/src/frameworks/solid/project/base/pnpm-workspace.yaml.ejs
  • packages/create/src/types.ts
  • packages/create/tests/add-to-app.test.ts
  • packages/create/tests/config-file.test.ts
  • packages/create/tests/edge-manifest.test.ts
  • packages/create/tests/partner-addons.test.ts
💤 Files with no reviewable changes (4)
  • packages/create/src/frameworks/react/hosts/railway/package.json
  • packages/create/src/frameworks/react/hosts/railway/assets/nixpacks.toml
  • packages/create/src/frameworks/react/add-ons/workos/assets/src/hooks/useUser.tsx
  • packages/create/src/frameworks/solid/hosts/railway/assets/nixpacks.toml

Comment thread packages/create/src/frameworks/react/add-ons/clerk/README.md
Comment thread packages/create/src/frameworks/solid/add-ons/sentry/package.json
@tannerlinsley
tannerlinsley merged commit fb59492 into main Jul 21, 2026
7 checks passed
@tannerlinsley
tannerlinsley deleted the taren/partner-integration-addons branch July 21, 2026 20:08
@github-actions github-actions Bot mentioned this pull request Jul 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant