Repository navigation
Architecture Decisions
Aryan edited this page Sep 22, 2026
·
1 revision
Architecture decision records (ADRs) capture consequential choices, their context, and their tradeoffs. They complement the specifications: an ADR explains why; a specification defines observable behavior.
- Proposed: drafted for review and not yet binding.
- Accepted: approved and expected to guide implementation.
- Deprecated: still present but discouraged.
- Superseded: replaced by a later ADR, which must be linked.
- ADR 0001: Use a modular monorepo — Accepted
- ADR 0002: Model datasets as Git repositories — Accepted
- ADR 0003: Use Git LFS with an S3-compatible data plane — Accepted
- ADR 0004: Use the dataset as the read-authorization boundary — Accepted
- ADR 0005: Transfer large objects directly rather than through Django — Accepted
- ADR 0006: Store bare repositories on a persistent filesystem and serve them with Git — Accepted
- ADR 0007: Use one S3-compatible bucket with dataset-scoped keys — Accepted
- ADR 0008: Use Python 3.13 and Django 5.2 LTS — Accepted
- ADR 0009: Distribute the CLI and filesystem client as one Python package — Accepted
- ADR 0010: Deploy the Nuxt web application as a static SPA — Accepted
- ADR 0011: Support standard Git and Git LFS workflows — Accepted
- ADR 0012: Ship one self-contained single-node Compose deployment — Accepted
Copy this shape into the next zero-padded file:
# ADR NNNN: Decision title
- **Status:** Proposed
- **Date:** YYYY-MM-DD
## Context
What forces and constraints require a decision?
## Decision
What are we choosing?
## Consequences
What becomes easier, harder, or deliberately deferred?Do not rewrite an accepted ADR to conceal a changed decision. Supersede it with a new record.
Niyān development
Specifications
- Index
- Authentication
- Authorization
- Namespaces and datasets
- Repository access
- Git write transport
- Git LFS and object storage
- Protected refs
- CLI
- CLI LFS tracking
- Python filesystem client
- Web application
- Browser uploads and commits
- Audit events
Architecture
- Decision index
- ADR 0001 — Modular monorepo
- ADR 0002 — Git-native datasets
- ADR 0003 — Git LFS data plane
- ADR 0004 — Dataset access boundary
- ADR 0005 — Direct object transfers
- ADR 0006 — Git repository hosting
- ADR 0007 — Shared S3 bucket
- ADR 0008 — Backend baseline
- ADR 0009 — Unified Python client
- ADR 0010 — Static Nuxt SPA
- ADR 0011 — Standard Git workflows
- ADR 0012 — Self-contained Compose