mirror of
https://github.com/stack-auth/stack.git
synced 2026-06-30 21:01:54 +08:00
Renames every STACK_*-prefixed variable (including NEXT_PUBLIC_STACK_*) to HEXCLAVE_* across all checked-in .env, .env.development, and .env.example files, completing the env-var side of the Hexclave rebrand. Legacy STACK_* names keep working everywhere so existing deployments, .env.local files, and self-hosted setups don't need immediate migration: - getEnvVariable already prefers HEXCLAVE_* with STACK_* fallback; fix it to treat empty-string values as unset so the empty HEXCLAVE_* placeholders in the checked-in templates can't shadow a real value under the legacy name. - Apply the same empty-as-unset rule (|| instead of ??) to all literal process.env dual-reads (dashboard inline env, docs, examples, CLI) and to the generated SDK env getter chains via packages/template generate-env.ts. - Add explicit HEXCLAVE_* || STACK_* dual-reads to direct process.env readers fed by the renamed files: prisma seed, e2e tests/helpers, internal-tool scripts and app, demo/convex examples. - docker/server/entrypoint.sh: add a generic two-way HEXCLAVE_/STACK_ env mirror (run at startup and again before sentinel replacement), replacing the previous URL-trio-only mirror; accept legacy NEXT_PUBLIC_STACK_PORT_PREFIX; rotate-secrets.sh falls back to HEXCLAVE_DATABASE_CONNECTION_STRING. - e2e cross-domain-auth and the internal-feedback-emails in-source test now override the canonical HEXCLAVE_* names (the legacy override would be shadowed by the renamed env files). - docs/code-examples snippets renamed outright to the canonical names. |
||
|---|---|---|
| .. | ||
| code-examples | ||
| content/docs | ||
| lib | ||
| public | ||
| scripts | ||
| src | ||
| templates-api | ||
| .env | ||
| .env.development | ||
| .eslintrc.json | ||
| .gitignore | ||
| cli.json | ||
| instrumentation-client.ts | ||
| next.config.mjs | ||
| package.json | ||
| postcss.config.mjs | ||
| README.md | ||
| source.config.ts | ||
| tsconfig.json | ||
Stack Auth Documentation
This is the documentation site for Stack Auth, built with Next.js and Fumadocs.
Development
pnpm dev
The docs server runs on port 8104 by default (or ${NEXT_PUBLIC_HEXCLAVE_PORT_PREFIX}04).
Project Structure
Content (/content)
| Directory | Description |
|---|---|
content/docs/ |
Main documentation (guides, SDK reference, components) |
content/api/ |
REST API reference documentation |
App Routes (/src/app)
| Route | Description |
|---|---|
/docs |
Main documentation pages |
/api |
API reference pages (rendered from OpenAPI specs) |
/docs-embed |
Embedded docs for dashboard companion widget |
/api-embed |
Embedded API docs for dashboard companion widget |
/mcp-browser |
MCP documentation browser |
/handler/[...stack] |
Stack Auth handler route |
/api/search |
Search API endpoint |
/api/chat |
AI documentation chat endpoint |
/llms.txt |
LLM-friendly documentation (plain text) |
/llms.mdx |
LLM-friendly documentation (MDX format) |
SDK Route Handlers
These routes serve SDK-specific documentation:
/js/[...path]- JavaScript SDK/next/[...path]- Next.js SDK/react/[...path]- React SDK/python/[...path]- Python SDK/rest-api/[...path]- REST API
Key Files
| File | Description |
|---|---|
lib/source.ts |
Content source adapter using Fumadocs loader() |
source.config.ts |
Fumadocs MDX configuration (frontmatter schema, etc.) |
app/layout.config.tsx |
Shared layout options |
lib/platform-config.ts |
Platform/framework configuration for code examples |
Components (/src/components)
| Directory | Description |
|---|---|
api/ |
API playground components |
chat/ |
AI chat interface |
layout/ |
Layout UI components (search, navigation) |
layouts/ |
Page layouts (docs, API) |
mdx/ |
Custom MDX components |
stack-auth/ |
Stack Auth demo components |
ui/ |
Base UI components (button, etc.) |
OpenAPI Specs (/openapi)
Contains OpenAPI JSON specifications organized by access level:
client-*.json- Client-side API endpointsserver-*.json- Server-side API endpointsadmin-*.json- Admin API endpointswebhooks-*.json- Webhook event schemas
Scripts
# Generate API docs from OpenAPI specs
pnpm generate-openapi-docs
# Clear generated docs
pnpm clear-docs