@formigio/fazemos-cli 0.10.75 → 0.10.77

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/wake.d.ts CHANGED
@@ -4,36 +4,70 @@
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?project_id=<id>
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/disable { action: "enable", ... }
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
- * Scope: project-scoped reads (project_id query param); writes are org+project.
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
- * 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
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';
34
59
  /**
35
60
  * Register `wake status`, `wake disable`, and `wake enable` into the root
36
61
  * Commander program. Called from index.ts after `program` is created, alongside
37
62
  * registerPauseCommands, registerBudgetCommands, and registerTriggerCommands.
63
+ *
64
+ * SCOPE SPLIT:
65
+ * - wake status: project-scoped (X-Fazemos-Project-Id header, F15 pattern).
66
+ * --project <slug> resolves to projectId in the header (BUG159-B).
67
+ * - wake disable / wake enable: org-scoped (no project header).
68
+ * --project flag is REJECTED client-side before any API call (addendum item 3).
69
+ * This is the documented exception to rul_project_header_scoping_for_new_cli.
70
+ * If no active project and no --project, the API returns MISSING_PROJECT_CONTEXT
71
+ * on status; disable/enable use req.userOrgId from auth context (no project needed).
38
72
  */
39
73
  export declare function registerWakeCommands(program: Command): void;
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,45 @@ 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
+ }
65
58
  // ── Command registration ───────────────────────────────────────────────────────
66
59
  /**
67
60
  * Register `wake status`, `wake disable`, and `wake enable` into the root
68
61
  * Commander program. Called from index.ts after `program` is created, alongside
69
62
  * registerPauseCommands, registerBudgetCommands, and registerTriggerCommands.
63
+ *
64
+ * SCOPE SPLIT:
65
+ * - wake status: project-scoped (X-Fazemos-Project-Id header, F15 pattern).
66
+ * --project <slug> resolves to projectId in the header (BUG159-B).
67
+ * - wake disable / wake enable: org-scoped (no project header).
68
+ * --project flag is REJECTED client-side before any API call (addendum item 3).
69
+ * This is the documented exception to rul_project_header_scoping_for_new_cli.
70
+ * If no active project and no --project, the API returns MISSING_PROJECT_CONTEXT
71
+ * on status; disable/enable use req.userOrgId from auth context (no project needed).
70
72
  */
71
73
  export function registerWakeCommands(program) {
72
74
  // ── `fazemos wake` ───────────────────────────────────────────────────────────
@@ -80,16 +82,35 @@ export function registerWakeCommands(program) {
80
82
  ' status Show wake schedule + recent fire history (last 50 entries)\n' +
81
83
  ' disable Disable auto-wake for a role (timed or indefinite) (admin/owner)\n' +
82
84
  ' enable Re-enable a previously disabled auto-wake role (admin/owner)\n\n' +
83
- 'status is readable by any active org member.\n' +
84
- 'disable/enable require admin or owner role.\n' +
85
- 'All operations are project-scoped (uses active project or --project override).\n\n' +
85
+ 'status is readable by any active org member. Use --project <slug> to\n' +
86
+ 'inspect another project without switching the active project.\n' +
87
+ 'disable/enable require admin or owner role and are org-scoped:\n' +
88
+ ' wake_disables PK is (org_id, role) — not project-scoped.\n' +
89
+ ' --project is not accepted on disable/enable (addendum 2026-08-26).\n\n' +
86
90
  'Auto-wake fires automatically when an eligible task dispatch arrives for an\n' +
87
91
  'allow-listed, auto-wakeable role. Use `wake status` to see the live state\n' +
88
92
  '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).');
93
+ 'in the inbox; auto-launch is suppressed until you `wake enable` it).\n\n' +
94
+ 'WAKE SET (159-C — read-only via CLI):\n' +
95
+ ' The wake set is env-sourced from SSM parameters:\n' +
96
+ ' /fazemos/{env}/wake/allowlist\n' +
97
+ ' /fazemos/{env}/wake/auto-wakeable-roles\n' +
98
+ ' To add or remove a role, an operator must run:\n' +
99
+ ' aws ssm put-parameter --name /fazemos/{env}/wake/allowlist --value "..." \\\n' +
100
+ ' --type String --overwrite\n' +
101
+ ' and redeploy the env. No CLI path currently writes to the SSM parameters.');
90
102
  // ── `fazemos wake status` ─────────────────────────────────────────────────────
91
103
  //
92
- // GET /api/control-plane/wake?project_id=<id>
104
+ // GET /api/control-plane/wake
105
+ //
106
+ // BUG159-B: project scope resolved via X-Fazemos-Project-Id header (requireProjectScope
107
+ // on API side). Pass --project <slug> to inspect another project without switching.
108
+ // BUG159-A (addendum): output header renders scope from API response payload.
109
+ // - "Wake schedule for <org_slug>/<project_slug> (N entries):"
110
+ // - Split-scope note: "allowlist: global | disables: <org_slug>"
111
+ // - org_slug rendered in the disables position (NOT disables_scope which is "org").
112
+ // - If scope is absent from response, renders "(scope unknown)" — never silent.
113
+ // BUG159-C: help text names the SSM parameters and states there is no CLI write path.
93
114
  //
94
115
  // schedule: role, auto_wakeable, allow_listed, enabled (operator disable state).
95
116
  // fires: last 50 wake_fires (dispatch_id, role, fire_status, suppress_code,
@@ -97,40 +118,83 @@ export function registerWakeCommands(program) {
97
118
  //
98
119
  // Usage:
99
120
  // fazemos wake status
121
+ // fazemos wake status --project <slug>
100
122
  // fazemos wake status --json
101
123
  wakeCmd
102
124
  .command('status')
103
125
  .description('Show inbox auto-wake schedule and recent fire history for the active project.\n\n' +
104
- 'Prints the configured role schedule alongside the last 50 wake fire records.\n\n' +
126
+ 'The output header names the org/project being reported (BUG159-A). Use\n' +
127
+ '--project <slug> to inspect another project\'s wake state without switching\n' +
128
+ 'the active project (BUG159-B).\n\n' +
129
+ 'If no active project is set and no --project flag is provided, this command\n' +
130
+ 'emits "requirement missing: project" and exits non-zero (rul_cli_missing_input_project).\n\n' +
105
131
  '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' +
132
+ ' auto_wakeable — role is eligible for auto-wake (AUTO_WAKEABLE_ROLES env/SSM)\n' +
133
+ ' allow_listed — role is in the wake allow-list (WAKE_ALLOWLIST env/SSM)\n' +
108
134
  ' enabled — no operator disable currently in effect\n\n' +
109
135
  'fire_status values:\n' +
110
136
  ' claimed — wake claimed; launch in progress\n' +
111
137
  ' fired — dispatch/execution successfully created\n' +
112
138
  ' failed — wake failed; will retry on next eligible dispatch\n' +
113
139
  ' suppressed — canLaunch gate refused (org paused, budget, or fan-out cap)\n\n' +
140
+ 'WAKE SET (read-only via CLI — 159-C):\n' +
141
+ ' The wake set is sourced from SSM parameters:\n' +
142
+ ' /fazemos/{env}/wake/allowlist — roles eligible to receive wakes\n' +
143
+ ' /fazemos/{env}/wake/auto-wakeable-roles — roles that auto-launch on receipt\n' +
144
+ ' To add or remove a role from the wake set, an operator must:\n' +
145
+ ' 1. Run: aws ssm put-parameter --name /fazemos/{env}/wake/allowlist \\\n' +
146
+ ' --value "<comma-separated-roles>" --type String --overwrite\n' +
147
+ ' (and similarly for /fazemos/{env}/wake/auto-wakeable-roles)\n' +
148
+ ' 2. Redeploy the env so the new parameter value takes effect.\n' +
149
+ ' No CLI path currently writes to the SSM parameters.\n\n' +
114
150
  'Readable by any active org member. Use --json for machine-readable output.')
151
+ .option('--project <slug>', 'project slug override (defaults to active project)')
115
152
  .option('--json', 'output machine-readable JSON')
116
153
  .action(async (opts) => {
117
154
  try {
118
- const projectId = getActiveProjectId();
119
- if (!projectId) {
120
- throw new Error('No active project. Run `fazemos projects switch <slug>` first.');
121
- }
122
- const data = await api('GET', `/api/control-plane/wake?project_id=${encodeURIComponent(projectId)}`, undefined, { noProjectHeader: true });
155
+ // BUG159-B: use X-Fazemos-Project-Id header (F15 pattern) via projectSlug option.
156
+ // If no active project and no --project, api() sends no project header.
157
+ // The API's requireProjectScope returns MISSING_PROJECT_CONTEXT
158
+ // api.ts translates to "requirement missing: project" (rul_cli_missing_input_project).
159
+ const data = await api('GET', '/api/control-plane/wake', undefined, { projectSlug: opts.project });
123
160
  if (opts.json) {
124
161
  console.log(JSON.stringify(data, null, 2));
125
162
  return;
126
163
  }
127
164
  const { schedule, fires } = data;
165
+ // A PARTIAL scope object is truthy and would render "<org>/undefined" —
166
+ // a confidently-wrong header, which is the defect class BUG159 exists to
167
+ // kill. Treat anything short of both slugs as no scope at all, so the
168
+ // visible "(scope unknown)" fallback takes over.
169
+ const scope = data.scope && data.scope.org_slug && data.scope.project_slug
170
+ ? data.scope
171
+ : undefined;
128
172
  // ── Schedule ──────────────────────────────────────────────────────────
129
173
  if (schedule.length === 0) {
130
- console.log(chalk.yellow('No wake schedule configured (WAKE_ALLOWLIST is empty or not set).'));
174
+ // BUG159-A: even when empty, name the scope.
175
+ // On missing scope (older API / error path), render visibly-unknown —
176
+ // NEVER substitute the active project slug (that IS the BUG159 defect class).
177
+ if (scope) {
178
+ console.log(chalk.yellow(`Wake schedule for ${chalk.cyan(`${scope.org_slug}/${scope.project_slug}`)} — ` +
179
+ `no entries (WAKE_ALLOWLIST is empty or not set).`));
180
+ }
181
+ else {
182
+ console.log(chalk.yellow(`Wake schedule for ${chalk.dim('(scope unknown)')} — ` +
183
+ `no entries (WAKE_ALLOWLIST is empty or not set).`));
184
+ }
131
185
  }
132
186
  else {
133
- console.log(chalk.bold(`Wake schedule (${schedule.length} entries):`));
187
+ // BUG159-A: render scope header from API response payload.
188
+ // On missing scope (older API / error path), render visibly-unknown —
189
+ // NEVER substitute the active project slug (that IS the BUG159 defect class).
190
+ if (scope) {
191
+ renderScopeHeader(scope, schedule.length);
192
+ }
193
+ else {
194
+ // Addendum item 2 fallback: scope absent → visibly-unknown indicator.
195
+ // Do NOT substitute active project slug here.
196
+ console.log(chalk.bold(`Wake schedule for ${chalk.dim('(scope unknown)')} (${schedule.length} entries):`));
197
+ }
134
198
  console.log();
135
199
  for (const entry of schedule) {
136
200
  const enabledLabel = entry.enabled
@@ -183,6 +247,11 @@ export function registerWakeCommands(program) {
183
247
  // Active disable → isWakeDisabled=true → no claim, no launch, still inbox-lands.
184
248
  // --until <iso>: timed disable; omit for indefinite until `fazemos wake enable`.
185
249
  //
250
+ // ADDENDUM 2026-08-26 (item 3): wake_disables is scoped per-(org_id, role).
251
+ // --project is defined so Commander can capture it, but the action rejects it
252
+ // CLIENT-SIDE BEFORE ANY API CALL with the exact-string error from the addendum.
253
+ // The API call uses noProjectHeader: true — org context comes from req.userOrgId.
254
+ //
186
255
  // Note: NO --cadence flag (wake_disables is org-wide per role; no cadence dim).
187
256
  //
188
257
  // Usage:
@@ -196,26 +265,37 @@ export function registerWakeCommands(program) {
196
265
  'execution — the inbox must be drained manually or re-enabled.\n\n' +
197
266
  ' (no --until) Indefinite disable — remains until `fazemos wake enable`\n' +
198
267
  ' --until <iso> Timed disable — auto-expires at the given UTC timestamp\n\n' +
199
- 'Requires admin or owner role. --reason is mandatory (audit trail).')
268
+ 'Org-scoped: wake disables apply per (org, role) not per project.\n' +
269
+ 'The --project flag is not accepted on this command (addendum 2026-08-26).\n' +
270
+ 'If you need per-project wake disables, file a feature request.\n\n' +
271
+ 'Requires admin or owner role. --reason is mandatory and IS persisted\n' +
272
+ 'server-side to wake_disables.reason (genuine audit trail).')
200
273
  .requiredOption('--role <slug>', 'role slug to disable (e.g. project-manager)')
201
274
  .requiredOption('--reason <text>', 'reason for the disable (required for audit trail)')
202
275
  .option('--until <iso>', 'ISO 8601 timestamp when the disable expires (omit for indefinite)')
276
+ // --project is defined so Commander captures it for the explicit rejection below.
277
+ // It is NOT a working option — the action rejects it before any API call.
278
+ .option('--project <slug>', '(not accepted — wake disables are org-scoped, not project-scoped)')
203
279
  .option('--json', 'output machine-readable JSON')
204
280
  .action(async (opts) => {
205
281
  try {
206
- const projectId = getActiveProjectId();
207
- if (!projectId) {
208
- throw new Error('No active project. Run `fazemos projects switch <slug>` first.');
282
+ // ADDENDUM item 3: wake disables are scoped per-(org, role).
283
+ // --project is explicitly rejected CLIENT-SIDE BEFORE ANY API CALL.
284
+ // Silent-ignore is forbidden silent scope IS the BUG159 defect class.
285
+ if (opts.project !== undefined) {
286
+ console.error('error: wake disables are scoped per-(org, role); --project is not accepted. If you need per-project disables, file a feature request.');
287
+ process.exit(1);
209
288
  }
210
289
  const body = {
211
290
  action: 'disable',
212
- project_id: projectId,
213
291
  role: opts.role.trim().toLowerCase(),
214
292
  reason: opts.reason,
215
293
  };
216
294
  if (opts.until !== undefined) {
217
295
  body.until = validateIsoTimestamp(opts.until);
218
296
  }
297
+ // noProjectHeader: true — wake disables are org-scoped (req.userOrgId on API side).
298
+ // Do NOT send X-Fazemos-Project-Id for this route (addendum item 4).
219
299
  const data = await api('POST', '/api/control-plane/wake/disable', body, {
220
300
  noProjectHeader: true,
221
301
  });
@@ -248,11 +328,16 @@ export function registerWakeCommands(program) {
248
328
  });
249
329
  // ── `fazemos wake enable` ─────────────────────────────────────────────────────
250
330
  //
251
- // POST /api/control-plane/wake/disable { action: "enable", ... }
331
+ // POST /api/control-plane/wake/enable { role }
252
332
  //
253
333
  // Deletes the wake_disables row (re-enables auto-wake for that role).
254
334
  // After enable: the next eligible task dispatch to this role auto-launches.
255
335
  //
336
+ // ADDENDUM 2026-08-26 (item 3): wake_disables is scoped per-(org_id, role).
337
+ // --project is defined so Commander can capture it, but the action rejects it
338
+ // CLIENT-SIDE BEFORE ANY API CALL with the exact-string error from the addendum.
339
+ // The API call uses noProjectHeader: true — org context comes from req.userOrgId.
340
+ //
256
341
  // Note: NO --cadence flag (wake_disables has no cadence dimension).
257
342
  //
258
343
  // Usage:
@@ -262,23 +347,43 @@ export function registerWakeCommands(program) {
262
347
  .description('Re-enable auto-wake for a previously disabled role (admin/owner only).\n\n' +
263
348
  'Deletes the disable record for the given role, allowing the next eligible\n' +
264
349
  'task dispatch to auto-launch a wake execution.\n\n' +
265
- 'Requires admin or owner role. --reason is mandatory (audit trail).')
350
+ 'Org-scoped: wake disables apply per (org, role) not per project.\n' +
351
+ 'The --project flag is not accepted on this command (addendum 2026-08-26).\n' +
352
+ 'If you need per-project wake disables, file a feature request.\n\n' +
353
+ 'Requires admin or owner role. --reason is mandatory, but is NOT persisted\n' +
354
+ 'server-side: the enable path DELETEs the wake_disables row, so the reason is\n' +
355
+ 'printed locally for your own record only. (wake disable DOES persist reason.)')
266
356
  .requiredOption('--role <slug>', 'role slug to enable (e.g. project-manager)')
267
- .requiredOption('--reason <text>', 'reason for re-enabling (required for audit trail)')
357
+ .requiredOption('--reason <text>', 'reason for re-enabling (printed locally; NOT persisted server-side)')
358
+ // --project is defined so Commander captures it for the explicit rejection below.
359
+ // It is NOT a working option — the action rejects it before any API call.
360
+ .option('--project <slug>', '(not accepted — wake disables are org-scoped, not project-scoped)')
268
361
  .option('--json', 'output machine-readable JSON')
269
362
  .action(async (opts) => {
270
363
  try {
271
- const projectId = getActiveProjectId();
272
- if (!projectId) {
273
- throw new Error('No active project. Run `fazemos projects switch <slug>` first.');
364
+ // ADDENDUM item 3: wake disables are scoped per-(org, role).
365
+ // --project is explicitly rejected CLIENT-SIDE BEFORE ANY API CALL.
366
+ // Silent-ignore is forbidden silent scope IS the BUG159 defect class.
367
+ if (opts.project !== undefined) {
368
+ console.error('error: wake disables are scoped per-(org, role); --project is not accepted. If you need per-project disables, file a feature request.');
369
+ process.exit(1);
274
370
  }
371
+ // ADDENDUM item 4: enable has its own endpoint as of the BUG159 API-side
372
+ // revision (fazemos-api release-v0.3.77-rc1). The shared
373
+ // POST /wake/disable { action: 'enable' } branch is retained server-side
374
+ // ONLY as backward-compat for un-migrated clients — this is the migration.
375
+ //
376
+ // Body is { role } exactly. The dedicated handler destructures `role` and
377
+ // nothing else; `action` is meaningless on a single-purpose endpoint and
378
+ // `reason` is not persisted on the enable path (clearWakeDisable deletes
379
+ // the row). The reason is still collected and printed locally for the
380
+ // operator's own audit trail.
275
381
  const body = {
276
- action: 'enable',
277
- project_id: projectId,
278
382
  role: opts.role.trim().toLowerCase(),
279
- reason: opts.reason,
280
383
  };
281
- const data = await api('POST', '/api/control-plane/wake/disable', body, {
384
+ // noProjectHeader: true wake disables are org-scoped (req.userOrgId on API side).
385
+ // Do NOT send X-Fazemos-Project-Id for this route (addendum item 4).
386
+ const data = await api('POST', '/api/control-plane/wake/enable', body, {
282
387
  noProjectHeader: true,
283
388
  });
284
389
  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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@formigio/fazemos-cli",
3
- "version": "0.10.75",
3
+ "version": "0.10.77",
4
4
  "description": "CLI for the Fazemos Team Accomplishment Platform",
5
5
  "type": "module",
6
6
  "license": "MIT",