Files
adebisi-fa 8a13fb527e docs(openspec): archive fingerprint-token-auth after the production pass
The wizard's a2loft calls now authenticate with the session token and carry no
OTP. Field pass in production: the lookup and both fingerprint saves succeeded
with no OTP, so task 3.2 is done. Merged the fingerprint-wizard and tools-app
deltas into the main specs and archived the change.
2026-10-06 19:19:29 +01:00

31 lines
1.3 KiB
Markdown

# Tasks
## 1. Proxies
- [x] 1.1 `tools/server.js`: `a2loftUrl`/`a2loftSaveUrl` drop `phone`/`otp`;
both handlers send `Authorization: Bearer ${req.session.token}`;
`validateProxy` drops the OTP/phone checks and keeps domain + reference.
Verified: the proxy tests assert the Bearer header and no query auth.
- [x] 1.2 Update the proxy tests: assert no `?otp`, assert the Bearer header,
and drop the no-OTP rejection case while the auth/domain rejection remains
(no a2loft call). Verified.
## 2. Wizard UI
- [x] 2.1 `tools/public/assets/fp/index.html`: remove the lookup and save OTP
inputs.
- [x] 2.2 `tools/public/assets/fp/app.js`: remove `otpLookup`/`otpSave`, the
`otp` request params, and the OTP resets; tighten `canLookup`/`canSave`.
Verified: the served page has no OTP field (server test) and both gates pass
without a credential (wizard test).
- [x] 2.3 Update the `fingerprint-wizard` and `tools-app` spec deltas, README
steps 1/3, the a2loft proxy paragraph, and the Help page.
## 3. Verify
- [x] 3.1 Run the full tools test suite (`node --test`) and confirm it passes.
(66/66 pass.)
- [x] 3.2 Field pass against a real domain (a2loft deployed): look up a
reference and save both fingerprints with no OTP. Verified in production:
the lookup and both fingerprint saves succeeded with no OTP.