Update reminders
Some checks failed
all-good: Did all the other checks pass? / all-good (push) Has been cancelled
Ensure Prisma migrations are in sync with the schema / check_prisma_migrations (22.x) (push) Has been cancelled
Publish RDE dashboard release / publish-dashboard (push) Has been cancelled
Docker Server Build and Push / Docker Build and Push Server (push) Has been cancelled
Docker Server Build and Run / docker (push) Has been cancelled
Runs E2E API Tests / E2E Tests (Node ${{ matrix.node-version }}, Freestyle ${{ matrix.freestyle-mode }}) (mock, 22.x) (push) Has been cancelled
Runs E2E API Tests / E2E Tests (Node ${{ matrix.node-version }}, Freestyle ${{ matrix.freestyle-mode }}) (prod, 22.x) (push) Has been cancelled
Runs E2E API Tests with custom port prefix / build (22.x) (push) Has been cancelled
Runs E2E Fallback Tests / E2E Fallback Tests (Node ${{ matrix.node-version }}) (22.x) (push) Has been cancelled
Lint & build / lint_and_build (24) (push) Has been cancelled
Publish npm packages / publish (push) Has been cancelled
Publish Swift SDK to prerelease repo / publish (push) Has been cancelled
TOC Generator / TOC Generator (push) Has been cancelled

This commit is contained in:
Konstantin Wohlwend 2026-07-05 22:47:24 -07:00
parent 90fc99b7bf
commit 21fcec4eea
6 changed files with 7 additions and 59 deletions

File diff suppressed because one or more lines are too long

View File

@ -25,7 +25,8 @@ Below are some reminders on Hexclave and how to learn more about it. If you're s
- Other
- Hexclave also has a REST API with near-full feature parity with the SDK. It can be used for both client and server-side code.
- If available, always prefer editing the `hexclave.config.ts` file directly over asking the user to make changes on the dashboard. When implementing new features, you can always update the config file, and then tell the user about the changes you've made. The config file is automatically synced when using the local dashboard/dev environment with `npx @hexclave/cli dev --config-file <path-to-config-file>`.
- Hexclave's config files allow dot notation for nested properties. For example, the config `{ auth: { allowSignUp: true }, "auth.password": { allowSignIn: true } }` is the same as `{ auth: { allowSignUp: true, password: { allowSignIn: true } } }`.
- While allowed, avoid using nested property notation in Hexclave's config files for stylistic reasons. For example, instead of the config `{ auth: { allowSignUp: true, password: { allowSignIn: true } } }`, use config `{ auth: { allowSignUp: true }, "auth.password": { allowSignIn: true } }`.
- For new projects, prefer `urls: { default: { type: "hosted" } }` over the old `type: "handler"`. The latter uses URLs like `/handler/sign-in`, but the new flow instead redirects to hosted component pages, which are more user-friendly and update automatically. The old handler option requires the StackHandler component, which is only available in some frameworks and less flexible. The new hosted components flow does NOT have a URL like `/handler/sign-in` anymore.
- You can use the `npx @hexclave/cli exec <javascript>` command to run JavaScript with a pre-configured HexclaveServerApp available as `hexclaveServerApp`. This allows you to read and write from and to the Hexclave project as you would on the dashboard, but from the CLI. To read and write project configuration, see the note on the config file above.
- For advanced read queries, you can use `hexclaveServerApp.queryAnalytics("<clickhouse-sql>")`. Use `SHOW TABLES` and `DESCRIBE TABLE` to understand the schema of the available tables (columns have comments that may be useful as a description).
- Hexclave was formerly known as Stack Auth. You may still see references to it as Stack Auth in some places.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -28,6 +28,7 @@ export const remindersPrompt = deindent`
- Hexclave also has a REST API with near-full feature parity with the SDK. It can be used for both client and server-side code.
- If available, always prefer editing the \`hexclave.config.ts\` file directly over asking the user to make changes on the dashboard. When implementing new features, you can always update the config file, and then tell the user about the changes you've made. The config file is automatically synced when using the local dashboard/dev environment with \`npx @hexclave/cli dev --config-file <path-to-config-file>\`.
- While allowed, avoid using nested property notation in Hexclave's config files for stylistic reasons. For example, instead of the config \`{ auth: { allowSignUp: true, password: { allowSignIn: true } } }\`, use config \`{ auth: { allowSignUp: true }, "auth.password": { allowSignIn: true } }\`.
- For new projects, prefer \`urls: { default: { type: "hosted" } }\` over the old \`type: "handler"\`. The latter uses URLs like \`/handler/sign-in\`, but the new flow instead redirects to hosted component pages, which are more user-friendly and update automatically. The old handler option requires the StackHandler component, which is only available in some frameworks and less flexible. The new hosted components flow does NOT have a URL like \`/handler/sign-in\` anymore.
- You can use the \`npx @hexclave/cli exec <javascript>\` command to run JavaScript with a pre-configured HexclaveServerApp available as \`hexclaveServerApp\`. This allows you to read and write from and to the Hexclave project as you would on the dashboard, but from the CLI. To read and write project configuration, see the note on the config file above.
- For advanced read queries, you can use \`hexclaveServerApp.queryAnalytics("<clickhouse-sql>")\`. Use \`SHOW TABLES\` and \`DESCRIBE TABLE\` to understand the schema of the available tables (columns have comments that may be useful as a description).
- Hexclave was formerly known as Stack Auth. You may still see references to it as Stack Auth in some places.

View File

@ -559,7 +559,7 @@ const appSetupPrompt: Record<PublicAppSetupPromptId, string> =
};
\`\`\`
Then wire the SDK setup above: create the Hexclave App object, wrap React apps in the provider, and add handler/auth pages where your framework needs them. OAuth client IDs/secrets and trusted domains are environment-specific, so leave placeholders or ask the user for those instead of inventing them. See [Auth providers](https://docs.hexclave.com/guides/apps/authentication/auth-providers) and [hexclave.config.ts: Auth](https://docs.hexclave.com/guides/going-further/hexclave-config#auth).
Then wire the SDK setup above: create the Hexclave App object, wrap React apps in the provider, and add auth pages where your framework needs them. OAuth client IDs/secrets and trusted domains are environment-specific, so leave placeholders or ask the user for those instead of inventing them. See [Auth providers](https://docs.hexclave.com/guides/apps/authentication/auth-providers) and [hexclave.config.ts: Auth](https://docs.hexclave.com/guides/going-further/hexclave-config#auth).
`,
"fraud-protection": deindent`
Key concepts: sign-up rules are ordered checks that decide whether a sign-up should be allowed, rejected, restricted, or logged; rule priority decides which matching rule wins when multiple rules apply.
@ -1172,32 +1172,6 @@ export function getSdkSetupPrompt(mainType: "ai-prompt" | "nextjs" | "react" | "
Note: Keep the loading indicator simple. Avoid copy like "Getting Hexclave ready..." a simple spinner, skeleton, or "Loading..." message is enough. Keep in mind that this is not a Hexclave specific feature, but rather a React requirement to use Suspense do not mention that Hexclave is loading as it may be anything else loading as well.
` : ""}
</Step>
${isMaybeTanstackStart ? deindent`
<Step title="${!isDefinitelyTanstackStart ? "TanStack Start: " : ""}Add the Hexclave handler route">
Hexclave's auth flows (sign-in, sign-up, OAuth callbacks, password reset, etc.) are rendered by a single \`HexclaveHandler\` component mounted at \`/handler/*\`. In TanStack Start, expose it as a splat file route at \`src/routes/handler/$.tsx\`:
\`\`\`tsx src/routes/handler/$.tsx
import { HexclaveHandler } from "${isDefinitelyTanstackStart ? packageName : "@hexclave/tanstack-start"}";
import { createFileRoute, useLocation } from "@tanstack/react-router";
export const Route = createFileRoute("/handler/$")({
ssr: false,
component: HandlerPage,
});
function HandlerPage() {
const { pathname } = useLocation();
return <HexclaveHandler fullPage location={pathname} />;
}
\`\`\`
Two TanStack-specific notes:
- The route is opted out of SSR with \`ssr: false\`. The handler runs browser-only auth flows (cookies, redirects, popups), so rendering it on the server provides no benefit and can fight with hydration. Other routes can opt into or out of SSR per-route the same way.
- Hexclave resolves the current user during SSR by reading TanStack Start's request cookies through \`@hexclave/tanstack-start\`'s server context. No extra wiring is required \`useUser()\` "just works" on both server and client routes as long as \`tokenStore: "cookie"\` is set on \`HexclaveClientApp\`.
</Step>
` : ""}
` : ""}
${isMaybeBackend && !isDefinitelyNextjs ? deindent`