Skip to content

Commit 2056dfd

Browse files
committed
readme
1 parent 60736a7 commit 2056dfd

2 files changed

Lines changed: 23 additions & 22 deletions

File tree

docs/adrs/README.md

Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -4,25 +4,26 @@ This directory contains architecture decision records (ADRs) for nextgen.
44

55
## Index
66

7-
| ID | Title | Summary |
8-
|---|---|---|
9-
| [001](001-server-cli-cobra-viper.md) | Standardize Server Command Surface on Cobra and Viper | Proposes Cobra and Viper as the standard server command/configuration stack; captures open questions around backend-specific option presentation. |
10-
| [002](002-multi-package-release-strategy.md) | Multi-package Release Strategy | GoReleaser for the server binary and embedded console; changesets for npm packages; console ships with the server version, not as a standalone npm package. |
11-
| [003](003-create-first-claim-later.md) | Create First, Claim Later | **Withdrawn.** Pre-claim/claim lifecycle removed from CLI and api-mock pending a server-side `claim` contract. |
12-
| [004](004-agent-contract-and-agents-md.md) | CLI Agent Contract and SKILLS.md | `apps/cli/SKILLS.md` is the CLI agent guidance; agents use `--non-interactive --json` and parse the stable envelope. |
13-
| [005](005-public-runtime-private-credentials.md) | Public Runtime and Private Credentials | Browser UI receives only public runtime metadata; secrets stay in CLI, server, or secret stores. |
14-
| [006](006-web-component-renderer-direction.md) | Web Component Renderer Direction | Target auth UI is a `<zitadel-flow>` web component; React shim prepares the contract until the package ships. |
15-
| [007](007-gitops-configuration-surface.md) | GitOps Configuration Surface | Repo files describe config; `plan`/`apply` validate and upload bundles; local secrets excluded from VCS. |
16-
| [008](008-users-eav-store.md) | Scalable EAV Storage for User Attributes | Partitioned header/EAV/registry model for user attributes at scale with uniqueness enforcement. |
17-
| [009](009-user-json-schema-validation.md) | User JSON Schema Validation | Users validated with instance-stored JSON Schemas; `$schema` URL versioning; no automatic cross-schema migration; upgrades via transactional PUT/PATCH with validation before commit. |
18-
| [010](010-session-auth-attempt-check-model.md) | Session, Auth Attempt, and Check Persistence | ER model for sessions, auth attempts, checks, and authenticators; handoff and step-up; `failure_count` on checks; merged session and auth-attempt repository module. |
19-
| [011](011-resource-identifiers.md) | Resource Identifier Strategy | Ephemeral DB-generated integers vs managed API strings; PostgreSQL and Spanner DDL; `database.Identity` in Go. |
20-
| [012](012-ephemeral-id-api-representation.md) | Ephemeral Identifier API Representation | Placeholder: deferred decision on how ephemeral integer ids appear in HTTP/OpenAPI. |
21-
| [013](013-passkey-gate-contract.md) | Passkey Action Contract | WebAuthn passkey as actions with `ceremony` property (not gates); structured JSON proofs via `ceremony_proof`; conditional UI via autofill; attestation `none` by default. |
22-
| [014](014-design-tokens-and-ui-react-pairs.md) | Design tokens and paired React components | Figma-driven `@zitadel/design-tokens` is the only producer of `--zl-*` variables; Lit atoms and paired React components both read them; console embeds the Lit orchestrator via a tiny `createElement` wrapper, no `@lit/react`. |
23-
| [015](015-shared-component-styles.md) | Shared component styles | `@zitadel/shared-component-styles` owns `.zr-*` surface CSS for Lit/React pairs; opt-in per `pairs.json`; Lit adds thin `lit/*-host.css` for shadow-only rules. |
24-
| [016](016-global-api-initializer.md) | Global SDK Configuration | Write-once `configureZitadel()` sets app-wide config (`apiBase`, `projectId`, `sessionExchangePath`) once at startup; web components read from shared config, attributes become optional overrides. |
25-
| [017](017-flow-engine-auth-attempt-dispatch.md) | Flow Engine Auth-Attempt Dispatch for Signin vs Signup | **Draft.** How a flow step opts in/out of identifier resolution and credential verification; explicit step property + writer manifest preferred over implicit `user_not_found`-transition reading; SSO refinements. |
26-
| [018](018-widget-owned-locale-resolution.md) | Widget-owned Locale Resolution | `<zitadel-login>` auto-detects language from `navigator.language`; `lang` attribute and `locales` map enable explicit control and partial overrides; SDKs do not perform server-side language detection. |
27-
| [019](019-captcha-gate-and-bot-signals.md) | Captcha Gate Contract & Bot-Detection Signals | Captcha is the one gate kind: in-flow provider gate (built-in Altcha + BYO third-party keys) verified via auth_attempts; edge/platform verdict (Vercel/Cloudflare) carried as an authenticated inline header from the SDK proxy, trusted via the project secret. |
28-
| [021](021-ordered-arrays-for-step-fields-actions-gates.md) | Ordered Arrays for Step Fields, Actions, and Gates | Runtime and definition step payloads serialize `fields`/`actions`/`gates` as ordered arrays of `{name, ...}` entries instead of name-keyed dicts; `transitions` stays a dict; default Liquid template keeps keyed lookups via a render-local `*_by_name` map. |
7+
| ID | Title | Summary |
8+
| ---------------------------------------------------------- | ------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
9+
| [001](001-server-cli-cobra-viper.md) | Standardize Server Command Surface on Cobra and Viper | Proposes Cobra and Viper as the standard server command/configuration stack; captures open questions around backend-specific option presentation. |
10+
| [002](002-multi-package-release-strategy.md) | Multi-package Release Strategy | GoReleaser for the server binary and embedded console; changesets for npm packages; console ships with the server version, not as a standalone npm package. |
11+
| [003](003-create-first-claim-later.md) | Create First, Claim Later | **Withdrawn.** Pre-claim/claim lifecycle removed from CLI and api-mock pending a server-side `claim` contract. |
12+
| [004](004-agent-contract-and-agents-md.md) | CLI Agent Contract and SKILLS.md | `apps/cli/SKILLS.md` is the CLI agent guidance; agents use `--non-interactive --json` and parse the stable envelope. |
13+
| [005](005-public-runtime-private-credentials.md) | Public Runtime and Private Credentials | Browser UI receives only public runtime metadata; secrets stay in CLI, server, or secret stores. |
14+
| [006](006-web-component-renderer-direction.md) | Web Component Renderer Direction | Target auth UI is a `<zitadel-flow>` web component; React shim prepares the contract until the package ships. |
15+
| [007](007-gitops-configuration-surface.md) | GitOps Configuration Surface | Repo files describe config; `plan`/`apply` validate and upload bundles; local secrets excluded from VCS. |
16+
| [008](008-users-eav-store.md) | Scalable EAV Storage for User Attributes | Partitioned header/EAV/registry model for user attributes at scale with uniqueness enforcement. |
17+
| [009](009-user-json-schema-validation.md) | User JSON Schema Validation | Users validated with instance-stored JSON Schemas; `$schema` URL versioning; no automatic cross-schema migration; upgrades via transactional PUT/PATCH with validation before commit. |
18+
| [010](010-session-auth-attempt-check-model.md) | Session, Auth Attempt, and Check Persistence | ER model for sessions, auth attempts, checks, and authenticators; handoff and step-up; `failure_count` on checks; merged session and auth-attempt repository module. |
19+
| [011](011-resource-identifiers.md) | Resource Identifier Strategy | Ephemeral DB-generated integers vs managed API strings; PostgreSQL and Spanner DDL; `database.Identity` in Go. |
20+
| [012](012-ephemeral-id-api-representation.md) | Ephemeral Identifier API Representation | Placeholder: deferred decision on how ephemeral integer ids appear in HTTP/OpenAPI. |
21+
| [013](013-passkey-gate-contract.md) | Passkey Action Contract | WebAuthn passkey as actions with `ceremony` property (not gates); structured JSON proofs via `ceremony_proof`; conditional UI via autofill; attestation `none` by default. |
22+
| [014](014-design-tokens-and-ui-react-pairs.md) | Design tokens and paired React components | Figma-driven `@zitadel/design-tokens` is the only producer of `--zl-*` variables; Lit atoms and paired React components both read them; console embeds the Lit orchestrator via a tiny `createElement` wrapper, no `@lit/react`. |
23+
| [015](015-shared-component-styles.md) | Shared component styles | `@zitadel/shared-component-styles` owns `.zr-*` surface CSS for Lit/React pairs; opt-in per `pairs.json`; Lit adds thin `lit/*-host.css` for shadow-only rules. |
24+
| [016](016-global-api-initializer.md) | Global SDK Configuration | Write-once `configureZitadel()` sets app-wide config (`apiBase`, `projectId`, `sessionExchangePath`) once at startup; web components read from shared config, attributes become optional overrides. |
25+
| [017](017-flow-engine-auth-attempt-dispatch.md) | Flow Engine Auth-Attempt Dispatch for Signin vs Signup | **Draft.** How a flow step opts in/out of identifier resolution and credential verification; explicit step property + writer manifest preferred over implicit `user_not_found`-transition reading; SSO refinements. |
26+
| [018](018-widget-owned-locale-resolution.md) | Widget-owned Locale Resolution | `<zitadel-login>` auto-detects language from `navigator.language`; `lang` attribute and `locales` map enable explicit control and partial overrides; SDKs do not perform server-side language detection. |
27+
| [019](019-captcha-gate-and-bot-signals.md) | Captcha Gate Contract & Bot-Detection Signals | Captcha is the one gate kind: in-flow provider gate (built-in Altcha + BYO third-party keys) verified via auth_attempts; edge/platform verdict (Vercel/Cloudflare) carried as an authenticated inline header from the SDK proxy, trusted via the project secret. |
28+
| [021](021-ordered-arrays-for-step-fields-actions-gates.md) | Ordered Arrays for Step Fields, Actions, and Gates | Runtime and definition step payloads serialize `fields`/`actions`/`gates` as ordered arrays of `{name, ...}` entries instead of name-keyed dicts; `transitions` stays a dict; default Liquid template keeps keyed lookups via a render-local `*_by_name` map. |
29+
| [022](022-flow-back-navigation.md) | Flow Back-Navigation | Back-navigation uses the existing action contract. The `<zitadel-login>` orchestrator additionally integrates with the browser's **History API** so that the native back gesture (swipe, button, keyboard shortcut) maps to the same `back` action — without reloading the page or losing widget state. |

0 commit comments

Comments
 (0)