@formigio/fazemos-cli 0.10.75 → 0.10.78
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/governance.d.ts +156 -0
- package/dist/governance.js +45 -0
- package/dist/governance.js.map +1 -1
- package/dist/wake.d.ts +126 -11
- package/dist/wake.js +244 -78
- package/dist/wake.js.map +1 -1
- package/package.json +1 -1
package/dist/governance.d.ts
CHANGED
|
@@ -20,6 +20,161 @@
|
|
|
20
20
|
* Manifest: cli section (fazemos-cli/src/governance.ts)
|
|
21
21
|
*/
|
|
22
22
|
import type { Command } from 'commander';
|
|
23
|
+
/** Time window options for the governance rollup. */
|
|
24
|
+
type GovernanceWindow = '24h' | '7d';
|
|
25
|
+
/** Source type for an activity row. */
|
|
26
|
+
type ActivitySourceType = 'trigger' | 'dispatch_wake' | 'dispatch' | 'pipeline_step';
|
|
27
|
+
/** Activity row status values. */
|
|
28
|
+
type ActivityStatus = 'fired' | 'in-flight' | 'suppressed' | 'deferred' | 'depth-refused' | 'failed' | 'skipped';
|
|
29
|
+
/** Org/project hydration object on activity rows. */
|
|
30
|
+
interface OrgRef {
|
|
31
|
+
id: string;
|
|
32
|
+
name: string;
|
|
33
|
+
slug: string;
|
|
34
|
+
colorIndex: number;
|
|
35
|
+
}
|
|
36
|
+
interface ProjectRef {
|
|
37
|
+
id: string;
|
|
38
|
+
name: string;
|
|
39
|
+
slug: string;
|
|
40
|
+
colorIndex: number;
|
|
41
|
+
}
|
|
42
|
+
/** Single activity row from GovernanceStatus.activity.rows. */
|
|
43
|
+
interface ActivityRow {
|
|
44
|
+
id: string;
|
|
45
|
+
source_type: ActivitySourceType;
|
|
46
|
+
role: string | null;
|
|
47
|
+
description: string;
|
|
48
|
+
status: ActivityStatus;
|
|
49
|
+
status_detail: string | null;
|
|
50
|
+
timestamp: string;
|
|
51
|
+
execution_id: string | null;
|
|
52
|
+
org_id: string;
|
|
53
|
+
project_id: string | null;
|
|
54
|
+
org: OrgRef | null;
|
|
55
|
+
project: ProjectRef | null;
|
|
56
|
+
}
|
|
57
|
+
/** Pause scope entry in the control-plane block. */
|
|
58
|
+
interface PauseScope {
|
|
59
|
+
scope: 'global' | 'role' | 'stream';
|
|
60
|
+
scope_key: string | null;
|
|
61
|
+
reason: string | null;
|
|
62
|
+
paused_by_name: string | null;
|
|
63
|
+
paused_at: string;
|
|
64
|
+
paused_until: string | null;
|
|
65
|
+
org_id: string;
|
|
66
|
+
}
|
|
67
|
+
/** GovernanceStatus — full contract returned by GET /api/control-plane/governance. */
|
|
68
|
+
export interface GovernanceStatus {
|
|
69
|
+
window: GovernanceWindow;
|
|
70
|
+
window_start: string;
|
|
71
|
+
generated_at: string;
|
|
72
|
+
control_plane: {
|
|
73
|
+
pause: {
|
|
74
|
+
paused: boolean;
|
|
75
|
+
scopes: PauseScope[];
|
|
76
|
+
};
|
|
77
|
+
budget: {
|
|
78
|
+
unit: 'tokens' | 'usd';
|
|
79
|
+
used: number;
|
|
80
|
+
effective_used: number;
|
|
81
|
+
cap: number | null;
|
|
82
|
+
headroom_pct: number | null;
|
|
83
|
+
resets_at: string | null;
|
|
84
|
+
under_count_note: boolean;
|
|
85
|
+
} | null;
|
|
86
|
+
};
|
|
87
|
+
activity: {
|
|
88
|
+
rows: ActivityRow[];
|
|
89
|
+
total_count: number;
|
|
90
|
+
truncated: boolean;
|
|
91
|
+
sources_degraded: string[];
|
|
92
|
+
};
|
|
93
|
+
cost: {
|
|
94
|
+
unit: 'tokens' | 'usd';
|
|
95
|
+
by_role: Array<{
|
|
96
|
+
role: string;
|
|
97
|
+
spend: number;
|
|
98
|
+
pct: number;
|
|
99
|
+
}>;
|
|
100
|
+
by_project: Array<{
|
|
101
|
+
project_id: string;
|
|
102
|
+
project: ProjectRef | null;
|
|
103
|
+
org_id: string;
|
|
104
|
+
spend: number;
|
|
105
|
+
pct: number;
|
|
106
|
+
}>;
|
|
107
|
+
total: number;
|
|
108
|
+
cap: number | null;
|
|
109
|
+
pct_of_cap: number | null;
|
|
110
|
+
under_count_note: boolean;
|
|
111
|
+
};
|
|
112
|
+
queue: {
|
|
113
|
+
by_role: Array<{
|
|
114
|
+
role: string;
|
|
115
|
+
in_flight: number;
|
|
116
|
+
queued: number;
|
|
117
|
+
}>;
|
|
118
|
+
total_in_flight: number;
|
|
119
|
+
total_queued: number;
|
|
120
|
+
};
|
|
121
|
+
waiting_on_me: {
|
|
122
|
+
dispatches: Array<{
|
|
123
|
+
id: string;
|
|
124
|
+
summary: string;
|
|
125
|
+
from_role: string;
|
|
126
|
+
type: string;
|
|
127
|
+
priority: string;
|
|
128
|
+
created_at: string;
|
|
129
|
+
org_id: string;
|
|
130
|
+
route_to: {
|
|
131
|
+
orgSlug: string;
|
|
132
|
+
projectSlug: string | null;
|
|
133
|
+
path: string;
|
|
134
|
+
};
|
|
135
|
+
}>;
|
|
136
|
+
approval_gates: Array<{
|
|
137
|
+
id: string;
|
|
138
|
+
description: string;
|
|
139
|
+
deadline_at: string | null;
|
|
140
|
+
org_id: string;
|
|
141
|
+
}> | null;
|
|
142
|
+
you_are_clear: boolean;
|
|
143
|
+
};
|
|
144
|
+
meta: {
|
|
145
|
+
orgCount: number;
|
|
146
|
+
projectCount: number;
|
|
147
|
+
roleSlugs: string[];
|
|
148
|
+
};
|
|
149
|
+
/** Item 5: suppression ledger block. Absent on older API — degrade cleanly (T-5h). */
|
|
150
|
+
suppressions?: {
|
|
151
|
+
rows: Array<{
|
|
152
|
+
event_type: string;
|
|
153
|
+
code: string | null;
|
|
154
|
+
reason: string | null;
|
|
155
|
+
/** AC-33 (r4): the suppression class, kept beside the human reason. */
|
|
156
|
+
subreason?: string | null;
|
|
157
|
+
subject_kind: string | null;
|
|
158
|
+
subject_id: string | null;
|
|
159
|
+
project_id: string | null;
|
|
160
|
+
role: string | null;
|
|
161
|
+
created_at: string;
|
|
162
|
+
org_id: string;
|
|
163
|
+
}>;
|
|
164
|
+
total_count: number;
|
|
165
|
+
truncated: boolean;
|
|
166
|
+
window_start: string;
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Render the SUPPRESSIONS block of `fazemos governance status` (Item 5 — §3.5.2g).
|
|
171
|
+
*
|
|
172
|
+
* Exported so T-5h can drive it directly: an older API omits `suppressions`
|
|
173
|
+
* entirely, and this MUST render nothing rather than throw (INV-4, additive and
|
|
174
|
+
* unknown-field-tolerant). Individual fields are treated as optional for the same
|
|
175
|
+
* reason — a partial row degrades, it never crashes the status read.
|
|
176
|
+
*/
|
|
177
|
+
export declare function renderSuppressions(status: GovernanceStatus): void;
|
|
23
178
|
/**
|
|
24
179
|
* Register `governance status` into the root Commander program.
|
|
25
180
|
* Called from index.ts alongside registerTriggerCommands.
|
|
@@ -27,3 +182,4 @@ import type { Command } from 'commander';
|
|
|
27
182
|
* @see fazemos-cli/src/trigger.ts:149 — mirrors status sub-command pattern
|
|
28
183
|
*/
|
|
29
184
|
export declare function registerGovernanceCommands(program: Command): void;
|
|
185
|
+
export {};
|
package/dist/governance.js
CHANGED
|
@@ -332,6 +332,50 @@ function renderWaitingOnMe(status) {
|
|
|
332
332
|
}
|
|
333
333
|
}
|
|
334
334
|
}
|
|
335
|
+
/**
|
|
336
|
+
* Render the SUPPRESSIONS block of `fazemos governance status` (Item 5 — §3.5.2g).
|
|
337
|
+
*
|
|
338
|
+
* Exported so T-5h can drive it directly: an older API omits `suppressions`
|
|
339
|
+
* entirely, and this MUST render nothing rather than throw (INV-4, additive and
|
|
340
|
+
* unknown-field-tolerant). Individual fields are treated as optional for the same
|
|
341
|
+
* reason — a partial row degrades, it never crashes the status read.
|
|
342
|
+
*/
|
|
343
|
+
export function renderSuppressions(status) {
|
|
344
|
+
// T-5h: older API omits the field — degrade cleanly.
|
|
345
|
+
const suppressions = status?.suppressions;
|
|
346
|
+
if (!suppressions || !Array.isArray(suppressions.rows) || suppressions.rows.length === 0)
|
|
347
|
+
return;
|
|
348
|
+
sectionHeader('SUPPRESSIONS');
|
|
349
|
+
const countLabel = suppressions.truncated
|
|
350
|
+
? `${suppressions.total_count}+ in window`
|
|
351
|
+
: `${suppressions.total_count} in window`;
|
|
352
|
+
const sinceLabel = suppressions.window_start
|
|
353
|
+
? ` (since ${new Date(suppressions.window_start).toLocaleString()})`
|
|
354
|
+
: '';
|
|
355
|
+
console.log(chalk.dim(` ${countLabel}${sinceLabel}`));
|
|
356
|
+
console.log();
|
|
357
|
+
for (const row of suppressions.rows) {
|
|
358
|
+
const roleLabel = row.role ? chalk.cyan(row.role.padEnd(32)) : chalk.dim('(no role)'.padEnd(32));
|
|
359
|
+
console.log(` ${roleLabel} ${chalk.yellow(row.event_type)}`);
|
|
360
|
+
if (row.code) {
|
|
361
|
+
console.log(` code: ${chalk.yellow(row.code)}`);
|
|
362
|
+
}
|
|
363
|
+
if (row.reason) {
|
|
364
|
+
console.log(` reason: ${row.reason}`);
|
|
365
|
+
}
|
|
366
|
+
// AC-33 (Dex item-5 F7): the CLASS, printed alongside the explanation.
|
|
367
|
+
if (row.subreason) {
|
|
368
|
+
console.log(` class: ${chalk.dim(row.subreason)}`);
|
|
369
|
+
}
|
|
370
|
+
if (row.subject_kind && row.subject_id) {
|
|
371
|
+
console.log(` subject: ${row.subject_kind}/${chalk.dim(row.subject_id)}`);
|
|
372
|
+
}
|
|
373
|
+
if (row.created_at) {
|
|
374
|
+
console.log(` at: ${new Date(row.created_at).toLocaleString()}`);
|
|
375
|
+
}
|
|
376
|
+
console.log();
|
|
377
|
+
}
|
|
378
|
+
}
|
|
335
379
|
// ── Command registration ───────────────────────────────────────────────────────
|
|
336
380
|
/**
|
|
337
381
|
* Register `governance status` into the root Commander program.
|
|
@@ -394,6 +438,7 @@ export function registerGovernanceCommands(program) {
|
|
|
394
438
|
renderCost(data);
|
|
395
439
|
renderQueue(data);
|
|
396
440
|
renderWaitingOnMe(data);
|
|
441
|
+
renderSuppressions(data);
|
|
397
442
|
console.log();
|
|
398
443
|
}
|
|
399
444
|
catch (err) {
|
package/dist/governance.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"governance.js","sourceRoot":"","sources":["../src/governance.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"governance.js","sourceRoot":"","sources":["../src/governance.ts"],"names":[],"mappings":"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"}
|
package/dist/wake.d.ts
CHANGED
|
@@ -4,36 +4,151 @@
|
|
|
4
4
|
* Exports `registerWakeCommands(program)` which wires the following commands
|
|
5
5
|
* into the root Commander program (mirrors the trigger group pattern):
|
|
6
6
|
*
|
|
7
|
-
* fazemos wake status [--json]
|
|
8
|
-
* → GET /api/control-plane/wake
|
|
7
|
+
* fazemos wake status [--project <slug>] [--json]
|
|
8
|
+
* → GET /api/control-plane/wake
|
|
9
9
|
* Reads the allow-listed (role, auto_wakeable, allow_listed, enabled)
|
|
10
10
|
* schedule + recent wake_fires (last 50 entries).
|
|
11
|
+
* Project scope: resolved via X-Fazemos-Project-Id header (F15 pattern).
|
|
12
|
+
* If no active project and no --project flag, emits "requirement missing: project"
|
|
13
|
+
* per rul_cli_missing_input_project.
|
|
11
14
|
*
|
|
12
|
-
* fazemos wake disable --role <slug> --reason <text> [--until <iso>]
|
|
15
|
+
* fazemos wake disable --role <slug> --reason <text> [--until <iso>] [--json]
|
|
13
16
|
* → POST /api/control-plane/wake/disable { action: "disable", ... }
|
|
14
17
|
* Upserts a wake_disables row; timed (--until) or indefinite.
|
|
18
|
+
* Org-scoped: operates on (org_id, role) — NO project scope.
|
|
19
|
+
* --project is NOT accepted (addendum item 3); rejection fires client-side
|
|
20
|
+
* before any API call.
|
|
15
21
|
*
|
|
16
|
-
* fazemos wake enable --role <slug> --reason <text>
|
|
17
|
-
* → POST /api/control-plane/wake/
|
|
22
|
+
* fazemos wake enable --role <slug> --reason <text> [--json]
|
|
23
|
+
* → POST /api/control-plane/wake/enable { role }
|
|
18
24
|
* Deletes the wake_disables row (re-enables auto-wake for that role).
|
|
25
|
+
* Org-scoped: operates on (org_id, role) — NO project scope.
|
|
26
|
+
* --project is NOT accepted (addendum item 3); rejection fires client-side
|
|
27
|
+
* before any API call.
|
|
19
28
|
*
|
|
20
29
|
* Auth: disable/enable require admin/owner (same as trigger/disable).
|
|
21
30
|
* status requires any active org member.
|
|
22
|
-
*
|
|
31
|
+
*
|
|
32
|
+
* BUG159 fixes:
|
|
33
|
+
* 159-A: Output header renders scope from API response payload:
|
|
34
|
+
* "Wake schedule for <org>/<project> (N entries)"
|
|
35
|
+
* When allowlist scope (global) differs from disables scope (per-org),
|
|
36
|
+
* both are named: "allowlist: global | disables: <org_slug>".
|
|
37
|
+
* On missing org_slug (older API / error path), renders
|
|
38
|
+
* "(scope unknown)" — never substitutes the active project slug.
|
|
39
|
+
* 159-B: --project <slug> override added to wake status only.
|
|
40
|
+
* wake status uses X-Fazemos-Project-Id header (F15 pattern).
|
|
41
|
+
* "requirement missing: project" emitted when no active project and
|
|
42
|
+
* no --project flag (rul_cli_missing_input_project compliance).
|
|
43
|
+
* ADDENDUM: wake disable / wake enable REJECT --project (addendum item 3);
|
|
44
|
+
* the rejection fires client-side before any API call because silent
|
|
45
|
+
* scope IS the BUG159 defect class.
|
|
46
|
+
* 159-C: Help text names the SSM parameters and states that writes
|
|
47
|
+
* require `aws ssm put-parameter` + redeploy (no CLI write path).
|
|
23
48
|
*
|
|
24
49
|
* Spec: F36-inbox-auto-wake-tech-spec.md
|
|
25
50
|
* Manifest: cli_commands (fazemos wake status/disable/enable)
|
|
26
51
|
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
52
|
+
* SCOPE EXCEPTION (addendum 2026-08-26):
|
|
53
|
+
* wake disable / wake enable are org-scoped (PK: (org_id, role)), NOT project-scoped.
|
|
54
|
+
* They call the API with noProjectHeader: true. This is the documented exception to
|
|
55
|
+
* rul_project_header_scoping_for_new_cli — the file-head comment above names it so
|
|
56
|
+
* a future refactor cannot silently reintroduce project scoping.
|
|
32
57
|
*/
|
|
33
58
|
import type { Command } from 'commander';
|
|
59
|
+
/** A single schedule entry from GET /api/control-plane/wake. */
|
|
60
|
+
interface WakeScheduleEntry {
|
|
61
|
+
role: string;
|
|
62
|
+
auto_wakeable: boolean;
|
|
63
|
+
allow_listed: boolean;
|
|
64
|
+
enabled: boolean;
|
|
65
|
+
}
|
|
66
|
+
/** A single wake fire record from GET /api/control-plane/wake (capped at 50). */
|
|
67
|
+
interface WakeFireEntry {
|
|
68
|
+
id: string;
|
|
69
|
+
dispatch_id: string;
|
|
70
|
+
role: string;
|
|
71
|
+
fire_status: string;
|
|
72
|
+
suppress_code: string | null;
|
|
73
|
+
claimed_at: string;
|
|
74
|
+
fired_at: string | null;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* BUG159-A + addendum 2026-08-26: resolved scope returned by the API so the
|
|
78
|
+
* CLI can render the header from the response, not from local config.
|
|
79
|
+
*
|
|
80
|
+
* - allowlist_scope: always 'global' (SSM-sourced, org-agnostic).
|
|
81
|
+
* - disables_scope: always 'org' (wake_disables PK is (org_id, role)).
|
|
82
|
+
* These are level identifiers, NOT slug values.
|
|
83
|
+
* - org_slug: the slug rendered in the disables position of the header:
|
|
84
|
+
* "allowlist: global | disables: <org_slug>"
|
|
85
|
+
* - project_slug: the slug rendered in the location part of the header:
|
|
86
|
+
* "Wake schedule for <org_slug>/<project_slug> (N entries)"
|
|
87
|
+
*
|
|
88
|
+
* NEVER use disables_scope as a display value — it is a level identifier ('org').
|
|
89
|
+
* ALWAYS use org_slug in the disables position.
|
|
90
|
+
*/
|
|
91
|
+
interface WakeScopeInfo {
|
|
92
|
+
org_slug: string;
|
|
93
|
+
project_slug: string;
|
|
94
|
+
allowlist_scope: 'global';
|
|
95
|
+
disables_scope: 'org';
|
|
96
|
+
}
|
|
97
|
+
/** A single suppression row from the GET /api/control-plane/wake response (Item 5). */
|
|
98
|
+
interface WakeSuppressionRow {
|
|
99
|
+
event_type: string;
|
|
100
|
+
code: string | null;
|
|
101
|
+
reason: string | null;
|
|
102
|
+
/** AC-33 (r4): the suppression class, kept beside the human-readable reason. */
|
|
103
|
+
subreason?: string | null;
|
|
104
|
+
subject_kind: string | null;
|
|
105
|
+
subject_id: string | null;
|
|
106
|
+
project_id: string | null;
|
|
107
|
+
role: string | null;
|
|
108
|
+
created_at: string;
|
|
109
|
+
org_id: string;
|
|
110
|
+
}
|
|
111
|
+
/** Suppressions block returned by the API (Item 5 — additive, may be absent on older API). */
|
|
112
|
+
interface WakeSuppressionsBlock {
|
|
113
|
+
rows: WakeSuppressionRow[];
|
|
114
|
+
total_count: number;
|
|
115
|
+
truncated: boolean;
|
|
116
|
+
window_start: string;
|
|
117
|
+
}
|
|
118
|
+
export interface WakeGetResponse {
|
|
119
|
+
schedule: WakeScheduleEntry[];
|
|
120
|
+
fires: WakeFireEntry[];
|
|
121
|
+
config?: {
|
|
122
|
+
wake_allowlist_source: string;
|
|
123
|
+
auto_wakeable_roles_source: string;
|
|
124
|
+
};
|
|
125
|
+
/** BUG159-A: resolved scope from the API. */
|
|
126
|
+
scope?: WakeScopeInfo;
|
|
127
|
+
/** Item 5: recent suppression ledger rows. Absent on older API — degrade cleanly. */
|
|
128
|
+
suppressions?: WakeSuppressionsBlock;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Render the "Recent suppressions" block of `fazemos wake status` (Item 5 — §3.5.2g).
|
|
132
|
+
*
|
|
133
|
+
* Exported so T-5h can drive it directly: an older API omits `suppressions`
|
|
134
|
+
* entirely, and this MUST render nothing rather than throw. Every field inside a
|
|
135
|
+
* row is likewise treated as optional — the block degrades, it never crashes a
|
|
136
|
+
* status read the operator is relying on to diagnose a silent wake.
|
|
137
|
+
*/
|
|
138
|
+
export declare function renderWakeSuppressions(data: WakeGetResponse): void;
|
|
34
139
|
/**
|
|
35
140
|
* Register `wake status`, `wake disable`, and `wake enable` into the root
|
|
36
141
|
* Commander program. Called from index.ts after `program` is created, alongside
|
|
37
142
|
* registerPauseCommands, registerBudgetCommands, and registerTriggerCommands.
|
|
143
|
+
*
|
|
144
|
+
* SCOPE SPLIT:
|
|
145
|
+
* - wake status: project-scoped (X-Fazemos-Project-Id header, F15 pattern).
|
|
146
|
+
* --project <slug> resolves to projectId in the header (BUG159-B).
|
|
147
|
+
* - wake disable / wake enable: org-scoped (no project header).
|
|
148
|
+
* --project flag is REJECTED client-side before any API call (addendum item 3).
|
|
149
|
+
* This is the documented exception to rul_project_header_scoping_for_new_cli.
|
|
150
|
+
* If no active project and no --project, the API returns MISSING_PROJECT_CONTEXT
|
|
151
|
+
* on status; disable/enable use req.userOrgId from auth context (no project needed).
|
|
38
152
|
*/
|
|
39
153
|
export declare function registerWakeCommands(program: Command): void;
|
|
154
|
+
export {};
|
package/dist/wake.js
CHANGED
|
@@ -1,38 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
* F36 — Inbox Auto-Wake: CLI command helpers.
|
|
3
|
-
*
|
|
4
|
-
* Exports `registerWakeCommands(program)` which wires the following commands
|
|
5
|
-
* into the root Commander program (mirrors the trigger group pattern):
|
|
6
|
-
*
|
|
7
|
-
* fazemos wake status [--json]
|
|
8
|
-
* → GET /api/control-plane/wake?project_id=<id>
|
|
9
|
-
* Reads the allow-listed (role, auto_wakeable, allow_listed, enabled)
|
|
10
|
-
* schedule + recent wake_fires (last 50 entries).
|
|
11
|
-
*
|
|
12
|
-
* fazemos wake disable --role <slug> --reason <text> [--until <iso>]
|
|
13
|
-
* → POST /api/control-plane/wake/disable { action: "disable", ... }
|
|
14
|
-
* Upserts a wake_disables row; timed (--until) or indefinite.
|
|
15
|
-
*
|
|
16
|
-
* fazemos wake enable --role <slug> --reason <text>
|
|
17
|
-
* → POST /api/control-plane/wake/disable { action: "enable", ... }
|
|
18
|
-
* Deletes the wake_disables row (re-enables auto-wake for that role).
|
|
19
|
-
*
|
|
20
|
-
* Auth: disable/enable require admin/owner (same as trigger/disable).
|
|
21
|
-
* status requires any active org member.
|
|
22
|
-
* Scope: project-scoped reads (project_id query param); writes are org+project.
|
|
23
|
-
*
|
|
24
|
-
* Spec: F36-inbox-auto-wake-tech-spec.md
|
|
25
|
-
* Manifest: cli_commands (fazemos wake status/disable/enable)
|
|
26
|
-
*
|
|
27
|
-
* Key differences from trigger.ts:
|
|
28
|
-
* - NO cadence dimension (wake_disables is UNIQUE(org_id, role), no cadence)
|
|
29
|
-
* - No fire-now command (wake fires are event-driven, not manually re-driveable v1)
|
|
30
|
-
* - Response shape: schedule has auto_wakeable + allow_listed fields
|
|
31
|
-
* - Endpoint: /api/control-plane/wake and /api/control-plane/wake/disable
|
|
32
|
-
*/
|
|
1
|
+
// modeled on F35-FU-CRON-TZ-SCHEDULE per rul_project_header_scoping_for_new_cli; wake disable / wake enable diverge — see BUG159 ruling addendum 2026-08-26.
|
|
33
2
|
import chalk from 'chalk';
|
|
34
3
|
import { api } from './api.js';
|
|
35
|
-
import { getActiveProjectId } from './config.js';
|
|
36
4
|
// ── Helpers ────────────────────────────────────────────────────────────────────
|
|
37
5
|
/**
|
|
38
6
|
* Validate an ISO 8601 timestamp string (used for --until on disable).
|
|
@@ -62,11 +30,86 @@ function fireStatusLabel(status) {
|
|
|
62
30
|
return chalk.dim(status);
|
|
63
31
|
}
|
|
64
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* BUG159-A (addendum 2026-08-26): render the scope header line from the API
|
|
35
|
+
* response payload.
|
|
36
|
+
*
|
|
37
|
+
* The disables scope is per-(org, role) — "org" level identifier, not a slug.
|
|
38
|
+
* The disables position in the split-scope note renders org_slug, NOT
|
|
39
|
+
* disables_scope (which is the literal 'org', a level identifier, not a slug).
|
|
40
|
+
*
|
|
41
|
+
* allowlist_scope is always 'global'; disables_scope is always 'org'. By design
|
|
42
|
+
* these two level identifiers never match, so the split-scope note is always
|
|
43
|
+
* rendered — both scopes are always named:
|
|
44
|
+
* "Wake schedule for journeyjuntos/fazemos (allowlist: global | disables: journeyjuntos) (27 entries):"
|
|
45
|
+
*
|
|
46
|
+
* This function requires a populated WakeScopeInfo. The call site is responsible
|
|
47
|
+
* for guarding against missing scope and rendering a visibly-unknown fallback.
|
|
48
|
+
*/
|
|
49
|
+
function renderScopeHeader(scope, entryCount) {
|
|
50
|
+
const location = chalk.cyan(`${scope.org_slug}/${scope.project_slug}`);
|
|
51
|
+
// allowlist_scope ('global') and disables_scope ('org') are always different level
|
|
52
|
+
// identifiers by design — always render the split-scope note.
|
|
53
|
+
// Use org_slug in the disables position — NOT disables_scope ('org'), which is the
|
|
54
|
+
// level identifier, not a human-readable slug.
|
|
55
|
+
const splitNote = chalk.dim(`(allowlist: ${scope.allowlist_scope} | disables: ${scope.org_slug})`);
|
|
56
|
+
console.log(chalk.bold(`Wake schedule for ${location} ${splitNote} (${entryCount} entries):`));
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Render the "Recent suppressions" block of `fazemos wake status` (Item 5 — §3.5.2g).
|
|
60
|
+
*
|
|
61
|
+
* Exported so T-5h can drive it directly: an older API omits `suppressions`
|
|
62
|
+
* entirely, and this MUST render nothing rather than throw. Every field inside a
|
|
63
|
+
* row is likewise treated as optional — the block degrades, it never crashes a
|
|
64
|
+
* status read the operator is relying on to diagnose a silent wake.
|
|
65
|
+
*/
|
|
66
|
+
export function renderWakeSuppressions(data) {
|
|
67
|
+
// T-5h: older API omits the field — degrade cleanly, render nothing, no error.
|
|
68
|
+
const suppressions = data?.suppressions;
|
|
69
|
+
if (!suppressions || !Array.isArray(suppressions.rows) || suppressions.rows.length === 0)
|
|
70
|
+
return;
|
|
71
|
+
console.log(chalk.bold(`Recent suppressions (${suppressions.total_count}${suppressions.truncated ? '+' : ''}):`));
|
|
72
|
+
console.log();
|
|
73
|
+
for (const row of suppressions.rows) {
|
|
74
|
+
const roleLabel = row.role ? chalk.cyan(row.role.padEnd(32)) : chalk.dim('(no role)'.padEnd(32));
|
|
75
|
+
console.log(` ${roleLabel} ${chalk.yellow(row.event_type)}`);
|
|
76
|
+
if (row.code) {
|
|
77
|
+
console.log(` code: ${chalk.yellow(row.code)}`);
|
|
78
|
+
}
|
|
79
|
+
if (row.reason) {
|
|
80
|
+
console.log(` reason: ${row.reason}`);
|
|
81
|
+
}
|
|
82
|
+
// AC-33 (Dex item-5 F7): the CLASS, printed alongside the explanation.
|
|
83
|
+
// Before r4 the api's `reason` carried the class ('canlaunch_suppressed')
|
|
84
|
+
// and the explanation was never surfaced at all; now `reason` is the
|
|
85
|
+
// explanation and this line keeps the class visible. Optional — an older
|
|
86
|
+
// api omits it and this renders nothing.
|
|
87
|
+
if (row.subreason) {
|
|
88
|
+
console.log(` class: ${chalk.dim(row.subreason)}`);
|
|
89
|
+
}
|
|
90
|
+
if (row.subject_kind && row.subject_id) {
|
|
91
|
+
console.log(` subject: ${row.subject_kind}/${chalk.dim(row.subject_id)}`);
|
|
92
|
+
}
|
|
93
|
+
if (row.created_at) {
|
|
94
|
+
console.log(` at: ${new Date(row.created_at).toLocaleString()}`);
|
|
95
|
+
}
|
|
96
|
+
console.log();
|
|
97
|
+
}
|
|
98
|
+
}
|
|
65
99
|
// ── Command registration ───────────────────────────────────────────────────────
|
|
66
100
|
/**
|
|
67
101
|
* Register `wake status`, `wake disable`, and `wake enable` into the root
|
|
68
102
|
* Commander program. Called from index.ts after `program` is created, alongside
|
|
69
103
|
* registerPauseCommands, registerBudgetCommands, and registerTriggerCommands.
|
|
104
|
+
*
|
|
105
|
+
* SCOPE SPLIT:
|
|
106
|
+
* - wake status: project-scoped (X-Fazemos-Project-Id header, F15 pattern).
|
|
107
|
+
* --project <slug> resolves to projectId in the header (BUG159-B).
|
|
108
|
+
* - wake disable / wake enable: org-scoped (no project header).
|
|
109
|
+
* --project flag is REJECTED client-side before any API call (addendum item 3).
|
|
110
|
+
* This is the documented exception to rul_project_header_scoping_for_new_cli.
|
|
111
|
+
* If no active project and no --project, the API returns MISSING_PROJECT_CONTEXT
|
|
112
|
+
* on status; disable/enable use req.userOrgId from auth context (no project needed).
|
|
70
113
|
*/
|
|
71
114
|
export function registerWakeCommands(program) {
|
|
72
115
|
// ── `fazemos wake` ───────────────────────────────────────────────────────────
|
|
@@ -80,16 +123,35 @@ export function registerWakeCommands(program) {
|
|
|
80
123
|
' status Show wake schedule + recent fire history (last 50 entries)\n' +
|
|
81
124
|
' disable Disable auto-wake for a role (timed or indefinite) (admin/owner)\n' +
|
|
82
125
|
' enable Re-enable a previously disabled auto-wake role (admin/owner)\n\n' +
|
|
83
|
-
'status is readable by any active org member
|
|
84
|
-
'
|
|
85
|
-
'
|
|
126
|
+
'status is readable by any active org member. Use --project <slug> to\n' +
|
|
127
|
+
'inspect another project without switching the active project.\n' +
|
|
128
|
+
'disable/enable require admin or owner role and are org-scoped:\n' +
|
|
129
|
+
' wake_disables PK is (org_id, role) — not project-scoped.\n' +
|
|
130
|
+
' --project is not accepted on disable/enable (addendum 2026-08-26).\n\n' +
|
|
86
131
|
'Auto-wake fires automatically when an eligible task dispatch arrives for an\n' +
|
|
87
132
|
'allow-listed, auto-wakeable role. Use `wake status` to see the live state\n' +
|
|
88
133
|
'and `wake disable` to pause a role\'s auto-wake (its dispatches still land\n' +
|
|
89
|
-
'in the inbox; auto-launch is suppressed until you `wake enable` it)
|
|
134
|
+
'in the inbox; auto-launch is suppressed until you `wake enable` it).\n\n' +
|
|
135
|
+
'WAKE SET (159-C — read-only via CLI):\n' +
|
|
136
|
+
' The wake set is env-sourced from SSM parameters:\n' +
|
|
137
|
+
' /fazemos/{env}/wake/allowlist\n' +
|
|
138
|
+
' /fazemos/{env}/wake/auto-wakeable-roles\n' +
|
|
139
|
+
' To add or remove a role, an operator must run:\n' +
|
|
140
|
+
' aws ssm put-parameter --name /fazemos/{env}/wake/allowlist --value "..." \\\n' +
|
|
141
|
+
' --type String --overwrite\n' +
|
|
142
|
+
' and redeploy the env. No CLI path currently writes to the SSM parameters.');
|
|
90
143
|
// ── `fazemos wake status` ─────────────────────────────────────────────────────
|
|
91
144
|
//
|
|
92
|
-
// GET /api/control-plane/wake
|
|
145
|
+
// GET /api/control-plane/wake
|
|
146
|
+
//
|
|
147
|
+
// BUG159-B: project scope resolved via X-Fazemos-Project-Id header (requireProjectScope
|
|
148
|
+
// on API side). Pass --project <slug> to inspect another project without switching.
|
|
149
|
+
// BUG159-A (addendum): output header renders scope from API response payload.
|
|
150
|
+
// - "Wake schedule for <org_slug>/<project_slug> (N entries):"
|
|
151
|
+
// - Split-scope note: "allowlist: global | disables: <org_slug>"
|
|
152
|
+
// - org_slug rendered in the disables position (NOT disables_scope which is "org").
|
|
153
|
+
// - If scope is absent from response, renders "(scope unknown)" — never silent.
|
|
154
|
+
// BUG159-C: help text names the SSM parameters and states there is no CLI write path.
|
|
93
155
|
//
|
|
94
156
|
// schedule: role, auto_wakeable, allow_listed, enabled (operator disable state).
|
|
95
157
|
// fires: last 50 wake_fires (dispatch_id, role, fire_status, suppress_code,
|
|
@@ -97,40 +159,83 @@ export function registerWakeCommands(program) {
|
|
|
97
159
|
//
|
|
98
160
|
// Usage:
|
|
99
161
|
// fazemos wake status
|
|
162
|
+
// fazemos wake status --project <slug>
|
|
100
163
|
// fazemos wake status --json
|
|
101
164
|
wakeCmd
|
|
102
165
|
.command('status')
|
|
103
166
|
.description('Show inbox auto-wake schedule and recent fire history for the active project.\n\n' +
|
|
104
|
-
'
|
|
167
|
+
'The output header names the org/project being reported (BUG159-A). Use\n' +
|
|
168
|
+
'--project <slug> to inspect another project\'s wake state without switching\n' +
|
|
169
|
+
'the active project (BUG159-B).\n\n' +
|
|
170
|
+
'If no active project is set and no --project flag is provided, this command\n' +
|
|
171
|
+
'emits "requirement missing: project" and exits non-zero (rul_cli_missing_input_project).\n\n' +
|
|
105
172
|
'Schedule fields:\n' +
|
|
106
|
-
' auto_wakeable — role is eligible for auto-wake (AUTO_WAKEABLE_ROLES env)\n' +
|
|
107
|
-
' allow_listed — role is in the wake allow-list (WAKE_ALLOWLIST env)\n' +
|
|
173
|
+
' auto_wakeable — role is eligible for auto-wake (AUTO_WAKEABLE_ROLES env/SSM)\n' +
|
|
174
|
+
' allow_listed — role is in the wake allow-list (WAKE_ALLOWLIST env/SSM)\n' +
|
|
108
175
|
' enabled — no operator disable currently in effect\n\n' +
|
|
109
176
|
'fire_status values:\n' +
|
|
110
177
|
' claimed — wake claimed; launch in progress\n' +
|
|
111
178
|
' fired — dispatch/execution successfully created\n' +
|
|
112
179
|
' failed — wake failed; will retry on next eligible dispatch\n' +
|
|
113
180
|
' suppressed — canLaunch gate refused (org paused, budget, or fan-out cap)\n\n' +
|
|
181
|
+
'WAKE SET (read-only via CLI — 159-C):\n' +
|
|
182
|
+
' The wake set is sourced from SSM parameters:\n' +
|
|
183
|
+
' /fazemos/{env}/wake/allowlist — roles eligible to receive wakes\n' +
|
|
184
|
+
' /fazemos/{env}/wake/auto-wakeable-roles — roles that auto-launch on receipt\n' +
|
|
185
|
+
' To add or remove a role from the wake set, an operator must:\n' +
|
|
186
|
+
' 1. Run: aws ssm put-parameter --name /fazemos/{env}/wake/allowlist \\\n' +
|
|
187
|
+
' --value "<comma-separated-roles>" --type String --overwrite\n' +
|
|
188
|
+
' (and similarly for /fazemos/{env}/wake/auto-wakeable-roles)\n' +
|
|
189
|
+
' 2. Redeploy the env so the new parameter value takes effect.\n' +
|
|
190
|
+
' No CLI path currently writes to the SSM parameters.\n\n' +
|
|
114
191
|
'Readable by any active org member. Use --json for machine-readable output.')
|
|
192
|
+
.option('--project <slug>', 'project slug override (defaults to active project)')
|
|
115
193
|
.option('--json', 'output machine-readable JSON')
|
|
116
194
|
.action(async (opts) => {
|
|
117
195
|
try {
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
const data = await api('GET',
|
|
196
|
+
// BUG159-B: use X-Fazemos-Project-Id header (F15 pattern) via projectSlug option.
|
|
197
|
+
// If no active project and no --project, api() sends no project header.
|
|
198
|
+
// The API's requireProjectScope returns MISSING_PROJECT_CONTEXT →
|
|
199
|
+
// api.ts translates to "requirement missing: project" (rul_cli_missing_input_project).
|
|
200
|
+
const data = await api('GET', '/api/control-plane/wake', undefined, { projectSlug: opts.project });
|
|
123
201
|
if (opts.json) {
|
|
124
202
|
console.log(JSON.stringify(data, null, 2));
|
|
125
203
|
return;
|
|
126
204
|
}
|
|
127
205
|
const { schedule, fires } = data;
|
|
206
|
+
// A PARTIAL scope object is truthy and would render "<org>/undefined" —
|
|
207
|
+
// a confidently-wrong header, which is the defect class BUG159 exists to
|
|
208
|
+
// kill. Treat anything short of both slugs as no scope at all, so the
|
|
209
|
+
// visible "(scope unknown)" fallback takes over.
|
|
210
|
+
const scope = data.scope && data.scope.org_slug && data.scope.project_slug
|
|
211
|
+
? data.scope
|
|
212
|
+
: undefined;
|
|
128
213
|
// ── Schedule ──────────────────────────────────────────────────────────
|
|
129
214
|
if (schedule.length === 0) {
|
|
130
|
-
|
|
215
|
+
// BUG159-A: even when empty, name the scope.
|
|
216
|
+
// On missing scope (older API / error path), render visibly-unknown —
|
|
217
|
+
// NEVER substitute the active project slug (that IS the BUG159 defect class).
|
|
218
|
+
if (scope) {
|
|
219
|
+
console.log(chalk.yellow(`Wake schedule for ${chalk.cyan(`${scope.org_slug}/${scope.project_slug}`)} — ` +
|
|
220
|
+
`no entries (WAKE_ALLOWLIST is empty or not set).`));
|
|
221
|
+
}
|
|
222
|
+
else {
|
|
223
|
+
console.log(chalk.yellow(`Wake schedule for ${chalk.dim('(scope unknown)')} — ` +
|
|
224
|
+
`no entries (WAKE_ALLOWLIST is empty or not set).`));
|
|
225
|
+
}
|
|
131
226
|
}
|
|
132
227
|
else {
|
|
133
|
-
|
|
228
|
+
// BUG159-A: render scope header from API response payload.
|
|
229
|
+
// On missing scope (older API / error path), render visibly-unknown —
|
|
230
|
+
// NEVER substitute the active project slug (that IS the BUG159 defect class).
|
|
231
|
+
if (scope) {
|
|
232
|
+
renderScopeHeader(scope, schedule.length);
|
|
233
|
+
}
|
|
234
|
+
else {
|
|
235
|
+
// Addendum item 2 fallback: scope absent → visibly-unknown indicator.
|
|
236
|
+
// Do NOT substitute active project slug here.
|
|
237
|
+
console.log(chalk.bold(`Wake schedule for ${chalk.dim('(scope unknown)')} (${schedule.length} entries):`));
|
|
238
|
+
}
|
|
134
239
|
console.log();
|
|
135
240
|
for (const entry of schedule) {
|
|
136
241
|
const enabledLabel = entry.enabled
|
|
@@ -148,26 +253,46 @@ export function registerWakeCommands(program) {
|
|
|
148
253
|
console.log();
|
|
149
254
|
}
|
|
150
255
|
// ── Recent fires ──────────────────────────────────────────────────────
|
|
256
|
+
// ── AC-17 / T-5o (Dex item-5 F2) — an empty fires list must NOT
|
|
257
|
+
// short-circuit the suppression block ────────────────────────────────
|
|
258
|
+
//
|
|
259
|
+
// This used to `return` here, so `renderWakeSuppressions(data)` below
|
|
260
|
+
// never ran. Post-item-5 a canLaunch-suppressed wake does leave a
|
|
261
|
+
// wake_fires row, so that one class survived the early return — but
|
|
262
|
+
// EVERY decision-predicate denial returns before the claim and writes
|
|
263
|
+
// NO wake_fires row at all (wrong_type, self_wake, worker_gated,
|
|
264
|
+
// not_auto_wakeable, wake_disabled, no_project, no_match_after_ordering,
|
|
265
|
+
// db_error), and so do launch_suppressed and wake_ceiling_hit. Those
|
|
266
|
+
// are the MOST COMMON real causes of "I dispatched and the role never
|
|
267
|
+
// woke" — and for all of them `fires` is empty, so the operator got
|
|
268
|
+
// "No recent wake fires." with the answer sitting one statement below
|
|
269
|
+
// the return. That is the BUG177 shape the ledger exists to close.
|
|
151
270
|
if (fires.length === 0) {
|
|
152
271
|
console.log(chalk.dim('No recent wake fires.'));
|
|
153
|
-
|
|
272
|
+
console.log();
|
|
154
273
|
}
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
for (const fire of fires) {
|
|
158
|
-
const statusLabel = fireStatusLabel(fire.fire_status);
|
|
159
|
-
console.log(` ${chalk.cyan(fire.role.padEnd(32))} ${statusLabel}`);
|
|
160
|
-
if (fire.suppress_code) {
|
|
161
|
-
console.log(` suppressed: ${chalk.yellow(fire.suppress_code)}`);
|
|
162
|
-
}
|
|
163
|
-
console.log(` claimed: ${new Date(fire.claimed_at).toLocaleString()}`);
|
|
164
|
-
if (fire.fired_at) {
|
|
165
|
-
console.log(` fired: ${new Date(fire.fired_at).toLocaleString()}`);
|
|
166
|
-
}
|
|
167
|
-
console.log(` dispatch_id: ${chalk.dim(fire.dispatch_id)}`);
|
|
168
|
-
console.log(` id: ${chalk.dim(fire.id)}`);
|
|
274
|
+
else {
|
|
275
|
+
console.log(chalk.bold(`Recent wake fires (${fires.length}):`));
|
|
169
276
|
console.log();
|
|
277
|
+
for (const fire of fires) {
|
|
278
|
+
const statusLabel = fireStatusLabel(fire.fire_status);
|
|
279
|
+
console.log(` ${chalk.cyan(fire.role.padEnd(32))} ${statusLabel}`);
|
|
280
|
+
if (fire.suppress_code) {
|
|
281
|
+
console.log(` suppressed: ${chalk.yellow(fire.suppress_code)}`);
|
|
282
|
+
}
|
|
283
|
+
console.log(` claimed: ${new Date(fire.claimed_at).toLocaleString()}`);
|
|
284
|
+
if (fire.fired_at) {
|
|
285
|
+
console.log(` fired: ${new Date(fire.fired_at).toLocaleString()}`);
|
|
286
|
+
}
|
|
287
|
+
console.log(` dispatch_id: ${chalk.dim(fire.dispatch_id)}`);
|
|
288
|
+
console.log(` id: ${chalk.dim(fire.id)}`);
|
|
289
|
+
console.log();
|
|
290
|
+
}
|
|
170
291
|
}
|
|
292
|
+
// ── Recent suppressions (Item 5) ──────────────────────────────────────
|
|
293
|
+
// Always reached now — AC-17 / T-5o. renderWakeSuppressions degrades on
|
|
294
|
+
// its own for an absent, null, empty or malformed block.
|
|
295
|
+
renderWakeSuppressions(data);
|
|
171
296
|
}
|
|
172
297
|
catch (err) {
|
|
173
298
|
const msg = err instanceof Error ? err.message : String(err);
|
|
@@ -183,6 +308,11 @@ export function registerWakeCommands(program) {
|
|
|
183
308
|
// Active disable → isWakeDisabled=true → no claim, no launch, still inbox-lands.
|
|
184
309
|
// --until <iso>: timed disable; omit for indefinite until `fazemos wake enable`.
|
|
185
310
|
//
|
|
311
|
+
// ADDENDUM 2026-08-26 (item 3): wake_disables is scoped per-(org_id, role).
|
|
312
|
+
// --project is defined so Commander can capture it, but the action rejects it
|
|
313
|
+
// CLIENT-SIDE BEFORE ANY API CALL with the exact-string error from the addendum.
|
|
314
|
+
// The API call uses noProjectHeader: true — org context comes from req.userOrgId.
|
|
315
|
+
//
|
|
186
316
|
// Note: NO --cadence flag (wake_disables is org-wide per role; no cadence dim).
|
|
187
317
|
//
|
|
188
318
|
// Usage:
|
|
@@ -196,26 +326,37 @@ export function registerWakeCommands(program) {
|
|
|
196
326
|
'execution — the inbox must be drained manually or re-enabled.\n\n' +
|
|
197
327
|
' (no --until) Indefinite disable — remains until `fazemos wake enable`\n' +
|
|
198
328
|
' --until <iso> Timed disable — auto-expires at the given UTC timestamp\n\n' +
|
|
199
|
-
'
|
|
329
|
+
'Org-scoped: wake disables apply per (org, role) — not per project.\n' +
|
|
330
|
+
'The --project flag is not accepted on this command (addendum 2026-08-26).\n' +
|
|
331
|
+
'If you need per-project wake disables, file a feature request.\n\n' +
|
|
332
|
+
'Requires admin or owner role. --reason is mandatory and IS persisted\n' +
|
|
333
|
+
'server-side to wake_disables.reason (genuine audit trail).')
|
|
200
334
|
.requiredOption('--role <slug>', 'role slug to disable (e.g. project-manager)')
|
|
201
335
|
.requiredOption('--reason <text>', 'reason for the disable (required for audit trail)')
|
|
202
336
|
.option('--until <iso>', 'ISO 8601 timestamp when the disable expires (omit for indefinite)')
|
|
337
|
+
// --project is defined so Commander captures it for the explicit rejection below.
|
|
338
|
+
// It is NOT a working option — the action rejects it before any API call.
|
|
339
|
+
.option('--project <slug>', '(not accepted — wake disables are org-scoped, not project-scoped)')
|
|
203
340
|
.option('--json', 'output machine-readable JSON')
|
|
204
341
|
.action(async (opts) => {
|
|
205
342
|
try {
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
343
|
+
// ADDENDUM item 3: wake disables are scoped per-(org, role).
|
|
344
|
+
// --project is explicitly rejected CLIENT-SIDE BEFORE ANY API CALL.
|
|
345
|
+
// Silent-ignore is forbidden — silent scope IS the BUG159 defect class.
|
|
346
|
+
if (opts.project !== undefined) {
|
|
347
|
+
console.error('error: wake disables are scoped per-(org, role); --project is not accepted. If you need per-project disables, file a feature request.');
|
|
348
|
+
process.exit(1);
|
|
209
349
|
}
|
|
210
350
|
const body = {
|
|
211
351
|
action: 'disable',
|
|
212
|
-
project_id: projectId,
|
|
213
352
|
role: opts.role.trim().toLowerCase(),
|
|
214
353
|
reason: opts.reason,
|
|
215
354
|
};
|
|
216
355
|
if (opts.until !== undefined) {
|
|
217
356
|
body.until = validateIsoTimestamp(opts.until);
|
|
218
357
|
}
|
|
358
|
+
// noProjectHeader: true — wake disables are org-scoped (req.userOrgId on API side).
|
|
359
|
+
// Do NOT send X-Fazemos-Project-Id for this route (addendum item 4).
|
|
219
360
|
const data = await api('POST', '/api/control-plane/wake/disable', body, {
|
|
220
361
|
noProjectHeader: true,
|
|
221
362
|
});
|
|
@@ -248,11 +389,16 @@ export function registerWakeCommands(program) {
|
|
|
248
389
|
});
|
|
249
390
|
// ── `fazemos wake enable` ─────────────────────────────────────────────────────
|
|
250
391
|
//
|
|
251
|
-
// POST /api/control-plane/wake/
|
|
392
|
+
// POST /api/control-plane/wake/enable { role }
|
|
252
393
|
//
|
|
253
394
|
// Deletes the wake_disables row (re-enables auto-wake for that role).
|
|
254
395
|
// After enable: the next eligible task dispatch to this role auto-launches.
|
|
255
396
|
//
|
|
397
|
+
// ADDENDUM 2026-08-26 (item 3): wake_disables is scoped per-(org_id, role).
|
|
398
|
+
// --project is defined so Commander can capture it, but the action rejects it
|
|
399
|
+
// CLIENT-SIDE BEFORE ANY API CALL with the exact-string error from the addendum.
|
|
400
|
+
// The API call uses noProjectHeader: true — org context comes from req.userOrgId.
|
|
401
|
+
//
|
|
256
402
|
// Note: NO --cadence flag (wake_disables has no cadence dimension).
|
|
257
403
|
//
|
|
258
404
|
// Usage:
|
|
@@ -262,23 +408,43 @@ export function registerWakeCommands(program) {
|
|
|
262
408
|
.description('Re-enable auto-wake for a previously disabled role (admin/owner only).\n\n' +
|
|
263
409
|
'Deletes the disable record for the given role, allowing the next eligible\n' +
|
|
264
410
|
'task dispatch to auto-launch a wake execution.\n\n' +
|
|
265
|
-
'
|
|
411
|
+
'Org-scoped: wake disables apply per (org, role) — not per project.\n' +
|
|
412
|
+
'The --project flag is not accepted on this command (addendum 2026-08-26).\n' +
|
|
413
|
+
'If you need per-project wake disables, file a feature request.\n\n' +
|
|
414
|
+
'Requires admin or owner role. --reason is mandatory, but is NOT persisted\n' +
|
|
415
|
+
'server-side: the enable path DELETEs the wake_disables row, so the reason is\n' +
|
|
416
|
+
'printed locally for your own record only. (wake disable DOES persist reason.)')
|
|
266
417
|
.requiredOption('--role <slug>', 'role slug to enable (e.g. project-manager)')
|
|
267
|
-
.requiredOption('--reason <text>', 'reason for re-enabling (
|
|
418
|
+
.requiredOption('--reason <text>', 'reason for re-enabling (printed locally; NOT persisted server-side)')
|
|
419
|
+
// --project is defined so Commander captures it for the explicit rejection below.
|
|
420
|
+
// It is NOT a working option — the action rejects it before any API call.
|
|
421
|
+
.option('--project <slug>', '(not accepted — wake disables are org-scoped, not project-scoped)')
|
|
268
422
|
.option('--json', 'output machine-readable JSON')
|
|
269
423
|
.action(async (opts) => {
|
|
270
424
|
try {
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
425
|
+
// ADDENDUM item 3: wake disables are scoped per-(org, role).
|
|
426
|
+
// --project is explicitly rejected CLIENT-SIDE BEFORE ANY API CALL.
|
|
427
|
+
// Silent-ignore is forbidden — silent scope IS the BUG159 defect class.
|
|
428
|
+
if (opts.project !== undefined) {
|
|
429
|
+
console.error('error: wake disables are scoped per-(org, role); --project is not accepted. If you need per-project disables, file a feature request.');
|
|
430
|
+
process.exit(1);
|
|
274
431
|
}
|
|
432
|
+
// ADDENDUM item 4: enable has its own endpoint as of the BUG159 API-side
|
|
433
|
+
// revision (fazemos-api release-v0.3.77-rc1). The shared
|
|
434
|
+
// POST /wake/disable { action: 'enable' } branch is retained server-side
|
|
435
|
+
// ONLY as backward-compat for un-migrated clients — this is the migration.
|
|
436
|
+
//
|
|
437
|
+
// Body is { role } exactly. The dedicated handler destructures `role` and
|
|
438
|
+
// nothing else; `action` is meaningless on a single-purpose endpoint and
|
|
439
|
+
// `reason` is not persisted on the enable path (clearWakeDisable deletes
|
|
440
|
+
// the row). The reason is still collected and printed locally for the
|
|
441
|
+
// operator's own audit trail.
|
|
275
442
|
const body = {
|
|
276
|
-
action: 'enable',
|
|
277
|
-
project_id: projectId,
|
|
278
443
|
role: opts.role.trim().toLowerCase(),
|
|
279
|
-
reason: opts.reason,
|
|
280
444
|
};
|
|
281
|
-
|
|
445
|
+
// noProjectHeader: true — wake disables are org-scoped (req.userOrgId on API side).
|
|
446
|
+
// Do NOT send X-Fazemos-Project-Id for this route (addendum item 4).
|
|
447
|
+
const data = await api('POST', '/api/control-plane/wake/enable', body, {
|
|
282
448
|
noProjectHeader: true,
|
|
283
449
|
});
|
|
284
450
|
if (opts.json) {
|
package/dist/wake.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wake.js","sourceRoot":"","sources":["../src/wake.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"wake.js","sourceRoot":"","sources":["../src/wake.ts"],"names":[],"mappings":"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"}
|