ADR-004: back out of on-stack RAP; retarget to starter customizing tenant

Both tenants belong to the same starter system: my429480 is its
customizing tenant (client 100, key-user extensibility only, no ABAP)
and my431353 is its development tenant (client 080). This package had
recorded my429480 as "productive" and ADR-002 had assumed it offered
developer extensibility; both were wrong.

- ADR-004 withdraws the on-stack RAP route and moves the application to
  a side-by-side runtime against released OData APIs. ADR-002 marked
  superseded.
- Development tenant my431353 parked: all 19 ZARENA_PLM objects left
  active, sources kept in docs/handover/rap/ as reference, so the route
  stays reversible.
- Replacement host left open as OQ-11 (key-user extensibility vs CAP
  side-by-side); recommendation recorded as CAP. No build starts until
  OQ-11 is closed.
- RAP-dependent items V-2, V-3, OQ-5, OQ-8, OQ-9, OQ-10 parked rather
  than closed.
- Tenant references corrected across CLAUDE.md, KNOWLEDGE.md,
  app/README.md, the RAP handover README, the rap-developer agent and
  the reentrance-login helper README.

No SAP tenant was modified.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-29 10:33:29 -07:00
co-authored by Claude Opus 5
parent 468729eb4e
commit ffd33f4ec0
10 changed files with 332 additions and 57 deletions
+89
View File
@@ -2,6 +2,95 @@
Append-only decision log for this package.
## 2026-09-29 — Tooling retargeted to the starter customizing tenant; its credential is rejected
- What changed:
- I pointed the shared CLI at the starter system's customizing tenant. Both
`_shared/.env` and the root `.env` now carry `SAP_API_URL`,
`SAP_API_USER` and `SAP_API_PASSWORD` for
`https://my429480-api.s4hana.cloud.sap`; the eight `CPI_*` and `ARENA_*`
variables are untouched.
- I renamed both parked credential files so neither name asserts something
false: the client-080 credential is now
`_shared/.env.starter-dev-my431353.bak`, and the client-100 credential is
`_shared/.env.starter-cust-my429480.bak` (formerly `.env.prod-my429480.bak`,
a name that wrongly called it productive).
- I corrected the tenant references in `CLAUDE.md`, `KNOWLEDGE.md`,
`app/README.md`, `docs/handover/rap/README.md` and
`.claude/agents/rap-developer.md`: the customizing tenant is the working
target, the development tenant is parked as of 2026-09-29 with its objects
in place. No historical build record was deleted.
- I wrote `docs/adr/ADR-004-back-out-of-on-stack-rap.md` and marked ADR-002
superseded in its own file, including the note that its gate "confirm
developer-extensibility access on my429480" was unanswerable as written.
- Verification: **the customizing-tenant credential is rejected.** Read-only
GETs return HTTP 401 with SAP's logon-failed page (`Anmeldung
fehlgeschlagen`); the host resolves and answers, so this is the credential,
not reachability. I then checked every other way in and found none: the
rejected password is the only copy of that credential anywhere in my estate;
the Cloud Foundry token is expired, so the `mc-s4hana` destination is out of
reach; and the client-certificate path in the shared client looks for
`_shared/certs/az-api-user.crt` and `.key`, which do not exist. No writes of
any kind were issued to any tenant.
- Affected: `_shared/.env`, `.env`, both `.bak` files, five reference documents,
ADR-002, new ADR-004. No SAP tenant was modified.
- Decision: I left the retarget in place rather than rolling back to the
development tenant, because reverting would only restore access to the tenant
I am deliberately leaving. Restoring read access to the customizing tenant is
now a prerequisite for any verification, and the cheapest route is a Cloud
Foundry re-login — that reaches the tenant through the `mc-s4hana` destination
and needs no password at all, which is also what my coding standard requires.
## 2026-09-29 — ADR-004: I withdraw the on-stack RAP route; development tenant parked
- What changed: I corrected a tenant mislabel that had propagated through this
package, and on the corrected facts I withdrew ADR-002.
- Both `my429480` and `my431353` are tenants of the **starter system**.
`my429480` is its **customizing** tenant (client 100); `my431353` is its
**development** tenant (client 080). This package had `my429480` recorded
as "productive" and treated `my431353` as a separate development system;
both readings were wrong, and the parked credential file name
(`.env.prod-my429480.bak`) encoded the same error.
- The customizing tenant supports **key-user extensibility only** — no ABAP,
no RAP; developer extensibility exists only on client 080 [source:
fiori-tools-samples `misc/s4hana/README` "Tenant Types", verified
2026-09-29].
- I therefore parked the development tenant `my431353`, leaving all 19
activated `ZARENA_PLM` objects in place, and moved the application back to
a side-by-side runtime against released APIs.
- I rewrote the PRD accordingly: new target architecture, corrected
Systems & boundaries rows, amended acceptance test, ADR-002 marked
superseded, ADR-004 added, and the RAP-dependent verification items
(V-2, V-3, OQ-5, OQ-8, OQ-9, OQ-10) parked rather than closed (OQ-12).
- Why: I am not carrying an ABAP/RAP build for this package, and the tenant I
am working in cannot host one even if I wanted to. Keeping a PRD that
asserted an impossible architecture would have been worse than the rebuild.
- Affected: PRD.md (vision, target architecture, systems, decisions, open
questions, status), the parked tenant `my431353`, ADR-002.
- Decision: ADR-004. I park rather than delete, so the RAP route stays
reversible at zero cost. I left the replacement host open as OQ-11 —
key-user extensibility in the tenant versus a CAP service side-by-side —
and recorded my recommendation for CAP, because the connectivity worker has
to be side-by-side regardless and one runtime beats two. I will not start
building until OQ-11 is decided.
## 2026-09-29 — Outstanding sources committed and pushed
- What changed: I committed the working-tree state that had sat uncommitted
since the initial `upload current sources` commit, and pushed it: `468729e`,
42 files, 4614 insertions, 1697 deletions, fast-forward onto `origin/main`.
It carries the renamed RAP handover sources (the 11 generator-suffixed
`zz*000` names replaced by the clean object names actually built on the
tenant), the `app/` rebind edits, the build record through 2026-09-19, the
retained reentrance-login helper and the captured live `$metadata`. It drops
two files that never belonged in the repository: a tracked Eclipse installer
under a URL-mangled filename, and a machine-specific workspace file.
- Why: the package held six weeks of unversioned work, and I was about to
change direction. Nothing should be lost across that pivot.
- Affected: the whole repository; `origin/main` now matches the working tree.
- Decision: I committed the deletions as they stood rather than restoring
either file. Neither is source.
## 2026-09-18 — Reentrance-ticket login for `abap-adt-mcp`: built, tested, rejected
- What changed: I built a login helper at `tools/adt-reentrance-login/`