@forgezero/agent 0.1.137 → 0.1.139
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/dist/agent-heartbeat.js +1 -1
- package/dist/attended-platform-bootstrap.d.ts +6 -0
- package/dist/bootstrap.js +2 -1
- package/dist/community-rehearsal-host.js +1 -0
- package/dist/definition.js +1 -0
- package/dist/deploy-file.js +1 -0
- package/dist/fz-agent.js +16 -2
- package/dist/fz.js +35 -1
- package/dist/metal-bootstrap.js +1 -1
- package/dist/metal-helper-socket.js +1 -0
- package/dist/metal-provision.js +1 -0
- package/dist/operator-bootstrap.js +2 -1
- package/dist/platform-bootstrap-runtime.js +14 -1
- package/dist/platform-fleet-verification.js +16 -2
- package/dist/platform-genesis.js +1 -0
- package/dist/provision.js +2 -1
- package/dist/software-helper.js +1 -0
- package/dist/software.js +1 -0
- package/dist/ubuntu.js +1 -0
- package/dist/version.d.ts +1 -1
- package/package.json +1 -1
package/dist/agent-heartbeat.js
CHANGED
|
@@ -12,8 +12,14 @@ export interface AttendedPlatformBootstrapResult {
|
|
|
12
12
|
export interface AttendedPlatformBootstrapDependencies {
|
|
13
13
|
cloudflare?: typeof runAttendedCloudflareBootstrap;
|
|
14
14
|
fleet?: typeof applyOperatorPlatformFleetBootstrap;
|
|
15
|
+
validateInvite?: typeof validatePlatformInvitation;
|
|
15
16
|
finalize?: typeof finalizeCloudflareBootstrapAcceptance;
|
|
16
17
|
}
|
|
18
|
+
export declare function validatePlatformInvitation(args: {
|
|
19
|
+
apiOrigin: string;
|
|
20
|
+
inviteUrl: string;
|
|
21
|
+
fetcher?: typeof fetch;
|
|
22
|
+
}): Promise<void>;
|
|
17
23
|
/**
|
|
18
24
|
* The sole attended genesis composition boundary. All non-secret coordinates
|
|
19
25
|
* are checked before the first Cloudflare or SSH mutation. Secret values exist
|
package/dist/bootstrap.js
CHANGED
|
@@ -1460,7 +1460,7 @@ var UPDATE_RETRY_BASE_MS = 5 * 60000;
|
|
|
1460
1460
|
var UPDATE_RETRY_MAX_MS = 24 * 60 * 60000;
|
|
1461
1461
|
|
|
1462
1462
|
// src/version.ts
|
|
1463
|
-
var VERSION = "0.1.
|
|
1463
|
+
var VERSION = "0.1.139";
|
|
1464
1464
|
|
|
1465
1465
|
// src/software.ts
|
|
1466
1466
|
var PINNED_BUN_VERSION = "1.3.14";
|
|
@@ -2958,6 +2958,7 @@ var runProvisionOperation = async (operation) => {
|
|
|
2958
2958
|
rmSync4(key, { force: true });
|
|
2959
2959
|
if (result.exitCode !== 0)
|
|
2960
2960
|
return result;
|
|
2961
|
+
chmodSync2("/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg", 420);
|
|
2961
2962
|
const codename = os.match(/^VERSION_CODENAME=(.+)$/m)?.[1]?.replace(/^"|"$/g, "");
|
|
2962
2963
|
if (!codename)
|
|
2963
2964
|
return { stdout: "Ubuntu codename missing", exitCode: 1 };
|
|
@@ -475,6 +475,7 @@ async function executeSoftwareOperation(operation) {
|
|
|
475
475
|
]);
|
|
476
476
|
if (dearmored.exitCode !== 0)
|
|
477
477
|
return dearmored;
|
|
478
|
+
chmodSync("/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg", 420);
|
|
478
479
|
mkdirSync("/etc/apt/sources.list.d", { recursive: true, mode: 493 });
|
|
479
480
|
writeFileSync("/etc/apt/sources.list.d/cloudflare-client.list", `deb [signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ resolute main
|
|
480
481
|
`, { mode: 420 });
|
package/dist/definition.js
CHANGED
|
@@ -475,6 +475,7 @@ async function executeSoftwareOperation(operation) {
|
|
|
475
475
|
]);
|
|
476
476
|
if (dearmored.exitCode !== 0)
|
|
477
477
|
return dearmored;
|
|
478
|
+
chmodSync("/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg", 420);
|
|
478
479
|
mkdirSync("/etc/apt/sources.list.d", { recursive: true, mode: 493 });
|
|
479
480
|
writeFileSync("/etc/apt/sources.list.d/cloudflare-client.list", `deb [signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ resolute main
|
|
480
481
|
`, { mode: 420 });
|
package/dist/deploy-file.js
CHANGED
|
@@ -475,6 +475,7 @@ async function executeSoftwareOperation(operation) {
|
|
|
475
475
|
]);
|
|
476
476
|
if (dearmored.exitCode !== 0)
|
|
477
477
|
return dearmored;
|
|
478
|
+
chmodSync("/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg", 420);
|
|
478
479
|
mkdirSync("/etc/apt/sources.list.d", { recursive: true, mode: 493 });
|
|
479
480
|
writeFileSync("/etc/apt/sources.list.d/cloudflare-client.list", `deb [signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ resolute main
|
|
480
481
|
`, { mode: 420 });
|
package/dist/fz-agent.js
CHANGED
|
@@ -5471,6 +5471,7 @@ async function executeSoftwareOperation(operation) {
|
|
|
5471
5471
|
]);
|
|
5472
5472
|
if (dearmored.exitCode !== 0)
|
|
5473
5473
|
return dearmored;
|
|
5474
|
+
chmodSync2("/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg", 420);
|
|
5474
5475
|
mkdirSync("/etc/apt/sources.list.d", { recursive: true, mode: 493 });
|
|
5475
5476
|
writeFileSync("/etc/apt/sources.list.d/cloudflare-client.list", `deb [signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ resolute main
|
|
5476
5477
|
`, { mode: 420 });
|
|
@@ -9683,7 +9684,7 @@ async function writeAndCloseProcessInput(input, value) {
|
|
|
9683
9684
|
}
|
|
9684
9685
|
|
|
9685
9686
|
// src/version.ts
|
|
9686
|
-
var VERSION2 = "0.1.
|
|
9687
|
+
var VERSION2 = "0.1.139";
|
|
9687
9688
|
|
|
9688
9689
|
// src/ssh-bootstrap.ts
|
|
9689
9690
|
function deriveMetalAdmissionProvisioning(lscpu) {
|
|
@@ -15432,7 +15433,17 @@ async function activatePlatformRelease(config, requestedRelease, options = {}) {
|
|
|
15432
15433
|
const slots = join10(normalized.root, "slots");
|
|
15433
15434
|
mkdirSync14(slots, { recursive: true, mode: 493 });
|
|
15434
15435
|
const slotFile = join10(slots, ".active");
|
|
15435
|
-
|
|
15436
|
+
let previousSlot = existsSync19(slotFile) ? readFileSync14(slotFile, "utf8").trim() : undefined;
|
|
15437
|
+
if (previousSlot !== "blue" && previousSlot !== "green") {
|
|
15438
|
+
previousSlot = undefined;
|
|
15439
|
+
for (const candidate of ["blue", "green"]) {
|
|
15440
|
+
const active = await exec(["/usr/bin/systemctl", "is-active", "--quiet", `forgezero@${candidate}.service`]);
|
|
15441
|
+
if (active.exitCode === 0) {
|
|
15442
|
+
previousSlot = candidate;
|
|
15443
|
+
break;
|
|
15444
|
+
}
|
|
15445
|
+
}
|
|
15446
|
+
}
|
|
15436
15447
|
const target2 = previousSlot === "blue" ? "green" : "blue";
|
|
15437
15448
|
const port = target2 === "blue" ? normalized.bluePort : normalized.greenPort;
|
|
15438
15449
|
const targetLink = join10(slots, target2);
|
|
@@ -15465,6 +15476,8 @@ async function activatePlatformRelease(config, requestedRelease, options = {}) {
|
|
|
15465
15476
|
const stopTarget = async () => {
|
|
15466
15477
|
await exec(["/usr/bin/systemctl", "stop", service]);
|
|
15467
15478
|
replaceLink(targetLink, previousTarget);
|
|
15479
|
+
if (previousSlot)
|
|
15480
|
+
await exec(["/usr/bin/systemctl", "start", `forgezero@${previousSlot}.service`]);
|
|
15468
15481
|
};
|
|
15469
15482
|
if (!healthy) {
|
|
15470
15483
|
await stopTarget();
|
|
@@ -16916,6 +16929,7 @@ var runProvisionOperation = async (operation) => {
|
|
|
16916
16929
|
rmSync11(key, { force: true });
|
|
16917
16930
|
if (result.exitCode !== 0)
|
|
16918
16931
|
return result;
|
|
16932
|
+
chmodSync18("/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg", 420);
|
|
16919
16933
|
const codename = os.match(/^VERSION_CODENAME=(.+)$/m)?.[1]?.replace(/^"|"$/g, "");
|
|
16920
16934
|
if (!codename)
|
|
16921
16935
|
return { stdout: "Ubuntu codename missing", exitCode: 1 };
|
package/dist/fz.js
CHANGED
|
@@ -6007,7 +6007,7 @@ var UPDATE_RETRY_BASE_MS = 5 * 60000;
|
|
|
6007
6007
|
var UPDATE_RETRY_MAX_MS = 24 * 60 * 60000;
|
|
6008
6008
|
|
|
6009
6009
|
// src/version.ts
|
|
6010
|
-
var VERSION2 = "0.1.
|
|
6010
|
+
var VERSION2 = "0.1.139";
|
|
6011
6011
|
|
|
6012
6012
|
// src/software.ts
|
|
6013
6013
|
var PINNED_BUN_VERSION = "1.3.14";
|
|
@@ -7875,6 +7875,7 @@ var runProvisionOperation = async (operation) => {
|
|
|
7875
7875
|
rmSync3(key, { force: true });
|
|
7876
7876
|
if (result.exitCode !== 0)
|
|
7877
7877
|
return result;
|
|
7878
|
+
chmodSync("/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg", 420);
|
|
7878
7879
|
const codename = os.match(/^VERSION_CODENAME=(.+)$/m)?.[1]?.replace(/^"|"$/g, "");
|
|
7879
7880
|
if (!codename)
|
|
7880
7881
|
return { stdout: "Ubuntu codename missing", exitCode: 1 };
|
|
@@ -18401,6 +18402,35 @@ var invitationFrom = (fleet, master) => {
|
|
|
18401
18402
|
} catch {}
|
|
18402
18403
|
throw new Error("platform bootstrap completed without the initial custodian invitation");
|
|
18403
18404
|
};
|
|
18405
|
+
async function validatePlatformInvitation(args) {
|
|
18406
|
+
let invite;
|
|
18407
|
+
let api;
|
|
18408
|
+
try {
|
|
18409
|
+
invite = new URL(args.inviteUrl);
|
|
18410
|
+
api = new URL(args.apiOrigin);
|
|
18411
|
+
} catch {
|
|
18412
|
+
throw new Error("platform bootstrap produced malformed public invitation coordinates");
|
|
18413
|
+
}
|
|
18414
|
+
const token = invite.searchParams.get("token") ?? "";
|
|
18415
|
+
if (invite.protocol !== "https:" || api.protocol !== "https:" || !/^plt_[a-f0-9]{48}$/.test(token)) {
|
|
18416
|
+
throw new Error("platform bootstrap produced malformed public invitation coordinates");
|
|
18417
|
+
}
|
|
18418
|
+
const endpoint2 = new URL(`/api/onboarding/invite/${encodeURIComponent(token)}`, api);
|
|
18419
|
+
let response;
|
|
18420
|
+
try {
|
|
18421
|
+
response = await (args.fetcher ?? fetch)(endpoint2, {
|
|
18422
|
+
headers: { accept: "application/json" },
|
|
18423
|
+
cache: "no-store",
|
|
18424
|
+
signal: AbortSignal.timeout(15000)
|
|
18425
|
+
});
|
|
18426
|
+
} catch {
|
|
18427
|
+
throw new Error("platform bootstrap invitation could not be verified through public ingress");
|
|
18428
|
+
}
|
|
18429
|
+
const body = await response.json().catch(() => null);
|
|
18430
|
+
if (!response.ok || body?.ok !== true || body.kind !== "platform-bootstrap" || body.claimable !== true) {
|
|
18431
|
+
throw new Error("platform bootstrap invitation is not claimable; the environment was repaired from existing state instead of clean genesis");
|
|
18432
|
+
}
|
|
18433
|
+
}
|
|
18404
18434
|
async function applyAttendedPlatformBootstrap(fleetRequest, cloudflareRequest, acceptancePath, secrets, dependencies = {}) {
|
|
18405
18435
|
if (cloudflareRequest.mode !== "apply")
|
|
18406
18436
|
throw new Error("attended platform bootstrap requires Cloudflare apply mode");
|
|
@@ -18425,6 +18455,10 @@ async function applyAttendedPlatformBootstrap(fleetRequest, cloudflareRequest, a
|
|
|
18425
18455
|
if (!fleet.ok)
|
|
18426
18456
|
return { kind: "forgezero-attended-platform-bootstrap", ok: false, edge, fleet };
|
|
18427
18457
|
const inviteUrl = invitationFrom(fleet, fleetCoordinates.nodes[0].computeReference);
|
|
18458
|
+
await (dependencies.validateInvite ?? validatePlatformInvitation)({
|
|
18459
|
+
apiOrigin: fleetCoordinates.apiOrigin,
|
|
18460
|
+
inviteUrl
|
|
18461
|
+
});
|
|
18428
18462
|
const acceptance = await (dependencies.finalize ?? finalizeCloudflareBootstrapAcceptance)({
|
|
18429
18463
|
checkpointPath: edge.checkpointFile,
|
|
18430
18464
|
acceptancePath
|
package/dist/metal-bootstrap.js
CHANGED
|
@@ -366,7 +366,7 @@ function systemdAgentEgressDirectives(loopbackTcpPorts = []) {
|
|
|
366
366
|
}
|
|
367
367
|
|
|
368
368
|
// src/version.ts
|
|
369
|
-
var VERSION = "0.1.
|
|
369
|
+
var VERSION = "0.1.139";
|
|
370
370
|
|
|
371
371
|
// src/otel-collector.ts
|
|
372
372
|
var FORGEZERO_OTEL_COLLECTOR_UNIT = "forgezero-otel-collector.service";
|
|
@@ -619,6 +619,7 @@ async function executeSoftwareOperation(operation) {
|
|
|
619
619
|
]);
|
|
620
620
|
if (dearmored.exitCode !== 0)
|
|
621
621
|
return dearmored;
|
|
622
|
+
chmodSync("/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg", 420);
|
|
622
623
|
mkdirSync("/etc/apt/sources.list.d", { recursive: true, mode: 493 });
|
|
623
624
|
writeFileSync("/etc/apt/sources.list.d/cloudflare-client.list", `deb [signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ resolute main
|
|
624
625
|
`, { mode: 420 });
|
package/dist/metal-provision.js
CHANGED
|
@@ -619,6 +619,7 @@ async function executeSoftwareOperation(operation) {
|
|
|
619
619
|
]);
|
|
620
620
|
if (dearmored.exitCode !== 0)
|
|
621
621
|
return dearmored;
|
|
622
|
+
chmodSync("/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg", 420);
|
|
622
623
|
mkdirSync("/etc/apt/sources.list.d", { recursive: true, mode: 493 });
|
|
623
624
|
writeFileSync("/etc/apt/sources.list.d/cloudflare-client.list", `deb [signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ resolute main
|
|
624
625
|
`, { mode: 420 });
|
|
@@ -1460,7 +1460,7 @@ var UPDATE_RETRY_BASE_MS = 5 * 60000;
|
|
|
1460
1460
|
var UPDATE_RETRY_MAX_MS = 24 * 60 * 60000;
|
|
1461
1461
|
|
|
1462
1462
|
// src/version.ts
|
|
1463
|
-
var VERSION = "0.1.
|
|
1463
|
+
var VERSION = "0.1.139";
|
|
1464
1464
|
|
|
1465
1465
|
// src/software.ts
|
|
1466
1466
|
var PINNED_BUN_VERSION = "1.3.14";
|
|
@@ -2958,6 +2958,7 @@ var runProvisionOperation = async (operation) => {
|
|
|
2958
2958
|
rmSync4(key, { force: true });
|
|
2959
2959
|
if (result.exitCode !== 0)
|
|
2960
2960
|
return result;
|
|
2961
|
+
chmodSync2("/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg", 420);
|
|
2961
2962
|
const codename = os.match(/^VERSION_CODENAME=(.+)$/m)?.[1]?.replace(/^"|"$/g, "");
|
|
2962
2963
|
if (!codename)
|
|
2963
2964
|
return { stdout: "Ubuntu codename missing", exitCode: 1 };
|
|
@@ -475,6 +475,7 @@ async function executeSoftwareOperation(operation) {
|
|
|
475
475
|
]);
|
|
476
476
|
if (dearmored.exitCode !== 0)
|
|
477
477
|
return dearmored;
|
|
478
|
+
chmodSync("/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg", 420);
|
|
478
479
|
mkdirSync("/etc/apt/sources.list.d", { recursive: true, mode: 493 });
|
|
479
480
|
writeFileSync("/etc/apt/sources.list.d/cloudflare-client.list", `deb [signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ resolute main
|
|
480
481
|
`, { mode: 420 });
|
|
@@ -1260,7 +1261,17 @@ async function activatePlatformRelease(config, requestedRelease, options = {}) {
|
|
|
1260
1261
|
const slots = join2(normalized.root, "slots");
|
|
1261
1262
|
mkdirSync2(slots, { recursive: true, mode: 493 });
|
|
1262
1263
|
const slotFile = join2(slots, ".active");
|
|
1263
|
-
|
|
1264
|
+
let previousSlot = existsSync2(slotFile) ? readFileSync2(slotFile, "utf8").trim() : undefined;
|
|
1265
|
+
if (previousSlot !== "blue" && previousSlot !== "green") {
|
|
1266
|
+
previousSlot = undefined;
|
|
1267
|
+
for (const candidate of ["blue", "green"]) {
|
|
1268
|
+
const active = await exec(["/usr/bin/systemctl", "is-active", "--quiet", `forgezero@${candidate}.service`]);
|
|
1269
|
+
if (active.exitCode === 0) {
|
|
1270
|
+
previousSlot = candidate;
|
|
1271
|
+
break;
|
|
1272
|
+
}
|
|
1273
|
+
}
|
|
1274
|
+
}
|
|
1264
1275
|
const target = previousSlot === "blue" ? "green" : "blue";
|
|
1265
1276
|
const port = target === "blue" ? normalized.bluePort : normalized.greenPort;
|
|
1266
1277
|
const targetLink = join2(slots, target);
|
|
@@ -1293,6 +1304,8 @@ async function activatePlatformRelease(config, requestedRelease, options = {}) {
|
|
|
1293
1304
|
const stopTarget = async () => {
|
|
1294
1305
|
await exec(["/usr/bin/systemctl", "stop", service]);
|
|
1295
1306
|
replaceLink(targetLink, previousTarget);
|
|
1307
|
+
if (previousSlot)
|
|
1308
|
+
await exec(["/usr/bin/systemctl", "start", `forgezero@${previousSlot}.service`]);
|
|
1296
1309
|
};
|
|
1297
1310
|
if (!healthy) {
|
|
1298
1311
|
await stopTarget();
|
|
@@ -1318,6 +1318,7 @@ async function executeSoftwareOperation(operation) {
|
|
|
1318
1318
|
]);
|
|
1319
1319
|
if (dearmored.exitCode !== 0)
|
|
1320
1320
|
return dearmored;
|
|
1321
|
+
chmodSync4("/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg", 420);
|
|
1321
1322
|
mkdirSync3("/etc/apt/sources.list.d", { recursive: true, mode: 493 });
|
|
1322
1323
|
writeFileSync3("/etc/apt/sources.list.d/cloudflare-client.list", `deb [signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ resolute main
|
|
1323
1324
|
`, { mode: 420 });
|
|
@@ -3049,7 +3050,7 @@ function requestSoftware(requirements, socketPath = DEFAULT_SOFTWARE_HELPER_SOCK
|
|
|
3049
3050
|
}
|
|
3050
3051
|
|
|
3051
3052
|
// src/version.ts
|
|
3052
|
-
var VERSION3 = "0.1.
|
|
3053
|
+
var VERSION3 = "0.1.139";
|
|
3053
3054
|
|
|
3054
3055
|
// src/egress-policy.ts
|
|
3055
3056
|
import { realpathSync as realpathSync3 } from "node:fs";
|
|
@@ -4776,7 +4777,17 @@ async function activatePlatformRelease(config, requestedRelease, options = {}) {
|
|
|
4776
4777
|
const slots = join5(normalized.root, "slots");
|
|
4777
4778
|
mkdirSync8(slots, { recursive: true, mode: 493 });
|
|
4778
4779
|
const slotFile = join5(slots, ".active");
|
|
4779
|
-
|
|
4780
|
+
let previousSlot = existsSync8(slotFile) ? readFileSync6(slotFile, "utf8").trim() : undefined;
|
|
4781
|
+
if (previousSlot !== "blue" && previousSlot !== "green") {
|
|
4782
|
+
previousSlot = undefined;
|
|
4783
|
+
for (const candidate of ["blue", "green"]) {
|
|
4784
|
+
const active = await exec(["/usr/bin/systemctl", "is-active", "--quiet", `forgezero@${candidate}.service`]);
|
|
4785
|
+
if (active.exitCode === 0) {
|
|
4786
|
+
previousSlot = candidate;
|
|
4787
|
+
break;
|
|
4788
|
+
}
|
|
4789
|
+
}
|
|
4790
|
+
}
|
|
4780
4791
|
const target = previousSlot === "blue" ? "green" : "blue";
|
|
4781
4792
|
const port = target === "blue" ? normalized.bluePort : normalized.greenPort;
|
|
4782
4793
|
const targetLink = join5(slots, target);
|
|
@@ -4809,6 +4820,8 @@ async function activatePlatformRelease(config, requestedRelease, options = {}) {
|
|
|
4809
4820
|
const stopTarget = async () => {
|
|
4810
4821
|
await exec(["/usr/bin/systemctl", "stop", service]);
|
|
4811
4822
|
replaceLink(targetLink, previousTarget);
|
|
4823
|
+
if (previousSlot)
|
|
4824
|
+
await exec(["/usr/bin/systemctl", "start", `forgezero@${previousSlot}.service`]);
|
|
4812
4825
|
};
|
|
4813
4826
|
if (!healthy) {
|
|
4814
4827
|
await stopTarget();
|
|
@@ -5171,6 +5184,7 @@ var runProvisionOperation = async (operation) => {
|
|
|
5171
5184
|
rmSync8(key, { force: true });
|
|
5172
5185
|
if (result.exitCode !== 0)
|
|
5173
5186
|
return result;
|
|
5187
|
+
chmodSync7("/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg", 420);
|
|
5174
5188
|
const codename = os.match(/^VERSION_CODENAME=(.+)$/m)?.[1]?.replace(/^"|"$/g, "");
|
|
5175
5189
|
if (!codename)
|
|
5176
5190
|
return { stdout: "Ubuntu codename missing", exitCode: 1 };
|
package/dist/platform-genesis.js
CHANGED
|
@@ -475,6 +475,7 @@ async function executeSoftwareOperation(operation) {
|
|
|
475
475
|
]);
|
|
476
476
|
if (dearmored.exitCode !== 0)
|
|
477
477
|
return dearmored;
|
|
478
|
+
chmodSync("/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg", 420);
|
|
478
479
|
mkdirSync("/etc/apt/sources.list.d", { recursive: true, mode: 493 });
|
|
479
480
|
writeFileSync("/etc/apt/sources.list.d/cloudflare-client.list", `deb [signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ resolute main
|
|
480
481
|
`, { mode: 420 });
|
package/dist/provision.js
CHANGED
|
@@ -1318,6 +1318,7 @@ async function executeSoftwareOperation(operation) {
|
|
|
1318
1318
|
]);
|
|
1319
1319
|
if (dearmored.exitCode !== 0)
|
|
1320
1320
|
return dearmored;
|
|
1321
|
+
chmodSync4("/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg", 420);
|
|
1321
1322
|
mkdirSync3("/etc/apt/sources.list.d", { recursive: true, mode: 493 });
|
|
1322
1323
|
writeFileSync3("/etc/apt/sources.list.d/cloudflare-client.list", `deb [signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ resolute main
|
|
1323
1324
|
`, { mode: 420 });
|
|
@@ -3049,7 +3050,7 @@ function requestSoftware(requirements, socketPath = DEFAULT_SOFTWARE_HELPER_SOCK
|
|
|
3049
3050
|
}
|
|
3050
3051
|
|
|
3051
3052
|
// src/version.ts
|
|
3052
|
-
var VERSION3 = "0.1.
|
|
3053
|
+
var VERSION3 = "0.1.139";
|
|
3053
3054
|
|
|
3054
3055
|
// src/egress-policy.ts
|
|
3055
3056
|
import { realpathSync as realpathSync3 } from "node:fs";
|
package/dist/software-helper.js
CHANGED
|
@@ -475,6 +475,7 @@ async function executeSoftwareOperation(operation) {
|
|
|
475
475
|
]);
|
|
476
476
|
if (dearmored.exitCode !== 0)
|
|
477
477
|
return dearmored;
|
|
478
|
+
chmodSync("/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg", 420);
|
|
478
479
|
mkdirSync("/etc/apt/sources.list.d", { recursive: true, mode: 493 });
|
|
479
480
|
writeFileSync("/etc/apt/sources.list.d/cloudflare-client.list", `deb [signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ resolute main
|
|
480
481
|
`, { mode: 420 });
|
package/dist/software.js
CHANGED
|
@@ -475,6 +475,7 @@ async function executeSoftwareOperation(operation) {
|
|
|
475
475
|
]);
|
|
476
476
|
if (dearmored.exitCode !== 0)
|
|
477
477
|
return dearmored;
|
|
478
|
+
chmodSync("/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg", 420);
|
|
478
479
|
mkdirSync("/etc/apt/sources.list.d", { recursive: true, mode: 493 });
|
|
479
480
|
writeFileSync("/etc/apt/sources.list.d/cloudflare-client.list", `deb [signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ resolute main
|
|
480
481
|
`, { mode: 420 });
|
package/dist/ubuntu.js
CHANGED
|
@@ -475,6 +475,7 @@ async function executeSoftwareOperation(operation) {
|
|
|
475
475
|
]);
|
|
476
476
|
if (dearmored.exitCode !== 0)
|
|
477
477
|
return dearmored;
|
|
478
|
+
chmodSync("/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg", 420);
|
|
478
479
|
mkdirSync("/etc/apt/sources.list.d", { recursive: true, mode: 493 });
|
|
479
480
|
writeFileSync("/etc/apt/sources.list.d/cloudflare-client.list", `deb [signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ resolute main
|
|
480
481
|
`, { mode: 420 });
|
package/dist/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/** One package version shared by both public binaries. Pinned to package.json by tests. */
|
|
2
|
-
export declare const VERSION = "0.1.
|
|
2
|
+
export declare const VERSION = "0.1.139";
|