@atlasauth/cli 0.8.0 → 0.10.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 (56) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/args.d.ts +146 -0
  3. package/dist/args.js +63 -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 +210 -0
  28. package/dist/commands/operator.js.map +1 -0
  29. package/dist/commands/partner-platforms.d.ts +10 -0
  30. package/dist/commands/partner-platforms.js +157 -0
  31. package/dist/commands/partner-platforms.js.map +1 -0
  32. package/dist/commands/project-commands.d.ts +12 -0
  33. package/dist/commands/project-commands.js +130 -30
  34. package/dist/commands/project-commands.js.map +1 -1
  35. package/dist/commands/referrals.d.ts +4 -4
  36. package/dist/commands/referrals.js +203 -33
  37. package/dist/commands/referrals.js.map +1 -1
  38. package/dist/commands/shared.d.ts +6 -0
  39. package/dist/commands/shared.js +10 -1
  40. package/dist/commands/shared.js.map +1 -1
  41. package/dist/commands/status.d.ts +3 -0
  42. package/dist/commands/status.js +77 -0
  43. package/dist/commands/status.js.map +1 -0
  44. package/dist/commands/webhooks.d.ts +29 -2
  45. package/dist/commands/webhooks.js +257 -24
  46. package/dist/commands/webhooks.js.map +1 -1
  47. package/dist/config.d.ts +14 -0
  48. package/dist/config.js.map +1 -1
  49. package/dist/context.d.ts +5 -0
  50. package/dist/context.js.map +1 -1
  51. package/dist/help.d.ts +1 -1
  52. package/dist/help.js +202 -16
  53. package/dist/help.js.map +1 -1
  54. package/dist/run.js +16 -0
  55. package/dist/run.js.map +1 -1
  56. package/package.json +5 -3
package/dist/help.js CHANGED
@@ -12,21 +12,35 @@ 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)
30
+ partner-platforms list|get|set|registration|token|deliveries|remove
31
+ This instance as a partner platform (signed consent deliveries in)
21
32
  sessions revoke
22
- config export|import Config-as-code: round-trip the instance's config
33
+ config export|import|plan Config-as-code: round-trip the instance's config; plan = drift diff
23
34
  actions list|deploy|test|logs|gallery|show|install|installs|update|publish
24
35
  init Create or complete an app's setup (idempotent); secrets to 0600 files
25
36
  preflight Check an instance's setup; non-zero exit on errors (for CI)
37
+ doctor Integration health: webhooks, logout, referrals, email, consent (exit 1 on a failure)
26
38
  env Print deploy variables: public values + secret file paths
27
39
  client rotate Rotate an OAuth client secret straight into its file
28
40
  referrals connect|backfill|status
29
41
  Connect a referral platform, backfill, check the connection
42
+ status Atlas status, incidents that concern the instance and its
43
+ upstream status pages; non-zero exit on an outage
30
44
  import --from <vendor> <file>
31
45
  Move users from Auth0, Clerk, Supabase, Firebase, Cognito,
32
46
  Auth.js, WorkOS or Better Auth (resumable; --dry-run first)
@@ -53,10 +67,12 @@ Global options:
53
67
 
54
68
  Environment overrides:
55
69
  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
70
+ ATLAS_API_BASE API URL to use instead of the stored one
71
+ ATLAS_API_URL Same (the older name); ATLAS_API_BASE wins when both are set
57
72
  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)
73
+ REFERALLI_BASE_URL Referalli base URL for atlas referrals connect
74
+ REFERALLI_API_KEY Referalli merchant key for atlas referrals connect (never stored)
75
+ (the old REFERALLY_BASE_URL / REFERALLY_API_KEY still work, with a notice)
60
76
 
61
77
  Secrets: a command that receives a secret writes it to a 0600 file under
62
78
  ~/.config/<product>/ and prints only the path. --print-secret prints it instead.
@@ -104,6 +120,10 @@ Vendors:
104
120
  Supabase client itself stays for your database
105
121
  auth0 @auth0/auth0-react, @auth0/nextjs-auth0 (v3 and v4), @auth0/auth0-spa-js
106
122
  better-auth better-auth (client, server, Next.js handler, cookies)
123
+ openid-client openid-client (Issuer.discover, authorizationUrl, callback, endSessionUrl)
124
+ jose jose used to verify OIDC ID tokens (jwtVerify + createRemoteJWKSet)
125
+ generic-oidc a hand-rolled relying party (discovery, PKCE, code exchange, JWKS) found
126
+ by its code; replaced by oidc.start / oidc.callback / oidc.logoutUrl
107
127
 
108
128
  What it rewrites: imports, providers, hooks, server session helpers, middleware,
109
129
  sign-in/out calls and env var names, onto native Atlas APIs and the drop-in
@@ -181,20 +201,47 @@ agent can search and read the Atlas docs. Servers already in the file are kept.
181
201
 
182
202
  No key is written. To also manage your instance from the agent, add
183
203
  ATLAS_SECRET_KEY to the server's env yourself.`,
204
+ status: `atlas status — is it Atlas, a service you depend on, or you?
205
+
206
+ Usage:
207
+ atlas status [--json]
208
+
209
+ Shows Atlas's components (with their regions), the open Atlas incidents that
210
+ concern this instance (its status subscription's regions, components and
211
+ minimum impact), the subscription itself, and the state of every upstream
212
+ status page the instance declared (POST /v1/instance/status_dependencies).
213
+
214
+ Exit code 1 when Atlas reports a major outage or an open major / critical
215
+ incident concerns the instance, or an enabled upstream status page reports a
216
+ partial or major outage; 0 otherwise.`,
184
217
  referrals: `atlas referrals — referral attribution
185
218
 
186
219
  Usage:
187
- atlas referrals connect --provider referally --program <prg_…> --base-url <url>
188
- [--referally-key-file <path|-> | --referally-key <rk_…>]
220
+ atlas referrals connect --provider referalli --program <prg_…> --base-url <url>
221
+ [--referalli-key-file <path|-> | --referalli-key <rk_…>]
189
222
  [--auto-enroll] [--destination <url>] [--tracking-token <token>] [--enable]
190
223
  [--no-sync] [--allow-mode-mismatch]
224
+ atlas referrals connect --oauth [--preset <id>] [--enable] (default preset: referalli)
191
225
  atlas referrals connect --provider webhook --endpoint <https-url>
192
226
  [--secret-file <path|->] [--program <id>] [--auto-enroll] [--enable]
193
227
  atlas referrals backfill --since <YYYY-MM-DD> [--map <file.csv>]
194
228
  [--metadata-path public_metadata.referral_code] [--wait]
195
229
  atlas referrals status
230
+ atlas referrals conformance [--protocol webhook|connection] [--base-url <url>] [--connection-id <id>] --secret-file <path|->
231
+ [--only <case ids or areas>] [--simulate]
232
+
233
+ connect --provider referalli --oauth is one-click: it prints a Referalli link, you choose the
234
+ organization and program there, and Referalli hands Atlas the connection secret directly (nothing to
235
+ copy). It needs no key, --program or --base-url, and waits until the connection appears. Where the
236
+ deployment does not offer it yet, use a key as below.
196
237
 
197
- connect --provider referally creates the Atlas connection on Referalli with
238
+ conformance runs the referral protocol conformance suite (@atlasauth/referral-conformance) against
239
+ 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,
240
+ an empty export for an unknown customer, nulls accepted, …). It defaults to the connected Referalli;
241
+ the secret is read from --secret-file because Atlas never shows it. --simulate also sends Atlas's own
242
+ simulated sign-up. It exits 1 on any failed case.
243
+
244
+ connect --provider referalli creates the Atlas connection on Referalli with
198
245
  your merchant key (bring your own key: used for this one call, never stored or
199
246
  printed), saves the connection id and secret on the instance, and runs a ping.
200
247
  It requires v2 signatures on the connection from the start and registers a
@@ -202,9 +249,10 @@ Referalli webhook that sends referral changes (voided, approved, reassigned…)
202
249
  back to Atlas; --no-sync skips the webhook. A test key (rk_test_) belongs with a
203
250
  development instance and a live key with production: a mismatch is refused
204
251
  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.
252
+ Referalli. --enable turns referrals on when the ping passes. Prefer --referalli-key-file (or
253
+ REFERALLI_API_KEY) to --referalli-key: a key on the command line can end up in
254
+ your shell history. The old names (--provider referally, --referally-key-file,
255
+ --referally-key, REFERALLY_*) still work and print a notice.
208
256
 
209
257
  connect --provider webhook points the instance at a platform that speaks the
210
258
  Atlas referral protocol. Without --secret-file, a signing secret is generated
@@ -223,7 +271,40 @@ Usage: atlas login [--profile <name>] [--url <api-url>] [--secret-key <sk_...>]
223
271
 
224
272
  Prompts for an API URL and a secret key, validates the key with one Backend
225
273
  call, then stores it (0600) under the profile. --url / --secret-key skip the
226
- prompts for non-interactive setup.`,
274
+ prompts for non-interactive setup.
275
+
276
+ Operator sign-in (no key on disk):
277
+ atlas login --device [--resource <ins_…|app_…>] [--scope "<scopes>"]
278
+ Opens Atlas's sign-in (passkey, multi-factor) with a device code. Only
279
+ short-lived tokens are stored: the operator token, and with --resource a
280
+ one-hour token bound to that instance or app (scope "read" by default).
281
+ Creating apps or instances and minting keys need a multi-factor sign-in
282
+ within the last 5 minutes.
283
+
284
+ An operator token for another product that trusts Atlas operators:
285
+ atlas login --device --audience <id> [--json]
286
+ <id> is one of the audiences GET /v1/operator lists. The token carries
287
+ aud=<id>, auth_time, amr/acr and your verified email; it is printed (for
288
+ that product's own token exchange), never stored, and Atlas refuses it.`,
289
+ token: `atlas token — a one-hour token bound to one instance or app
290
+
291
+ Usage: atlas token --resource <ins_…|app_…|acct_…> [--scope "<scopes>"] [--json]
292
+
293
+ Swaps your operator sign-in (atlas login --device) for an Atlas token (RFC 8693
294
+ token exchange). "read" = every read scope.`,
295
+ keys: `atlas keys — the instance's secret keys
296
+
297
+ Usage:
298
+ atlas keys whoami What the current key is and can do
299
+ atlas keys list Every credential on the instance
300
+ atlas keys create --scopes "<scopes>" [--name n] [--owner o] [--expires-at <ISO>] [--allowed-ips <cidr,…>] [--out <file>]
301
+ atlas keys rotate <id> [--overlap <seconds>] [--out <file>]
302
+ atlas keys revoke <id>
303
+ atlas keys revoke-leaked [<secret>] Revoke a leaked Atlas credential (no login needed)
304
+
305
+ New secrets come back sealed to a key pair made on this machine and are
306
+ written to a 0600 file (default .atlas/secret-key-<id>.env); --print-secret
307
+ prints them instead.`,
227
308
  logout: `atlas logout — remove a stored profile credential
228
309
 
229
310
  Usage: atlas logout [--profile <name>]`,
@@ -255,8 +336,93 @@ Usage:
255
336
  Usage:
256
337
  atlas webhooks list [--json]
257
338
  atlas webhooks create --url <https-url> [--events a,b] [--product <name>] [--print-secret] [--json]
339
+ atlas webhooks upsert --url <https-url> [--events a,b] one endpoint per URL; idempotent
340
+ atlas webhooks update <id> [--url <u>] [--events a,b] [--active | --inactive]
341
+ atlas webhooks test <id> [--timeout 10s] [--no-wait] [--json]
342
+ atlas webhooks deliveries <id> [--status failed] [--event-type user.created]
343
+ [--since <iso|2h|7d>] [--until <iso>] [--limit <n>] [--starting-after <id>] [--json]
344
+ atlas webhooks redeliver <id> --delivery <delivery-id>
345
+ atlas webhooks redeliver <id> --since <iso|2h|7d> [--until <iso>] [--status failed]
346
+ atlas webhooks replay <id> [--since failing_since] re-send what a disabled endpoint missed
347
+ atlas webhooks rotate <id> [--now | --overlap <seconds>]
348
+ atlas webhooks reveal <id>
349
+
350
+ create, upsert, rotate and reveal write the signing secret to a 0600 file and
351
+ print only its path (--print-secret prints it instead; --force replaces a file).
352
+ test sends a signed webhook.test event and waits for your endpoint's answer;
353
+ the exit code is 1 when it did not answer 2xx. rotate --overlap keeps the old
354
+ secret signing alongside the new one for that many seconds.`,
355
+ listen: `atlas listen — forward live events to your local server
356
+
357
+ Usage:
358
+ atlas listen --forward-to <url> [--events user.*,session.created] [--count <n>] [--timeout <dur>] [--json]
359
+ atlas listen --no-forward [--events ...] only print events
360
+
361
+ Opens a signed event stream from your instance and POSTs each event to
362
+ --forward-to with the same atlas-id, atlas-timestamp and atlas-signature headers a
363
+ real delivery carries, then prints the status your server returned. No tunnel
364
+ and no second endpoint. The signing secret belongs to this session only and is
365
+ written to a 0600 file (webhook-listen.env): point your verifier at it. --events
366
+ takes names or patterns (user.*, *.created). The session lasts up to an hour;
367
+ Ctrl-C stops it. --count n exits after n events (exit 1 if any forward failed).`,
368
+ 'move-origin': `atlas move-origin — move an app to a new domain
369
+
370
+ Usage: atlas move-origin --from <origin> --to <origin> [--dry-run] [--yes] [--json]
371
+
372
+ Rewrites every field that points at the old origin: allowed origins, branding
373
+ links, OAuth client redirect and logout URIs, webhook URLs, the redirect-URL
374
+ allowlist and your Sign in with Atlas apps. Shows the before and after of every
375
+ field first and asks before writing (--yes skips the question). After a real
376
+ move it sends a signed test delivery to each webhook endpoint that moved.
377
+ --dry-run prints the diff and writes nothing; running it twice changes nothing.`,
378
+ csp: `atlas csp — the Content Security Policy sources Atlas needs
379
+
380
+ Usage: atlas csp [--framework next|express|nginx] [--shape redirect|panel|button]
381
+ [--instance <id> | --product <name> [--instance-env <env>]] [--origin <url>]
382
+ [--manifest <url|file>]... [--no-atlas] [--json]
383
+
384
+ Reads your instance's embed manifest (including a custom Frontend API host) and
385
+ prints the script-src, connect-src, img-src and frame-src sources for your
386
+ setup, as a next.config.ts headers() block, a helmet() config or an nginx
387
+ add_header line. Read-only. --shape redirect (hosted sign-in) needs none.
388
+ With --origin, warns when that origin is not one of the instance's allowed origins.
389
+
390
+ Any provider that publishes the open embed-manifest format ({surfaces:{name:{csp:{directive:[sources]}}}},
391
+ usually at /.well-known/atlas-embed.json) can be merged in with --manifest <url|file>
392
+ (repeatable): a consent platform, chat widget, captcha or analytics vendor. --no-atlas
393
+ skips the Atlas instance and uses only the manifests you list.`,
394
+ 'partner-platforms': `atlas partner-platforms — this instance as a partner platform of another product
395
+
396
+ Usage:
397
+ atlas partner-platforms list [--json]
398
+ atlas partner-platforms get <partner>
399
+ atlas partner-platforms set <partner> [--platform-id <id>] [--jwks-url <url>] [--signature-header <name>]
400
+ [--allowed-source <site id>]... [--disable] [--json]
401
+ atlas partner-platforms registration <partner> [--json]
402
+ atlas partner-platforms token <partner> --token-file <path|-> [--rotate] [--base-url <partner api>]
403
+ atlas partner-platforms deliveries <partner> [--limit <n>] [--json]
404
+ atlas partner-platforms remove <partner> [--json]
405
+
406
+ <partner> is a preset (cookiemunch) or your own id (then --platform-id, --jwks-url
407
+ and --signature-header are required). "registration" prints what to send the
408
+ partner; the partner registers the receiver and hands back a partner token once.
409
+ "token" stores it encrypted (from a file, stdin with -, or ATLAS_PARTNER_TOKEN);
410
+ it is never printed or shown again.`,
411
+ integrations: `atlas integrations — identity integrations (presets and custom)
258
412
 
259
- create writes the signing secret to a 0600 file and prints only its path.`,
413
+ Usage:
414
+ atlas integrations list [--json]
415
+ atlas integrations get <id>
416
+ atlas integrations set <id> --audience <aud> [--name <n>] [--events-url <url|none>]
417
+ [--backchannel-logout-url <url|none>] [--oauth-client-id <client_id|none>]
418
+ [--disable] [--dry-run] [--json]
419
+ atlas integrations remove <id> [--json]
420
+ atlas integrations deliveries <id> [--trace <id>] [--json]
421
+
422
+ <id> is a preset (chatly, forumulate, cookiemunch, referalli) or your own id.
423
+ --oauth-client-id names the first-party OAuth client the service signs users in
424
+ with: while no --backchannel-logout-url is set, its backchannel_logout_uri is the
425
+ integration's back-channel receiver.`,
260
426
  init: `atlas init — create or complete an app's setup, idempotently
261
427
 
262
428
  Usage:
@@ -266,13 +432,16 @@ Usage:
266
432
  [--email managed|development|none] [--email-from <address>]
267
433
  [--email-provider resend|brevo --email-key-file <path|->]
268
434
  [--client-redirect <url>]... [--webhook-url <url>]
435
+ [--backchannel <url>]
269
436
  [--yes] [--force] [--rotate-secret] [--json]
270
437
 
271
438
  Needs a platform key (ATLAS_PLATFORM_KEY, or a psk_ profile from atlas login).
272
439
  Finds the app by name and environment, or creates it, then sets strategies, the
273
440
  email sender, the custom domain (auth.<domain> unless --auth-host; prints the
274
441
  CNAME), a first-party OAuth client and a webhook. Re-running only fills what is
275
- missing.
442
+ missing. --backchannel <url> sets the client's back-channel logout URI (your
443
+ route that ends the app session when Atlas ends one; @atlasauth/backend has
444
+ ready-made handlers).
276
445
 
277
446
  Email always goes through YOUR provider account (Atlas lends none):
278
447
  managed Atlas sets your domain up on your Resend or Brevo account and
@@ -293,14 +462,26 @@ Usage: atlas preflight [--instance <id> | --product <name> [--instance-env <env>
293
462
 
294
463
  Prints every finding (severity, code, message, fix). Exits 1 when there is an
295
464
  error, or with --fail-on warning also on a warning.`,
465
+ doctor: `atlas doctor — integration health (a CI / deploy gate)
466
+
467
+ Usage: atlas doctor [--instance <id> | --product <name> [--instance-env <env>]]
468
+ [--only <source,...>] [--no-probe] [--json]
469
+
470
+ Prints every check: setup findings, webhook receivers (with the failing hop:
471
+ dns, tls, http, challenge or auth), back-channel logout, the referral
472
+ platform, email, the consent manager and SDK versions. Exits 1 when a check
473
+ fails. --no-probe uses recorded deliveries only (no live calls).`,
296
474
  env: `atlas env — print deploy variables without secrets
297
475
 
298
- Usage: atlas env --product <name> [--instance-env <env>] [--format dotenv|coolify|vercel] [--json]
476
+ Usage: atlas env [--product <name> [--instance-env <env>]] [--format dotenv|coolify|vercel|k8s] [--json]
299
477
 
300
478
  Public values (publishable key, Frontend API, issuer, discovery and JWKS URLs,
301
479
  OAuth client id) are printed as-is. Secrets are printed as references to their
302
480
  0600 files: *_FILE=<path> (dotenv), KEY=@<path> (coolify), or a vercel env add
303
- command that pipes the value from the file (vercel).`,
481
+ command that pipes the value from the file (vercel). k8s prints a ConfigMap plus
482
+ kubectl create secret commands that read each file. Without --product it reads
483
+ the public values from the instance your key belongs to (no secret references).
484
+ Both ATLAS_API_BASE and ATLAS_API_URL are printed.`,
304
485
  client: `atlas client — OAuth clients
305
486
 
306
487
  Usage: atlas client rotate <client-id> [--now | --overlap <seconds>]
@@ -319,6 +500,7 @@ Usage:
319
500
  Usage:
320
501
  atlas config export [--dir <path>] [--format json|yaml]
321
502
  atlas config import [--dir <path>] [--format json|yaml] [--dry-run] [--prune]
503
+ atlas config plan [--dir <path>] [--format json|yaml] [--prune] [--exit-code] [--json]
322
504
 
323
505
  export Read the instance's current config (instance/auth config, OAuth clients
324
506
  and providers, SSO connections, resource servers, JWT templates, roles,
@@ -333,6 +515,10 @@ import Diff the directory against live config and apply creates/updates
333
515
  --dir config directory (default: ./atlas-config)
334
516
  --format json (default) or yaml
335
517
 
518
+ plan A Terraform-style, read-only diff of the directory against the live
519
+ instance: field-by-field before -> after for updates. --exit-code exits 2
520
+ when there is drift (for CI); --json for tooling.
521
+
336
522
  Secrets never live on disk. Inject a credential at import with a \${ENV_VAR}
337
523
  placeholder in a file (e.g. a provider "client_secret": "\${GOOGLE_SECRET}").`,
338
524
  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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wDAuEgC,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;;;;;;;;;;;;;;;;;;;;wEAoB+D;IAEtE,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,mBAAmB,EAAE;;;;;;;;;;;;;;;;oCAgBa;IAElC,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,25 @@ 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");
27
+ const partner_platforms_1 = require("./commands/partner-platforms");
21
28
  const errors_1 = require("./errors");
22
29
  const help_1 = require("./help");
23
30
  const version_1 = require("./version");
@@ -26,22 +33,31 @@ const COMMANDS = {
26
33
  login: auth_1.login,
27
34
  logout: auth_1.logout,
28
35
  whoami: auth_1.whoami,
36
+ token: operator_1.token,
37
+ keys: operator_1.keys,
29
38
  users: users_1.users,
30
39
  orgs: orgs_1.orgs,
31
40
  'api-keys': api_keys_1.apiKeys,
32
41
  webhooks: webhooks_1.webhooks,
42
+ integrations: integrations_1.integrations,
43
+ 'partner-platforms': partner_platforms_1.partnerPlatforms,
33
44
  sessions: sessions_1.sessions,
34
45
  config: config_1.config,
35
46
  actions: actions_1.actions,
36
47
  init: init_1.init,
37
48
  preflight: project_commands_1.preflight,
49
+ doctor: project_commands_1.doctor,
38
50
  env: project_commands_1.envCommand,
39
51
  client: project_commands_1.client,
40
52
  referrals: referrals_1.referrals,
53
+ status: status_1.status,
41
54
  import: import_1.importUsers,
42
55
  migrate: migrate_1.migrate,
43
56
  info: info_1.info,
44
57
  mcp: mcp_1.mcp,
58
+ listen: listen_1.listen,
59
+ 'move-origin': move_origin_1.moveOrigin,
60
+ csp: csp_1.csp,
45
61
  };
46
62
  /**
47
63
  * 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":";;AAuDA,kBAwCC;AA/FD,gDAAmD;AACnD,iCAAgD;AAChD,gDAA6C;AAC7C,kDAA8C;AAC9C,0CAAwD;AACxD,8CAA2C;AAC3C,0CAAuC;AACvC,8CAAgD;AAChD,0CAAuC;AACvC,gDAA6C;AAC7C,wCAAqC;AACrC,kEAA4E;AAC5E,0CAAuC;AACvC,oDAAiD;AACjD,kDAA+C;AAC/C,4CAAyC;AACzC,kDAA+C;AAE/C,qCAAoC;AACpC,iCAAgD;AAChD,uCAAuC;AAKvC,kFAAkF;AAClF,MAAM,QAAQ,GAA4B;IACxC,KAAK,EAAL,YAAK;IACL,MAAM,EAAN,aAAM;IACN,MAAM,EAAN,aAAM;IACN,KAAK,EAAL,aAAK;IACL,IAAI,EAAJ,WAAI;IACJ,UAAU,EAAE,kBAAO;IACnB,QAAQ,EAAR,mBAAQ;IACR,QAAQ,EAAR,mBAAQ;IACR,MAAM,EAAN,eAAM;IACN,OAAO,EAAP,iBAAO;IACP,IAAI,EAAJ,WAAI;IACJ,SAAS,EAAT,4BAAS;IACT,GAAG,EAAE,6BAAU;IACf,MAAM,EAAN,yBAAM;IACN,SAAS,EAAT,qBAAS;IACT,MAAM,EAAE,oBAAW;IACnB,OAAO,EAAP,iBAAO;IACP,IAAI,EAAJ,WAAI;IACJ,GAAG,EAAH,SAAG;CACJ,CAAC;AAEF;;;;;;GAMG;AACI,KAAK,UAAU,GAAG,CAAC,IAAc,EAAE,GAAe;IACvD,IAAI,IAAgB,CAAC;IACrB,IAAI,CAAC;QACH,IAAI,GAAG,IAAA,YAAK,EAAC,IAAI,CAAC,CAAC;IACrB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,kDAAkD;IAClD,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACxB,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAA,oBAAU,GAAE,CAAC,CAAC;QACzB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAEpC,qEAAqE;IACrE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,eAAQ,CAAC,CAAC;QACrB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,oBAAoB,OAAO,IAAI,CAAC,CAAC;QAC5C,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;QAC5D,OAAO,CAAC,CAAC;IACX,CAAC;IAED,sEAAsE;IACtE,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACrB,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,mBAAY,CAAC,OAAO,CAAC,IAAI,eAAQ,CAAC,CAAC;QAC9C,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,MAAM,CAAC,GAAe,EAAE,GAAY;IAC3C,IAAI,GAAG,YAAY,uBAAa,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9C,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,0BAA0B,GAAG,CAAC,MAAM,IAAI,IAAI,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3E,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,GAAG,YAAY,iBAAQ,EAAE,CAAC;QAC5B,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACpC,OAAO,GAAG,CAAC,QAAQ,CAAC;IACtB,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACjE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC;IAChC,OAAO,CAAC,CAAC;AACX,CAAC"}
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.10.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.21.0",
20
+ "@atlasauth/referral-conformance": "0.1.0",
21
+ "@atlasauth/upgrade": "0.4.0"
21
22
  },
22
23
  "devDependencies": {
23
24
  "@types/node": "^22.9.0",
@@ -29,6 +30,7 @@
29
30
  },
30
31
  "files": [
31
32
  "dist",
33
+ "!dist/*.tsbuildinfo",
32
34
  "README.md",
33
35
  "CHANGELOG.md"
34
36
  ],