@atlasauth/cli 0.8.0 → 0.9.0

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 (53) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/args.d.ts +127 -0
  3. package/dist/args.js +56 -1
  4. package/dist/args.js.map +1 -1
  5. package/dist/commands/auth.js +5 -1
  6. package/dist/commands/auth.js.map +1 -1
  7. package/dist/commands/config.d.ts +15 -0
  8. package/dist/commands/config.js +76 -6
  9. package/dist/commands/config.js.map +1 -1
  10. package/dist/commands/csp.d.ts +32 -0
  11. package/dist/commands/csp.js +180 -0
  12. package/dist/commands/csp.js.map +1 -0
  13. package/dist/commands/info.js +1 -1
  14. package/dist/commands/info.js.map +1 -1
  15. package/dist/commands/init.js +26 -2
  16. package/dist/commands/init.js.map +1 -1
  17. package/dist/commands/integrations.d.ts +8 -0
  18. package/dist/commands/integrations.js +112 -0
  19. package/dist/commands/integrations.js.map +1 -0
  20. package/dist/commands/listen.d.ts +17 -0
  21. package/dist/commands/listen.js +223 -0
  22. package/dist/commands/listen.js.map +1 -0
  23. package/dist/commands/move-origin.d.ts +11 -0
  24. package/dist/commands/move-origin.js +95 -0
  25. package/dist/commands/move-origin.js.map +1 -0
  26. package/dist/commands/operator.d.ts +26 -0
  27. package/dist/commands/operator.js +198 -0
  28. package/dist/commands/operator.js.map +1 -0
  29. package/dist/commands/project-commands.d.ts +12 -0
  30. package/dist/commands/project-commands.js +130 -30
  31. package/dist/commands/project-commands.js.map +1 -1
  32. package/dist/commands/referrals.d.ts +4 -4
  33. package/dist/commands/referrals.js +203 -33
  34. package/dist/commands/referrals.js.map +1 -1
  35. package/dist/commands/shared.d.ts +6 -0
  36. package/dist/commands/shared.js +10 -1
  37. package/dist/commands/shared.js.map +1 -1
  38. package/dist/commands/status.d.ts +3 -0
  39. package/dist/commands/status.js +77 -0
  40. package/dist/commands/status.js.map +1 -0
  41. package/dist/commands/webhooks.d.ts +29 -2
  42. package/dist/commands/webhooks.js +257 -24
  43. package/dist/commands/webhooks.js.map +1 -1
  44. package/dist/config.d.ts +14 -0
  45. package/dist/config.js.map +1 -1
  46. package/dist/context.d.ts +5 -0
  47. package/dist/context.js.map +1 -1
  48. package/dist/help.d.ts +1 -1
  49. package/dist/help.js +177 -16
  50. package/dist/help.js.map +1 -1
  51. package/dist/run.js +14 -0
  52. package/dist/run.js.map +1 -1
  53. package/package.json +4 -3
package/dist/help.js CHANGED
@@ -12,21 +12,33 @@ Usage: atlas <command> [subcommand] [arguments] [options]
12
12
 
13
13
  Commands:
14
14
  login Authenticate and store a profile credential
15
+ (--device: operator sign-in in the browser, no key stored)
16
+ token --resource <id> A one-hour token for one instance/app from your operator sign-in
17
+ keys whoami|list|create|rotate|revoke|revoke-leaked
18
+ Scoped secret keys; new secrets go sealed into 0600 files
15
19
  logout Remove a stored profile credential
16
20
  whoami Show the active profile and instance
17
21
  users list|get|create|delete
18
22
  orgs list|get|members
19
23
  api-keys list|create|revoke
20
- webhooks list|create
24
+ webhooks list|create|upsert|update|test|deliveries|redeliver|replay|rotate|reveal
25
+ listen --forward-to <url> Forward live events to your local server, signed (no tunnel)
26
+ move-origin --from --to Move an app to a new domain in one step (--dry-run first)
27
+ csp --framework next|express|nginx
28
+ Print the Content Security Policy sources Atlas needs
29
+ integrations list|get|set|remove|deliveries Identity integrations (chat, docs, consent, referrals, custom)
21
30
  sessions revoke
22
- config export|import Config-as-code: round-trip the instance's config
31
+ config export|import|plan Config-as-code: round-trip the instance's config; plan = drift diff
23
32
  actions list|deploy|test|logs|gallery|show|install|installs|update|publish
24
33
  init Create or complete an app's setup (idempotent); secrets to 0600 files
25
34
  preflight Check an instance's setup; non-zero exit on errors (for CI)
35
+ doctor Integration health: webhooks, logout, referrals, email, consent (exit 1 on a failure)
26
36
  env Print deploy variables: public values + secret file paths
27
37
  client rotate Rotate an OAuth client secret straight into its file
28
38
  referrals connect|backfill|status
29
39
  Connect a referral platform, backfill, check the connection
40
+ status Atlas status, incidents that concern the instance and its
41
+ upstream status pages; non-zero exit on an outage
30
42
  import --from <vendor> <file>
31
43
  Move users from Auth0, Clerk, Supabase, Firebase, Cognito,
32
44
  Auth.js, WorkOS or Better Auth (resumable; --dry-run first)
@@ -53,10 +65,12 @@ Global options:
53
65
 
54
66
  Environment overrides:
55
67
  ATLAS_SECRET_KEY Secret key to use instead of the stored one
56
- ATLAS_API_URL API URL to use instead of the stored one
68
+ ATLAS_API_BASE API URL to use instead of the stored one
69
+ ATLAS_API_URL Same (the older name); ATLAS_API_BASE wins when both are set
57
70
  ATLAS_PLATFORM_KEY Platform key (psk_) for atlas init
58
- REFERALLY_BASE_URL Referalli base URL for atlas referrals connect
59
- REFERALLY_API_KEY Referalli merchant key for atlas referrals connect (never stored)
71
+ REFERALLI_BASE_URL Referalli base URL for atlas referrals connect
72
+ REFERALLI_API_KEY Referalli merchant key for atlas referrals connect (never stored)
73
+ (the old REFERALLY_BASE_URL / REFERALLY_API_KEY still work, with a notice)
60
74
 
61
75
  Secrets: a command that receives a secret writes it to a 0600 file under
62
76
  ~/.config/<product>/ and prints only the path. --print-secret prints it instead.
@@ -104,6 +118,10 @@ Vendors:
104
118
  Supabase client itself stays for your database
105
119
  auth0 @auth0/auth0-react, @auth0/nextjs-auth0 (v3 and v4), @auth0/auth0-spa-js
106
120
  better-auth better-auth (client, server, Next.js handler, cookies)
121
+ openid-client openid-client (Issuer.discover, authorizationUrl, callback, endSessionUrl)
122
+ jose jose used to verify OIDC ID tokens (jwtVerify + createRemoteJWKSet)
123
+ generic-oidc a hand-rolled relying party (discovery, PKCE, code exchange, JWKS) found
124
+ by its code; replaced by oidc.start / oidc.callback / oidc.logoutUrl
107
125
 
108
126
  What it rewrites: imports, providers, hooks, server session helpers, middleware,
109
127
  sign-in/out calls and env var names, onto native Atlas APIs and the drop-in
@@ -181,20 +199,47 @@ agent can search and read the Atlas docs. Servers already in the file are kept.
181
199
 
182
200
  No key is written. To also manage your instance from the agent, add
183
201
  ATLAS_SECRET_KEY to the server's env yourself.`,
202
+ status: `atlas status — is it Atlas, a service you depend on, or you?
203
+
204
+ Usage:
205
+ atlas status [--json]
206
+
207
+ Shows Atlas's components (with their regions), the open Atlas incidents that
208
+ concern this instance (its status subscription's regions, components and
209
+ minimum impact), the subscription itself, and the state of every upstream
210
+ status page the instance declared (POST /v1/instance/status_dependencies).
211
+
212
+ Exit code 1 when Atlas reports a major outage or an open major / critical
213
+ incident concerns the instance, or an enabled upstream status page reports a
214
+ partial or major outage; 0 otherwise.`,
184
215
  referrals: `atlas referrals — referral attribution
185
216
 
186
217
  Usage:
187
- atlas referrals connect --provider referally --program <prg_…> --base-url <url>
188
- [--referally-key-file <path|-> | --referally-key <rk_…>]
218
+ atlas referrals connect --provider referalli --program <prg_…> --base-url <url>
219
+ [--referalli-key-file <path|-> | --referalli-key <rk_…>]
189
220
  [--auto-enroll] [--destination <url>] [--tracking-token <token>] [--enable]
190
221
  [--no-sync] [--allow-mode-mismatch]
222
+ atlas referrals connect --oauth [--preset <id>] [--enable] (default preset: referalli)
191
223
  atlas referrals connect --provider webhook --endpoint <https-url>
192
224
  [--secret-file <path|->] [--program <id>] [--auto-enroll] [--enable]
193
225
  atlas referrals backfill --since <YYYY-MM-DD> [--map <file.csv>]
194
226
  [--metadata-path public_metadata.referral_code] [--wait]
195
227
  atlas referrals status
228
+ atlas referrals conformance [--protocol webhook|connection] [--base-url <url>] [--connection-id <id>] --secret-file <path|->
229
+ [--only <case ids or areas>] [--simulate]
230
+
231
+ connect --provider referalli --oauth is one-click: it prints a Referalli link, you choose the
232
+ organization and program there, and Referalli hands Atlas the connection secret directly (nothing to
233
+ copy). It needs no key, --program or --base-url, and waits until the connection appears. Where the
234
+ deployment does not offer it yet, use a key as below.
196
235
 
197
- connect --provider referally creates the Atlas connection on Referalli with
236
+ conformance runs the referral protocol conformance suite (@atlasauth/referral-conformance) against
237
+ any platform (--protocol webhook: the generic Atlas referral protocol; connection: the Referalli dialect): signed calls with the answers a conforming server must give (401 for a bad signature,
238
+ an empty export for an unknown customer, nulls accepted, …). It defaults to the connected Referalli;
239
+ the secret is read from --secret-file because Atlas never shows it. --simulate also sends Atlas's own
240
+ simulated sign-up. It exits 1 on any failed case.
241
+
242
+ connect --provider referalli creates the Atlas connection on Referalli with
198
243
  your merchant key (bring your own key: used for this one call, never stored or
199
244
  printed), saves the connection id and secret on the instance, and runs a ping.
200
245
  It requires v2 signatures on the connection from the start and registers a
@@ -202,9 +247,10 @@ Referalli webhook that sends referral changes (voided, approved, reassigned…)
202
247
  back to Atlas; --no-sync skips the webhook. A test key (rk_test_) belongs with a
203
248
  development instance and a live key with production: a mismatch is refused
204
249
  unless --allow-mode-mismatch. --auto-enroll and --destination are passed to
205
- Referalli. --enable turns referrals on when the ping passes. Prefer --referally-key-file (or
206
- REFERALLY_API_KEY) to --referally-key: a key on the command line can end up in
207
- your shell history.
250
+ Referalli. --enable turns referrals on when the ping passes. Prefer --referalli-key-file (or
251
+ REFERALLI_API_KEY) to --referalli-key: a key on the command line can end up in
252
+ your shell history. The old names (--provider referally, --referally-key-file,
253
+ --referally-key, REFERALLY_*) still work and print a notice.
208
254
 
209
255
  connect --provider webhook points the instance at a platform that speaks the
210
256
  Atlas referral protocol. Without --secret-file, a signing secret is generated
@@ -223,7 +269,34 @@ Usage: atlas login [--profile <name>] [--url <api-url>] [--secret-key <sk_...>]
223
269
 
224
270
  Prompts for an API URL and a secret key, validates the key with one Backend
225
271
  call, then stores it (0600) under the profile. --url / --secret-key skip the
226
- prompts for non-interactive setup.`,
272
+ prompts for non-interactive setup.
273
+
274
+ Operator sign-in (no key on disk):
275
+ atlas login --device [--resource <ins_…|app_…>] [--scope "<scopes>"]
276
+ Opens Atlas's sign-in (passkey, multi-factor) with a device code. Only
277
+ short-lived tokens are stored: the operator token, and with --resource a
278
+ one-hour token bound to that instance or app (scope "read" by default).
279
+ Creating apps or instances and minting keys need a multi-factor sign-in
280
+ within the last 5 minutes.`,
281
+ token: `atlas token — a one-hour token bound to one instance or app
282
+
283
+ Usage: atlas token --resource <ins_…|app_…|acct_…> [--scope "<scopes>"] [--json]
284
+
285
+ Swaps your operator sign-in (atlas login --device) for an Atlas token (RFC 8693
286
+ token exchange). "read" = every read scope.`,
287
+ keys: `atlas keys — the instance's secret keys
288
+
289
+ Usage:
290
+ atlas keys whoami What the current key is and can do
291
+ atlas keys list Every credential on the instance
292
+ atlas keys create --scopes "<scopes>" [--name n] [--owner o] [--expires-at <ISO>] [--allowed-ips <cidr,…>] [--out <file>]
293
+ atlas keys rotate <id> [--overlap <seconds>] [--out <file>]
294
+ atlas keys revoke <id>
295
+ atlas keys revoke-leaked [<secret>] Revoke a leaked Atlas credential (no login needed)
296
+
297
+ New secrets come back sealed to a key pair made on this machine and are
298
+ written to a 0600 file (default .atlas/secret-key-<id>.env); --print-secret
299
+ prints them instead.`,
227
300
  logout: `atlas logout — remove a stored profile credential
228
301
 
229
302
  Usage: atlas logout [--profile <name>]`,
@@ -255,8 +328,76 @@ Usage:
255
328
  Usage:
256
329
  atlas webhooks list [--json]
257
330
  atlas webhooks create --url <https-url> [--events a,b] [--product <name>] [--print-secret] [--json]
331
+ atlas webhooks upsert --url <https-url> [--events a,b] one endpoint per URL; idempotent
332
+ atlas webhooks update <id> [--url <u>] [--events a,b] [--active | --inactive]
333
+ atlas webhooks test <id> [--timeout 10s] [--no-wait] [--json]
334
+ atlas webhooks deliveries <id> [--status failed] [--event-type user.created]
335
+ [--since <iso|2h|7d>] [--until <iso>] [--limit <n>] [--starting-after <id>] [--json]
336
+ atlas webhooks redeliver <id> --delivery <delivery-id>
337
+ atlas webhooks redeliver <id> --since <iso|2h|7d> [--until <iso>] [--status failed]
338
+ atlas webhooks replay <id> [--since failing_since] re-send what a disabled endpoint missed
339
+ atlas webhooks rotate <id> [--now | --overlap <seconds>]
340
+ atlas webhooks reveal <id>
341
+
342
+ create, upsert, rotate and reveal write the signing secret to a 0600 file and
343
+ print only its path (--print-secret prints it instead; --force replaces a file).
344
+ test sends a signed webhook.test event and waits for your endpoint's answer;
345
+ the exit code is 1 when it did not answer 2xx. rotate --overlap keeps the old
346
+ secret signing alongside the new one for that many seconds.`,
347
+ listen: `atlas listen — forward live events to your local server
348
+
349
+ Usage:
350
+ atlas listen --forward-to <url> [--events user.*,session.created] [--count <n>] [--timeout <dur>] [--json]
351
+ atlas listen --no-forward [--events ...] only print events
352
+
353
+ Opens a signed event stream from your instance and POSTs each event to
354
+ --forward-to with the same atlas-id, atlas-timestamp and atlas-signature headers a
355
+ real delivery carries, then prints the status your server returned. No tunnel
356
+ and no second endpoint. The signing secret belongs to this session only and is
357
+ written to a 0600 file (webhook-listen.env): point your verifier at it. --events
358
+ takes names or patterns (user.*, *.created). The session lasts up to an hour;
359
+ Ctrl-C stops it. --count n exits after n events (exit 1 if any forward failed).`,
360
+ 'move-origin': `atlas move-origin — move an app to a new domain
361
+
362
+ Usage: atlas move-origin --from <origin> --to <origin> [--dry-run] [--yes] [--json]
363
+
364
+ Rewrites every field that points at the old origin: allowed origins, branding
365
+ links, OAuth client redirect and logout URIs, webhook URLs, the redirect-URL
366
+ allowlist and your Sign in with Atlas apps. Shows the before and after of every
367
+ field first and asks before writing (--yes skips the question). After a real
368
+ move it sends a signed test delivery to each webhook endpoint that moved.
369
+ --dry-run prints the diff and writes nothing; running it twice changes nothing.`,
370
+ csp: `atlas csp — the Content Security Policy sources Atlas needs
371
+
372
+ Usage: atlas csp [--framework next|express|nginx] [--shape redirect|panel|button]
373
+ [--instance <id> | --product <name> [--instance-env <env>]] [--origin <url>]
374
+ [--manifest <url|file>]... [--no-atlas] [--json]
375
+
376
+ Reads your instance's embed manifest (including a custom Frontend API host) and
377
+ prints the script-src, connect-src, img-src and frame-src sources for your
378
+ setup, as a next.config.ts headers() block, a helmet() config or an nginx
379
+ add_header line. Read-only. --shape redirect (hosted sign-in) needs none.
380
+ With --origin, warns when that origin is not one of the instance's allowed origins.
381
+
382
+ Any provider that publishes the open embed-manifest format ({surfaces:{name:{csp:{directive:[sources]}}}},
383
+ usually at /.well-known/atlas-embed.json) can be merged in with --manifest <url|file>
384
+ (repeatable): a consent platform, chat widget, captcha or analytics vendor. --no-atlas
385
+ skips the Atlas instance and uses only the manifests you list.`,
386
+ integrations: `atlas integrations — identity integrations (presets and custom)
258
387
 
259
- create writes the signing secret to a 0600 file and prints only its path.`,
388
+ Usage:
389
+ atlas integrations list [--json]
390
+ atlas integrations get <id>
391
+ atlas integrations set <id> --audience <aud> [--name <n>] [--events-url <url|none>]
392
+ [--backchannel-logout-url <url|none>] [--oauth-client-id <client_id|none>]
393
+ [--disable] [--dry-run] [--json]
394
+ atlas integrations remove <id> [--json]
395
+ atlas integrations deliveries <id> [--trace <id>] [--json]
396
+
397
+ <id> is a preset (chatly, forumulate, cookiemunch, referalli) or your own id.
398
+ --oauth-client-id names the first-party OAuth client the service signs users in
399
+ with: while no --backchannel-logout-url is set, its backchannel_logout_uri is the
400
+ integration's back-channel receiver.`,
260
401
  init: `atlas init — create or complete an app's setup, idempotently
261
402
 
262
403
  Usage:
@@ -266,13 +407,16 @@ Usage:
266
407
  [--email managed|development|none] [--email-from <address>]
267
408
  [--email-provider resend|brevo --email-key-file <path|->]
268
409
  [--client-redirect <url>]... [--webhook-url <url>]
410
+ [--backchannel <url>]
269
411
  [--yes] [--force] [--rotate-secret] [--json]
270
412
 
271
413
  Needs a platform key (ATLAS_PLATFORM_KEY, or a psk_ profile from atlas login).
272
414
  Finds the app by name and environment, or creates it, then sets strategies, the
273
415
  email sender, the custom domain (auth.<domain> unless --auth-host; prints the
274
416
  CNAME), a first-party OAuth client and a webhook. Re-running only fills what is
275
- missing.
417
+ missing. --backchannel <url> sets the client's back-channel logout URI (your
418
+ route that ends the app session when Atlas ends one; @atlasauth/backend has
419
+ ready-made handlers).
276
420
 
277
421
  Email always goes through YOUR provider account (Atlas lends none):
278
422
  managed Atlas sets your domain up on your Resend or Brevo account and
@@ -293,14 +437,26 @@ Usage: atlas preflight [--instance <id> | --product <name> [--instance-env <env>
293
437
 
294
438
  Prints every finding (severity, code, message, fix). Exits 1 when there is an
295
439
  error, or with --fail-on warning also on a warning.`,
440
+ doctor: `atlas doctor — integration health (a CI / deploy gate)
441
+
442
+ Usage: atlas doctor [--instance <id> | --product <name> [--instance-env <env>]]
443
+ [--only <source,...>] [--no-probe] [--json]
444
+
445
+ Prints every check: setup findings, webhook receivers (with the failing hop:
446
+ dns, tls, http, challenge or auth), back-channel logout, the referral
447
+ platform, email, the consent manager and SDK versions. Exits 1 when a check
448
+ fails. --no-probe uses recorded deliveries only (no live calls).`,
296
449
  env: `atlas env — print deploy variables without secrets
297
450
 
298
- Usage: atlas env --product <name> [--instance-env <env>] [--format dotenv|coolify|vercel] [--json]
451
+ Usage: atlas env [--product <name> [--instance-env <env>]] [--format dotenv|coolify|vercel|k8s] [--json]
299
452
 
300
453
  Public values (publishable key, Frontend API, issuer, discovery and JWKS URLs,
301
454
  OAuth client id) are printed as-is. Secrets are printed as references to their
302
455
  0600 files: *_FILE=<path> (dotenv), KEY=@<path> (coolify), or a vercel env add
303
- command that pipes the value from the file (vercel).`,
456
+ command that pipes the value from the file (vercel). k8s prints a ConfigMap plus
457
+ kubectl create secret commands that read each file. Without --product it reads
458
+ the public values from the instance your key belongs to (no secret references).
459
+ Both ATLAS_API_BASE and ATLAS_API_URL are printed.`,
304
460
  client: `atlas client — OAuth clients
305
461
 
306
462
  Usage: atlas client rotate <client-id> [--now | --overlap <seconds>]
@@ -319,6 +475,7 @@ Usage:
319
475
  Usage:
320
476
  atlas config export [--dir <path>] [--format json|yaml]
321
477
  atlas config import [--dir <path>] [--format json|yaml] [--dry-run] [--prune]
478
+ atlas config plan [--dir <path>] [--format json|yaml] [--prune] [--exit-code] [--json]
322
479
 
323
480
  export Read the instance's current config (instance/auth config, OAuth clients
324
481
  and providers, SSO connections, resource servers, JWT templates, roles,
@@ -333,6 +490,10 @@ import Diff the directory against live config and apply creates/updates
333
490
  --dir config directory (default: ./atlas-config)
334
491
  --format json (default) or yaml
335
492
 
493
+ plan A Terraform-style, read-only diff of the directory against the live
494
+ instance: field-by-field before -> after for updates. --exit-code exits 2
495
+ when there is drift (for CI); --json for tooling.
496
+
336
497
  Secrets never live on disk. Inject a credential at import with a \${ENV_VAR}
337
498
  placeholder in a file (e.g. a provider "client_secret": "\${GOOGLE_SECRET}").`,
338
499
  actions: `atlas actions — manage Actions (tenant code run in the auth pipeline)
package/dist/help.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"help.js","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEU,QAAA,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wDAuDgC,CAAC;AAEzD,oDAAoD;AACvC,QAAA,YAAY,GAA2B;IAClD,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8CAqDmC;IAC5C,IAAI,EAAE;;;;;;;;;;gEAUwD;IAC9D,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2EAmCiE;IACzE,GAAG,EAAE;;;;;;;;;;;;;;;+CAewC;IAC7C,SAAS,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yEAmC4D;IAEvE,KAAK,EAAE;;;;;;mCAM0B;IAEjC,MAAM,EAAE;;uCAE6B;IAErC,MAAM,EAAE;;gDAEsC;IAE9C,KAAK,EAAE;;;;;;wCAM+B;IAEtC,IAAI,EAAE;;;;;uCAK+B;IAErC,UAAU,EAAE;;;;;;8CAMgC;IAE5C,QAAQ,EAAE;;;;;;0EAM8D;IAExE,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;yEA4BiE;IAEvE,SAAS,EAAE;;;;;;oDAMuC;IAElD,GAAG,EAAE;;;;;;;qDAO8C;IAEnD,MAAM,EAAE;;;;;;;;wDAQ8C;IAEtD,QAAQ,EAAE;;;8CAGkC;IAE5C,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;8EAoBoE;IAC5E,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;qEA0B0D;CACpE,CAAC"}
1
+ {"version":3,"file":"help.js","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEU,QAAA,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wDAqEgC,CAAC;AAEzD,oDAAoD;AACvC,QAAA,YAAY,GAA2B;IAClD,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8CAyDmC;IAC5C,IAAI,EAAE;;;;;;;;;;gEAUwD;IAC9D,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2EAmCiE;IACzE,GAAG,EAAE;;;;;;;;;;;;;;;+CAewC;IAC7C,MAAM,EAAE;;;;;;;;;;;;sCAY4B;IACpC,SAAS,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yEAkD4D;IAEvE,KAAK,EAAE;;;;;;;;;;;;;;2BAckB;IAEzB,KAAK,EAAE;;;;;4CAKmC;IAE1C,IAAI,EAAE;;;;;;;;;;;;qBAYa;IAEnB,MAAM,EAAE;;uCAE6B;IAErC,MAAM,EAAE;;gDAEsC;IAE9C,KAAK,EAAE;;;;;;wCAM+B;IAEtC,IAAI,EAAE;;;;;uCAK+B;IAErC,UAAU,EAAE;;;;;;8CAMgC;IAE5C,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;4DAoBgD;IAC1D,MAAM,EAAE;;;;;;;;;;;;gFAYsE;IAC9E,aAAa,EAAE;;;;;;;;;gFAS+D;IAC9E,GAAG,EAAE;;;;;;;;;;;;;;;+DAewD;IAE7D,YAAY,EAAE;;;;;;;;;;;;;;qCAcqB;IAEnC,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yEA+BiE;IAEvE,SAAS,EAAE;;;;;;oDAMuC;IAElD,MAAM,EAAE;;;;;;;;iEAQuD;IAE/D,GAAG,EAAE;;;;;;;;;;mDAU4C;IAEjD,MAAM,EAAE;;;;;;;;wDAQ8C;IAEtD,QAAQ,EAAE;;;8CAGkC;IAE5C,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;8EAyBoE;IAC5E,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;qEA0B0D;CACpE,CAAC"}
package/dist/run.js CHANGED
@@ -6,18 +6,24 @@ const args_1 = require("./args");
6
6
  const actions_1 = require("./commands/actions");
7
7
  const api_keys_1 = require("./commands/api-keys");
8
8
  const auth_1 = require("./commands/auth");
9
+ const operator_1 = require("./commands/operator");
9
10
  const config_1 = require("./commands/config");
10
11
  const init_1 = require("./commands/init");
11
12
  const import_1 = require("./commands/import");
12
13
  const info_1 = require("./commands/info");
14
+ const csp_1 = require("./commands/csp");
15
+ const listen_1 = require("./commands/listen");
13
16
  const migrate_1 = require("./commands/migrate");
17
+ const move_origin_1 = require("./commands/move-origin");
14
18
  const mcp_1 = require("./commands/mcp");
15
19
  const project_commands_1 = require("./commands/project-commands");
16
20
  const orgs_1 = require("./commands/orgs");
17
21
  const referrals_1 = require("./commands/referrals");
18
22
  const sessions_1 = require("./commands/sessions");
23
+ const status_1 = require("./commands/status");
19
24
  const users_1 = require("./commands/users");
20
25
  const webhooks_1 = require("./commands/webhooks");
26
+ const integrations_1 = require("./commands/integrations");
21
27
  const errors_1 = require("./errors");
22
28
  const help_1 = require("./help");
23
29
  const version_1 = require("./version");
@@ -26,22 +32,30 @@ const COMMANDS = {
26
32
  login: auth_1.login,
27
33
  logout: auth_1.logout,
28
34
  whoami: auth_1.whoami,
35
+ token: operator_1.token,
36
+ keys: operator_1.keys,
29
37
  users: users_1.users,
30
38
  orgs: orgs_1.orgs,
31
39
  'api-keys': api_keys_1.apiKeys,
32
40
  webhooks: webhooks_1.webhooks,
41
+ integrations: integrations_1.integrations,
33
42
  sessions: sessions_1.sessions,
34
43
  config: config_1.config,
35
44
  actions: actions_1.actions,
36
45
  init: init_1.init,
37
46
  preflight: project_commands_1.preflight,
47
+ doctor: project_commands_1.doctor,
38
48
  env: project_commands_1.envCommand,
39
49
  client: project_commands_1.client,
40
50
  referrals: referrals_1.referrals,
51
+ status: status_1.status,
41
52
  import: import_1.importUsers,
42
53
  migrate: migrate_1.migrate,
43
54
  info: info_1.info,
44
55
  mcp: mcp_1.mcp,
56
+ listen: listen_1.listen,
57
+ 'move-origin': move_origin_1.moveOrigin,
58
+ csp: csp_1.csp,
45
59
  };
46
60
  /**
47
61
  * The CLI's whole control flow, as a pure function of (argv, context) → exit
package/dist/run.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlasauth/cli",
3
- "version": "0.8.0",
3
+ "version": "0.9.0",
4
4
  "description": "atlas — manage an Atlas instance from the terminal via the Backend API.",
5
5
  "bin": {
6
6
  "atlas": "dist/cli.js"
@@ -16,8 +16,9 @@
16
16
  },
17
17
  "dependencies": {
18
18
  "@atlasauth/actions": "0.3.0",
19
- "@atlasauth/backend": "0.17.0",
20
- "@atlasauth/upgrade": "0.3.0"
19
+ "@atlasauth/backend": "0.19.0",
20
+ "@atlasauth/upgrade": "0.4.0",
21
+ "@atlasauth/referral-conformance": "0.1.0"
21
22
  },
22
23
  "devDependencies": {
23
24
  "@types/node": "^22.9.0",