docs(T07): settle the approver origin as decisions.coulomb.social
The operator assigned decisions.coulomb.social, not the decide.coulomb.social this workplan proposed. Redirect URIs match byte-exactly at /authorize, so the proposal is corrected in place rather than reconciled after submission — a one-character miss presents as a rejected approval, not as a registration defect. DNS resolves. The Ingress and certificate are written in railiance-apps (manifests/informed-decision-ingress.yaml, dry-run clean) but not applied, so T07 stays progress: DNS alone is not an origin, and a host that does not answer over TLS fails the same way a wrong hostname does, only later. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EJbh7o7UWF4tQ5jxygnNGu Assistant: claude-code Assistant-Model: opus Assistant-Process: 2072522@bnt-lap001 Assistant-Session: 46173adf-7302-4ede-99d6-963b61359928
This commit is contained in:
parent
0838bf81fa
commit
4d33a59f5b
2 changed files with 41 additions and 19 deletions
|
|
@ -28,25 +28,34 @@ That component is this repository. These are the two strings.
|
||||||
| Field | Value |
|
| Field | Value |
|
||||||
| --- | --- |
|
| --- | --- |
|
||||||
| `client_id` | `informed-decision-approver` |
|
| `client_id` | `informed-decision-approver` |
|
||||||
| Redirect URI | `https://<origin>/auth/callback` |
|
| Redirect URI | `https://decisions.coulomb.social/auth/callback` |
|
||||||
|
|
||||||
**`client_id` is fixed and stable.** It will not change.
|
**`client_id` is fixed and stable.** It will not change.
|
||||||
|
|
||||||
**The origin is the one outstanding input.** Redirects match exactly at
|
**The origin is settled.** 2026-09-10: the operator assigned
|
||||||
`/authorize`, so a near-miss fails closed — which is precisely why
|
`decisions.coulomb.social` to this surface. It is not the
|
||||||
`approval-engine` refused to guess and why this document is not yet submitted.
|
`decide.coulomb.social` this document proposed — the assigned name is the one
|
||||||
|
that counts, and it is recorded here rather than the proposal, because
|
||||||
|
redirects match exactly at `/authorize` and a near-miss fails closed. That
|
||||||
|
exactness is why `approval-engine` refused to guess in the first place, and it
|
||||||
|
is the reason the proposed name is corrected here before submission rather
|
||||||
|
than reconciled afterwards.
|
||||||
|
|
||||||
- **Proposed:** `decide.coulomb.social`, giving
|
- **Assigned:** `decisions.coulomb.social`, giving
|
||||||
`https://decide.coulomb.social/auth/callback`.
|
`https://decisions.coulomb.social/auth/callback`.
|
||||||
- **Consistent with** the estate's existing pattern (`forgejo.coulomb.social`,
|
- **Consistent with** the estate's existing pattern (`forgejo.coulomb.social`,
|
||||||
`hub.coulomb.social`, `kc.coulomb.social`), Traefik `ingressClassName`, TLS
|
`hub.coulomb.social`, `kc.coulomb.social`), Traefik `ingressClassName`, TLS
|
||||||
secret per host.
|
secret per host.
|
||||||
- **Requires, in `railiance-apps` rather than here:** a DNS A record for
|
- **DNS resolves** to the cluster address as of 2026-09-10.
|
||||||
`decide.coulomb.social`, an Ingress manifest, and a certificate.
|
- **Still requires, in `railiance-apps` rather than here:** an Ingress manifest
|
||||||
|
and an issued certificate. Manifest written 2026-09-10
|
||||||
|
(`manifests/informed-decision-ingress.yaml`); not yet applied.
|
||||||
|
|
||||||
**This document is submitted to `key-cape` when that origin resolves — not
|
**This document is submitted to `key-cape` once the host answers over TLS — not
|
||||||
before.** The path component `/auth/callback` is fixed now so only the host
|
before.** DNS alone is not the origin; an origin that does not complete a TLS
|
||||||
remains variable.
|
handshake fails the same way a wrong hostname does, only later. The path
|
||||||
|
component `/auth/callback` was fixed ahead of the host, so nothing else in this
|
||||||
|
registration moves.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -163,6 +172,6 @@ while it stands.
|
||||||
|
|
||||||
| # | Item | Owner |
|
| # | Item | Owner |
|
||||||
| --- | --- | --- |
|
| --- | --- | --- |
|
||||||
| 1 | DNS A record + Ingress + TLS for the chosen origin | `railiance-apps` / deployment |
|
| 1 | ~~DNS A record~~ (done 2026-09-10) + Ingress + TLS for `decisions.coulomb.social` | `railiance-apps` / deployment |
|
||||||
| 2 | Submit this document to `key-cape`, closing `KEY-WP-0013-T02` | this repo, once 1 lands |
|
| 2 | Submit this document to `key-cape`, closing `KEY-WP-0013-T02` | this repo, once 1 lands |
|
||||||
| 3 | Prove a token issued against the registration is accepted by `approval-engine` | `T08` |
|
| 3 | Prove a token issued against the registration is accepted by `approval-engine` | `T08` |
|
||||||
|
|
|
||||||
|
|
@ -380,13 +380,26 @@ not be declared unless we are prepared to say so in the record. We are, and it
|
||||||
is said there, along with the two consequences: the claim is stored with its
|
is said there, along with the two consequences: the claim is stored with its
|
||||||
provenance, and it is never used as the act-scope.
|
provenance, and it is never used as the act-scope.
|
||||||
|
|
||||||
**Not submitted, and the task stays `progress`.** The origin
|
2026-09-10 — **origin assigned.** The operator assigned
|
||||||
(`decide.coulomb.social` proposed, consistent with the estate's existing
|
`decisions.coulomb.social`, not the `decide.coulomb.social` this workplan
|
||||||
Traefik/TLS-per-host pattern) needs a DNS A record, an Ingress manifest and a
|
proposed. `docs/keycape-client-registration.md` §2 is corrected to the assigned
|
||||||
certificate — work in `railiance-apps`, not here. Submitting a redirect for a
|
name; the proposal is not preserved anywhere a reader could mistake it for the
|
||||||
host that does not resolve is the exact failure `approval-engine` avoided by
|
registration, because a redirect URI that is one character off fails closed at
|
||||||
refusing to invent these strings in the first place, and choosing a plausible
|
`/authorize` and presents as a rejected login rather than a registration
|
||||||
hostname is not the same as owning one.
|
defect. DNS resolves to the cluster address.
|
||||||
|
|
||||||
|
**Still not submitted, and the task stays `progress`.** What remains is the
|
||||||
|
Ingress manifest and an issued certificate — work in `railiance-apps`, not
|
||||||
|
here. The manifest is written there
|
||||||
|
(`manifests/informed-decision-ingress.yaml`, dry-run clean) but deliberately
|
||||||
|
not applied. DNS alone is not an origin: a host that resolves but does not
|
||||||
|
complete a TLS handshake fails the same way a wrong hostname does, only later
|
||||||
|
and less legibly. Submitting before the host actually answers would be the
|
||||||
|
same failure `approval-engine` avoided by refusing to invent these strings —
|
||||||
|
owning a name is not the same as the name working.
|
||||||
|
|
||||||
|
Superseded context: the origin was previously the sole blocker in its
|
||||||
|
unowned form — choosing a plausible hostname is not the same as owning one.
|
||||||
|
|
||||||
Superseded context: 2026-09-09: blocked on `INFD-IN-0002`. `key-cape` found that a human access
|
Superseded context: 2026-09-09: blocked on `INFD-IN-0002`. `key-cape` found that a human access
|
||||||
token cannot carry `tenant:platform` today — the tenant claim resolves from a
|
token cannot carry `tenant:platform` today — the tenant claim resolves from a
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue