Skip to content

Commit b79e32d

Browse files
committed
docs(adr-009): consolidate ADR & retire implementation plan
Now that ADR-T-009 Phases 1–9 have all landed, fold the implementation plan into the ADR proper and retire the standalone plan document. The ADR now carries a single decision-log section (§D1–§D8) that supersedes the dual "ADR §N / plan §M" numbering the working docs grew during the phased rollout. - Delete adr/009-implementation-plan.md (3.2k lines); the surviving decisions live in the consolidated ADR. - Rework adr/009-container-infrastructure-refactor.md: drop the "Implementation plan" pointer, mark status simply "Implemented", and re-anchor every internal reference onto the §D-series IDs. - Re-point all stale §N / §9.x / §7.3 cross-references in the CI workflow, Containerfile, entry script, su-exec AUDIT, the containers guide, and the config-probe rustdoc onto their §D equivalents (or onto Acceptance Criterion #N where the plan numbering had no ADR analogue). - Rewrite the CHANGELOG [Unreleased] block as a release-shaped narrative (Highlights / Breaking changes / Added / Changed / Removed / Fixed / Security) rather than a chronological dump of phase bullets. - Update src/lib.rs rustdoc and README.md to reflect the §D2 decision: tracker.token and database.connect_url are now mandatory schema fields with no shipped defaults, so the docker quick-start now shows the required env-var overrides and the Configuration section names both fields as mandatory. Also correct TORRUST_INDEX_CONFIG_PATH → TORRUST_INDEX_CONFIG_TOML_PATH and link the new container guide / ADR alongside the legacy docker docs pointer. - Mention the standalone torrust-index-config crate in the Configuration section so readers know where the parsing surface lives. No code or runtime behaviour changes; this is purely the post-merge documentation tidy-up for ADR-T-009.
1 parent 57b76e0 commit b79e32d

12 files changed

Lines changed: 1575 additions & 4336 deletions

File tree

.github/workflows/container.yaml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,12 @@ jobs:
4242
# output points the reader at the real line.
4343
if awk '{ sub(/#.*/, ""); print }' compose.yaml \
4444
| grep -nE 'mailcatcher|MAILER|SMTP|smtp_'; then
45-
echo "::error file=compose.yaml::dev mail sidecar / SMTP config present in production-shaped baseline (ADR-T-009 §8.1, §9.1.3)"
45+
echo "::error file=compose.yaml::dev mail sidecar / SMTP config present in production-shaped baseline (ADR-T-009 §D1 / §8.1)"
4646
exit 1
4747
fi
4848
echo "compose.yaml clean."
4949
50-
# Phase 9 §9.2 — vendored `su-exec.c` must not change
50+
# Phase 9 / ADR-T-009 §D8 — vendored `su-exec.c` must not change
5151
# without a fresh audit entry recording the new SHA-256
5252
# in contrib/dev-tools/su-exec/AUDIT.md.
5353
- id: su-exec-audit
@@ -59,17 +59,17 @@ jobs:
5959
recorded=$(sed -n '/^## Audit Log/,$ { s/^SHA-256: \([0-9a-f]\{64\}\)$/\1/p; }' "$audit" | tail -1)
6060
actual=$(sha256sum contrib/dev-tools/su-exec/su-exec.c | cut -d' ' -f1)
6161
if [ -z "$recorded" ]; then
62-
echo "::error file=$audit::no SHA-256 entry found in '## Audit Log' section (ADR-T-009 §9.2)"
62+
echo "::error file=$audit::no SHA-256 entry found in '## Audit Log' section (ADR-T-009 §D8)"
6363
exit 1
6464
fi
6565
if [ "$recorded" != "$actual" ]; then
66-
echo "::error file=$audit::recorded SHA-256 ($recorded) does not match contrib/dev-tools/su-exec/su-exec.c ($actual). Append a new dated audit entry per ADR-T-009 §9.2."
66+
echo "::error file=$audit::recorded SHA-256 ($recorded) does not match contrib/dev-tools/su-exec/su-exec.c ($actual). Append a new dated audit entry per ADR-T-009 §D8."
6767
exit 1
6868
fi
6969
echo "su-exec audit current ($actual)."
7070
71-
# Phase 9 §9 / Acceptance Criterion #7 — every env var
72-
# listed in the entry script's manifest block must be
71+
# Phase 9 / ADR-T-009 Acceptance Criterion #7 — every env
72+
# var listed in the entry script's manifest block must be
7373
# documented in docs/containers.md.
7474
- id: entry-env-docs
7575
name: entry-script env vars documented
@@ -80,7 +80,7 @@ jobs:
8080
| grep -oE '[A-Z][A-Z0-9_]+' \
8181
| sort -u)
8282
if [ -z "$vars" ]; then
83-
echo "::error file=$script::ENTRY_ENV_VARS manifest block not found or empty (ADR-T-009 §9 Crit. #7)"
83+
echo "::error file=$script::ENTRY_ENV_VARS manifest block not found or empty (ADR-T-009 Acceptance Criterion #7)"
8484
exit 1
8585
fi
8686
missing=0

CHANGELOG.md

Lines changed: 371 additions & 439 deletions
Large diffs are not rendered by default.

Containerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ RUN mkdir -p /app/bin/; \
123123
# Phase 4: per-binary modes. Application binary stays
124124
# world-executable; root-phase-only helpers (health-check,
125125
# auth-keypair, config-probe) tighten to root-only
126-
# (0500 root:root) per ADR-T-009 §6 / §7.3 — same posture as
126+
# (0500 root:root) per ADR-T-009 §D4 / §D5 — same posture as
127127
# busybox, su-exec, jq. The healthcheck binary is invoked
128128
# from HEALTHCHECK, which runs as root (no --user in the
129129
# directive), so 0500 is sufficient. The config-probe is
@@ -156,7 +156,7 @@ RUN mkdir -p /app/bin/; \
156156
# Phase 4: per-binary modes (see test_debug above for rationale).
157157
# The healthcheck binary is invoked from HEALTHCHECK, which
158158
# runs as root (no --user in the directive), so 0500 is
159-
# sufficient. The config-probe (ADR-T-009 §6 / §7) is invoked
159+
# sufficient. The config-probe (ADR-T-009 §D3) is invoked
160160
# only from the entry script's pre-su-exec phase, so it is
161161
# also root-only.
162162
RUN chown -R root:root /app; chmod -R u=rw,go=r,a+X /app; \

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ _Optionally, you may choose to supply the entire configuration as an environment
125125
TORRUST_INDEX_CONFIG_TOML=$(cat "./storage/index/etc/index.toml") cargo run
126126
```
127127

128-
_For deployment, you __should__ override the `tracker_api_token`:_
128+
_For deployment, you __should__ override the `tracker.token` (per ADR-T-009 §D2 it is mandatory; the shipped TOMLs no longer carry a default):_
129129

130130
```sh
131131
# Override secrets in configuration using environmental variables

adr/009-container-infrastructure-refactor.md

Lines changed: 1154 additions & 695 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)