@atlasauth/cli 0.13.0 → 0.15.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/dist/help.js CHANGED
@@ -1,11 +1,12 @@
1
1
  "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.COMMAND_HELP = exports.TOP_HELP = void 0;
4
+ const resources_1 = require("./commands/resources");
2
5
  /**
3
6
  * All help text lives here as plain strings — the CLI's "docs" surface. Kept
4
7
  * out of the handlers so the dispatch code stays about control flow and the
5
8
  * copy can be read (and kept consistent) in one place.
6
9
  */
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.COMMAND_HELP = exports.TOP_HELP = void 0;
9
10
  exports.TOP_HELP = `atlas — manage an Atlas instance from the terminal
10
11
 
11
12
  Usage: atlas <command> [subcommand] [arguments] [options]
@@ -14,19 +15,35 @@ Commands:
14
15
  login Authenticate and store a profile credential
15
16
  (--device: operator sign-in in the browser, no key stored)
16
17
  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
+ keys whoami|list|create|rotate|revoke|revoke-leaked|data|op
18
19
  Scoped secret keys; new secrets go sealed into 0600 files
19
20
  logout Remove a stored profile credential
20
21
  whoami Show the active profile and instance
21
- users list|get|create|delete
22
+ users list|get|create|merge|delete
22
23
  orgs list|get|members
23
24
  api-keys list|create|revoke
24
25
  webhooks list|create|upsert|update|test|deliveries|redeliver|replay|rotate|reveal
25
26
  listen --forward-to <url> Forward live events to your local server, signed (no tunnel)
26
27
  dev [proxy] Local in-memory Atlas (emulator) / one-origin dev proxy
27
28
  move-origin --from --to Move an app to a new domain in one step (--dry-run first)
29
+ workflows list|run|resume|status|templates|approvals|decide
30
+ chat list|test|links|interactions Chat approval integrations
31
+ cloud targets|setup|login <id> Cloud access portal (AWS, Google Cloud, Azure)
32
+ device-sso list|show|revoke|delete Native OS single sign-on registrations
33
+ connection-actions catalog|list|run|define|remove
34
+ triggers list|get|create|set|delete Connection triggers
35
+ agents list|lifecycle|renew|activity|reviews|review-decide ...
36
+ telemetry show|set|test OTLP export of gateway and relay calls
37
+ pdp list|remove Local decision points
38
+ billing coupons|credits ... Discount codes and account credit
39
+ audit retention|set-retention Audit log retention
40
+ federation show|resolve OpenID federation
41
+ vc deferred|approve|deny Deferred credential issuance
28
42
  csp --framework next|express|nginx
29
43
  Print the Content Security Policy sources Atlas needs
44
+ fga test|validate|transform <file>
45
+ fga export|import|watch|materialize <store>
46
+ Run .fga.yaml test suites, validate and convert authorization models
30
47
  integrations list|get|set|remove|deliveries Identity integrations (chat, docs, consent, referrals, custom)
31
48
  partner-platforms list|get|set|registration|token|deliveries|remove
32
49
  This instance as a partner platform (signed consent deliveries in)
@@ -256,6 +273,8 @@ user or a membership. Exit code 2 means some rows were reported as issues.`,
256
273
 
257
274
  Usage:
258
275
  atlas mcp install --cursor | --claude-code | --codex | --vscode [--dir <project>] [--global]
276
+ atlas mcp gateways | upstreams <gw> | upstream-add|upstream-test|upstream-remove | packs|pack-add|pack-remove
277
+ atlas mcp pins <gw> | pin-approve <gw> <tool> | pin-remove | registry|registry-add|registry-decide|registry-remove
259
278
 
260
279
  Adds the Atlas MCP server (npx -y @atlasauth/mcp) to the client's config so the
261
280
  agent can search and read the Atlas docs. Servers already in the file are kept.
@@ -366,6 +385,8 @@ Usage:
366
385
  atlas keys list Every credential on the instance
367
386
  atlas keys create --scopes "<scopes>" [--name n] [--owner o] [--expires-at <ISO>] [--allowed-ips <cidr,…>] [--out <file>]
368
387
  atlas keys rotate <id> [--overlap <seconds>] [--out <file>]
388
+ atlas keys data status|enable|rotate|rewrap|check|shred Customer-managed data key (shred needs the instance id typed or --confirm)
389
+ atlas keys op list|rotate OpenID provider signing keys
369
390
  atlas keys revoke <id>
370
391
  atlas keys revoke-leaked [<secret>] Revoke a leaked Atlas credential (no login needed)
371
392
 
@@ -452,6 +473,22 @@ allowlist and your Sign in with Atlas apps. Shows the before and after of every
452
473
  field first and asks before writing (--yes skips the question). After a real
453
474
  move it sends a signed test delivery to each webhook endpoint that moved.
454
475
  --dry-run prints the diff and writes nothing; running it twice changes nothing.`,
476
+ fga: `atlas fga — author and test authorization models
477
+
478
+ Usage:
479
+ atlas fga test <suite.fga.yaml> [--store <id>] [--json]
480
+ atlas fga validate <model.fga|model.json>
481
+ atlas fga transform <model.fga|model.json> [--to dsl|json]
482
+ atlas fga export|materializations <store>
483
+ atlas fga import <store> --file tuples.json [--data '{"dry_run":true}']
484
+ atlas fga watch <store> [--since <revision>]
485
+ atlas fga materialize <store> --data '{"object_type":…,"relation":…,"user_type":…}' --yes
486
+ atlas fga rebuild|unmaterialize <store> <id> --yes
487
+
488
+ A test file follows the OpenFGA format: model (DSL text) or model_file, tuples or tuple_file,
489
+ and tests, each with check, list_objects and list_users assertions. The suite runs in memory on
490
+ the Atlas engine; no stored tuples are read or written. Exit code 1 when any test fails, so it
491
+ gates CI. Prints which model relations the assertions cover.`,
455
492
  csp: `atlas csp — the Content Security Policy sources Atlas needs
456
493
 
457
494
  Usage: atlas csp [--framework next|express|nginx] [--shape redirect|panel|button]
@@ -704,4 +741,37 @@ publish reads a manifest {slug, name, author_name, summary, description,
704
741
  category, tags, trigger, license, version, code_file, secrets, changelog},
705
742
  creates the template or adds the version, and submits it for review.`,
706
743
  };
744
+ /** Help for the table-driven resource commands, generated from their route tables. */
745
+ function resHelp(name, blurb, ops) {
746
+ const lines = Object.entries(ops).map(([sub, o]) => {
747
+ const args = (o.p.match(/\{\}/g) ?? []).map(() => '<id>').join(' ');
748
+ return ` atlas ${name} ${`${sub} ${args}`.trim().padEnd(26)} ${o.m} ${o.p.replace(/\{\}/g, '…')}${o.f?.includes('y') ? ' (--yes)' : ''}`;
749
+ });
750
+ return `atlas ${name} — ${blurb}
751
+
752
+ Usage:
753
+ ${lines.join('\n')}
754
+
755
+ A request body is JSON from --data '<json>' or --file <path>. Anything that changes or removes
756
+ data needs --yes. --json prints raw JSON. Secrets the API returns once are shown once; store them
757
+ right away.`;
758
+ }
759
+ Object.assign(exports.COMMAND_HELP, {
760
+ workflows: resHelp('workflows', 'workflow runs, templates and approvals', resources_1.WORKFLOWS),
761
+ chat: resHelp('chat', 'chat approval integrations (test a bot, list user links)', resources_1.CHAT),
762
+ 'saml-idp': resHelp('saml-idp', 'SAML identity provider service providers (import-metadata takes --data with url, entity_id, mdq_base_url)', resources_1.SAML_IDP),
763
+ provisioning: resHelp('provisioning', 'outbound provisioning connectors, preview, logs and the failure inbox', resources_1.PROVISIONING),
764
+ catalog: resHelp('catalog', 'app catalog requests', resources_1.CATALOG),
765
+ cloud: resHelp('cloud', 'cloud access portal; login prints the https launch URL for a target', resources_1.CLOUD),
766
+ 'device-sso': resHelp('device-sso', 'native OS SSO device registrations', resources_1.DEVICE_SSO),
767
+ 'connection-actions': resHelp('connection-actions', 'actions on a connected provider account', resources_1.CONNECTION_ACTIONS),
768
+ triggers: resHelp('triggers', 'connection triggers', resources_1.TRIGGERS),
769
+ agents: resHelp('agents', 'agent lifecycle, activity and access reviews', resources_1.AGENTS),
770
+ telemetry: resHelp('telemetry', 'OTLP export of gateway and relay calls', resources_1.TELEMETRY),
771
+ pdp: resHelp('pdp', 'local decision points', resources_1.PDP),
772
+ billing: resHelp('billing', 'discount codes and account credit', resources_1.BILLING),
773
+ audit: resHelp('audit', 'audit log retention (shortening needs confirm_deletion in --data)', resources_1.AUDIT),
774
+ federation: resHelp('federation', 'OpenID federation', resources_1.FEDERATION),
775
+ vc: resHelp('vc', 'deferred verifiable credential issuance', resources_1.VC),
776
+ });
707
777
  //# sourceMappingURL=help.js.map
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wDAqFgC,CAAC;AAEzD,oDAAoD;AACvC,QAAA,YAAY,GAA2B;IAClD,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8CA8GmC;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,GAAG,EAAE;;;;;;;;;2EASoE;IACzE,aAAa,EAAE;;;;;;;;;gFAS+D;IAC9E,GAAG,EAAE;;;;;;;;;;;;;;;+DAewD;IAE7D,mBAAmB,EAAE;;;;;;;;;;;;;;;;oCAgBa;IAElC,KAAK,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8CA6BqC;IAE5C,aAAa,EAAE;;;;;;;;;;;;;;;;;;;;;;;;qBAwBI;IAEnB,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8EAgCoE;IAC5E,KAAK,EAAE;;;;;;;;;;;;;;;kDAeyC;IAChD,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;qEA0B0D;CACpE,CAAC"}
1
+ {"version":3,"file":"help.js","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"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"}
package/dist/run.js CHANGED
@@ -13,6 +13,7 @@ const init_1 = require("./commands/init");
13
13
  const import_1 = require("./commands/import");
14
14
  const info_1 = require("./commands/info");
15
15
  const csp_1 = require("./commands/csp");
16
+ const fga_1 = require("./commands/fga");
16
17
  const dev_1 = require("./commands/dev");
17
18
  const listen_1 = require("./commands/listen");
18
19
  const migrate_1 = require("./commands/migrate");
@@ -29,6 +30,7 @@ const integrations_1 = require("./commands/integrations");
29
30
  const id_accounts_1 = require("./commands/id-accounts");
30
31
  const admin_1 = require("./commands/admin");
31
32
  const partner_platforms_1 = require("./commands/partner-platforms");
33
+ const resources_1 = require("./commands/resources");
32
34
  const errors_1 = require("./errors");
33
35
  const help_1 = require("./help");
34
36
  const version_1 = require("./version");
@@ -66,6 +68,23 @@ const COMMANDS = {
66
68
  dev: dev_1.dev,
67
69
  'move-origin': move_origin_1.moveOrigin,
68
70
  csp: csp_1.csp,
71
+ fga: fga_1.fga,
72
+ workflows: (0, resources_1.resourceCommand)('workflows', resources_1.WORKFLOWS),
73
+ chat: (0, resources_1.resourceCommand)('chat', resources_1.CHAT),
74
+ cloud: (0, resources_1.resourceCommand)('cloud', resources_1.CLOUD),
75
+ 'saml-idp': (0, resources_1.resourceCommand)('saml-idp', resources_1.SAML_IDP),
76
+ provisioning: (0, resources_1.resourceCommand)('provisioning', resources_1.PROVISIONING),
77
+ catalog: (0, resources_1.resourceCommand)('catalog', resources_1.CATALOG),
78
+ 'device-sso': (0, resources_1.resourceCommand)('device-sso', resources_1.DEVICE_SSO),
79
+ 'connection-actions': (0, resources_1.resourceCommand)('connection-actions', resources_1.CONNECTION_ACTIONS),
80
+ triggers: (0, resources_1.resourceCommand)('triggers', resources_1.TRIGGERS),
81
+ agents: (0, resources_1.resourceCommand)('agents', resources_1.AGENTS),
82
+ telemetry: (0, resources_1.resourceCommand)('telemetry', resources_1.TELEMETRY),
83
+ pdp: (0, resources_1.resourceCommand)('pdp', resources_1.PDP),
84
+ billing: (0, resources_1.resourceCommand)('billing', resources_1.BILLING),
85
+ audit: (0, resources_1.resourceCommand)('audit', resources_1.AUDIT),
86
+ federation: (0, resources_1.resourceCommand)('federation', resources_1.FEDERATION),
87
+ vc: (0, resources_1.resourceCommand)('vc', resources_1.VC),
69
88
  };
70
89
  /**
71
90
  * 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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"}
@@ -0,0 +1,43 @@
1
+ name: Atlas FGA tests
2
+ description: Run OpenFGA-style test files (.fga.yaml) against the Atlas authorization engine and fail the job on any failing assertion.
3
+ inputs:
4
+ files:
5
+ description: Test files, one per line or space separated (globs allowed).
6
+ required: true
7
+ api-url:
8
+ description: Atlas Backend API origin.
9
+ required: true
10
+ secret-key:
11
+ description: A secret key with the fga:read scope.
12
+ required: true
13
+ store:
14
+ description: Optional store id; its latest model is used when a file has no model of its own.
15
+ required: false
16
+ default: ''
17
+ runs:
18
+ using: composite
19
+ steps:
20
+ - uses: actions/setup-node@v4
21
+ with:
22
+ node-version: 22
23
+ - shell: bash
24
+ env:
25
+ ATLAS_API_URL: ${{ inputs.api-url }}
26
+ ATLAS_SECRET_KEY: ${{ inputs.secret-key }}
27
+ FILES: ${{ inputs.files }}
28
+ STORE: ${{ inputs.store }}
29
+ run: |
30
+ status=0
31
+ shopt -s globstar nullglob
32
+ for pattern in $FILES; do
33
+ for f in $pattern; do
34
+ echo "::group::$f"
35
+ if [ -n "$STORE" ]; then
36
+ npx --yes @atlasauth/cli fga test "$f" --store "$STORE" || status=1
37
+ else
38
+ npx --yes @atlasauth/cli fga test "$f" || status=1
39
+ fi
40
+ echo "::endgroup::"
41
+ done
42
+ done
43
+ exit $status
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlasauth/cli",
3
- "version": "0.13.0",
3
+ "version": "0.15.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"
@@ -15,12 +15,13 @@
15
15
  "./package.json": "./package.json"
16
16
  },
17
17
  "dependencies": {
18
- "@atlasauth/backend": "0.25.0",
19
- "@atlasauth/actions": "0.4.0",
20
- "@atlasauth/migrate": "0.2.0",
18
+ "yaml": "^2.6.0",
19
+ "@atlasauth/actions": "0.5.0",
20
+ "@atlasauth/backend": "0.27.0",
21
21
  "@atlasauth/emulator": "0.1.0",
22
- "@atlasauth/upgrade": "0.6.0",
23
- "@atlasauth/referral-conformance": "0.1.0"
22
+ "@atlasauth/migrate": "0.2.0",
23
+ "@atlasauth/referral-conformance": "0.1.0",
24
+ "@atlasauth/upgrade": "0.6.0"
24
25
  },
25
26
  "devDependencies": {
26
27
  "@types/node": "^22.9.0",
@@ -32,6 +33,7 @@
32
33
  },
33
34
  "files": [
34
35
  "dist",
36
+ "github-action",
35
37
  "!dist/*.tsbuildinfo",
36
38
  "README.md",
37
39
  "CHANGELOG.md"