@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.
- package/CHANGELOG.md +23 -0
- package/dist/args.d.ts +127 -0
- package/dist/args.js +56 -1
- package/dist/args.js.map +1 -1
- package/dist/commands/auth.js +5 -1
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/config.d.ts +15 -0
- package/dist/commands/config.js +76 -6
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/csp.d.ts +32 -0
- package/dist/commands/csp.js +180 -0
- package/dist/commands/csp.js.map +1 -0
- package/dist/commands/info.js +1 -1
- package/dist/commands/info.js.map +1 -1
- package/dist/commands/init.js +26 -2
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/integrations.d.ts +8 -0
- package/dist/commands/integrations.js +112 -0
- package/dist/commands/integrations.js.map +1 -0
- package/dist/commands/listen.d.ts +17 -0
- package/dist/commands/listen.js +223 -0
- package/dist/commands/listen.js.map +1 -0
- package/dist/commands/move-origin.d.ts +11 -0
- package/dist/commands/move-origin.js +95 -0
- package/dist/commands/move-origin.js.map +1 -0
- package/dist/commands/operator.d.ts +26 -0
- package/dist/commands/operator.js +198 -0
- package/dist/commands/operator.js.map +1 -0
- package/dist/commands/project-commands.d.ts +12 -0
- package/dist/commands/project-commands.js +130 -30
- package/dist/commands/project-commands.js.map +1 -1
- package/dist/commands/referrals.d.ts +4 -4
- package/dist/commands/referrals.js +203 -33
- package/dist/commands/referrals.js.map +1 -1
- package/dist/commands/shared.d.ts +6 -0
- package/dist/commands/shared.js +10 -1
- package/dist/commands/shared.js.map +1 -1
- package/dist/commands/status.d.ts +3 -0
- package/dist/commands/status.js +77 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/webhooks.d.ts +29 -2
- package/dist/commands/webhooks.js +257 -24
- package/dist/commands/webhooks.js.map +1 -1
- package/dist/config.d.ts +14 -0
- package/dist/config.js.map +1 -1
- package/dist/context.d.ts +5 -0
- package/dist/context.js.map +1 -1
- package/dist/help.d.ts +1 -1
- package/dist/help.js +177 -16
- package/dist/help.js.map +1 -1
- package/dist/run.js +14 -0
- package/dist/run.js.map +1 -1
- 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
|
|
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
|
-
|
|
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
|
-
|
|
59
|
-
|
|
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
|
|
188
|
-
[--
|
|
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
|
-
|
|
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 --
|
|
206
|
-
|
|
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
|
-
|
|
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
|
|
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":";;
|
|
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.
|
|
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.
|
|
20
|
-
"@atlasauth/upgrade": "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",
|