Skip to main content

Architecture Decision Records

Immutable record of Eigenoid's architectural and organizational decisions. Each ADR captures a significant decision, the context behind it, the alternatives considered, and its consequences.

Principles​

  • Immutable: once Accepted, an ADR is never edited. If the decision changes, a new ADR is created that supersedes the previous one.
  • Sequential numbering: numbers are never reused, even for rejected ADRs.
  • Written before or during the decision: these are not retroactive documentation; they capture the thinking at the time.
  • Broad scope: decisions that affect more than one module, repo, or person. Local decisions belong in the code or in PRs.

Statuses​

StatusMeaning
ProposedOpen proposal under discussion, not yet adopted.
AcceptedActive decision.
RejectedDiscarded proposal; kept to preserve the reasoning.
DeprecatedNo longer applies, but was not replaced by another decision.
Superseded by ADR-NNNNReplaced by a later ADR.

Index​

#TitleStatusDate
0001Create a dedicated organization (eigenoid)Accepted2026-04-17
0002Dedicated repository for internal-docsAccepted2026-04-17
0003Adopt ADR formatAccepted2026-04-17
0004GitHub App as default for pipeline tokensAccepted2026-04-17
0005Generic block page for Cloudflare AccessAccepted2026-04-18
0006safe-settings for GitHub governanceAccepted2026-04-18
0007Declarative repo lifecycle governanceAccepted2026-04-19
0008Terraform shared infra modelAccepted2026-04-15
0009GCP multi-project architectureAccepted2026-04-20
0010Split monorepo into core + studioAccepted2026-04-19
0011Repository naming conventionAccepted2026-04-21
0012Auto-bootstrap Terraform state bucketsAccepted2026-04-25
0013safe-settings IaC on Cloud RunAccepted2026-04-24
0014Cloudflare Workers as API GatewayAccepted2026-07-10
0015Studio multi-tenant SaaS aligned with svc-accessAccepted2026-04-30
0016Studio repo split (app-studio + svc-studio + iac-studio)Accepted2026-04-30
0017Studio schema migrations with AlembicAccepted2026-05-04
0018Cloudflare Turnstile widget managed in Terraform with secret pipe to Secret ManagerAccepted2026-07-10
0019MFA auth hardening (RFC-007): TOTP, WebAuthn passkeys, and session state machineAccepted2026-05-22
0020Environment-specific Turnstile keys via use_test_turnstile_keys toggleAccepted2026-05-22

How to propose a new ADR​

  1. Copy template.md as NNNN-short-title.md with the next available number.
  2. Fill in the context, decision, and consequences.
  3. Open a PR with status Proposed and request review.
  4. Once accepted, update the status to Accepted, add the entry to this index, and merge.