create-principles-disciple 1.144.7 → 1.144.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_release/product-identity.json +1 -1
- package/dist/update/apply-payload.d.ts +28 -0
- package/dist/update/apply-payload.d.ts.map +1 -1
- package/dist/update/apply-payload.js +121 -27
- package/dist/update/apply-payload.js.map +1 -1
- package/dist/update/release-metadata.d.ts.map +1 -1
- package/dist/update/release-metadata.js +35 -7
- package/dist/update/release-metadata.js.map +1 -1
- package/package.json +1 -1
- package/release-manager/dist/update/apply-payload.d.ts +28 -0
- package/release-manager/dist/update/apply-payload.d.ts.map +1 -1
- package/release-manager/dist/update/apply-payload.js +121 -27
- package/release-manager/dist/update/apply-payload.js.map +1 -1
- package/release-manager/dist/update/release-metadata.d.ts.map +1 -1
- package/release-manager/dist/update/release-metadata.js +35 -7
- package/release-manager/dist/update/release-metadata.js.map +1 -1
- package/release-manager/package.json +1 -1
|
@@ -9,6 +9,10 @@
|
|
|
9
9
|
* ~/.pd/staging/<transactionId>/release-asset.tar.gz (verified download)
|
|
10
10
|
* ~/.pd/staging/<transactionId>/payload/ (extracted payload)
|
|
11
11
|
*
|
|
12
|
+
* A verified download is published onto the first path by rename: the bytes
|
|
13
|
+
* first land in a private `release-asset-<uuid>-<releaseId>.tar.gz.part`
|
|
14
|
+
* candidate in that same directory (PRI-927), which never outlives the call.
|
|
15
|
+
*
|
|
12
16
|
* Deployment writes (~/.pd/runtime, host extension dirs) belong exclusively
|
|
13
17
|
* to the installer; this module never touches them (ADR-0023 Decision 1,
|
|
14
18
|
* ADR-0024 §2.1). release-manager.ts itself stays free of filesystem
|
|
@@ -35,6 +39,21 @@ import type { ReleaseMetadata } from './release-metadata.js';
|
|
|
35
39
|
import type { ReleaseChannelName } from './product-identity.js';
|
|
36
40
|
import type { PdHomePaths } from './install-layout.js';
|
|
37
41
|
type TrustFetcher = NonNullable<Parameters<typeof resolveTrustedReleaseTarget>[0]['fetcher']>;
|
|
42
|
+
/**
|
|
43
|
+
* PRI-927: the transport for signed ASSET bytes, injectable for tests.
|
|
44
|
+
*
|
|
45
|
+
* It is fetch-shaped rather than the tuf-js `Fetcher` the metadata branch uses,
|
|
46
|
+
* because the bounded-retry policy reads the HTTP status to tell a stable
|
|
47
|
+
* refusal (404) from a transient one (408/429/5xx) — a download-by-bytes
|
|
48
|
+
* interface cannot report that. Production never injects it: the default is
|
|
49
|
+
* `globalThis.fetch`. Tests use it to drive the transport classes
|
|
50
|
+
* deterministically; it is NOT a way around the protocol gate, which checks the
|
|
51
|
+
* first URL before the transport is ever called and every redirect hop before
|
|
52
|
+
* the next request is made.
|
|
53
|
+
*/
|
|
54
|
+
export type AssetFetcher = (url: string, init?: {
|
|
55
|
+
readonly redirect?: 'manual';
|
|
56
|
+
}) => Promise<Response>;
|
|
38
57
|
/** Acquisition failure with a stable reason; release-manager.ts maps it onto the ReleaseManagerError contract. */
|
|
39
58
|
export declare class ApplyPayloadError extends Error {
|
|
40
59
|
readonly reason: 'metadata_refresh_failed' | 'release_metadata_invalid' | 'runtime_not_supported';
|
|
@@ -69,6 +88,13 @@ export interface DownloadReleaseAssetOptions {
|
|
|
69
88
|
readonly paths: PdHomePaths;
|
|
70
89
|
readonly metadataBaseUrl: string;
|
|
71
90
|
readonly fetcher?: TrustFetcher;
|
|
91
|
+
/**
|
|
92
|
+
* PRI-927: transport for the url branch only. The two branches have two
|
|
93
|
+
* genuinely different transports (the TUF client takes a `Fetcher` object,
|
|
94
|
+
* the asset carrier takes fetch), so the seams stay named separately rather
|
|
95
|
+
* than unioned. Unset in production.
|
|
96
|
+
*/
|
|
97
|
+
readonly assetFetcher?: AssetFetcher;
|
|
72
98
|
readonly releaseMetadata: ReleaseMetadata;
|
|
73
99
|
readonly channel: ReleaseChannelName;
|
|
74
100
|
/** Transaction the acquisition is journaled under; scopes the staging dir. */
|
|
@@ -85,6 +111,8 @@ export declare function downloadAndVerifyAssetFile(input: {
|
|
|
85
111
|
expectedSha256: string;
|
|
86
112
|
expectedSizeBytes?: number;
|
|
87
113
|
releaseId: string;
|
|
114
|
+
/** Test seam for the transport (PRI-927); production uses global fetch. */
|
|
115
|
+
fetcher?: AssetFetcher;
|
|
88
116
|
/** Test seam: backoff between attempts (default 2000ms × attempt). */
|
|
89
117
|
sleep?: (ms: number) => Promise<void>;
|
|
90
118
|
}): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply-payload.d.ts","sourceRoot":"","sources":["../../src/update/apply-payload.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"apply-payload.d.ts","sourceRoot":"","sources":["../../src/update/apply-payload.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,10 @@
|
|
|
9
9
|
* ~/.pd/staging/<transactionId>/release-asset.tar.gz (verified download)
|
|
10
10
|
* ~/.pd/staging/<transactionId>/payload/ (extracted payload)
|
|
11
11
|
*
|
|
12
|
+
* A verified download is published onto the first path by rename: the bytes
|
|
13
|
+
* first land in a private `release-asset-<uuid>-<releaseId>.tar.gz.part`
|
|
14
|
+
* candidate in that same directory (PRI-927), which never outlives the call.
|
|
15
|
+
*
|
|
12
16
|
* Deployment writes (~/.pd/runtime, host extension dirs) belong exclusively
|
|
13
17
|
* to the installer; this module never touches them (ADR-0023 Decision 1,
|
|
14
18
|
* ADR-0024 §2.1). release-manager.ts itself stays free of filesystem
|
|
@@ -31,7 +35,7 @@
|
|
|
31
35
|
* stays off in production until it does.
|
|
32
36
|
*/
|
|
33
37
|
import { execFileSync } from 'node:child_process';
|
|
34
|
-
import { createHash } from 'node:crypto';
|
|
38
|
+
import { createHash, randomUUID } from 'node:crypto';
|
|
35
39
|
import * as fs from 'node:fs';
|
|
36
40
|
import * as path from 'node:path';
|
|
37
41
|
import { resolveTrustedReleaseTarget, downloadTrustedReleasePayload, } from './trust-metadata.js';
|
|
@@ -86,8 +90,9 @@ export function legacyReleaseAssetTargetPath(releaseId, asset) {
|
|
|
86
90
|
/**
|
|
87
91
|
* PRI-854 (option A): fetch the asset from its signed delivery URL and verify
|
|
88
92
|
* the sha256 (and declared size) BEFORE the bytes are considered acquired.
|
|
89
|
-
*
|
|
90
|
-
*
|
|
93
|
+
* PRI-927: only an **https** URL is accepted, and verified bytes are published
|
|
94
|
+
* to the canonical name by an atomic rename out of a private candidate file —
|
|
95
|
+
* see the two Owner-decision notes inside.
|
|
91
96
|
*
|
|
92
97
|
* PRI-924: the acquisition is a transport with a bounded retry, not a
|
|
93
98
|
* single-shot gamble. A ~200MB asset over a CDN that resets connections was
|
|
@@ -97,42 +102,101 @@ export function legacyReleaseAssetTargetPath(releaseId, asset) {
|
|
|
97
102
|
* corrupt or substituted candidate is never re-drawn until it looks right.
|
|
98
103
|
*/
|
|
99
104
|
const ASSET_DOWNLOAD_ATTEMPTS = 3;
|
|
105
|
+
/** PRI-927: https is re-checked per hop, so a redirect chain must be bounded. */
|
|
106
|
+
const ASSET_REDIRECT_HOPS = 5;
|
|
100
107
|
function isRetriableHttpStatus(status) {
|
|
101
108
|
// 4xx = the carrier refuses on its face (404: not published) — retrying
|
|
102
109
|
// re-asks a stable answer. Server-side and rate-limit codes are transient.
|
|
103
110
|
return status === 408 || status === 429 || status >= 500;
|
|
104
111
|
}
|
|
105
|
-
|
|
106
|
-
|
|
112
|
+
/** Undefined for a value no transport could resolve; the caller refuses those. */
|
|
113
|
+
function parseAssetUrl(value) {
|
|
107
114
|
try {
|
|
108
|
-
|
|
115
|
+
return new URL(value);
|
|
109
116
|
}
|
|
110
117
|
catch {
|
|
111
|
-
|
|
118
|
+
return undefined;
|
|
112
119
|
}
|
|
113
|
-
|
|
114
|
-
|
|
120
|
+
}
|
|
121
|
+
/** A Location header resolved against the hop that sent it; undefined if unusable. */
|
|
122
|
+
function resolveRedirectTarget(location, from) {
|
|
123
|
+
try {
|
|
124
|
+
return parseAssetUrl(new URL(location, from).href);
|
|
115
125
|
}
|
|
126
|
+
catch {
|
|
127
|
+
return undefined;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
/** Redirect statuses whose Location header must be re-gated before the next request. */
|
|
131
|
+
function isRedirectStatus(status) {
|
|
132
|
+
return status === 301 || status === 302 || status === 303 || status === 307 || status === 308;
|
|
133
|
+
}
|
|
134
|
+
export async function downloadAndVerifyAssetFile(input) {
|
|
135
|
+
// PRI-927 (Owner decision): HTTPS-only, no warning mode and no insecure
|
|
136
|
+
// override. The signed sha256+size below is the trust anchor, so a plaintext
|
|
137
|
+
// carrier cannot substitute bytes — but it can corrupt every delivery and
|
|
138
|
+
// turn the update into a permanent, unrecoverable failure. Refusing the
|
|
139
|
+
// protocol is the availability fix, and it runs BEFORE any transport call.
|
|
140
|
+
//
|
|
141
|
+
// The test lives in THIS scope, on the URL object the transport is handed,
|
|
142
|
+
// not behind a shared helper: an insecure carrier has to be refused where it
|
|
143
|
+
// would actually be opened, which is also where the analyzer watching this
|
|
144
|
+
// boundary looks (CodeQL js/insecure-download reported the fetch call itself
|
|
145
|
+
// while the policy sat in a cross-module predicate). The signed-document
|
|
146
|
+
// parser applies the same 'https:' policy to the same field before this
|
|
147
|
+
// function can be reached; both sides are pinned by their own tests.
|
|
148
|
+
const assetUrl = parseAssetUrl(input.url);
|
|
149
|
+
if (assetUrl === undefined || assetUrl.protocol !== 'https:') {
|
|
150
|
+
throw new ApplyPayloadError('release_metadata_invalid', `Asset URL must be an https URL: ${input.url}`, 'Do not install this release. The signed release metadata names a non-HTTPS asset URL; refresh it from the official repository.');
|
|
151
|
+
}
|
|
152
|
+
const fetchAsset = input.fetcher ?? globalThis.fetch;
|
|
116
153
|
const sleep = input.sleep ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));
|
|
117
154
|
fs.mkdirSync(path.dirname(input.destinationPath), { recursive: true });
|
|
118
155
|
let bytes;
|
|
119
156
|
for (let attempt = 1;; attempt += 1) {
|
|
120
157
|
try {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
158
|
+
let target = assetUrl;
|
|
159
|
+
for (let hop = 0;; hop += 1) {
|
|
160
|
+
const response = await fetchAsset(target.href, { redirect: 'manual' });
|
|
161
|
+
if (isRedirectStatus(response.status)) {
|
|
162
|
+
// PRI-927 review (Owner): the carrier contract is https on EVERY hop,
|
|
163
|
+
// so the chain is stepped here rather than by `redirect: 'follow'`.
|
|
164
|
+
// Handing it to the transport lets a signed https URL that answers
|
|
165
|
+
// 302 → http://… carry the payload in plaintext before this function
|
|
166
|
+
// ever sees a byte. 'manual' is the only mode on globalThis.fetch
|
|
167
|
+
// whose 3xx response still exposes Location (undici does not apply
|
|
168
|
+
// the opaque-redirect filtering), so this is what the gate can check.
|
|
169
|
+
const location = response.headers.get('location');
|
|
170
|
+
// A redirect's body is not the payload either: release its connection
|
|
171
|
+
// before asking the next hop.
|
|
172
|
+
await response.body?.cancel();
|
|
173
|
+
const next = location === null ? undefined : resolveRedirectTarget(location, target);
|
|
174
|
+
if (next === undefined || next.protocol !== 'https:') {
|
|
175
|
+
throw new ApplyPayloadError('release_metadata_invalid', `Asset redirect #${hop + 1} is not an https URL: ${location ?? '(missing Location header)'}`, 'Do not install this release. Its delivery path leaves HTTPS; refresh the signed metadata from the official repository.');
|
|
176
|
+
}
|
|
177
|
+
if (hop >= ASSET_REDIRECT_HOPS) {
|
|
178
|
+
throw new ApplyPayloadError('metadata_refresh_failed', `Asset delivery exceeded ${ASSET_REDIRECT_HOPS} https redirects for ${input.url}.`, 'Nothing was deployed. Retry the update; a redirect loop is a carrier fault, not a signed-metadata one.');
|
|
179
|
+
}
|
|
180
|
+
target = next;
|
|
181
|
+
continue;
|
|
182
|
+
}
|
|
183
|
+
if (!response.ok) {
|
|
184
|
+
// A rejected response is not the payload: release its connection now
|
|
185
|
+
// instead of parking it until GC, or three attempts per call across
|
|
186
|
+
// repeated applies would accumulate sockets.
|
|
187
|
+
await response.body?.cancel();
|
|
188
|
+
const detail = `Asset download failed: HTTP ${response.status} for ${target.href}`;
|
|
189
|
+
if (!isRetriableHttpStatus(response.status) || attempt >= ASSET_DOWNLOAD_ATTEMPTS) {
|
|
190
|
+
throw new ApplyPayloadError('metadata_refresh_failed', detail, 'Verify that the release pipeline published this release asset, then retry.');
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
bytes = Buffer.from(await response.arrayBuffer());
|
|
130
195
|
}
|
|
131
|
-
}
|
|
132
|
-
else {
|
|
133
|
-
bytes = Buffer.from(await response.arrayBuffer());
|
|
134
196
|
break;
|
|
135
197
|
}
|
|
198
|
+
if (bytes !== undefined)
|
|
199
|
+
break;
|
|
136
200
|
}
|
|
137
201
|
catch (error) {
|
|
138
202
|
// Trust-anchor refusals and terminal transport verdicts escape as-is.
|
|
@@ -154,11 +218,40 @@ export async function downloadAndVerifyAssetFile(input) {
|
|
|
154
218
|
if (input.expectedSizeBytes !== undefined && size !== input.expectedSizeBytes) {
|
|
155
219
|
throw new ApplyPayloadError('release_metadata_invalid', `Asset size ${size} disagrees with the signed size ${input.expectedSizeBytes}.`, 'The release repository is inconsistent; wait for refreshed signed metadata.');
|
|
156
220
|
}
|
|
157
|
-
//
|
|
158
|
-
//
|
|
159
|
-
//
|
|
160
|
-
//
|
|
161
|
-
|
|
221
|
+
// PRI-927 (Owner decision: fix, do not dismiss): network bytes never reach
|
|
222
|
+
// the canonical name in an unverified or predictable form. The verified bytes
|
|
223
|
+
// go to an unguessable, exclusively-created candidate in the SAME staging
|
|
224
|
+
// transaction directory (same filesystem, so the publish step below is an
|
|
225
|
+
// atomic rename), and only that candidate is renamed onto the canonical
|
|
226
|
+
// path. This is the discipline the TUF branch already followed
|
|
227
|
+
// (trust-metadata.ts downloadTrustedReleasePayload), reused rather than
|
|
228
|
+
// reinvented; the size re-check is on the file that actually landed, so a
|
|
229
|
+
// short write can never be published. Every failure removes the candidate.
|
|
230
|
+
const candidatePath = path.join(path.dirname(input.destinationPath), `release-asset-${randomUUID()}-${input.releaseId.slice(0, 12)}.tar.gz.part`);
|
|
231
|
+
try {
|
|
232
|
+
fs.writeFileSync(candidatePath, bytes, { mode: 0o600, flag: 'wx' });
|
|
233
|
+
const landedBytes = fs.statSync(candidatePath).size;
|
|
234
|
+
if (input.expectedSizeBytes !== undefined && landedBytes !== input.expectedSizeBytes) {
|
|
235
|
+
throw new ApplyPayloadError('metadata_refresh_failed', `The staged asset file is ${landedBytes} bytes, disagreeing with the signed size ${input.expectedSizeBytes}.`, 'Nothing was deployed; the runtime is unchanged. Retry the update.');
|
|
236
|
+
}
|
|
237
|
+
fs.renameSync(candidatePath, input.destinationPath);
|
|
238
|
+
}
|
|
239
|
+
catch (error) {
|
|
240
|
+
// The candidate is garbage the moment anything below it fails; staging
|
|
241
|
+
// recycle (PRI-924) owns the directory, this owns only its own file.
|
|
242
|
+
// Windows can hold a just-written file (EBUSY/EPERM, ERR-071), and a
|
|
243
|
+
// cleanup error must never replace the acquisition error: the leftover
|
|
244
|
+
// keeps an unguessable name inside a directory this transaction owns.
|
|
245
|
+
try {
|
|
246
|
+
fs.rmSync(candidatePath, { force: true });
|
|
247
|
+
}
|
|
248
|
+
catch {
|
|
249
|
+
/* ignored on purpose — the real failure is the one being reported */
|
|
250
|
+
}
|
|
251
|
+
if (error instanceof ApplyPayloadError)
|
|
252
|
+
throw error;
|
|
253
|
+
throw new ApplyPayloadError('metadata_refresh_failed', `The verified release asset could not be staged: ${error instanceof Error ? error.message : String(error)}`, 'Nothing was deployed; the runtime is unchanged. Check disk space and permissions under the PD staging area, then retry.');
|
|
254
|
+
}
|
|
162
255
|
}
|
|
163
256
|
/**
|
|
164
257
|
* Acquires the release asset for THIS runtime (PRI-854, two transports):
|
|
@@ -170,7 +263,7 @@ export async function downloadAndVerifyAssetFile(input) {
|
|
|
170
263
|
* Zero deployment writes happen before every identity check has passed.
|
|
171
264
|
*/
|
|
172
265
|
export async function downloadReleaseAsset(options) {
|
|
173
|
-
const { paths, metadataBaseUrl, fetcher, releaseMetadata, channel, transactionId } = options;
|
|
266
|
+
const { paths, metadataBaseUrl, fetcher, assetFetcher, releaseMetadata, channel, transactionId } = options;
|
|
174
267
|
const asset = selectReleaseAsset(releaseMetadata);
|
|
175
268
|
// PRI-854 (option A): the signed metadata carries the asset's delivery URL —
|
|
176
269
|
// fetch it directly and enforce the signed sha256+size. The digest check is
|
|
@@ -184,6 +277,7 @@ export async function downloadReleaseAsset(options) {
|
|
|
184
277
|
expectedSha256: asset.archiveSha256,
|
|
185
278
|
expectedSizeBytes: asset.archiveSizeBytes,
|
|
186
279
|
releaseId: releaseMetadata.releaseId,
|
|
280
|
+
fetcher: assetFetcher,
|
|
187
281
|
});
|
|
188
282
|
const syntheticTarget = {
|
|
189
283
|
artifactSha256: asset.archiveSha256,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply-payload.js","sourceRoot":"","sources":["../../src/update/apply-payload.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"apply-payload.js","sourceRoot":"","sources":["../../src/update/apply-payload.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"release-metadata.d.ts","sourceRoot":"","sources":["../../src/update/release-metadata.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AASH,OAAO,EAIL,KAAK,oBAAoB,EAC1B,MAAM,uBAAuB,CAAC;AAE/B,eAAO,MAAM,+BAA+B,IAAI,CAAC;AAEjD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,oBAAoB,GAAG;QAChD,oEAAoE;QACpE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC,EAAE,CAAC;IACL,QAAQ,CAAC,aAAa,EAAE;QACtB,QAAQ,CAAC,6BAA6B,EAAE,MAAM,CAAC;KAChD,CAAC;CACH;AAED,MAAM,MAAM,wBAAwB,GAChC,0BAA0B,GAC1B,oCAAoC,CAAC;AAEzC,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,YAAY,IAAI,EAAE,wBAAwB,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAKzE;CACF;
|
|
1
|
+
{"version":3,"file":"release-metadata.d.ts","sourceRoot":"","sources":["../../src/update/release-metadata.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AASH,OAAO,EAIL,KAAK,oBAAoB,EAC1B,MAAM,uBAAuB,CAAC;AAE/B,eAAO,MAAM,+BAA+B,IAAI,CAAC;AAEjD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,oBAAoB,GAAG;QAChD,oEAAoE;QACpE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC,EAAE,CAAC;IACL,QAAQ,CAAC,aAAa,EAAE;QACtB,QAAQ,CAAC,6BAA6B,EAAE,MAAM,CAAC;KAChD,CAAC;CACH;AAED,MAAM,MAAM,wBAAwB,GAChC,0BAA0B,GAC1B,oCAAoC,CAAC;AAEzC,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,YAAY,IAAI,EAAE,wBAAwB,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAKzE;CACF;AA2DD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,CA6FpE;AAgBD;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAsB7E;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,GAAE,IAAiB,GAAG,OAAO,CAEnG;AAED,mFAAmF;AACnF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAC1C,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACxC,6BAA6B,EAAE,MAAM,CAAC;CACvC,GAAG,eAAe,CAkBlB;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe,CAS1E"}
|
|
@@ -46,6 +46,35 @@ function parsePositiveInteger(value, field) {
|
|
|
46
46
|
}
|
|
47
47
|
return value;
|
|
48
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* PRI-927 (Owner decision): release ASSET bytes are delivered over TLS only —
|
|
51
|
+
* no plaintext carrier, no warning mode, no override. A plaintext carrier cannot
|
|
52
|
+
* forge the signed sha256, but it can poison every attempt into a permanent
|
|
53
|
+
* update failure, so the protocol is refused rather than tolerated.
|
|
54
|
+
*
|
|
55
|
+
* This is the policy on the SIGNED-DOCUMENT surface: a metadata file that names
|
|
56
|
+
* an http asset URL never becomes a parsed release, so nothing downstream can
|
|
57
|
+
* act on it. The download gate in apply-payload.ts re-tests the protocol where
|
|
58
|
+
* the carrier is opened, because that is the scope an insecure fetch would
|
|
59
|
+
* happen in — the same 'https:' decision on two different surfaces, not a
|
|
60
|
+
* second authority. It tests `URL.protocol` rather than a scheme prefix regex:
|
|
61
|
+
* the URL parser is the same authority `fetch` resolves against, so the gate
|
|
62
|
+
* and the transport cannot disagree about what a scheme prefix means
|
|
63
|
+
* (`https:example.com/a.tar.gz` is not a malformed URL — the parser recovers it
|
|
64
|
+
* into host `example.com`, and that is exactly what `fetch` would then request).
|
|
65
|
+
* A successful parse of a special scheme always yields a non-empty host, so no
|
|
66
|
+
* separate host check is possible here.
|
|
67
|
+
*/
|
|
68
|
+
function isSignedAssetUrl(value) {
|
|
69
|
+
if (typeof value !== 'string')
|
|
70
|
+
return false;
|
|
71
|
+
try {
|
|
72
|
+
return new URL(value).protocol === 'https:';
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
49
78
|
/**
|
|
50
79
|
* Field-by-field strict parse. Rejects unknown top-level fields so a future
|
|
51
80
|
* schema change fails loud instead of silently dropping meaning.
|
|
@@ -95,16 +124,15 @@ export function parseReleaseMetadata(value) {
|
|
|
95
124
|
throw new ReleaseMetadataError('release_metadata_invalid', 'assets', `assets[${index}] contains unknown field "${key}"`);
|
|
96
125
|
}
|
|
97
126
|
}
|
|
98
|
-
let
|
|
127
|
+
let deliveryUrl;
|
|
99
128
|
if (Object.hasOwn(asset, 'url')) {
|
|
100
129
|
// PRI-854 (option A): the byte carrier is a GitHub Release attachment —
|
|
101
130
|
// the URL is part of the SIGNED document while sha256+size bind the
|
|
102
|
-
// bytes.
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
throw new ReleaseMetadataError('release_metadata_invalid', 'assets', `assets[${index}].url must be an http(s) URL, got: ${JSON.stringify(rawUrl)}`);
|
|
131
|
+
// bytes. PRI-927: only https is accepted (see isSignedAssetUrl).
|
|
132
|
+
if (!isSignedAssetUrl(asset.url)) {
|
|
133
|
+
throw new ReleaseMetadataError('release_metadata_invalid', 'assets', `assets[${index}].url must be an https URL, got: ${JSON.stringify(asset.url)}`);
|
|
106
134
|
}
|
|
107
|
-
|
|
135
|
+
deliveryUrl = asset.url;
|
|
108
136
|
}
|
|
109
137
|
return {
|
|
110
138
|
platform: requireOwn(asset, 'platform'),
|
|
@@ -112,7 +140,7 @@ export function parseReleaseMetadata(value) {
|
|
|
112
140
|
nodeAbi: requireOwn(asset, 'nodeAbi'),
|
|
113
141
|
archiveSha256: requireOwn(asset, 'archiveSha256'),
|
|
114
142
|
archiveSizeBytes: requireOwn(asset, 'archiveSizeBytes'),
|
|
115
|
-
...(
|
|
143
|
+
...(deliveryUrl !== undefined ? { url: deliveryUrl } : {}),
|
|
116
144
|
};
|
|
117
145
|
});
|
|
118
146
|
// The identity validator inside deriveReleaseId re-checks every asset field
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"release-metadata.js","sourceRoot":"","sources":["../../src/update/release-metadata.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"release-metadata.js","sourceRoot":"","sources":["../../src/update/release-metadata.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -9,6 +9,10 @@
|
|
|
9
9
|
* ~/.pd/staging/<transactionId>/release-asset.tar.gz (verified download)
|
|
10
10
|
* ~/.pd/staging/<transactionId>/payload/ (extracted payload)
|
|
11
11
|
*
|
|
12
|
+
* A verified download is published onto the first path by rename: the bytes
|
|
13
|
+
* first land in a private `release-asset-<uuid>-<releaseId>.tar.gz.part`
|
|
14
|
+
* candidate in that same directory (PRI-927), which never outlives the call.
|
|
15
|
+
*
|
|
12
16
|
* Deployment writes (~/.pd/runtime, host extension dirs) belong exclusively
|
|
13
17
|
* to the installer; this module never touches them (ADR-0023 Decision 1,
|
|
14
18
|
* ADR-0024 §2.1). release-manager.ts itself stays free of filesystem
|
|
@@ -35,6 +39,21 @@ import type { ReleaseMetadata } from './release-metadata.js';
|
|
|
35
39
|
import type { ReleaseChannelName } from './product-identity.js';
|
|
36
40
|
import type { PdHomePaths } from './install-layout.js';
|
|
37
41
|
type TrustFetcher = NonNullable<Parameters<typeof resolveTrustedReleaseTarget>[0]['fetcher']>;
|
|
42
|
+
/**
|
|
43
|
+
* PRI-927: the transport for signed ASSET bytes, injectable for tests.
|
|
44
|
+
*
|
|
45
|
+
* It is fetch-shaped rather than the tuf-js `Fetcher` the metadata branch uses,
|
|
46
|
+
* because the bounded-retry policy reads the HTTP status to tell a stable
|
|
47
|
+
* refusal (404) from a transient one (408/429/5xx) — a download-by-bytes
|
|
48
|
+
* interface cannot report that. Production never injects it: the default is
|
|
49
|
+
* `globalThis.fetch`. Tests use it to drive the transport classes
|
|
50
|
+
* deterministically; it is NOT a way around the protocol gate, which checks the
|
|
51
|
+
* first URL before the transport is ever called and every redirect hop before
|
|
52
|
+
* the next request is made.
|
|
53
|
+
*/
|
|
54
|
+
export type AssetFetcher = (url: string, init?: {
|
|
55
|
+
readonly redirect?: 'manual';
|
|
56
|
+
}) => Promise<Response>;
|
|
38
57
|
/** Acquisition failure with a stable reason; release-manager.ts maps it onto the ReleaseManagerError contract. */
|
|
39
58
|
export declare class ApplyPayloadError extends Error {
|
|
40
59
|
readonly reason: 'metadata_refresh_failed' | 'release_metadata_invalid' | 'runtime_not_supported';
|
|
@@ -69,6 +88,13 @@ export interface DownloadReleaseAssetOptions {
|
|
|
69
88
|
readonly paths: PdHomePaths;
|
|
70
89
|
readonly metadataBaseUrl: string;
|
|
71
90
|
readonly fetcher?: TrustFetcher;
|
|
91
|
+
/**
|
|
92
|
+
* PRI-927: transport for the url branch only. The two branches have two
|
|
93
|
+
* genuinely different transports (the TUF client takes a `Fetcher` object,
|
|
94
|
+
* the asset carrier takes fetch), so the seams stay named separately rather
|
|
95
|
+
* than unioned. Unset in production.
|
|
96
|
+
*/
|
|
97
|
+
readonly assetFetcher?: AssetFetcher;
|
|
72
98
|
readonly releaseMetadata: ReleaseMetadata;
|
|
73
99
|
readonly channel: ReleaseChannelName;
|
|
74
100
|
/** Transaction the acquisition is journaled under; scopes the staging dir. */
|
|
@@ -85,6 +111,8 @@ export declare function downloadAndVerifyAssetFile(input: {
|
|
|
85
111
|
expectedSha256: string;
|
|
86
112
|
expectedSizeBytes?: number;
|
|
87
113
|
releaseId: string;
|
|
114
|
+
/** Test seam for the transport (PRI-927); production uses global fetch. */
|
|
115
|
+
fetcher?: AssetFetcher;
|
|
88
116
|
/** Test seam: backoff between attempts (default 2000ms × attempt). */
|
|
89
117
|
sleep?: (ms: number) => Promise<void>;
|
|
90
118
|
}): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply-payload.d.ts","sourceRoot":"","sources":["../../src/update/apply-payload.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"apply-payload.d.ts","sourceRoot":"","sources":["../../src/update/apply-payload.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,10 @@
|
|
|
9
9
|
* ~/.pd/staging/<transactionId>/release-asset.tar.gz (verified download)
|
|
10
10
|
* ~/.pd/staging/<transactionId>/payload/ (extracted payload)
|
|
11
11
|
*
|
|
12
|
+
* A verified download is published onto the first path by rename: the bytes
|
|
13
|
+
* first land in a private `release-asset-<uuid>-<releaseId>.tar.gz.part`
|
|
14
|
+
* candidate in that same directory (PRI-927), which never outlives the call.
|
|
15
|
+
*
|
|
12
16
|
* Deployment writes (~/.pd/runtime, host extension dirs) belong exclusively
|
|
13
17
|
* to the installer; this module never touches them (ADR-0023 Decision 1,
|
|
14
18
|
* ADR-0024 §2.1). release-manager.ts itself stays free of filesystem
|
|
@@ -31,7 +35,7 @@
|
|
|
31
35
|
* stays off in production until it does.
|
|
32
36
|
*/
|
|
33
37
|
import { execFileSync } from 'node:child_process';
|
|
34
|
-
import { createHash } from 'node:crypto';
|
|
38
|
+
import { createHash, randomUUID } from 'node:crypto';
|
|
35
39
|
import * as fs from 'node:fs';
|
|
36
40
|
import * as path from 'node:path';
|
|
37
41
|
import { resolveTrustedReleaseTarget, downloadTrustedReleasePayload, } from './trust-metadata.js';
|
|
@@ -86,8 +90,9 @@ export function legacyReleaseAssetTargetPath(releaseId, asset) {
|
|
|
86
90
|
/**
|
|
87
91
|
* PRI-854 (option A): fetch the asset from its signed delivery URL and verify
|
|
88
92
|
* the sha256 (and declared size) BEFORE the bytes are considered acquired.
|
|
89
|
-
*
|
|
90
|
-
*
|
|
93
|
+
* PRI-927: only an **https** URL is accepted, and verified bytes are published
|
|
94
|
+
* to the canonical name by an atomic rename out of a private candidate file —
|
|
95
|
+
* see the two Owner-decision notes inside.
|
|
91
96
|
*
|
|
92
97
|
* PRI-924: the acquisition is a transport with a bounded retry, not a
|
|
93
98
|
* single-shot gamble. A ~200MB asset over a CDN that resets connections was
|
|
@@ -97,42 +102,101 @@ export function legacyReleaseAssetTargetPath(releaseId, asset) {
|
|
|
97
102
|
* corrupt or substituted candidate is never re-drawn until it looks right.
|
|
98
103
|
*/
|
|
99
104
|
const ASSET_DOWNLOAD_ATTEMPTS = 3;
|
|
105
|
+
/** PRI-927: https is re-checked per hop, so a redirect chain must be bounded. */
|
|
106
|
+
const ASSET_REDIRECT_HOPS = 5;
|
|
100
107
|
function isRetriableHttpStatus(status) {
|
|
101
108
|
// 4xx = the carrier refuses on its face (404: not published) — retrying
|
|
102
109
|
// re-asks a stable answer. Server-side and rate-limit codes are transient.
|
|
103
110
|
return status === 408 || status === 429 || status >= 500;
|
|
104
111
|
}
|
|
105
|
-
|
|
106
|
-
|
|
112
|
+
/** Undefined for a value no transport could resolve; the caller refuses those. */
|
|
113
|
+
function parseAssetUrl(value) {
|
|
107
114
|
try {
|
|
108
|
-
|
|
115
|
+
return new URL(value);
|
|
109
116
|
}
|
|
110
117
|
catch {
|
|
111
|
-
|
|
118
|
+
return undefined;
|
|
112
119
|
}
|
|
113
|
-
|
|
114
|
-
|
|
120
|
+
}
|
|
121
|
+
/** A Location header resolved against the hop that sent it; undefined if unusable. */
|
|
122
|
+
function resolveRedirectTarget(location, from) {
|
|
123
|
+
try {
|
|
124
|
+
return parseAssetUrl(new URL(location, from).href);
|
|
115
125
|
}
|
|
126
|
+
catch {
|
|
127
|
+
return undefined;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
/** Redirect statuses whose Location header must be re-gated before the next request. */
|
|
131
|
+
function isRedirectStatus(status) {
|
|
132
|
+
return status === 301 || status === 302 || status === 303 || status === 307 || status === 308;
|
|
133
|
+
}
|
|
134
|
+
export async function downloadAndVerifyAssetFile(input) {
|
|
135
|
+
// PRI-927 (Owner decision): HTTPS-only, no warning mode and no insecure
|
|
136
|
+
// override. The signed sha256+size below is the trust anchor, so a plaintext
|
|
137
|
+
// carrier cannot substitute bytes — but it can corrupt every delivery and
|
|
138
|
+
// turn the update into a permanent, unrecoverable failure. Refusing the
|
|
139
|
+
// protocol is the availability fix, and it runs BEFORE any transport call.
|
|
140
|
+
//
|
|
141
|
+
// The test lives in THIS scope, on the URL object the transport is handed,
|
|
142
|
+
// not behind a shared helper: an insecure carrier has to be refused where it
|
|
143
|
+
// would actually be opened, which is also where the analyzer watching this
|
|
144
|
+
// boundary looks (CodeQL js/insecure-download reported the fetch call itself
|
|
145
|
+
// while the policy sat in a cross-module predicate). The signed-document
|
|
146
|
+
// parser applies the same 'https:' policy to the same field before this
|
|
147
|
+
// function can be reached; both sides are pinned by their own tests.
|
|
148
|
+
const assetUrl = parseAssetUrl(input.url);
|
|
149
|
+
if (assetUrl === undefined || assetUrl.protocol !== 'https:') {
|
|
150
|
+
throw new ApplyPayloadError('release_metadata_invalid', `Asset URL must be an https URL: ${input.url}`, 'Do not install this release. The signed release metadata names a non-HTTPS asset URL; refresh it from the official repository.');
|
|
151
|
+
}
|
|
152
|
+
const fetchAsset = input.fetcher ?? globalThis.fetch;
|
|
116
153
|
const sleep = input.sleep ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));
|
|
117
154
|
fs.mkdirSync(path.dirname(input.destinationPath), { recursive: true });
|
|
118
155
|
let bytes;
|
|
119
156
|
for (let attempt = 1;; attempt += 1) {
|
|
120
157
|
try {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
158
|
+
let target = assetUrl;
|
|
159
|
+
for (let hop = 0;; hop += 1) {
|
|
160
|
+
const response = await fetchAsset(target.href, { redirect: 'manual' });
|
|
161
|
+
if (isRedirectStatus(response.status)) {
|
|
162
|
+
// PRI-927 review (Owner): the carrier contract is https on EVERY hop,
|
|
163
|
+
// so the chain is stepped here rather than by `redirect: 'follow'`.
|
|
164
|
+
// Handing it to the transport lets a signed https URL that answers
|
|
165
|
+
// 302 → http://… carry the payload in plaintext before this function
|
|
166
|
+
// ever sees a byte. 'manual' is the only mode on globalThis.fetch
|
|
167
|
+
// whose 3xx response still exposes Location (undici does not apply
|
|
168
|
+
// the opaque-redirect filtering), so this is what the gate can check.
|
|
169
|
+
const location = response.headers.get('location');
|
|
170
|
+
// A redirect's body is not the payload either: release its connection
|
|
171
|
+
// before asking the next hop.
|
|
172
|
+
await response.body?.cancel();
|
|
173
|
+
const next = location === null ? undefined : resolveRedirectTarget(location, target);
|
|
174
|
+
if (next === undefined || next.protocol !== 'https:') {
|
|
175
|
+
throw new ApplyPayloadError('release_metadata_invalid', `Asset redirect #${hop + 1} is not an https URL: ${location ?? '(missing Location header)'}`, 'Do not install this release. Its delivery path leaves HTTPS; refresh the signed metadata from the official repository.');
|
|
176
|
+
}
|
|
177
|
+
if (hop >= ASSET_REDIRECT_HOPS) {
|
|
178
|
+
throw new ApplyPayloadError('metadata_refresh_failed', `Asset delivery exceeded ${ASSET_REDIRECT_HOPS} https redirects for ${input.url}.`, 'Nothing was deployed. Retry the update; a redirect loop is a carrier fault, not a signed-metadata one.');
|
|
179
|
+
}
|
|
180
|
+
target = next;
|
|
181
|
+
continue;
|
|
182
|
+
}
|
|
183
|
+
if (!response.ok) {
|
|
184
|
+
// A rejected response is not the payload: release its connection now
|
|
185
|
+
// instead of parking it until GC, or three attempts per call across
|
|
186
|
+
// repeated applies would accumulate sockets.
|
|
187
|
+
await response.body?.cancel();
|
|
188
|
+
const detail = `Asset download failed: HTTP ${response.status} for ${target.href}`;
|
|
189
|
+
if (!isRetriableHttpStatus(response.status) || attempt >= ASSET_DOWNLOAD_ATTEMPTS) {
|
|
190
|
+
throw new ApplyPayloadError('metadata_refresh_failed', detail, 'Verify that the release pipeline published this release asset, then retry.');
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
bytes = Buffer.from(await response.arrayBuffer());
|
|
130
195
|
}
|
|
131
|
-
}
|
|
132
|
-
else {
|
|
133
|
-
bytes = Buffer.from(await response.arrayBuffer());
|
|
134
196
|
break;
|
|
135
197
|
}
|
|
198
|
+
if (bytes !== undefined)
|
|
199
|
+
break;
|
|
136
200
|
}
|
|
137
201
|
catch (error) {
|
|
138
202
|
// Trust-anchor refusals and terminal transport verdicts escape as-is.
|
|
@@ -154,11 +218,40 @@ export async function downloadAndVerifyAssetFile(input) {
|
|
|
154
218
|
if (input.expectedSizeBytes !== undefined && size !== input.expectedSizeBytes) {
|
|
155
219
|
throw new ApplyPayloadError('release_metadata_invalid', `Asset size ${size} disagrees with the signed size ${input.expectedSizeBytes}.`, 'The release repository is inconsistent; wait for refreshed signed metadata.');
|
|
156
220
|
}
|
|
157
|
-
//
|
|
158
|
-
//
|
|
159
|
-
//
|
|
160
|
-
//
|
|
161
|
-
|
|
221
|
+
// PRI-927 (Owner decision: fix, do not dismiss): network bytes never reach
|
|
222
|
+
// the canonical name in an unverified or predictable form. The verified bytes
|
|
223
|
+
// go to an unguessable, exclusively-created candidate in the SAME staging
|
|
224
|
+
// transaction directory (same filesystem, so the publish step below is an
|
|
225
|
+
// atomic rename), and only that candidate is renamed onto the canonical
|
|
226
|
+
// path. This is the discipline the TUF branch already followed
|
|
227
|
+
// (trust-metadata.ts downloadTrustedReleasePayload), reused rather than
|
|
228
|
+
// reinvented; the size re-check is on the file that actually landed, so a
|
|
229
|
+
// short write can never be published. Every failure removes the candidate.
|
|
230
|
+
const candidatePath = path.join(path.dirname(input.destinationPath), `release-asset-${randomUUID()}-${input.releaseId.slice(0, 12)}.tar.gz.part`);
|
|
231
|
+
try {
|
|
232
|
+
fs.writeFileSync(candidatePath, bytes, { mode: 0o600, flag: 'wx' });
|
|
233
|
+
const landedBytes = fs.statSync(candidatePath).size;
|
|
234
|
+
if (input.expectedSizeBytes !== undefined && landedBytes !== input.expectedSizeBytes) {
|
|
235
|
+
throw new ApplyPayloadError('metadata_refresh_failed', `The staged asset file is ${landedBytes} bytes, disagreeing with the signed size ${input.expectedSizeBytes}.`, 'Nothing was deployed; the runtime is unchanged. Retry the update.');
|
|
236
|
+
}
|
|
237
|
+
fs.renameSync(candidatePath, input.destinationPath);
|
|
238
|
+
}
|
|
239
|
+
catch (error) {
|
|
240
|
+
// The candidate is garbage the moment anything below it fails; staging
|
|
241
|
+
// recycle (PRI-924) owns the directory, this owns only its own file.
|
|
242
|
+
// Windows can hold a just-written file (EBUSY/EPERM, ERR-071), and a
|
|
243
|
+
// cleanup error must never replace the acquisition error: the leftover
|
|
244
|
+
// keeps an unguessable name inside a directory this transaction owns.
|
|
245
|
+
try {
|
|
246
|
+
fs.rmSync(candidatePath, { force: true });
|
|
247
|
+
}
|
|
248
|
+
catch {
|
|
249
|
+
/* ignored on purpose — the real failure is the one being reported */
|
|
250
|
+
}
|
|
251
|
+
if (error instanceof ApplyPayloadError)
|
|
252
|
+
throw error;
|
|
253
|
+
throw new ApplyPayloadError('metadata_refresh_failed', `The verified release asset could not be staged: ${error instanceof Error ? error.message : String(error)}`, 'Nothing was deployed; the runtime is unchanged. Check disk space and permissions under the PD staging area, then retry.');
|
|
254
|
+
}
|
|
162
255
|
}
|
|
163
256
|
/**
|
|
164
257
|
* Acquires the release asset for THIS runtime (PRI-854, two transports):
|
|
@@ -170,7 +263,7 @@ export async function downloadAndVerifyAssetFile(input) {
|
|
|
170
263
|
* Zero deployment writes happen before every identity check has passed.
|
|
171
264
|
*/
|
|
172
265
|
export async function downloadReleaseAsset(options) {
|
|
173
|
-
const { paths, metadataBaseUrl, fetcher, releaseMetadata, channel, transactionId } = options;
|
|
266
|
+
const { paths, metadataBaseUrl, fetcher, assetFetcher, releaseMetadata, channel, transactionId } = options;
|
|
174
267
|
const asset = selectReleaseAsset(releaseMetadata);
|
|
175
268
|
// PRI-854 (option A): the signed metadata carries the asset's delivery URL —
|
|
176
269
|
// fetch it directly and enforce the signed sha256+size. The digest check is
|
|
@@ -184,6 +277,7 @@ export async function downloadReleaseAsset(options) {
|
|
|
184
277
|
expectedSha256: asset.archiveSha256,
|
|
185
278
|
expectedSizeBytes: asset.archiveSizeBytes,
|
|
186
279
|
releaseId: releaseMetadata.releaseId,
|
|
280
|
+
fetcher: assetFetcher,
|
|
187
281
|
});
|
|
188
282
|
const syntheticTarget = {
|
|
189
283
|
artifactSha256: asset.archiveSha256,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply-payload.js","sourceRoot":"","sources":["../../src/update/apply-payload.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"apply-payload.js","sourceRoot":"","sources":["../../src/update/apply-payload.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"release-metadata.d.ts","sourceRoot":"","sources":["../../src/update/release-metadata.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AASH,OAAO,EAIL,KAAK,oBAAoB,EAC1B,MAAM,uBAAuB,CAAC;AAE/B,eAAO,MAAM,+BAA+B,IAAI,CAAC;AAEjD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,oBAAoB,GAAG;QAChD,oEAAoE;QACpE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC,EAAE,CAAC;IACL,QAAQ,CAAC,aAAa,EAAE;QACtB,QAAQ,CAAC,6BAA6B,EAAE,MAAM,CAAC;KAChD,CAAC;CACH;AAED,MAAM,MAAM,wBAAwB,GAChC,0BAA0B,GAC1B,oCAAoC,CAAC;AAEzC,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,YAAY,IAAI,EAAE,wBAAwB,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAKzE;CACF;
|
|
1
|
+
{"version":3,"file":"release-metadata.d.ts","sourceRoot":"","sources":["../../src/update/release-metadata.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AASH,OAAO,EAIL,KAAK,oBAAoB,EAC1B,MAAM,uBAAuB,CAAC;AAE/B,eAAO,MAAM,+BAA+B,IAAI,CAAC;AAEjD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,oBAAoB,GAAG;QAChD,oEAAoE;QACpE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC,EAAE,CAAC;IACL,QAAQ,CAAC,aAAa,EAAE;QACtB,QAAQ,CAAC,6BAA6B,EAAE,MAAM,CAAC;KAChD,CAAC;CACH;AAED,MAAM,MAAM,wBAAwB,GAChC,0BAA0B,GAC1B,oCAAoC,CAAC;AAEzC,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,YAAY,IAAI,EAAE,wBAAwB,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAKzE;CACF;AA2DD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,CA6FpE;AAgBD;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAsB7E;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,GAAE,IAAiB,GAAG,OAAO,CAEnG;AAED,mFAAmF;AACnF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAC1C,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACxC,6BAA6B,EAAE,MAAM,CAAC;CACvC,GAAG,eAAe,CAkBlB;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe,CAS1E"}
|
|
@@ -46,6 +46,35 @@ function parsePositiveInteger(value, field) {
|
|
|
46
46
|
}
|
|
47
47
|
return value;
|
|
48
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* PRI-927 (Owner decision): release ASSET bytes are delivered over TLS only —
|
|
51
|
+
* no plaintext carrier, no warning mode, no override. A plaintext carrier cannot
|
|
52
|
+
* forge the signed sha256, but it can poison every attempt into a permanent
|
|
53
|
+
* update failure, so the protocol is refused rather than tolerated.
|
|
54
|
+
*
|
|
55
|
+
* This is the policy on the SIGNED-DOCUMENT surface: a metadata file that names
|
|
56
|
+
* an http asset URL never becomes a parsed release, so nothing downstream can
|
|
57
|
+
* act on it. The download gate in apply-payload.ts re-tests the protocol where
|
|
58
|
+
* the carrier is opened, because that is the scope an insecure fetch would
|
|
59
|
+
* happen in — the same 'https:' decision on two different surfaces, not a
|
|
60
|
+
* second authority. It tests `URL.protocol` rather than a scheme prefix regex:
|
|
61
|
+
* the URL parser is the same authority `fetch` resolves against, so the gate
|
|
62
|
+
* and the transport cannot disagree about what a scheme prefix means
|
|
63
|
+
* (`https:example.com/a.tar.gz` is not a malformed URL — the parser recovers it
|
|
64
|
+
* into host `example.com`, and that is exactly what `fetch` would then request).
|
|
65
|
+
* A successful parse of a special scheme always yields a non-empty host, so no
|
|
66
|
+
* separate host check is possible here.
|
|
67
|
+
*/
|
|
68
|
+
function isSignedAssetUrl(value) {
|
|
69
|
+
if (typeof value !== 'string')
|
|
70
|
+
return false;
|
|
71
|
+
try {
|
|
72
|
+
return new URL(value).protocol === 'https:';
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
49
78
|
/**
|
|
50
79
|
* Field-by-field strict parse. Rejects unknown top-level fields so a future
|
|
51
80
|
* schema change fails loud instead of silently dropping meaning.
|
|
@@ -95,16 +124,15 @@ export function parseReleaseMetadata(value) {
|
|
|
95
124
|
throw new ReleaseMetadataError('release_metadata_invalid', 'assets', `assets[${index}] contains unknown field "${key}"`);
|
|
96
125
|
}
|
|
97
126
|
}
|
|
98
|
-
let
|
|
127
|
+
let deliveryUrl;
|
|
99
128
|
if (Object.hasOwn(asset, 'url')) {
|
|
100
129
|
// PRI-854 (option A): the byte carrier is a GitHub Release attachment —
|
|
101
130
|
// the URL is part of the SIGNED document while sha256+size bind the
|
|
102
|
-
// bytes.
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
throw new ReleaseMetadataError('release_metadata_invalid', 'assets', `assets[${index}].url must be an http(s) URL, got: ${JSON.stringify(rawUrl)}`);
|
|
131
|
+
// bytes. PRI-927: only https is accepted (see isSignedAssetUrl).
|
|
132
|
+
if (!isSignedAssetUrl(asset.url)) {
|
|
133
|
+
throw new ReleaseMetadataError('release_metadata_invalid', 'assets', `assets[${index}].url must be an https URL, got: ${JSON.stringify(asset.url)}`);
|
|
106
134
|
}
|
|
107
|
-
|
|
135
|
+
deliveryUrl = asset.url;
|
|
108
136
|
}
|
|
109
137
|
return {
|
|
110
138
|
platform: requireOwn(asset, 'platform'),
|
|
@@ -112,7 +140,7 @@ export function parseReleaseMetadata(value) {
|
|
|
112
140
|
nodeAbi: requireOwn(asset, 'nodeAbi'),
|
|
113
141
|
archiveSha256: requireOwn(asset, 'archiveSha256'),
|
|
114
142
|
archiveSizeBytes: requireOwn(asset, 'archiveSizeBytes'),
|
|
115
|
-
...(
|
|
143
|
+
...(deliveryUrl !== undefined ? { url: deliveryUrl } : {}),
|
|
116
144
|
};
|
|
117
145
|
});
|
|
118
146
|
// The identity validator inside deriveReleaseId re-checks every asset field
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"release-metadata.js","sourceRoot":"","sources":["../../src/update/release-metadata.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"release-metadata.js","sourceRoot":"","sources":["../../src/update/release-metadata.ts"],"names":[],"mappings":"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"}
|