@cotal-ai/cli 0.51.0 → 0.52.1
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/command.d.ts.map +1 -1
- package/dist/command.js +8 -0
- package/dist/command.js.map +1 -1
- package/dist/commands/agents.d.ts +41 -2
- package/dist/commands/agents.d.ts.map +1 -1
- package/dist/commands/agents.js +67 -18
- package/dist/commands/agents.js.map +1 -1
- package/dist/commands/clean.d.ts.map +1 -1
- package/dist/commands/clean.js +5 -1
- package/dist/commands/clean.js.map +1 -1
- package/dist/commands/console.d.ts.map +1 -1
- package/dist/commands/console.js +9 -1
- package/dist/commands/console.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +13 -8
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/down.d.ts.map +1 -1
- package/dist/commands/down.js +37 -36
- package/dist/commands/down.js.map +1 -1
- package/dist/commands/setup.d.ts +3 -0
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +20 -11
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/spawn.d.ts.map +1 -1
- package/dist/commands/spawn.js +18 -2
- package/dist/commands/spawn.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +131 -35
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/sync.d.ts +7 -5
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +22 -23
- package/dist/commands/sync.js.map +1 -1
- package/dist/commands/up.d.ts +7 -0
- package/dist/commands/up.d.ts.map +1 -1
- package/dist/commands/up.js +156 -19
- package/dist/commands/up.js.map +1 -1
- package/dist/commands/update.d.ts +12 -0
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +58 -5
- package/dist/commands/update.js.map +1 -1
- package/dist/console/app.d.ts +14 -6
- package/dist/console/app.d.ts.map +1 -1
- package/dist/console/app.js +308 -40
- package/dist/console/app.js.map +1 -1
- package/dist/console/commands.d.ts +29 -1
- package/dist/console/commands.d.ts.map +1 -1
- package/dist/console/commands.js +109 -13
- package/dist/console/commands.js.map +1 -1
- package/dist/console/control.d.ts +141 -0
- package/dist/console/control.d.ts.map +1 -0
- package/dist/console/control.js +189 -0
- package/dist/console/control.js.map +1 -0
- package/dist/console/mesh.d.ts +1 -1
- package/dist/console/mesh.d.ts.map +1 -1
- package/dist/console/root.d.ts +13 -1
- package/dist/console/root.d.ts.map +1 -1
- package/dist/console/root.js +25 -5
- package/dist/console/root.js.map +1 -1
- package/dist/console/ui/CommandPalette.d.ts +2 -1
- package/dist/console/ui/CommandPalette.d.ts.map +1 -1
- package/dist/console/ui/CommandPalette.js +3 -2
- package/dist/console/ui/CommandPalette.js.map +1 -1
- package/dist/console/ui/Confirm.d.ts +13 -4
- package/dist/console/ui/Confirm.d.ts.map +1 -1
- package/dist/console/ui/Confirm.js +13 -5
- package/dist/console/ui/Confirm.js.map +1 -1
- package/dist/console/ui/Detail.d.ts +8 -1
- package/dist/console/ui/Detail.d.ts.map +1 -1
- package/dist/console/ui/Detail.js +11 -4
- package/dist/console/ui/Detail.js.map +1 -1
- package/dist/console/ui/Help.d.ts.map +1 -1
- package/dist/console/ui/Help.js +3 -2
- package/dist/console/ui/Help.js.map +1 -1
- package/dist/console/ui/Roster.d.ts +9 -1
- package/dist/console/ui/Roster.d.ts.map +1 -1
- package/dist/console/ui/Roster.js +16 -5
- package/dist/console/ui/Roster.js.map +1 -1
- package/dist/console/ui/Sparkline.d.ts +13 -0
- package/dist/console/ui/Sparkline.d.ts.map +1 -0
- package/dist/console/ui/Sparkline.js +21 -0
- package/dist/console/ui/Sparkline.js.map +1 -0
- package/dist/console/ui/StatusBar.d.ts +4 -1
- package/dist/console/ui/StatusBar.d.ts.map +1 -1
- package/dist/console/ui/StatusBar.js +5 -3
- package/dist/console/ui/StatusBar.js.map +1 -1
- package/dist/console/ui/Tabs.d.ts +4 -2
- package/dist/console/ui/Tabs.d.ts.map +1 -1
- package/dist/console/ui/Tabs.js +5 -3
- package/dist/console/ui/Tabs.js.map +1 -1
- package/dist/console/ui/topo/Map.d.ts.map +1 -1
- package/dist/console/ui/topo/Map.js +34 -2
- package/dist/console/ui/topo/Map.js.map +1 -1
- package/dist/console/ui/topo/Matrix.d.ts.map +1 -1
- package/dist/console/ui/topo/Matrix.js +12 -3
- package/dist/console/ui/topo/Matrix.js.map +1 -1
- package/dist/console/ui/topo/Sequence.js +1 -1
- package/dist/console/ui/topo/Sequence.js.map +1 -1
- package/dist/console/ui/topo/Topo.d.ts +10 -2
- package/dist/console/ui/topo/Topo.d.ts.map +1 -1
- package/dist/console/ui/topo/Topo.js +6 -4
- package/dist/console/ui/topo/Topo.js.map +1 -1
- package/dist/console/ui/topo/model.d.ts +50 -2
- package/dist/console/ui/topo/model.d.ts.map +1 -1
- package/dist/console/ui/topo/model.js +69 -6
- package/dist/console/ui/topo/model.js.map +1 -1
- package/dist/lib/attach-client.d.ts.map +1 -1
- package/dist/lib/attach-client.js +7 -1
- package/dist/lib/attach-client.js.map +1 -1
- package/dist/lib/auth-proc.d.ts +7 -4
- package/dist/lib/auth-proc.d.ts.map +1 -1
- package/dist/lib/auth-proc.js +26 -7
- package/dist/lib/auth-proc.js.map +1 -1
- package/dist/lib/delivery-proc.d.ts +10 -2
- package/dist/lib/delivery-proc.d.ts.map +1 -1
- package/dist/lib/delivery-proc.js +7 -1
- package/dist/lib/delivery-proc.js.map +1 -1
- package/dist/lib/status.d.ts +5 -3
- package/dist/lib/status.d.ts.map +1 -1
- package/dist/lib/status.js +16 -3
- package/dist/lib/status.js.map +1 -1
- package/dist/lib/teardown-spare.d.ts +16 -0
- package/dist/lib/teardown-spare.d.ts.map +1 -0
- package/dist/lib/teardown-spare.js +46 -0
- package/dist/lib/teardown-spare.js.map +1 -0
- package/dist/view/mesh-view.d.ts +41 -1
- package/dist/view/mesh-view.d.ts.map +1 -1
- package/dist/view/mesh-view.js +107 -8
- package/dist/view/mesh-view.js.map +1 -1
- package/package.json +14 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/up.d.ts
CHANGED
|
@@ -24,6 +24,8 @@ export interface DetachOpts {
|
|
|
24
24
|
transport: BrokerTransport;
|
|
25
25
|
server?: string;
|
|
26
26
|
storeDir?: string;
|
|
27
|
+
/** JetStream file storage cap in bytes (`--max-file-store`), rendered and recorded by this boot. */
|
|
28
|
+
maxFileStore?: number;
|
|
27
29
|
space?: string;
|
|
28
30
|
open?: boolean;
|
|
29
31
|
/** USER MODE: enable per-user auth (presence = on; `idpUrl` pins the IdP on first enable). */
|
|
@@ -51,6 +53,11 @@ export interface DetachOpts {
|
|
|
51
53
|
resumeAttempt?: string;
|
|
52
54
|
resumeCommitToken?: string;
|
|
53
55
|
maxSessions?: number;
|
|
56
|
+
/** #1417 broker-only boot (`--no-manager`): no manager starts with this broker. An `up -f` under
|
|
57
|
+
* the flag boots the broker + channels and launches NO agents from this host — a manifest's
|
|
58
|
+
* agents are booted by its manager, so a launch spec under `--no-manager` would promise a boot
|
|
59
|
+
* nothing can deliver. Refused at the flag level; carried here so every path is explicit. */
|
|
60
|
+
noManager?: boolean;
|
|
54
61
|
/** Maintenance-bound listener (restore target or ordinary-resume source): named spawn, durable
|
|
55
62
|
* ownership bind immediately after, wire verification after readiness. */
|
|
56
63
|
boundListener?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"up.d.ts","sourceRoot":"","sources":["../../src/commands/up.ts"],"names":[],"mappings":"AAkBA,OAAO,EAOL,KAAK,eAAe,EAgBpB,KAAK,mBAAmB,EACxB,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EA+BL,KAAK,SAAS,EAqBd,KAAK,eAAe,
|
|
1
|
+
{"version":3,"file":"up.d.ts","sourceRoot":"","sources":["../../src/commands/up.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/up.js
CHANGED
|
@@ -6,7 +6,7 @@ import { mkdirSync, writeFileSync, readFileSync, existsSync, openSync, statSync,
|
|
|
6
6
|
import { dirname, join, resolve } from "node:path";
|
|
7
7
|
import { isReachable, DEFAULT_SERVER, createSpaceAuth, serverConfig, openServerConfig, validateTlsMaterial, mintCreds, mintLifecycleUid, DEV_OWNER, mintConnectionEvictorCreds, mintMembershipObserverCreds, newIdentity, setupSpaceStreams, reconcileSpaceTtls, standaloneConnectOpts, seedChannelRegistry, ensureDefaultDeliveryClass, mkSecretDir, writeSecretFile, } from "@cotal-ai/core";
|
|
8
8
|
import { connect } from "@nats-io/transport-node";
|
|
9
|
-
import { assertSingleSpaceBroker, assertUserAuthInfo, authDir, getSoleSpaceAuth, getSpaceAuth, hasUserAuthState, listSpaceAccounts, preloadSpaceAccounts, putSpaceAuth, clearCurrent, findMesh, getCurrent, loadMeshes, connectionEvictorCredsKey, membershipConfigPath, membershipObserverCredsKey, membershipRwCredsKey, MEMBERSHIP_CONFIG_KIND, MEMBERSHIP_RW_CREDS_KIND, parsePositiveIntegerFlag, recordMesh, meshesForRoot, removeMesh, rotateSystemCreds, setCurrent, staleSystemCreds, SYSTEM_CREDS_FILES, userAuthStateDir, userAuthSpacesOnDisk, workspaceSecretStore, acquireMaintenanceLock, assertStoreIdentity, assessRestoreClaim, beginOrdinaryResume, bindOrdinaryResumeListener, consumeRetiredMaintenance, markOrdinaryResumeActive, markOrdinaryResumeDegraded, replaceDeadOrdinaryResumeListener, localProcessOwnerStatus, readMaintenanceJournal, readMaintenanceResumeDocument, seatCheckpointDir, readStoreIdentity, recordOrdinaryResumeManagerCommit, releaseMaintenanceLock, retireOrdinaryResume, sameStoreIdentity, readBrokerPolicy, writeBrokerPolicy, removeIdentityPin, writeIdentityPin, } from "@cotal-ai/workspace";
|
|
9
|
+
import { assertSingleSpaceBroker, assertUserAuthInfo, authDir, getSoleSpaceAuth, getSpaceAuth, hasUserAuthState, listSpaceAccounts, preloadSpaceAccounts, putSpaceAuth, clearCurrent, findMesh, getCurrent, loadMeshes, connectionEvictorCredsKey, membershipConfigPath, membershipObserverCredsKey, membershipRwCredsKey, MEMBERSHIP_CONFIG_KIND, MEMBERSHIP_RW_CREDS_KIND, parsePositiveIntegerFlag, recordMesh, meshesForRoot, removeMesh, rotateSystemCreds, setCurrent, staleSystemCreds, SYSTEM_CREDS_FILES, userAuthStateDir, userAuthSpacesOnDisk, workspaceSecretStore, acquireMaintenanceLock, assertStoreIdentity, assessRestoreClaim, beginOrdinaryResume, bindOrdinaryResumeListener, consumeRetiredMaintenance, markOrdinaryResumeActive, markOrdinaryResumeDegraded, replaceDeadOrdinaryResumeListener, localProcessOwnerStatus, readMaintenanceJournal, readMaintenanceResumeDocument, seatCheckpointDir, readStoreIdentity, recordOrdinaryResumeManagerCommit, releaseMaintenanceLock, retireOrdinaryResume, sameStoreIdentity, readBrokerPolicy, writeBrokerPolicy, removeIdentityPin, writeIdentityPin, localProcessPath, MANAGER_PIDFILE, assertManagerCanSpare, verifyIdentityPin, } from "@cotal-ai/workspace";
|
|
10
10
|
import { ensureAuthService, resolveAuthProvider, stopAuthService } from "../lib/auth-proc.js";
|
|
11
11
|
import { resolveSpace } from "../lib/status.js";
|
|
12
12
|
import { c } from "../ui.js";
|
|
@@ -19,6 +19,7 @@ import { deliveryUp, ensureControlPlane, stopDelivery } from "../lib/delivery-pr
|
|
|
19
19
|
import { RESPONDER_UNBOUND_CONSEQUENCE } from "../lib/delivery-responder.js";
|
|
20
20
|
import { displayCmd } from "../lib/self-exec.js";
|
|
21
21
|
import { liveManagerWouldApplyMaxSessions, managerHasDeliveryMarker, managerLogDisplayPath, managerRecordState, managerUp, stopManager } from "../lib/manager-proc.js";
|
|
22
|
+
import { listManagerSeatsForSpare, printLegacyManagerSpareUncertainty, printSparedAgents } from "../lib/teardown-spare.js";
|
|
22
23
|
import { loadManifest } from "../lib/manifest/index.js";
|
|
23
24
|
import { buildLaunchSpec, genRunId, manifestToChannels, preflightConnectors, writeLaunchSpec } from "../lib/manifest/apply.js";
|
|
24
25
|
import { renderUpPlan, renderInherited, renderWarnings } from "../lib/manifest/render.js";
|
|
@@ -35,6 +36,7 @@ export const upFlags = [
|
|
|
35
36
|
{ name: "host", type: "string", value: "<host>", description: "bind host override (an IP/hostname, not a URL; the URL is --server)" },
|
|
36
37
|
{ name: "space", type: "string", value: "<s>", description: "space name (default: the folder's)" },
|
|
37
38
|
{ name: "store-dir", type: "string", value: "<dir>", description: "JetStream store directory" },
|
|
39
|
+
{ name: "max-file-store", type: "string", value: "<bytes>", description: "JetStream file storage cap in bytes (default: nats-server's dynamic cap). Fixed at broker start; recorded and kept across `down --preserve-state`" },
|
|
38
40
|
{ name: "channels", type: "string", value: "<path>", description: "channel-registry seed file (JSON; default .cotal/channels.json)" },
|
|
39
41
|
{ name: "tls-cert", type: "string", value: "<file>", description: "serve the broker over TLS with this certificate (requires --tls-key)" },
|
|
40
42
|
{ name: "tls-key", type: "string", value: "<file>", description: "the private key for --tls-cert" },
|
|
@@ -54,6 +56,7 @@ export const upFlags = [
|
|
|
54
56
|
{ name: "detach", type: "boolean", description: "run in the background (stop with `cotal down`)" },
|
|
55
57
|
{ name: "runtime", type: "string", value: "<name>", description: "agent runtime for the mesh manager (default pty; extension runtimes are explicit-only, see `cotal runtimes`); with -f overrides the manifest's runtime" },
|
|
56
58
|
{ name: "max-sessions", type: "string", value: "<n>", description: "live-session ceiling for the mesh manager (default 64; one session per console pane, so size for agents × panes). Recorded and reused by later manager launches" },
|
|
59
|
+
{ name: "no-manager", type: "boolean", description: "broker-only boot: start the broker and, in auth mode, the delivery daemon, and no local manager (refuses on a mesh whose manager is live)" },
|
|
57
60
|
{ name: "file", type: "string", short: "f", value: "<cotal.yaml>", description: "launch a whole mesh from a manifest" },
|
|
58
61
|
{ name: "dry-run", type: "boolean", description: "with -f: print the plan, mutate nothing" },
|
|
59
62
|
];
|
|
@@ -145,6 +148,11 @@ async function runUp(args, inheritedLock, onAdopt) {
|
|
|
145
148
|
// read. A rotation is a stopped, fresh boot; a half-finished maintenance attempt is neither.
|
|
146
149
|
if (values["rotate-sys"] && (values.__restoreAttempt || values.__ordinaryResumeAttempt))
|
|
147
150
|
throw new Error("--rotate-sys cannot run during a restore/resume re-entry - finish or roll back the maintenance attempt, then `cotal down` and `cotal up --rotate-sys`");
|
|
151
|
+
// Same seam, same reason: a restore/resume re-entry needs the manager to commit the preserved
|
|
152
|
+
// inventory (completeResumeActivation asks it for resumePreserved/commitResume/finalizeResume), so
|
|
153
|
+
// a broker-only ask there is a contradiction to refuse, never a flag to drop mid-recovery.
|
|
154
|
+
if (values["no-manager"] && (values.__restoreAttempt || values.__ordinaryResumeAttempt))
|
|
155
|
+
throw new Error("--no-manager cannot run during a restore/resume re-entry - the resume needs a manager to commit the preserved inventory; finish or roll back the maintenance attempt first");
|
|
148
156
|
if (!values.__restoreAttempt && !values.__ordinaryResumeAttempt && !values.file) {
|
|
149
157
|
const root = cotalRoot();
|
|
150
158
|
// Same refusal for the AUTO-recovered journal, raised before the recovery is prepared and
|
|
@@ -152,6 +160,11 @@ async function runUp(args, inheritedLock, onAdopt) {
|
|
|
152
160
|
// `up` that has already begun adopting a maintenance attempt.
|
|
153
161
|
if (values["rotate-sys"] && readMaintenanceJournal(root))
|
|
154
162
|
throw new Error("--rotate-sys is refused while this root has a maintenance attempt to recover - finish or roll back that attempt (`cotal up` alone recovers it), then `cotal down` and `cotal up --rotate-sys`");
|
|
163
|
+
// Raised here for the stronger reason the journal itself carries: a pending maintenance attempt
|
|
164
|
+
// means the store is mid-recovery, and a broker-only boot over it is wrong with or without the
|
|
165
|
+
// manager half. The manager half is why the FLAG specifically cannot apply.
|
|
166
|
+
if (values["no-manager"] && readMaintenanceJournal(root))
|
|
167
|
+
throw new Error("--no-manager is refused while this root has a maintenance attempt to recover - a resume needs a manager to commit the preserved inventory; recover it (`cotal up` alone) or roll it back first");
|
|
155
168
|
const lock = acquireMaintenanceLock(root);
|
|
156
169
|
let pending;
|
|
157
170
|
let recoveredRestore;
|
|
@@ -205,6 +218,12 @@ async function runUp(args, inheritedLock, onAdopt) {
|
|
|
205
218
|
// Journal the CANONICAL identity-checked path, never the caller's spelling: a relative or
|
|
206
219
|
// symlinked spelling re-resolved later (other cwd, retargeted link) could open another store.
|
|
207
220
|
const resumeStore = journal.source.path;
|
|
221
|
+
// The cap is part of the preserved launch, like the store: a resume re-renders it, and a
|
|
222
|
+
// different --max-file-store is refused rather than silently resizing the preserved broker.
|
|
223
|
+
const resumeMaxFileStore = journaledMaxFileStore(launch.maxFileStore);
|
|
224
|
+
const requestedMaxFileStore = parsePositiveIntegerFlag("--max-file-store", values["max-file-store"]);
|
|
225
|
+
if (requestedMaxFileStore !== undefined && requestedMaxFileStore !== resumeMaxFileStore)
|
|
226
|
+
throw new Error(`--max-file-store ${requestedMaxFileStore} is not the preserved launch cap (${resumeMaxFileStore ?? "unset"}); ordinary up resumes exactly the preserved cap - omit --max-file-store`);
|
|
208
227
|
if (values.runtime && runtimes[0] && values.runtime !== runtimes[0])
|
|
209
228
|
throw new Error(`--runtime ${values.runtime} contradicts the preserved agent runtime ${runtimes[0]}; omit it to resume the same principals`);
|
|
210
229
|
const resumeRuntime = values.runtime ?? runtimes[0] ?? "pty";
|
|
@@ -219,6 +238,7 @@ async function runUp(args, inheritedLock, onAdopt) {
|
|
|
219
238
|
launch: {
|
|
220
239
|
server: resumeServer,
|
|
221
240
|
storeDir: resumeStore,
|
|
241
|
+
...(resumeMaxFileStore !== undefined ? { maxFileStore: resumeMaxFileStore } : {}),
|
|
222
242
|
runtime: resumeRuntime,
|
|
223
243
|
detached: Boolean(values.detach),
|
|
224
244
|
serverName,
|
|
@@ -238,6 +258,7 @@ async function runUp(args, inheritedLock, onAdopt) {
|
|
|
238
258
|
mode: journal.mode,
|
|
239
259
|
server: resumeServer,
|
|
240
260
|
storeDir: resumeStore,
|
|
261
|
+
...(resumeMaxFileStore !== undefined ? { maxFileStore: resumeMaxFileStore } : {}),
|
|
241
262
|
runtime: resumeRuntime,
|
|
242
263
|
detached: Boolean(values.detach),
|
|
243
264
|
inventory: resume.inventory,
|
|
@@ -251,6 +272,10 @@ async function runUp(args, inheritedLock, onAdopt) {
|
|
|
251
272
|
const resume = readMaintenanceResumeDocument(root, journal.resume);
|
|
252
273
|
const launch = journal.ordinaryResume.launch;
|
|
253
274
|
const attemptId = journal.ordinaryResume.attemptId;
|
|
275
|
+
const recoveredMaxFileStore = journaledMaxFileStore(launch.maxFileStore);
|
|
276
|
+
const requestedMaxFileStore = parsePositiveIntegerFlag("--max-file-store", values["max-file-store"]);
|
|
277
|
+
if (requestedMaxFileStore !== undefined && requestedMaxFileStore !== recoveredMaxFileStore)
|
|
278
|
+
throw new Error(`--max-file-store ${requestedMaxFileStore} is not the preserved launch cap (${recoveredMaxFileStore ?? "unset"}); resume attempt ${attemptId} re-renders exactly the preserved cap - omit --max-file-store`);
|
|
254
279
|
// Recovery re-asserts the source identity rather than trusting the journaled spelling.
|
|
255
280
|
assertStoreIdentity(journal.source);
|
|
256
281
|
// The bound listener decides re-entry: a live exact listener is ADOPTED, a provably dead
|
|
@@ -295,6 +320,7 @@ async function runUp(args, inheritedLock, onAdopt) {
|
|
|
295
320
|
mode: journal.mode,
|
|
296
321
|
server: typeof launch.server === "string" ? launch.server : DEFAULT_SERVER,
|
|
297
322
|
storeDir: journal.source.path,
|
|
323
|
+
...(recoveredMaxFileStore !== undefined ? { maxFileStore: recoveredMaxFileStore } : {}),
|
|
298
324
|
runtime: typeof launch.runtime === "string" ? launch.runtime : "pty",
|
|
299
325
|
detached: launch.detached === true,
|
|
300
326
|
inventory: resume.inventory,
|
|
@@ -353,6 +379,7 @@ async function runUp(args, inheritedLock, onAdopt) {
|
|
|
353
379
|
space: pending.space,
|
|
354
380
|
server: pending.server,
|
|
355
381
|
"store-dir": pending.storeDir,
|
|
382
|
+
"max-file-store": pending.maxFileStore === undefined ? undefined : String(pending.maxFileStore),
|
|
356
383
|
runtime: pending.runtime,
|
|
357
384
|
detach: pending.detached,
|
|
358
385
|
open: pending.mode === "open",
|
|
@@ -382,8 +409,22 @@ async function runUp(args, inheritedLock, onAdopt) {
|
|
|
382
409
|
if (values.idp && !wantUser && !values.file) {
|
|
383
410
|
throw new Error('--idp is for user-auth spaces; pair it with --user-auth, or set broker.auth: "user" in a manifest');
|
|
384
411
|
}
|
|
412
|
+
// BROKER-ONLY MODE (#1417). `--no-manager` names what it omits, and the two manager-shaping flags
|
|
413
|
+
// are refused beside it rather than silently dropped: a runtime selected or a ceiling recorded for
|
|
414
|
+
// a manager that will never start is a misunderstanding, and dropping it quietly is the exact
|
|
415
|
+
// silent-no-op shape this repo refuses everywhere else.
|
|
416
|
+
const noManager = Boolean(values["no-manager"]);
|
|
417
|
+
if (noManager && values.runtime)
|
|
418
|
+
throw new Error("--no-manager cannot be combined with --runtime - no manager starts, so there is no runtime to select; drop --runtime, or drop --no-manager");
|
|
419
|
+
if (noManager && values["max-sessions"])
|
|
420
|
+
throw new Error("--no-manager cannot be combined with --max-sessions - no manager starts, so there is no session ceiling to set; drop --max-sessions, or drop --no-manager");
|
|
385
421
|
const publicExchange = publicExchangeArgs(values, wantUser);
|
|
386
422
|
const maxSessions = parsePositiveIntegerFlag("--max-sessions", values["max-sessions"]);
|
|
423
|
+
const maxFileStore = parsePositiveIntegerFlag("--max-file-store", values["max-file-store"]);
|
|
424
|
+
// The manifest path renders its broker from the manifest, which has no store fields, so the flag
|
|
425
|
+
// would be accepted and never rendered. Refuse it rather than drop it.
|
|
426
|
+
if (maxFileStore !== undefined && values.file)
|
|
427
|
+
throw new Error("--max-file-store cannot be combined with --file/-f - a manifest launch does not render a store cap; drop --max-file-store, or start the mesh without -f");
|
|
387
428
|
// An open mesh has no operator, no system account, and no $SYS creds, so there is nothing to
|
|
388
429
|
// rotate; the request is a misunderstanding to name, never a silent no-op that reports success.
|
|
389
430
|
if (values["rotate-sys"] && values.open) {
|
|
@@ -473,6 +514,7 @@ async function runUp(args, inheritedLock, onAdopt) {
|
|
|
473
514
|
idp: values.idp,
|
|
474
515
|
rotateSys: values["rotate-sys"],
|
|
475
516
|
maxSessions,
|
|
517
|
+
noManager,
|
|
476
518
|
});
|
|
477
519
|
return;
|
|
478
520
|
}
|
|
@@ -491,6 +533,7 @@ async function runUp(args, inheritedLock, onAdopt) {
|
|
|
491
533
|
idp: values.idp,
|
|
492
534
|
rotateSys: values["rotate-sys"],
|
|
493
535
|
maxSessions,
|
|
536
|
+
noManager,
|
|
494
537
|
});
|
|
495
538
|
}
|
|
496
539
|
finally {
|
|
@@ -628,6 +671,13 @@ async function runUp(args, inheritedLock, onAdopt) {
|
|
|
628
671
|
console.error(c.red(`✗ mesh "${held.space}" is already running at ${server} - a running broker can't change its transport; \`cotal down\` it first, then \`cotal up --tls-cert <cert> --tls-key <key>\``));
|
|
629
672
|
process.exit(1);
|
|
630
673
|
}
|
|
674
|
+
// The store cap is fixed when nats-server reads its config, and nats-server refuses a reload
|
|
675
|
+
// from its dynamic cap to an explicit one. This branch starts nothing, so a different cap can
|
|
676
|
+
// only be refused; the same cap is a no-op.
|
|
677
|
+
if (maxFileStore !== undefined && maxFileStore !== held.maxFileStore) {
|
|
678
|
+
console.error(c.red(`✗ mesh "${held.space}" is already running at ${server} - a running broker can't change --max-file-store (it is fixed at start); \`cotal down\` it first, then \`cotal up --max-file-store ${maxFileStore}\``));
|
|
679
|
+
process.exit(1);
|
|
680
|
+
}
|
|
631
681
|
// `--max-sessions` is fixed when the manager starts. A refresh reuses a live manager as-is
|
|
632
682
|
// (`ensureManager` returns immediately), then used to persist the requested ceiling anyway.
|
|
633
683
|
// That printed `✓ already running` over an unchanged plane and left MeshEntry lying about it.
|
|
@@ -640,6 +690,18 @@ async function runUp(args, inheritedLock, onAdopt) {
|
|
|
640
690
|
process.exit(1);
|
|
641
691
|
}
|
|
642
692
|
}
|
|
693
|
+
// `--no-manager` on a refresh whose manager is LIVE is the same class of refusal: this branch
|
|
694
|
+
// starts nothing, so the flag cannot apply, and silently keeping the manager would answer a
|
|
695
|
+
// broker-only ask with a full stack while silently stopping it would kill agents this command
|
|
696
|
+
// was never asked to touch. Same shape as `--runtime`/`--max-sessions` above: refuse, name the
|
|
697
|
+
// exact remedy. A refresh of a mesh whose manager is NOT live simply proceeds broker-only.
|
|
698
|
+
if (noManager) {
|
|
699
|
+
const live = managerRecordState(undefined, undefined, held.space);
|
|
700
|
+
if (live.state === "alive") {
|
|
701
|
+
console.error(c.red(`✗ mesh "${held.space}" is already running at ${server} with a live manager - \`cotal up --no-manager\` will not keep or stop one; \`cotal down manager\` first, then \`cotal up --no-manager\``));
|
|
702
|
+
process.exit(1);
|
|
703
|
+
}
|
|
704
|
+
}
|
|
643
705
|
// Live INFO must agree with the recorded/requested transport. A bare refresh that greets
|
|
644
706
|
// "already running" over a plaintext listener while policy claims TLS is S5's second half —
|
|
645
707
|
// the refuse left a durable lie and this path used to reprint TLS success over cleartext.
|
|
@@ -751,6 +813,7 @@ async function runUp(args, inheritedLock, onAdopt) {
|
|
|
751
813
|
runtime: values.runtime,
|
|
752
814
|
attachHost: attachHostFor(held.space, values.host),
|
|
753
815
|
maxSessions: maxSessionsFor(held.space, maxSessions),
|
|
816
|
+
noManager,
|
|
754
817
|
});
|
|
755
818
|
if (!controlPlane)
|
|
756
819
|
process.exitCode = 1;
|
|
@@ -763,7 +826,7 @@ async function runUp(args, inheritedLock, onAdopt) {
|
|
|
763
826
|
// no transport decision to record — and `recordOurMesh` writes the entry whole, so omitting
|
|
764
827
|
// the field here would erase the requirement on every bare refresh, exactly the way dropping
|
|
765
828
|
// `attachHost` would silently demote the mesh to loopback.
|
|
766
|
-
recordOurMesh({ space: held.space, server, root, mode: held.mode, ...(held.tlsRequired !== undefined ? { tlsRequired: held.tlsRequired } : {}), ...(userAuth ? { userAuth } : {}), ...(heldAttachHost ? { attachHost: heldAttachHost } : {}), ...(heldMaxSessions !== undefined ? { maxSessions: heldMaxSessions } : {}), ts: new Date().toISOString() }, "refresh");
|
|
829
|
+
recordOurMesh({ space: held.space, server, root, mode: held.mode, ...(held.tlsRequired !== undefined ? { tlsRequired: held.tlsRequired } : {}), ...(userAuth ? { userAuth } : {}), ...(heldAttachHost ? { attachHost: heldAttachHost } : {}), ...(heldMaxSessions !== undefined ? { maxSessions: heldMaxSessions } : {}), ...(held.maxFileStore !== undefined ? { maxFileStore: held.maxFileStore } : {}), ts: new Date().toISOString() }, "refresh");
|
|
767
830
|
return;
|
|
768
831
|
}
|
|
769
832
|
const who = held ? `mesh "${held.space}" (${held.root})` : "a broker not started here";
|
|
@@ -795,6 +858,7 @@ async function runUp(args, inheritedLock, onAdopt) {
|
|
|
795
858
|
transport,
|
|
796
859
|
server,
|
|
797
860
|
storeDir: values["store-dir"],
|
|
861
|
+
maxFileStore,
|
|
798
862
|
space: values.space,
|
|
799
863
|
open: values.open,
|
|
800
864
|
userAuth: wantUser ? { idpUrl: values.idp } : undefined,
|
|
@@ -807,6 +871,7 @@ async function runUp(args, inheritedLock, onAdopt) {
|
|
|
807
871
|
host: values.host,
|
|
808
872
|
runtime: values.runtime,
|
|
809
873
|
maxSessions,
|
|
874
|
+
noManager,
|
|
810
875
|
resumeAttempt,
|
|
811
876
|
resumeCommitToken: restored?.managerCommit?.durableCommitToken ?? ordinaryAttempt?.managerCommit?.durableCommitToken,
|
|
812
877
|
...(restored ? {
|
|
@@ -862,14 +927,14 @@ async function runUp(args, inheritedLock, onAdopt) {
|
|
|
862
927
|
// Decided above the branch; the dial host is only settled here (a port collision may have moved
|
|
863
928
|
// the server, and the hostname is what the certificate has to match).
|
|
864
929
|
assertServesDialHost(transport, new URL(server).hostname);
|
|
865
|
-
const setup = useAuth ? await authSetup(storeDir, server, space, host, wantUser ? { idpUrl: values.idp } : undefined, transport, values["rotate-sys"]) : undefined;
|
|
930
|
+
const setup = useAuth ? await authSetup(storeDir, server, space, host, wantUser ? { idpUrl: values.idp } : undefined, transport, values["rotate-sys"], maxFileStore) : undefined;
|
|
866
931
|
const port = Number(new URL(server).port) || 4222;
|
|
867
932
|
const restored = resumeAttempt ? pendingRestores.get(resumeAttempt) : undefined;
|
|
868
933
|
// Both modes go through a RENDERER, never bare CLI flags. Open mode used to start from
|
|
869
934
|
// `-js -sd … -p … -a …`, which never called a renderer at all — so the required transport union
|
|
870
935
|
// protected the auth path and was silent on the open one, and a cert/key pair passed to an
|
|
871
936
|
// open-mode `up` would have been accepted while the listener came up in cleartext.
|
|
872
|
-
const confPath = setup ? setup.confPath : writeOpenBrokerConf(storeDir, { port, host, transport });
|
|
937
|
+
const confPath = setup ? setup.confPath : writeOpenBrokerConf(storeDir, { port, host, transport, maxFileStore });
|
|
873
938
|
const natsArgs = [
|
|
874
939
|
"-c", confPath,
|
|
875
940
|
...(restored ? ["--name", restored.serverName]
|
|
@@ -919,15 +984,58 @@ async function runUp(args, inheritedLock, onAdopt) {
|
|
|
919
984
|
// stopDelivery is async (its creds delete goes through the secret store); the rest of the teardown
|
|
920
985
|
// must run even if it fails — the failure is logged, never swallowed silently, and the daemon kill
|
|
921
986
|
// itself happens inside stopDelivery's finally. Order preserved: delivery, manager, auth, broker.
|
|
987
|
+
// The manager stop is the SPARING one `cotal down` performs (#1307): the seat snapshot is taken
|
|
988
|
+
// while the manager still answers, the spare capability of the exact recorded process is asserted
|
|
989
|
+
// before any signal, and the seats left behind are reported with the reap route. Teardown is
|
|
990
|
+
// AWAITED before the broker is signalled — the same order the broker-exit handler below uses — so
|
|
991
|
+
// manager teardown never races a broker that is already going away.
|
|
992
|
+
let stopping = false;
|
|
922
993
|
const stop = () => {
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
994
|
+
if (stopping)
|
|
995
|
+
return; // a second Ctrl-C during teardown must not start a second teardown
|
|
996
|
+
stopping = true;
|
|
997
|
+
void (async () => {
|
|
998
|
+
const managerContext = { root: cotalRoot(), space };
|
|
999
|
+
let spared;
|
|
1000
|
+
let legacyManagerSpareUnverified = false;
|
|
1001
|
+
const managerPidPath = localProcessPath(MANAGER_PIDFILE, managerContext);
|
|
1002
|
+
if (existsSync(managerPidPath)) {
|
|
1003
|
+
const pin = verifyIdentityPin(managerPidPath);
|
|
1004
|
+
if (pin.kind === "legacy")
|
|
1005
|
+
legacyManagerSpareUnverified = true;
|
|
1006
|
+
else if (pin.kind === "match") {
|
|
1007
|
+
spared = await listManagerSeatsForSpare(managerContext);
|
|
1008
|
+
try {
|
|
1009
|
+
assertManagerCanSpare(managerContext, undefined, pin.record);
|
|
1010
|
+
}
|
|
1011
|
+
catch (e) {
|
|
1012
|
+
// THE CAPABILITY ASSERT IS THE SIGNAL GATE, the same rule bare `down` enforces inside
|
|
1013
|
+
// its beforeSignal hook: a throw there signals nothing. Signal NOTHING here either — no
|
|
1014
|
+
// manager, no delivery, no auth, no broker — print the refusal with the reap route, and
|
|
1015
|
+
// release the latch so the stack keeps running in the foreground; the operator ends it
|
|
1016
|
+
// with `cotal down --with-agents` from another terminal, and the broker-exit handler
|
|
1017
|
+
// below already ends `up` when the broker goes.
|
|
1018
|
+
console.error(c.red(`! teardown: ${e.message}`));
|
|
1019
|
+
console.error(c.red(`the stack is still running; to take managed agents with it, run: cotal down --with-agents`));
|
|
1020
|
+
stopping = false;
|
|
1021
|
+
return;
|
|
1022
|
+
}
|
|
1023
|
+
}
|
|
1024
|
+
}
|
|
1025
|
+
await stopDelivery(undefined, undefined, space).catch((e) => console.error(`! delivery teardown: ${e.message}`));
|
|
1026
|
+
try {
|
|
1027
|
+
await stopManager(undefined, undefined, undefined, space);
|
|
1028
|
+
if (legacyManagerSpareUnverified)
|
|
1029
|
+
printLegacyManagerSpareUncertainty();
|
|
1030
|
+
else if (spared)
|
|
1031
|
+
printSparedAgents(spared);
|
|
1032
|
+
}
|
|
1033
|
+
catch (e) {
|
|
1034
|
+
console.error(`! manager teardown: ${e.message}`);
|
|
1035
|
+
}
|
|
1036
|
+
await stopAuthService(space).catch((e) => console.error(`! auth teardown: ${e.message}`));
|
|
929
1037
|
child.kill("SIGTERM");
|
|
930
|
-
});
|
|
1038
|
+
})();
|
|
931
1039
|
};
|
|
932
1040
|
process.on("SIGINT", stop);
|
|
933
1041
|
process.on("SIGTERM", stop);
|
|
@@ -1001,6 +1109,7 @@ async function runUp(args, inheritedLock, onAdopt) {
|
|
|
1001
1109
|
// though the operator had chosen it.
|
|
1002
1110
|
...(effectiveAttachHost ? { attachHost: effectiveAttachHost } : {}),
|
|
1003
1111
|
...(effectiveMaxSessions !== undefined ? { maxSessions: effectiveMaxSessions } : {}),
|
|
1112
|
+
...(maxFileStore !== undefined ? { maxFileStore } : {}),
|
|
1004
1113
|
ts: new Date().toISOString(),
|
|
1005
1114
|
}, "started");
|
|
1006
1115
|
// Bring up the delivery daemon WITH the server (auth mode only — it self-gates on `.cotal/auth`).
|
|
@@ -1014,6 +1123,7 @@ async function runUp(args, inheritedLock, onAdopt) {
|
|
|
1014
1123
|
// is never a side effect of anything but the operator binding the mesh somewhere reachable.
|
|
1015
1124
|
attachHost: effectiveAttachHost,
|
|
1016
1125
|
maxSessions: effectiveMaxSessions,
|
|
1126
|
+
noManager,
|
|
1017
1127
|
resumeAttempt,
|
|
1018
1128
|
resumeCommitToken: restored?.managerCommit?.durableCommitToken ?? ordinaryAttempt?.managerCommit?.durableCommitToken,
|
|
1019
1129
|
wsPort: setup?.wsPort, // P2 item 6: the console session client's broker ws port
|
|
@@ -1365,6 +1475,7 @@ async function resumeProvenOrdinaryListener(pending, heldLock) {
|
|
|
1365
1475
|
...(svc.userAuth ? { userAuth: svc.userAuth } : {}),
|
|
1366
1476
|
...(adoptAttachHost ? { attachHost: adoptAttachHost } : {}),
|
|
1367
1477
|
...(adoptMaxSessions !== undefined ? { maxSessions: adoptMaxSessions } : {}),
|
|
1478
|
+
...(pending.maxFileStore !== undefined ? { maxFileStore: pending.maxFileStore } : {}),
|
|
1368
1479
|
ts: new Date().toISOString(),
|
|
1369
1480
|
}, "started");
|
|
1370
1481
|
const controlPlane = await startDeliveryWithBroker(pending.space, pending.server, adoptedTlsRequired(pending.root), {
|
|
@@ -1687,6 +1798,12 @@ async function upManifest(file, opts) {
|
|
|
1687
1798
|
const open = m.broker?.auth === false; // default is auth
|
|
1688
1799
|
const userAuth = m.broker?.auth === "user" ? { idpUrl: opts.idp ?? m.broker?.idp } : undefined; // flag > manifest
|
|
1689
1800
|
const runtime = m.runtime ?? "pty";
|
|
1801
|
+
// A manifest's agents are booted BY the manager `up -f` starts with the mesh, so `--no-manager`
|
|
1802
|
+
// against a manifest declaring agents asks for a boot that cannot deliver its own plan. Refused
|
|
1803
|
+
// before the dry-run print and before anything boots, with the two workable spellings named.
|
|
1804
|
+
if (opts.noManager && eff.agents.length)
|
|
1805
|
+
throw new Error(`--no-manager cannot launch this manifest: it declares ${eff.agents.length} agent(s), and a manifest's agents are booted by its manager (which --no-manager omits). Deploy it from a manager host with \`cotal spawn -f\`, or drop --no-manager.`);
|
|
1806
|
+
const effectiveNoManager = Boolean(opts.noManager);
|
|
1690
1807
|
// The open-mesh refusal must be RE-STATED here, not only against the CLI `--open` flag: on this
|
|
1691
1808
|
// path openness comes from the MANIFEST (`broker.auth: false`), which the flag-level guard cannot
|
|
1692
1809
|
// see. Without it, `cotal up -f open.yaml --rotate-sys` boots an open broker, exits 0 and rotates
|
|
@@ -1703,6 +1820,10 @@ async function upManifest(file, opts) {
|
|
|
1703
1820
|
if (opts.transport.kind === "tls-required")
|
|
1704
1821
|
announceTransport(opts.transport);
|
|
1705
1822
|
console.log(renderUpPlan(eff, server));
|
|
1823
|
+
// The omission is part of the plan (#1417): a dry run that lists a manager the real boot
|
|
1824
|
+
// will not start is the exact "green-lit a launch the applying command refuses" failure.
|
|
1825
|
+
if (effectiveNoManager)
|
|
1826
|
+
console.log(c.dim(" no manager will start on this host (--no-manager): broker, channels and, in auth mode, the delivery daemon come up, and no agents launch from here"));
|
|
1706
1827
|
return;
|
|
1707
1828
|
}
|
|
1708
1829
|
// Preflight an extension runtime before starting the broker. The detached manager re-execs this
|
|
@@ -1756,7 +1877,7 @@ async function upManifest(file, opts) {
|
|
|
1756
1877
|
try {
|
|
1757
1878
|
// `m.broker?.host`, not the defaulted `host`: same reason as the flag path — only a host the
|
|
1758
1879
|
// manifest actually declared is an exposure decision worth persisting.
|
|
1759
|
-
({ pid, controlPlane, authService } = await startMeshDetached({ transport: opts.transport, server, space: m.space, open, userAuth, rotateSys: opts.rotateSys, host: m.broker?.host, seed: manifestToChannels(eff), runtime, launch: specPath, maxSessions: opts.maxSessions }));
|
|
1880
|
+
({ pid, controlPlane, authService } = await startMeshDetached({ transport: opts.transport, server, space: m.space, open, userAuth, rotateSys: opts.rotateSys, host: m.broker?.host, seed: manifestToChannels(eff), runtime, launch: specPath, maxSessions: opts.maxSessions, noManager: effectiveNoManager }));
|
|
1760
1881
|
}
|
|
1761
1882
|
catch (e) {
|
|
1762
1883
|
console.error(c.red(`✗ ${e.message}`));
|
|
@@ -1767,7 +1888,12 @@ async function upManifest(file, opts) {
|
|
|
1767
1888
|
console.log(c.dim(` seeded ${m.channels.length} channel(s): ${m.channels.map((ch) => "#" + ch.name).join(", ")}`));
|
|
1768
1889
|
// Never claim a launch the control plane can't deliver: the manager carries the launch spec, so a
|
|
1769
1890
|
// degraded control plane (announced above) means the agents are NOT coming up.
|
|
1770
|
-
if (
|
|
1891
|
+
if (effectiveNoManager) {
|
|
1892
|
+
// Truthful summary for the broker-only boot (#1417): nothing was omitted by accident, and the
|
|
1893
|
+
// agents this manifest declares (none — a declaring manifest is refused above) launch elsewhere.
|
|
1894
|
+
console.log(c.dim(` broker-only (--no-manager): no manager started on this host - run \`cotal supervise --space ${m.space} --server ${server}\` from a manager host to manage agents`));
|
|
1895
|
+
}
|
|
1896
|
+
else if (controlPlane) {
|
|
1771
1897
|
// U6: on a user mesh the agents run under the OPERATOR's identity — say whose they are.
|
|
1772
1898
|
console.log(c.green(`✓ launching ${eff.agents.length} agent(s)`) + c.dim(` via manager (${runtime})${owner ? ` as you (owner ${owner})` : ""} - see ${managerLogDisplayPath(m.space)}`));
|
|
1773
1899
|
}
|
|
@@ -1780,7 +1906,7 @@ async function upManifest(file, opts) {
|
|
|
1780
1906
|
console.log("\n" + inherited);
|
|
1781
1907
|
if (eff.warnings.length)
|
|
1782
1908
|
console.log("\n" + renderWarnings(eff.warnings));
|
|
1783
|
-
console.log(c.dim(`\nWatch: \`cotal console --space ${m.space}\`
|
|
1909
|
+
console.log(c.dim(`\nWatch: \`cotal web\` (browser dashboard) or \`cotal console --space ${m.space}\` (terminal) · Tear down: \`cotal down\``));
|
|
1784
1910
|
// A declared-user-auth manifest whose auth service never became ready: the mesh is up + recorded
|
|
1785
1911
|
// (re-`cotal up` heals), but this launch did not deliver a usable identity plane — exit non-zero
|
|
1786
1912
|
// so CI/wrappers don't read success (the red consequence line printed at the failure above).
|
|
@@ -1885,11 +2011,11 @@ opts) {
|
|
|
1885
2011
|
// effective server is finally known — a manifest may name a different host than the flags did, and
|
|
1886
2012
|
// a certificate that is valid for one is not thereby valid for the other.
|
|
1887
2013
|
const transport = assertServesDialHost(opts.transport, new URL(server).hostname);
|
|
1888
|
-
const setup = useAuth ? await authSetup(storeDir, server, space, host, opts.userAuth, transport, opts.rotateSys) : undefined;
|
|
2014
|
+
const setup = useAuth ? await authSetup(storeDir, server, space, host, opts.userAuth, transport, opts.rotateSys, opts.maxFileStore) : undefined;
|
|
1889
2015
|
const port = Number(new URL(server).port) || 4222;
|
|
1890
2016
|
// Same rule as the foreground path: every route to a listener names its transport (see
|
|
1891
2017
|
// `writeOpenBrokerConf`). Detach must not be the mode where the fence quietly does not apply.
|
|
1892
|
-
const confPath = setup ? setup.confPath : writeOpenBrokerConf(storeDir, { port, host, transport });
|
|
2018
|
+
const confPath = setup ? setup.confPath : writeOpenBrokerConf(storeDir, { port, host, transport, maxFileStore: opts.maxFileStore });
|
|
1893
2019
|
const args = [
|
|
1894
2020
|
"-c", confPath,
|
|
1895
2021
|
...(opts.boundListener ? ["--name", opts.boundListener.serverName] : []),
|
|
@@ -1985,6 +2111,7 @@ opts) {
|
|
|
1985
2111
|
// Persist only a real decision — declared now, or carried forward — never the loopback default.
|
|
1986
2112
|
...(effectiveAttachHost ? { attachHost: effectiveAttachHost } : {}),
|
|
1987
2113
|
...(effectiveMaxSessions !== undefined ? { maxSessions: effectiveMaxSessions } : {}),
|
|
2114
|
+
...(opts.maxFileStore !== undefined ? { maxFileStore: opts.maxFileStore } : {}),
|
|
1988
2115
|
ts: new Date().toISOString(),
|
|
1989
2116
|
}, "started");
|
|
1990
2117
|
// Commit policy BEFORE delivery launch (S9). Listener is proved; refuse paths never reach here.
|
|
@@ -1997,6 +2124,7 @@ opts) {
|
|
|
1997
2124
|
// See the foreground path: the broker's bind address is what makes attach reachable off-box.
|
|
1998
2125
|
attachHost: effectiveAttachHost,
|
|
1999
2126
|
maxSessions: effectiveMaxSessions,
|
|
2127
|
+
noManager: opts.noManager,
|
|
2000
2128
|
resumeAttempt: opts.resumeAttempt,
|
|
2001
2129
|
resumeCommitToken: opts.resumeCommitToken,
|
|
2002
2130
|
wsPort: setup?.wsPort, // P2 item 6: the console session client's broker ws port
|
|
@@ -2121,6 +2249,15 @@ export function attachHostFor(space, explicit) {
|
|
|
2121
2249
|
export function maxSessionsFor(space, explicit) {
|
|
2122
2250
|
return explicit ?? findMesh(space)?.maxSessions;
|
|
2123
2251
|
}
|
|
2252
|
+
/** The store cap a preserved launch recorded: absent, or a positive integer byte count. Anything
|
|
2253
|
+
* else is a damaged journal, refused rather than rendered as the dynamic default. */
|
|
2254
|
+
function journaledMaxFileStore(value) {
|
|
2255
|
+
if (value === undefined)
|
|
2256
|
+
return undefined;
|
|
2257
|
+
if (typeof value !== "number" || !Number.isSafeInteger(value) || value < 1)
|
|
2258
|
+
throw new Error(`the preserved launch records an invalid maxFileStore (${JSON.stringify(value)}); refusing to guess the broker's store cap`);
|
|
2259
|
+
return value;
|
|
2260
|
+
}
|
|
2124
2261
|
/** {@link recordOurMesh} under a name that says it is a test seam: the origin rule it enforces is
|
|
2125
2262
|
* asserted directly by the registry smoke, since reaching each branch through a full `up` would
|
|
2126
2263
|
* need a live broker per case. */
|
|
@@ -2509,7 +2646,7 @@ function validateRecorded(transport, dialHost, opts = {}) {
|
|
|
2509
2646
|
*/
|
|
2510
2647
|
function writeOpenBrokerConf(storeDir, opts) {
|
|
2511
2648
|
const confPath = resolve(storeDir, "..", "server-open.conf");
|
|
2512
|
-
writeFileSync(confPath, openServerConfig({ port: opts.port, host: opts.host, storeDir, transport: opts.transport }));
|
|
2649
|
+
writeFileSync(confPath, openServerConfig({ port: opts.port, host: opts.host, storeDir, maxFileStore: opts.maxFileStore, transport: opts.transport }));
|
|
2513
2650
|
return confPath;
|
|
2514
2651
|
}
|
|
2515
2652
|
async function authSetup(storeDir, server, space, host = "127.0.0.1", user,
|
|
@@ -2518,7 +2655,7 @@ async function authSetup(storeDir, server, space, host = "127.0.0.1", user,
|
|
|
2518
2655
|
// operator's `--tls-cert` sat validated and unused. A default here cannot be right, because the
|
|
2519
2656
|
// safe value and the common value are different values — every caller knows its transport, and
|
|
2520
2657
|
// the one that does not is the one that must not compile.
|
|
2521
|
-
transport, rotateSys = false) {
|
|
2658
|
+
transport, rotateSys = false, maxFileStore) {
|
|
2522
2659
|
const dir = authDir(cotalRoot()); // the broker config (server.conf) still lands under the FS auth dir
|
|
2523
2660
|
const store = workspaceSecretStore(cotalRoot());
|
|
2524
2661
|
let auth = await getSpaceAuth(store, space);
|
|
@@ -2627,7 +2764,7 @@ transport, rotateSys = false) {
|
|
|
2627
2764
|
: await resolveAuthProvider().preloadAccounts({ store, space: enabledSpace });
|
|
2628
2765
|
extraAccounts.push(...accounts);
|
|
2629
2766
|
}
|
|
2630
|
-
writeFileSync(confPath, serverConfig(auth, spaces, { transport, port, storeDir, host, wsPort, wsHost: host, extraAccounts }));
|
|
2767
|
+
writeFileSync(confPath, serverConfig(auth, spaces, { transport, port, storeDir, maxFileStore, host, wsPort, wsHost: host, extraAccounts }));
|
|
2631
2768
|
// Ephemeral setup cred: used only to probe reachability, pre-create the space streams/buckets
|
|
2632
2769
|
// (setupSpaceStreams) and seed the channel registry (seedChannelRegistry) — all within the
|
|
2633
2770
|
// enumerated `provisioner` scope. No broad `manager` residual for the up path.
|