S00-027: Document verified HTTPS npm registry connectivity
Changes: Add the bounded S00-027 connectivity record with owner confirmation, fresh registry responses, pinned libomemo.js artifact integrity and independent review handoff. Validation: Both live metadata queries and pinned metadata query exited 0; HTTPS archive SHA512 matched registry SRI without executing scripts. make check exited 0 with 72 tests; whitespace and scope inspected. No crypto/backend acceptance or application build claimed. Task: S00-027 Agent: auto-ci-cd-40ae46e8efe7 Role: ci-cd Action: claim Status: review Task title: Restore approved npm registry connectivity for the OMEMO2 backend investigation
This commit is contained in:
1 parent
8db4e4ef35
commit
0b60f3d84e
8 files changed
+125
-8
No files matched your search
@@ -0,0 +1,57 @@
|
||||
# S00-027: Approved npm registry connectivity record
|
||||
|
||||
- Status: proposed; awaiting independent security review.
|
||||
- Executor: auto-ci-cd-40ae46e8efe7 (ci-cd), 2026-10-15.
|
||||
- Input: S00-027 card, S00-022/S00-027 blockers, accepted ADR 0000/0001 and direct dependency evidence.
|
||||
- Output: connectivity evidence only for resuming the separate OMEMO2 investigation.
|
||||
|
||||
## Environment-owner confirmation
|
||||
|
||||
Canonical `state/tasks.json` history revision 74 records coordinator-input-s00-027 releasing the external wait on 2026-10-15T09:45:53+00:00. The confirmation explicitly enables sandbox outbound network while retaining workspace-write restrictions, configured proxy and TLS. It reports successful prior probes and requires fresh executor and reviewer verification. This session reproduced access; it did not alter proxy, DNS, TLS, runner configuration or system tools. No credentials or private proxy values are recorded.
|
||||
|
||||
## Actual commands and responses
|
||||
|
||||
All commands ran from project root. A fresh directory was created with Python `tempfile.mkdtemp(prefix='luma-s00-027-')`: `/tmp/luma-s00-027-kdeu0fv9`. Its cache was empty before the first query. Existing coordinator metadata, archive and cache were not used.
|
||||
|
||||
| Command | Exit | Actual response |
|
||||
| --- | --- | --- |
|
||||
| `node --version` | 0 | v24.1.0 |
|
||||
| `npm --version` | 0 | 11.3.0 |
|
||||
| `npm config get strict-ssl` | 0 | true |
|
||||
| `npm view @signalapp/libsignal-client version --json --fetch-retries=0 --fetch-timeout=15000 --cache=/tmp/luma-s00-027-kdeu0fv9/cache` | 0 | `"0.105.0"` |
|
||||
| `npm view libomemo.js version license dist.integrity dist.tarball --json --fetch-retries=0 --fetch-timeout=15000 --cache=/tmp/luma-s00-027-kdeu0fv9/cache` | 0 | 3.0.0; GPL-3.0; integrity and URL below |
|
||||
| `npm view libomemo.js@3.0.0 version license dist.integrity dist.tarball --json --fetch-retries=0 --fetch-timeout=15000 --cache=/tmp/luma-s00-027-kdeu0fv9/pinned-cache --registry=https://registry.npmjs.org/ --strict-ssl=true` | 0 | Same fields, fresh second cache |
|
||||
|
||||
No EAI_AGAIN or E404 occurred. npm emitted an update notice on the control query; no update was performed. Host runtime versions are explicitly recorded; these metadata/download-only probes do not build the application or replace ADR 0001 tool pins.
|
||||
|
||||
Pinned public artifact: [libomemo.js 3.0.0 tarball](https://registry.npmjs.org/libomemo.js/-/libomemo.js-3.0.0.tgz). Primary metadata source: [versioned registry record](https://registry.npmjs.org/libomemo.js/3.0.0).
|
||||
|
||||
Registry integrity and independently computed SHA512 SRI both equal:
|
||||
|
||||
```text
|
||||
sha512-B4he9DOS+1LQrut+b2xjOjuSkKMAkZGes7ckB5JgVk/EHVNyxLIHx6NvQ3eJVaT1XeNJaWZBonXw3Nl5YKEbig==
|
||||
```
|
||||
|
||||
## Artifact retrieval and integrity verification
|
||||
|
||||
An inline Python wrapper ran the pinned command above with `subprocess.run(..., capture_output=True, text=True)`, required exit 0, parsed its JSON into `meta`, and asserted `meta['version'] == '3.0.0'`. The following retrieval/check body then ran unchanged inside that wrapper (root is the temporary directory above):
|
||||
|
||||
```python
|
||||
url=meta['dist.tarball'];assert url=='https://registry.npmjs.org/libomemo.js/-/libomemo.js-3.0.0.tgz'
|
||||
with urllib.request.urlopen(url,context=ssl.create_default_context(),timeout=15) as response:
|
||||
assert response.status==200 and response.url==url
|
||||
data=response.read()
|
||||
sri='sha512-'+base64.b64encode(hashlib.sha512(data).digest()).decode()
|
||||
assert sri==meta['dist.integrity']
|
||||
(root/'libomemo.js-3.0.0.tgz').write_bytes(data)
|
||||
```
|
||||
|
||||
Imports were `subprocess,json,pathlib,urllib.request,ssl,hashlib,base64`. The wrapper also wrote public verification JSON under the temporary root. Actual wrapper exit: 0. HTTP status: 200; final URL unchanged; archive size: 1,061,939 bytes. SHA256: `be30116eca7014a35b3372dc1270d462cf5392ae6affc92c4f4778d003e7bbf8`. Archive saved only under `/tmp`; it was neither extracted nor installed nor executed. Python used its default validated SSL context and existing configured environment; no certificate/proxy-policy bypass was used.
|
||||
|
||||
## Acceptance boundary and review handoff
|
||||
|
||||
Both required live metadata queries and the pinned artifact/SRI verification succeeded in the fresh agent session. This proposes acceptance of network restoration only. Registry integrity matches bytes to registry metadata; it does not establish independent provenance, safety or crypto suitability. GPL-3.0 is reported metadata, not a distribution approval.
|
||||
|
||||
No crypto/backend decision, browser/WASM/worker execution, SCE mapping, audited interoperability, persistence compatibility, application build or release readiness was tested or accepted. ENC-003/009/011 remain obligations of the original investigation. The existing crypto ADR and experiments, specs, contracts and plan definitions are unchanged.
|
||||
|
||||
The assigned independent security reviewer should repeat both queries with a new empty cache, repeat pinned metadata/download/SHA512 comparison under normal TLS and the approved environment, inspect scope and evidence, then record the review through tasks.py. Only reviewed resolver completion may return S00-022 to the queue for a new agent. Coordinator owns Git commits.
|
||||
Reference in new issue
Block a user