@elaraai/e3-cloud-cli 0.0.0-stage → 1.0.90

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.
Files changed (71) hide show
  1. package/LICENSE.md +54 -0
  2. package/README.md +433 -2
  3. package/dist/src/app-source.d.ts +16 -0
  4. package/dist/src/app-source.d.ts.map +1 -0
  5. package/dist/src/app-source.js +112 -0
  6. package/dist/src/app-source.js.map +1 -0
  7. package/dist/src/cli.d.ts +7 -0
  8. package/dist/src/cli.d.ts.map +1 -0
  9. package/dist/src/cli.js +472 -0
  10. package/dist/src/cli.js.map +1 -0
  11. package/dist/src/commands/app.d.ts +28 -0
  12. package/dist/src/commands/app.d.ts.map +1 -0
  13. package/dist/src/commands/app.js +286 -0
  14. package/dist/src/commands/app.js.map +1 -0
  15. package/dist/src/commands/compute.d.ts +16 -0
  16. package/dist/src/commands/compute.d.ts.map +1 -0
  17. package/dist/src/commands/compute.js +110 -0
  18. package/dist/src/commands/compute.js.map +1 -0
  19. package/dist/src/commands/feedback.d.ts +27 -0
  20. package/dist/src/commands/feedback.d.ts.map +1 -0
  21. package/dist/src/commands/feedback.js +197 -0
  22. package/dist/src/commands/feedback.js.map +1 -0
  23. package/dist/src/commands/records.d.ts +42 -0
  24. package/dist/src/commands/records.d.ts.map +1 -0
  25. package/dist/src/commands/records.js +301 -0
  26. package/dist/src/commands/records.js.map +1 -0
  27. package/dist/src/commands/release.d.ts +39 -0
  28. package/dist/src/commands/release.d.ts.map +1 -0
  29. package/dist/src/commands/release.js +219 -0
  30. package/dist/src/commands/release.js.map +1 -0
  31. package/dist/src/commands/role.d.ts +24 -0
  32. package/dist/src/commands/role.d.ts.map +1 -0
  33. package/dist/src/commands/role.js +94 -0
  34. package/dist/src/commands/role.js.map +1 -0
  35. package/dist/src/commands/schedule.d.ts +18 -0
  36. package/dist/src/commands/schedule.d.ts.map +1 -0
  37. package/dist/src/commands/schedule.js +128 -0
  38. package/dist/src/commands/schedule.js.map +1 -0
  39. package/dist/src/commands/secrets.d.ts +15 -0
  40. package/dist/src/commands/secrets.d.ts.map +1 -0
  41. package/dist/src/commands/secrets.js +82 -0
  42. package/dist/src/commands/secrets.js.map +1 -0
  43. package/dist/src/commands/staging.d.ts +36 -0
  44. package/dist/src/commands/staging.d.ts.map +1 -0
  45. package/dist/src/commands/staging.js +98 -0
  46. package/dist/src/commands/staging.js.map +1 -0
  47. package/dist/src/commands/timeout.d.ts +16 -0
  48. package/dist/src/commands/timeout.d.ts.map +1 -0
  49. package/dist/src/commands/timeout.js +124 -0
  50. package/dist/src/commands/timeout.js.map +1 -0
  51. package/dist/src/commands/user-settings.d.ts +15 -0
  52. package/dist/src/commands/user-settings.d.ts.map +1 -0
  53. package/dist/src/commands/user-settings.js +74 -0
  54. package/dist/src/commands/user-settings.js.map +1 -0
  55. package/dist/src/commands/user.d.ts +26 -0
  56. package/dist/src/commands/user.d.ts.map +1 -0
  57. package/dist/src/commands/user.js +206 -0
  58. package/dist/src/commands/user.js.map +1 -0
  59. package/dist/src/commands/whoami.d.ts +6 -0
  60. package/dist/src/commands/whoami.d.ts.map +1 -0
  61. package/dist/src/commands/whoami.js +38 -0
  62. package/dist/src/commands/whoami.js.map +1 -0
  63. package/dist/src/credentials.d.ts +100 -0
  64. package/dist/src/credentials.d.ts.map +1 -0
  65. package/dist/src/credentials.js +164 -0
  66. package/dist/src/credentials.js.map +1 -0
  67. package/dist/src/utils.d.ts +38 -0
  68. package/dist/src/utils.d.ts.map +1 -0
  69. package/dist/src/utils.js +73 -0
  70. package/dist/src/utils.js.map +1 -0
  71. package/package.json +32 -3
@@ -0,0 +1,472 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Copyright (c) 2025 Elara AI Pty Ltd
4
+ * Licensed under BSL 1.1. See LICENSE for details.
5
+ */
6
+ /**
7
+ * e3-cloud CLI - cloud management for e3.
8
+ */
9
+ import { createRequire } from 'node:module';
10
+ import { Command } from 'commander';
11
+ import { whoamiCommand } from './commands/whoami.js';
12
+ import { userCommand } from './commands/user.js';
13
+ import { roleCommand } from './commands/role.js';
14
+ import { ALL_APPS_ROLE } from '@elaraai/e3-cloud-types';
15
+ import { scheduleCommand } from './commands/schedule.js';
16
+ import { computeCommand } from './commands/compute.js';
17
+ import { timeoutCommand } from './commands/timeout.js';
18
+ import { settingsCommand } from './commands/user-settings.js';
19
+ import { secretsCommand } from './commands/secrets.js';
20
+ import { recordsCommand } from './commands/records.js';
21
+ import { feedbackCommand } from './commands/feedback.js';
22
+ import { appCommand } from './commands/app.js';
23
+ import { releaseCommand } from './commands/release.js';
24
+ import { stagingCommand } from './commands/staging.js';
25
+ /** The CLI's version: its package's (dist/src/cli.js is two levels under it) */
26
+ const { version } = createRequire(import.meta.url)('../../package.json');
27
+ const program = new Command();
28
+ program
29
+ .name('e3-cloud')
30
+ .description('e3 cloud management CLI')
31
+ .version(version);
32
+ // e3-cloud whoami [server]
33
+ program
34
+ .command('whoami [server]')
35
+ .description('Show current user identity and admin status')
36
+ .action(whoamiCommand);
37
+ // e3-cloud user <subcommand>
38
+ const user = program
39
+ .command('user')
40
+ .description('User management commands');
41
+ user
42
+ .command('list-all')
43
+ .description('List all deployment users — directory + invitations + repo roles + last seen (admin)')
44
+ .argument('<serverUrl>', 'Server URL (e.g., https://server)')
45
+ .action(userCommand.listAll);
46
+ user
47
+ .command('disable')
48
+ .description('Block a user\'s platform sign-in — their identity-provider account is unaffected (admin)')
49
+ .argument('<serverUrl>', 'Server URL')
50
+ .argument('<emailOrSub>', 'User email or subject id')
51
+ .action(userCommand.disable);
52
+ user
53
+ .command('enable')
54
+ .description('Restore a user\'s platform sign-in (admin)')
55
+ .argument('<serverUrl>', 'Server URL')
56
+ .argument('<emailOrSub>', 'User email or subject id')
57
+ .action(userCommand.enable);
58
+ user
59
+ .command('invitations')
60
+ .description('List user invitations — pending grants claimed at first login (admin)')
61
+ .argument('<serverUrl>', 'Server URL (e.g., https://server)')
62
+ .action(userCommand.invitations);
63
+ user
64
+ .command('uninvite')
65
+ .description('Revoke a pending invitation (admin)')
66
+ .argument('<serverUrl>', 'Server URL')
67
+ .argument('<email>', 'Invitee email')
68
+ .action(userCommand.uninvite);
69
+ user
70
+ .command('list')
71
+ .description('List users with access to a repository')
72
+ .argument('<url>', 'Repository URL (e.g., https://server/repos/my-repo)')
73
+ .action(userCommand.list);
74
+ user
75
+ .command('add')
76
+ .description('Add a person to a repository, or change their role: an owner, or a user holding business roles')
77
+ .argument('<url>', 'Repository URL')
78
+ .argument('<email>', 'User email address')
79
+ .option('--role <role>', 'owner or user', 'user')
80
+ .option('--roles <names>', `For --role user: their business roles, comma-separated (the built-in '${ALL_APPS_ROLE}' among them)`)
81
+ .action(userCommand.add);
82
+ user
83
+ .command('remove')
84
+ .description('Remove a user from a repository')
85
+ .argument('<url>', 'Repository URL')
86
+ .argument('<email>', 'User email address')
87
+ .action(userCommand.remove);
88
+ // e3-cloud role <subcommand>
89
+ const role = program
90
+ .command('role')
91
+ .description('A repository\'s business roles: what its users may use, by app and page');
92
+ role
93
+ .command('list')
94
+ .description('List a repository\'s business roles and what each grants (owner or admin)')
95
+ .argument('<url>', 'Repository URL')
96
+ .action(roleCommand.list);
97
+ role
98
+ .command('show')
99
+ .description('Show a business role (owner or admin)')
100
+ .argument('<url>', 'Repository URL')
101
+ .argument('<name>', 'The role\'s name')
102
+ .action(roleCommand.show);
103
+ role
104
+ .command('set')
105
+ .description('Write a business role whole: made, or replaced (owner or admin)')
106
+ .argument('<url>', 'Repository URL')
107
+ .argument('<name>', 'The role\'s name')
108
+ .requiredOption('--grant <workspace/app[:page,page]...>', 'An app it grants: every page, or the pages named after a colon; repeat for each app', (value, previous = []) => [...previous, value])
109
+ .action(roleCommand.set);
110
+ role
111
+ .command('rm')
112
+ .description('Remove a business role no one holds (owner or admin)')
113
+ .argument('<url>', 'Repository URL')
114
+ .argument('<name>', 'The role\'s name')
115
+ .action(roleCommand.remove);
116
+ // e3-cloud schedule <subcommand>
117
+ const schedule = program
118
+ .command('schedule')
119
+ .description('Schedule management commands');
120
+ schedule
121
+ .command('set')
122
+ .description('Create or update a workspace schedule')
123
+ .argument('<url>', 'Workspace URL (e.g., https://server/repos/my-repo/workspaces/main)')
124
+ .option('--cron <expression>', 'Cron expression (Unix 5-field, e.g., "0 2 * * *")')
125
+ .option('--force-tasks <names>', 'Comma-separated task names to force (e.g., "input-orders,load-products")')
126
+ .option('--force-regex <pattern>', 'Regex to match task names as force-tasks')
127
+ .option('--timezone <tz>', 'IANA timezone (e.g., "Australia/Sydney")')
128
+ .option('--description <text>', 'Human-readable description')
129
+ .option('--enabled <bool>', 'Enable or disable the schedule (true/false)', 'true')
130
+ .action(scheduleCommand.set);
131
+ schedule
132
+ .command('get')
133
+ .description('View the schedule for a workspace')
134
+ .argument('<url>', 'Workspace URL')
135
+ .action(scheduleCommand.get);
136
+ schedule
137
+ .command('remove')
138
+ .description('Remove the schedule for a workspace')
139
+ .argument('<url>', 'Workspace URL')
140
+ .action(scheduleCommand.remove);
141
+ schedule
142
+ .command('list')
143
+ .description('List all schedules for a repository')
144
+ .argument('<url>', 'Repository URL (e.g., https://server/repos/my-repo)')
145
+ .action(scheduleCommand.list);
146
+ // e3-cloud compute <subcommand>
147
+ const compute = program
148
+ .command('compute')
149
+ .description('Task compute size configuration');
150
+ compute
151
+ .command('set')
152
+ .description('Set compute size for a task')
153
+ .argument('<url>', 'Workspace URL (e.g., https://server/repos/my-repo/workspaces/main)')
154
+ .argument('<task>', 'Task name (or regex pattern with --regex)')
155
+ .requiredOption('--size <size>', 'Compute size (serverless, small, medium, large, xlarge)')
156
+ .option('--regex', 'Treat task argument as a regex pattern')
157
+ .action(computeCommand.set);
158
+ compute
159
+ .command('get')
160
+ .description('Get compute size for a task')
161
+ .argument('<url>', 'Workspace URL')
162
+ .argument('<task>', 'Task name')
163
+ .action(computeCommand.get);
164
+ compute
165
+ .command('list')
166
+ .description('List all compute configs for a workspace')
167
+ .argument('<url>', 'Workspace URL')
168
+ .action(computeCommand.list);
169
+ compute
170
+ .command('remove')
171
+ .description('Remove compute config for a task')
172
+ .argument('<url>', 'Workspace URL')
173
+ .argument('<task>', 'Task name (or regex pattern with --regex)')
174
+ .option('--regex', 'Treat task argument as a regex pattern')
175
+ .action(computeCommand.remove);
176
+ // e3-cloud timeout <subcommand>
177
+ const timeout = program
178
+ .command('timeout')
179
+ .description('Task timeout configuration');
180
+ timeout
181
+ .command('set')
182
+ .description('Set timeout for a task')
183
+ .argument('<url>', 'Workspace URL (e.g., https://server/repos/my-repo/workspaces/main)')
184
+ .argument('<task>', 'Task name (or regex pattern with --regex)')
185
+ .requiredOption('--timeout <duration>', 'Timeout (e.g., 120, 2h, 1d)')
186
+ .option('--regex', 'Treat task argument as a regex pattern')
187
+ .action(timeoutCommand.set);
188
+ timeout
189
+ .command('get')
190
+ .description('Get timeout for a task')
191
+ .argument('<url>', 'Workspace URL')
192
+ .argument('<task>', 'Task name')
193
+ .action(timeoutCommand.get);
194
+ timeout
195
+ .command('list')
196
+ .description('List all timeout configs for a workspace')
197
+ .argument('<url>', 'Workspace URL')
198
+ .action(timeoutCommand.list);
199
+ timeout
200
+ .command('remove')
201
+ .description('Remove timeout config for a task')
202
+ .argument('<url>', 'Workspace URL')
203
+ .argument('<task>', 'Task name (or regex pattern with --regex)')
204
+ .option('--regex', 'Treat task argument as a regex pattern')
205
+ .action(timeoutCommand.remove);
206
+ // e3-cloud settings <subcommand>
207
+ const settings = program
208
+ .command('settings')
209
+ .description('Per-user workspace settings');
210
+ settings
211
+ .command('get')
212
+ .description('Get user settings for a workspace')
213
+ .argument('<url>', 'Workspace URL (e.g., https://server/repos/my-repo/workspaces/main)')
214
+ .option('--output <file>', 'Write settings to a file instead of stdout')
215
+ .action(settingsCommand.get);
216
+ settings
217
+ .command('set')
218
+ .description('Set user settings for a workspace')
219
+ .argument('<url>', 'Workspace URL')
220
+ .option('--input <file>', 'Read settings from a file')
221
+ .option('--data <text>', 'Use text as settings data')
222
+ .action(settingsCommand.set);
223
+ settings
224
+ .command('remove')
225
+ .description('Remove user settings for a workspace')
226
+ .argument('<url>', 'Workspace URL')
227
+ .action(settingsCommand.remove);
228
+ const secrets = program
229
+ .command('secrets')
230
+ .description('Per-repo secrets for task credentials (write-only; task code reads them with Env.get("NAME"))');
231
+ secrets
232
+ .command('set')
233
+ .description('Set a secret (value from stdin, or --value); takes effect on the next task run')
234
+ .argument('<url>', 'Repo URL (e.g., https://server/repos/my-repo)')
235
+ .argument('<name>', 'Secret name (uppercase env-var shape, e.g. PG_PASSWORD)')
236
+ .option('--value <value>', 'Secret value (prefer stdin to keep it out of shell history)')
237
+ .action(secretsCommand.set);
238
+ secrets
239
+ .command('list')
240
+ .description('List secret names (values are never shown)')
241
+ .argument('<url>', 'Repo URL')
242
+ .action(secretsCommand.list);
243
+ secrets
244
+ .command('rm')
245
+ .description('Delete a secret')
246
+ .argument('<url>', 'Repo URL')
247
+ .argument('<name>', 'Secret name to delete')
248
+ .action(secretsCommand.rm);
249
+ // e3-cloud records <subcommand>
250
+ const records = program
251
+ .command('records')
252
+ .description('Record history, rollback & backups (durable audit survives compaction; base mutations stay on the e3 CLI)');
253
+ records
254
+ .command('list')
255
+ .description("List a workspace's records with head commit and backup counts")
256
+ .argument('<url>', 'Repo URL (e.g., https://server/repos/my-repo)')
257
+ .argument('<workspace>', 'Workspace name')
258
+ .action(recordsCommand.list);
259
+ records
260
+ .command('history')
261
+ .description('Durable audit of a record, newest first (who/what/when — survives compaction)')
262
+ .argument('<url>', 'Repo URL')
263
+ .argument('<workspace>', 'Workspace name')
264
+ .argument('<record>', 'Record name')
265
+ .option('--limit <n>', 'Page size (default 50, max 200)')
266
+ .option('--before <cursor>', "Page cursor from the previous page's 'More:' line")
267
+ .action(recordsCommand.history);
268
+ records
269
+ .command('show')
270
+ .description("Print a record's value at a commit (East literal, its first rows when large; -o writes the whole value as beast2)")
271
+ .argument('<url>', 'Repo URL')
272
+ .argument('<workspace>', 'Workspace name')
273
+ .argument('<record>', 'Record name')
274
+ .argument('<commit>', 'Commit hash (from history)')
275
+ .option('-o, --output <file>', 'Write the whole value, as beast2, to a file instead')
276
+ .action(recordsCommand.show);
277
+ records
278
+ .command('rollback')
279
+ .description('Roll a record back to a historical commit (appends an audited $rollback commit; refused past a migration)')
280
+ .argument('<url>', 'Repo URL')
281
+ .argument('<workspace>', 'Workspace name')
282
+ .argument('<record>', 'Record name')
283
+ .argument('<commit>', 'Target commit hash (from history)')
284
+ .option('--expect-head <hash>', 'Only roll back if the record head is still this commit')
285
+ .option('-y, --yes', 'Skip the confirmation prompt')
286
+ .action(recordsCommand.rollback);
287
+ records
288
+ .command('backup')
289
+ .description("Back up the record's current state (the platform keeps the state while the backup exists)")
290
+ .argument('<url>', 'Repo URL')
291
+ .argument('<workspace>', 'Workspace name')
292
+ .argument('<record>', 'Record name')
293
+ .option('--note <text>', 'Note stored with the backup')
294
+ .action(recordsCommand.backup);
295
+ records
296
+ .command('backups')
297
+ .description("List a record's backups, newest first")
298
+ .argument('<url>', 'Repo URL')
299
+ .argument('<workspace>', 'Workspace name')
300
+ .argument('<record>', 'Record name')
301
+ .action(recordsCommand.backups);
302
+ records
303
+ .command('restore')
304
+ .description('Restore a backup (appends an audited $restore commit; refused if the record\'s type or migrations changed)')
305
+ .argument('<url>', 'Repo URL')
306
+ .argument('<workspace>', 'Workspace name')
307
+ .argument('<record>', 'Record name')
308
+ .argument('<backupId>', 'Backup id (from backups)')
309
+ .option('--expect-head <hash>', 'Only restore if the record head is still this commit')
310
+ .option('-y, --yes', 'Skip the confirmation prompt')
311
+ .action(recordsCommand.restore);
312
+ records
313
+ .command('backup-pull')
314
+ .description("Download a backup's value for offline keeping (a plain beast2 value of the record's type)")
315
+ .argument('<url>', 'Repo URL')
316
+ .argument('<workspace>', 'Workspace name')
317
+ .argument('<record>', 'Record name')
318
+ .argument('<backupId>', 'Backup id')
319
+ .requiredOption('-o, --output <file>', 'Destination file')
320
+ .action(recordsCommand.backupPull);
321
+ records
322
+ .command('backup-rm')
323
+ .description('Delete a backup')
324
+ .argument('<url>', 'Repo URL')
325
+ .argument('<workspace>', 'Workspace name')
326
+ .argument('<record>', 'Record name')
327
+ .argument('<backupId>', 'Backup id')
328
+ .option('-y, --yes', 'Skip the confirmation prompt')
329
+ .action(recordsCommand.backupRm);
330
+ // e3-cloud feedback <subcommand>
331
+ const feedback = program
332
+ .command('feedback')
333
+ .description('Feedback users send from a workspace\'s pages: list, read, close and reopen notes, and turn it on or off');
334
+ feedback
335
+ .command('list')
336
+ .description('List a workspace\'s notes of a status, newest first, with its counts (owner or admin); --mine lists your own')
337
+ .argument('<url>', 'Workspace URL (e.g., https://server/repos/my-repo/workspaces/main)')
338
+ .option('--status <status>', 'open or closed', 'open')
339
+ .option('--limit <n>', 'Page size (default 25, at most 50)')
340
+ .option('--cursor <cursor>', 'Page cursor from the previous page\'s \'More:\' line')
341
+ .option('--mine', 'List your own notes instead')
342
+ .action(feedbackCommand.list);
343
+ feedback
344
+ .command('show')
345
+ .description('Show a note whole: its text, who sent it when, the page, the part, the data behind the view (owner or admin, or its sender)')
346
+ .argument('<url>', 'Workspace URL')
347
+ .argument('<number>', 'The note\'s number, e.g. 12 or FB-12')
348
+ .option('--status <status>', 'Its status, open or closed, when known')
349
+ .option('--screenshot <file>', 'Save its screenshot to a file')
350
+ .action(feedbackCommand.show);
351
+ feedback
352
+ .command('close')
353
+ .description('Close a note (owner or admin)')
354
+ .argument('<url>', 'Workspace URL')
355
+ .argument('<number>', 'The note\'s number, e.g. 12 or FB-12')
356
+ .action(feedbackCommand.close);
357
+ feedback
358
+ .command('reopen')
359
+ .description('Reopen a closed note (owner or admin)')
360
+ .argument('<url>', 'Workspace URL')
361
+ .argument('<number>', 'The note\'s number, e.g. 12 or FB-12')
362
+ .action(feedbackCommand.reopen);
363
+ feedback
364
+ .command('enable')
365
+ .description('Turn feedback on in a workspace: its pages show the Feedback button (owner or admin)')
366
+ .argument('<url>', 'Workspace URL')
367
+ .action(feedbackCommand.enable);
368
+ feedback
369
+ .command('disable')
370
+ .description('Turn feedback off in a workspace; its notes are kept (owner or admin)')
371
+ .argument('<url>', 'Workspace URL')
372
+ .action(feedbackCommand.disable);
373
+ // e3-cloud app <subcommand>
374
+ const app = program
375
+ .command('app')
376
+ .description('Apps: pages and menus built with @elaraai/e3-cloud-ui, each its own deployable in a workspace');
377
+ app
378
+ .command('build')
379
+ .description('Build an app\'s source into a bundle: the app, and the package it was built against')
380
+ .argument('<source>', 'The app\'s source, whose default export is App(...) (e.g., src/apps/ops.tsx)')
381
+ .option('-o, --output <file>', 'Where to write the bundle (default dist/<app>.app)')
382
+ .action(appCommand.build);
383
+ app
384
+ .command('deploy')
385
+ .description('Deploy apps to a workspace: their package is imported if the repository lacks it, then they are checked against it and switch together (owner or admin)')
386
+ .argument('<url>', 'Repository URL (e.g., https://server/repos/my-repo)')
387
+ .argument('<workspace>', 'Workspace name')
388
+ .argument('[bundles...]', 'Bundles e3-cloud app build wrote')
389
+ .option('--from-source <source...>', 'Build these sources and deploy them, instead of bundles')
390
+ .option('--dry-run', 'Check the apps, and change nothing')
391
+ .option('--for-platform <version>', 'Stage the apps, built with this next e3 release, for the platform deploy that moves to it')
392
+ .option('--force', 'Deploy past the workspace\'s protection, if it has a staging: admins only, recorded in its history as forced')
393
+ .action(appCommand.deploy);
394
+ app
395
+ .command('list')
396
+ .description('List a repository\'s apps, or one workspace\'s: each one\'s live version, package and e3')
397
+ .argument('<url>', 'Repository URL')
398
+ .argument('[workspace]', 'Workspace name (default: every workspace)')
399
+ .action(appCommand.list);
400
+ app
401
+ .command('list-all')
402
+ .description('List every app of the deployment, and which needs a bundle built with the platform\'s e3 (admin)')
403
+ .argument('<serverUrl>', 'Server URL (e.g., https://server)')
404
+ .action(appCommand.listAll);
405
+ app
406
+ .command('versions')
407
+ .description('List an app\'s kept versions, newest first (owner or admin)')
408
+ .argument('<url>', 'Repository URL')
409
+ .argument('<workspace>', 'Workspace name')
410
+ .argument('<app>', 'App name')
411
+ .action(appCommand.versions);
412
+ app
413
+ .command('remove')
414
+ .description('Remove an app and its versions from a workspace (owner or admin)')
415
+ .argument('<url>', 'Repository URL')
416
+ .argument('<workspace>', 'Workspace name')
417
+ .argument('<app>', 'App name')
418
+ .option('--force', 'Remove it past the workspace\'s protection, if it has a staging: admins only, recorded in its history as forced')
419
+ .action(appCommand.remove);
420
+ // e3-cloud staging <subcommand>
421
+ const staging = program
422
+ .command('staging')
423
+ .description('A workspace\'s staging, where changes are tried before they go live: the workspace it releases to is protected, changing only by a release from it');
424
+ staging
425
+ .command('add')
426
+ .description('Add a staging to a workspace, which is protected from then on; the plan is shown first (owner or admin)')
427
+ .argument('<url>', 'Repository URL (e.g., https://server/repos/my-repo)')
428
+ .argument('<live>', 'The workspace it releases to (e.g., production)')
429
+ .argument('<name>', 'The staging\'s name (e.g., staging)')
430
+ .option('--as-is', 'Make the workspace of the name the staging as it stands, rather than a copy of the live one')
431
+ .option('--replace', 'Replace a workspace of the name with the copy, its data included')
432
+ .option('--plan', 'Show the plan, and change nothing')
433
+ .action(stagingCommand.add);
434
+ staging
435
+ .command('stop')
436
+ .description('Stop a workspace\'s staging, which unprotects it; nothing is deleted (admin)')
437
+ .argument('<url>', 'Repository URL')
438
+ .argument('<live>', 'The workspace whose staging stops')
439
+ .action(stagingCommand.stop);
440
+ staging
441
+ .command('list')
442
+ .description('List a repository\'s stagings, and the workspaces they protect')
443
+ .argument('<url>', 'Repository URL')
444
+ .action(stagingCommand.list);
445
+ // e3-cloud release / rollback / history
446
+ program
447
+ .command('release')
448
+ .description('Release a staging to the workspace it releases to: exactly the package and app versions it runs, the target keeping its edited inputs and migrating its records; the plan is shown first (owner or admin)')
449
+ .argument('<url>', 'Repository URL (e.g., https://server/repos/my-repo)')
450
+ .argument('<from>', 'The workspace released (e.g., staging)')
451
+ .argument('<to>', 'The workspace released to (e.g., production)')
452
+ .option('--plan', 'Show the plan, and change nothing')
453
+ .option('--carry <path...>', 'Carry these inputs, and records new in the release, from the source, by their paths as the plan names them (e.g., inputs/mappings)')
454
+ .option('--remove-apps', 'Remove the target\'s apps the source lacks')
455
+ .action(releaseCommand.release);
456
+ program
457
+ .command('rollback')
458
+ .description('Roll a workspace back to an entry of its history: its package and apps exactly; the plan is shown first (owner or admin)')
459
+ .argument('<url>', 'Repository URL')
460
+ .argument('<workspace>', 'Workspace name')
461
+ .argument('[history-id]', 'The entry, as e3-cloud history prints it (default: the newest that differs from what the workspace runs)')
462
+ .option('--plan', 'Show the plan, and change nothing')
463
+ .action(releaseCommand.rollback);
464
+ program
465
+ .command('history')
466
+ .description('List a workspace\'s history, newest first: each release, rollback, deploy, app deploy, copy, staging added or stopped, and admin override, the package and apps it left, and its id')
467
+ .argument('<url>', 'Repository URL')
468
+ .argument('<workspace>', 'Workspace name')
469
+ .option('--limit <n>', 'How many entries (default 25, at most 100)')
470
+ .action(releaseCommand.history);
471
+ program.parse();
472
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Licensed under BSL 1.1. See LICENSE for details.
4
+ */
5
+ export declare const appCommand: {
6
+ /** e3-cloud app build <source> [-o <file>] */
7
+ build(source: string, options: {
8
+ output?: string;
9
+ }): Promise<void>;
10
+ /** e3-cloud app deploy <repoUrl> <workspace> [bundles...] [--from-source <source...>] [--dry-run] [--for-platform <version>] [--force] */
11
+ deploy(url: string, workspace: string, bundles: string[], options: {
12
+ fromSource?: string[];
13
+ dryRun?: boolean;
14
+ forPlatform?: string;
15
+ force?: boolean;
16
+ }): Promise<void>;
17
+ /** e3-cloud app list <repoUrl> [workspace] */
18
+ list(url: string, workspace: string | undefined): Promise<void>;
19
+ /** e3-cloud app list-all <serverUrl> (admin) */
20
+ listAll(serverUrl: string): Promise<void>;
21
+ /** e3-cloud app versions <repoUrl> <workspace> <app> */
22
+ versions(url: string, workspace: string, name: string): Promise<void>;
23
+ /** e3-cloud app remove <repoUrl> <workspace> <app> */
24
+ remove(url: string, workspace: string, name: string, options?: {
25
+ force?: boolean;
26
+ }): Promise<void>;
27
+ };
28
+ //# sourceMappingURL=app.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/commands/app.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAwHH,eAAO,MAAM,UAAU;IACrB,8CAA8C;kBAC1B,MAAM,WAAW;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAYxE,0IAA0I;gBACxH,MAAM,aAAa,MAAM,WAAW,MAAM,EAAE,WAAW;QAAE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA+D3K,8CAA8C;cAC9B,MAAM,aAAa,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BrE,gDAAgD;uBACvB,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA2B/C,wDAAwD;kBACpC,MAAM,aAAa,MAAM,QAAQ,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB3E,sDAAsD;gBACpC,MAAM,aAAa,MAAM,QAAQ,MAAM,YAAW;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAQ,OAAO,CAAC,IAAI,CAAC;CAe7G,CAAC"}