stack/docs
BilalG1 59547ef4ec
Detect conflicting Hexclave and Stack env vars (#1604)
Summary: Detects conflicting non-empty HEXCLAVE_* and STACK_* values
across shared env helpers, dashboard public envs, generated SDK env
access, Docker scripts, CLI/docs/examples, and related tests.
Verification: pnpm test run packages/shared/src/utils/env.test.tsx
apps/dashboard/src/lib/env.test.tsx packages/cli/src/lib/auth.test.ts;
targeted lint/typecheck across touched workspaces; bash -n/node --check
for changed scripts; node
docker/local-emulator/generate-env-development.mjs --check.

<!-- This is an auto-generated description by cubic. -->
---
## Summary by cubic
Detects and blocks conflicting `HEXCLAVE_*` and `STACK_*` env vars
across the monorepo. Prefers `HEXCLAVE_*`, falls back to `STACK_*` when
empty, and fails fast when both are set to different values.

- **New Features**
- Added conflict-aware env resolvers used across apps, CLI, docs,
examples, and Docker (build/runtime).
- Validates critical vars (e.g., database connection, API/dashboard
URLs, emulator flags, tokens) and ignores post-build sentinel values.
- Prisma, Next.js, and Docker startup now error on mismatched values;
CLI enforces project ID/key conflicts; tests added.

- **Migration**
- If both names are set with different values, builds/tests/scripts will
error. Set only `HEXCLAVE_*` or make both equal.
- Update `.env`, CI secrets, and Docker envs to use `HEXCLAVE_*`. Keep
`STACK_*` only as a temporary fallback.

<sup>Written for commit 4d63fa3bad.
Summary will update on new commits.</sup>

<a
href="https://cubic.dev/pr/hexclave/hexclave/pull/1604?utm_source=github"
target="_blank" rel="noopener noreferrer"
data-no-image-dialog="true"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"><source
media="(prefers-color-scheme: light)"
srcset="https://www.cubic.dev/buttons/review-in-cubic-light.svg"><img
alt="Review in cubic"
src="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"></picture></a>

<!-- End of auto-generated description by cubic. -->
2026-06-16 10:57:59 -07:00
..
code-examples fix: address review findings for the HEXCLAVE_* env rename 2026-06-11 16:47:19 -07:00
content/docs Consistency and design changes light mode (#1500) 2026-06-05 10:57:13 -07:00
lib [Docs] - Full cleanup (#1105) 2026-01-27 00:38:51 -06:00
public [Docs][Content] - MCP installation instructions (#915) 2025-10-10 13:31:48 -05:00
scripts Fix Docker build 2025-12-28 19:38:17 +01:00
src Detect conflicting Hexclave and Stack env vars (#1604) 2026-06-16 10:57:59 -07:00
templates-api Update missing docs redirects 2026-06-03 17:14:22 -07:00
.env chore: rename STACK_* env vars to HEXCLAVE_* in env templates, with legacy dual-read 2026-06-11 16:23:50 -07:00
.env.development chore: rename STACK_* env vars to HEXCLAVE_* in env templates, with legacy dual-read 2026-06-11 16:23:50 -07:00
.eslintrc.json Upgrade ESLint 2026-02-27 10:58:28 -08:00
.gitignore [Docs][Site] + [Dashboard][UI] - Adds docs to Stack Companion (#869) 2025-10-30 20:01:30 -05:00
cli.json New docs (#698) 2025-06-20 13:30:01 -07:00
instrumentation-client.ts Upgrade PostHog 2026-01-30 23:38:06 -08:00
next.config.mjs feat(hexclave): PR 3 — native @hexclave/* source rename + delete dual-publish wiring (#1482) 2026-05-29 15:21:59 -07:00
package.json chore: update package versions 2026-06-11 17:19:24 +00:00
postcss.config.mjs New docs (#698) 2025-06-20 13:30:01 -07:00
README.md Rename port prefix envvar 2026-05-27 18:09:52 -07:00
source.config.ts [Docs] - Full cleanup (#1105) 2026-01-27 00:38:51 -06:00
tsconfig.json New docs (#698) 2025-06-20 13:30:01 -07:00

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 endpoints
  • server-*.json - Server-side API endpoints
  • admin-*.json - Admin API endpoints
  • webhooks-*.json - Webhook event schemas

Scripts

# Generate API docs from OpenAPI specs
pnpm generate-openapi-docs

# Clear generated docs
pnpm clear-docs

Learn More