@atlasauth/cli 0.28.0 → 0.30.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 CHANGED
@@ -1,5 +1,23 @@
1
1
  # @atlasauth/cli changelog
2
2
 
3
+ ## 0.30.0 — 2026-11-11
4
+
5
+ ### Added
6
+
7
+ - `atlas plan` / `apply` manage `domains`, `integrations`, `referrals`, `privacy_orchestrator` and `proxy_secret`, with a field diff and `--check` exit 2 on drift. A new proxy secret goes to a 0600 file, never the terminal.
8
+ - `webhook_endpoints` take `signature_versions` and `external_ref`; a `secret: ${ENV}` is used as written.
9
+ - `atlas golive --connect cookiemunch,forumulate,chatly,referalli --keys-file <0600 file>` connects the partners and prints events receiver, minted token and redeem host per integration.
10
+ - `atlas keys create --preset app-runtime`.
11
+ - `atlas dev proxy --base-path /atlas` mounts the API under a path.
12
+
13
+ ### Fixed
14
+
15
+ - The README no longer says the email provider and the `before_user_create` hook are outside config files; they are managed types.
16
+
17
+ ## 0.29.0 — 2026-11-05
18
+
19
+ - `atlas users protect <id>`; `atlas init` writes each environment to its own folder; import names rows it refused.
20
+
3
21
  ## 0.28.0 — 2026-11-05
4
22
 
5
23
  ### Changed
package/README.md CHANGED
@@ -52,7 +52,9 @@ atlas setup-guide [--json]
52
52
  atlas preflight [--instance <id> | --product <name>] [--fail-on error|warning] [--fix [--yes]]
53
53
  atlas doctor [--origin <url>] [--only <sources>] [--no-probe]
54
54
  atlas doctor --scan-dir <path> [--scan-image <ref>]
55
- atlas golive --origin <url> [--dry-run] [--yes]
55
+ atlas golive --origin <url> [--dry-run] [--yes] [--connect cookiemunch,forumulate,chatly,referalli] [--keys-file <f>]
56
+ atlas keys create (--scopes "<scopes>" | --preset app-runtime) [--name n]
57
+ atlas dev proxy --app <url> --api <fapi url> [--base-path /atlas]
56
58
  atlas referrals connect ... [--dry-run]
57
59
  atlas env --product <name> --format dotenv|coolify|vercel
58
60
  atlas client rotate <client-id> [--now | --overlap <seconds>]
@@ -87,8 +89,9 @@ dotenv file under `~/.config/<product>/` (directory `0700`;
87
89
  existing different file is never overwritten without `--force`.
88
90
  `--print-secret` prints it instead, with a warning.
89
91
 
90
- `atlas init --with-dev` keeps each environment in its own folder (`production/atlas.env`,
91
- `development/atlas.env`). `atlas init --no-env-files --json` writes no secret file and hands
92
+ `atlas init` keeps each environment in its own folder (`production/atlas.env`,
93
+ `development/atlas.env`), so `atlas doctor --scan-dir` stays clean whichever you set up first.
94
+ An existing `<env>.env` stays where it is. `atlas init --with-dev` also creates the development sibling. `atlas init --no-env-files --json` writes no secret file and hands
92
95
  each secret over once in the JSON on stdout.
93
96
 
94
97
  `atlas plan`, `apply`, `preflight` and `golive` never print a secret, in text or `--json`, and
@@ -146,6 +149,11 @@ Runs these steps in order and stops at the first failure, with its fix:
146
149
  6. **preflight** (no error findings) and **login_readiness** for the origin, with a live JWKS round-trip.
147
150
  7. **integrations**: the referral connection, privacy integration and identity integrations the instance declares; a declared but untested referral connection is tested.
148
151
 
152
+ `--connect` (any subset of the four partners) connects them before the integrations step, with the
153
+ keys from `--keys-file` (default `~/.config/atlas/partner-keys.env`; refused unless only you can read
154
+ it): `FORUMULATE_API_KEY`, `COOKIEMUNCH_API_KEY`, `REFERALLI_API_KEY`, and `<PARTNER>_AUDIENCE` for a
155
+ first connect. It prints a table per integration: events receiver, minted token, redeem host.
156
+
149
157
  Each step prints `✓ step — detail` or `✗ step — problem` followed by `fix: …`. Exit 0 when
150
158
  all pass, 1 on the first failure. `--dry-run` sends every write with `?dry_run=true`, so
151
159
  nothing changes. `--json` prints `{ ok, dry_run, origin, steps: [{ id, ok, detail, fix? }] }`.
@@ -177,7 +185,8 @@ Managed resource types (the same set the Terraform provider manages):
177
185
  `instance` (auth config + allowed origins), `email_provider`, `hooks` (`before_user_create`), `branding`, `oauth_clients`, `oauth_providers`,
178
186
  `sso_connections`, `sso_onboarding_profiles`, `cookie_consent`, `resource_servers`, `jwt_templates`, `roles`,
179
187
  `webhook_endpoints`, `billing_plans`, `redirect_urls`, `org_settings_schema`,
180
- `notification_templates`, `email_templates`, `organization_policies`.
188
+ `notification_templates`, `email_templates`, `organization_policies`, plus `domains`,
189
+ `integrations`, `referrals`, `privacy_orchestrator` and `proxy_secret` (below).
181
190
 
182
191
  Rules that make it safe and repeatable:
183
192
 
@@ -233,9 +242,42 @@ atlas apply atlas.yaml --yes --secrets-file .atlas.secrets # non-interactive
233
242
  `roles`, `webhook_endpoints`, `sso_connections`, `sso_onboarding_profiles`,
234
243
  `billing_plans`, `notification_templates`, `email_templates`,
235
244
  `organization_policies`, `cookie_consent`. The
236
- ordering is done by the CLI, not by the server. The email provider and the
237
- `before_user_create` hook are not part of config files: set up the email
238
- provider (your own Resend or Brevo account) before you apply sign-in methods
239
- that send email, or they stay listed as inactive until you do.
245
+ ordering is done by the CLI, not by the server. The email provider
246
+ (`email_provider`, any transport: Resend, Brevo, SES, SMTP, Mailgun, SMTP2GO or
247
+ `webhook`) and the `before_user_create` hook are config file sections; the email
248
+ provider applies first, so sign-in methods that send email find a provider.
249
+
250
+ **Domains, integrations, referrals, privacy, proxy secret.**
251
+
252
+ ```yaml
253
+ domains:
254
+ - host: app.example.com # a path mount on your own host
255
+ method: path
256
+ base_path: /atlas
257
+ integrations:
258
+ - id: forumulate
259
+ enabled: true
260
+ audience: forumulate:acme
261
+ events_url: https://app.example.com/hooks/forumulate
262
+ forumulate_api_key: ${FORUMULATE_API_KEY} # used for the call only, never stored
263
+ referrals:
264
+ provider: referalli
265
+ enabled: true
266
+ api_key: ${REFERALLI_API_KEY}
267
+ privacy_orchestrator:
268
+ provider: cookiemunch
269
+ site_id: ${COOKIEMUNCH_SITE}
270
+ api_key: ${COOKIEMUNCH_API_KEY}
271
+ proxy_secret:
272
+ set: true # created once; the value goes to a 0600 file
273
+ ```
274
+
275
+ Each has a plan diff, and `plan --check` exits 2 when someone changes it in the dashboard (for
276
+ example, turns an integration off). A domain is only claimed, never deleted, unless you pass
277
+ `--prune`; a changed domain is refused (recreate it). `webhook_endpoints` also take `secret: ${ENV}`
278
+ (Atlas then uses your secret and nothing is written to the dotenv file), `active: false`,
279
+ `signature_versions` and `external_ref` (create only), and `enabled_events: ["preset:user_mirror"]`
280
+ is passed through for the API to expand. `atlas golive` activates a paused endpoint after a
281
+ successful test delivery.
240
282
 
241
283
  Ship it on push with the [`atlas-deploy` GitHub Action](../../actions/atlas-deploy).
package/dist/args.d.ts CHANGED
@@ -304,6 +304,15 @@ declare const OPTIONS: {
304
304
  readonly preset: {
305
305
  readonly type: "string";
306
306
  };
307
+ readonly 'base-path': {
308
+ readonly type: "string";
309
+ };
310
+ readonly connect: {
311
+ readonly type: "string";
312
+ };
313
+ readonly 'keys-file': {
314
+ readonly type: "string";
315
+ };
307
316
  readonly 'connection-id': {
308
317
  readonly type: "string";
309
318
  };
package/dist/args.js CHANGED
@@ -144,6 +144,10 @@ const OPTIONS = {
144
144
  // referrals connect --oauth: one-click connect (no key to paste).
145
145
  oauth: { type: 'boolean' },
146
146
  preset: { type: 'string' },
147
+ // dev proxy: mount Atlas under a path; golive --connect: partner keys file.
148
+ 'base-path': { type: 'string' },
149
+ connect: { type: 'string' },
150
+ 'keys-file': { type: 'string' },
147
151
  // referrals conformance: the platform under test.
148
152
  'connection-id': { type: 'string' },
149
153
  // referrals conformance: webhook (generic protocol) or connection (Referalli dialect).
package/dist/args.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"args.js","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"args.js","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":"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"}
@@ -54,6 +54,17 @@ const node_path_1 = require("node:path");
54
54
  const node_url_1 = require("node:url");
55
55
  const args_1 = require("../args");
56
56
  const config_http_1 = require("../config-http");
57
+ /** A resource the target instance's API predates reads as absent, not as a failed export. */
58
+ async function orNotFound(p, fallback) {
59
+ try {
60
+ return await p;
61
+ }
62
+ catch (err) {
63
+ if ((0, config_http_1.isNotFound)(err))
64
+ return fallback;
65
+ throw err;
66
+ }
67
+ }
57
68
  const errors_1 = require("../errors");
58
69
  const serialize_1 = require("../serialize");
59
70
  const backend_1 = require("@atlasauth/backend");
@@ -518,11 +529,14 @@ function registry() {
518
529
  // Sent on create so a paused endpoint is never live, even briefly.
519
530
  ...(typeof c.active === 'boolean' ? { active: c.active } : {}),
520
531
  ...(typeof c.secret === 'string' ? { secret: c.secret } : {}),
532
+ ...(Array.isArray(c.signature_versions) ? { signature_versions: c.signature_versions } : {}),
533
+ ...(typeof c.external_ref === 'string' ? { external_ref: c.external_ref } : {}),
521
534
  });
522
535
  },
523
536
  async update(http, live, config) {
524
537
  // PATCH leaves the signing secret alone; only rotate_secret changes it.
525
- const { secret, ...rest } = obj(config);
538
+ // external_ref is the idempotency key of the create: it is never re-sent.
539
+ const { secret, external_ref: _ref, ...rest } = obj(config);
526
540
  await http.patch(`/v1/webhook_endpoints/${enc(live.id)}`, compact(rest, true));
527
541
  if (typeof secret !== 'string' || !secret)
528
542
  return;
@@ -721,6 +735,15 @@ function registry() {
721
735
  }
722
736
  const { object: _o, resolved: _r, ...fields } = b ?? {};
723
737
  const out = compact(fields);
738
+ // A row saved before clearing an override dropped the empty map.
739
+ const sb = out.socialButtons;
740
+ if (sb && typeof sb === 'object' && !Array.isArray(sb)) {
741
+ const kept = Object.fromEntries(Object.entries(sb).filter(([, v]) => !(v && typeof v === 'object' && !Array.isArray(v) && Object.keys(v).length === 0)));
742
+ if (Object.keys(kept).length)
743
+ out.socialButtons = kept;
744
+ else
745
+ delete out.socialButtons;
746
+ }
724
747
  return Object.keys(out).length ? out : null;
725
748
  },
726
749
  async apply(http, config) {
@@ -813,9 +836,131 @@ function registry() {
813
836
  await http.patch('/v1/instance/signing_key_policy', { prepublish_days: d || null });
814
837
  },
815
838
  },
839
+ // 16. Custom domains — key = host (a path mount: host + base_path). Created/claimed only;
840
+ // a domain is deleted only under --prune. A changed domain is immutable: recreate it.
841
+ {
842
+ kind: 'collection',
843
+ type: 'domains',
844
+ fileKeys: ['host', 'method', 'base_path'],
845
+ keyOf: (c) => domainKey(obj(c).host, obj(c).method, obj(c).base_path),
846
+ async fetchLive(http) {
847
+ const rows = await orNotFound(listData(http, '/v1/domains'), []);
848
+ return rows.map((r) => ({ key: domainKey(r.host, r.method, r.base_path), id: String(r.id ?? ''), config: pick(r, ['host', 'method', 'base_path']) }));
849
+ },
850
+ async create(http, config) {
851
+ const c = compact(config);
852
+ await http.post('/v1/domains', c.method === 'path' ? { ...c, hostname: c.host } : c);
853
+ },
854
+ async remove(http, live) {
855
+ await http.delete(`/v1/domains/${enc(live.id)}`);
856
+ },
857
+ },
858
+ // 17. Identity integrations (chatly, forumulate, cookiemunch, referalli, custom) — key = id.
859
+ // PUT replaces the connection, so create and update are the same call. The partner API
860
+ // keys (forumulate_api_key, chatly_api_key) is used for that call only and never stored.
861
+ {
862
+ kind: 'collection',
863
+ type: 'integrations',
864
+ fileKeys: [...INTEGRATION_KEYS, 'forumulate_api_key', 'chatly_api_key', 'replace_existing'],
865
+ writeOnly: ['forumulate_api_key', 'chatly_api_key', 'replace_existing'],
866
+ keyOf: (c) => String(obj(c).id ?? ''),
867
+ async fetchLive(http) {
868
+ const rows = await orNotFound(listData(http, '/v1/instance/integrations'), []);
869
+ return rows.filter((r) => r.connected === true).map((r) => ({ key: String(r.id ?? ''), id: String(r.id ?? ''), config: pick(r, INTEGRATION_KEYS) }));
870
+ },
871
+ async create(http, config) {
872
+ await putIntegration(http, config);
873
+ },
874
+ async update(http, _live, config) {
875
+ await putIntegration(http, config);
876
+ },
877
+ async remove(http, live) {
878
+ await http.delete(`/v1/instance/integrations/${enc(live.id)}`);
879
+ },
880
+ },
881
+ // 18. Referral attribution settings — a singleton; signing_secret, api_key, inbound_secret are write-only.
882
+ {
883
+ kind: 'singleton',
884
+ type: 'referrals',
885
+ fileKeys: [...REFERRAL_KEYS, ...REFERRAL_SECRETS],
886
+ async fetchLive(http) {
887
+ const r = await orNotFound(http.get('/v1/instance/referrals'), null);
888
+ if (!r || r.object !== 'referral_settings')
889
+ return null;
890
+ const config = pick(r, REFERRAL_KEYS);
891
+ for (const k of REFERRAL_SECRETS)
892
+ if (r[`${k}_set`] === true)
893
+ config[k] = SECRET_SET;
894
+ return config;
895
+ },
896
+ async apply(http, config) {
897
+ await http.patch('/v1/instance/referrals', compact(withoutMarkers(config), true));
898
+ },
899
+ reportsSecrets: true,
900
+ },
901
+ // 19. Data-rights (privacy) orchestrator — a singleton; api_key is write-only.
902
+ {
903
+ kind: 'singleton',
904
+ type: 'privacy_orchestrator',
905
+ fileKeys: [...PRIVACY_KEYS, 'api_key'],
906
+ async fetchLive(http) {
907
+ const r = await orNotFound(http.get('/v1/instance/privacy_orchestrator'), null);
908
+ if (!r || r.configured !== true)
909
+ return null;
910
+ const config = pick(r, PRIVACY_KEYS);
911
+ if (r.api_key_set === true)
912
+ config.api_key = SECRET_SET;
913
+ return config;
914
+ },
915
+ async apply(http, config) {
916
+ await http.put('/v1/instance/privacy_orchestrator', compact(withoutMarkers(config), true));
917
+ },
918
+ reportsSecrets: true,
919
+ },
920
+ // 20. The trusted reverse-proxy secret: `set: true` creates it when none exists. The secret
921
+ // is shown once; apply writes it to a 0600 file and never prints it. Rotate with
922
+ // `atlas api POST /v1/instance/proxy_secret` (apply still saves the new value).
923
+ {
924
+ kind: 'singleton',
925
+ type: 'proxy_secret',
926
+ fileKeys: ['set', 'overlap_seconds'],
927
+ async fetchLive(http) {
928
+ const r = await orNotFound(http.get('/v1/instance/proxy_secret'), null);
929
+ if (!r)
930
+ return null;
931
+ return { set: r?.set === true };
932
+ },
933
+ normalize: (c) => ({ set: obj(c).set !== false }),
934
+ async apply(http, config) {
935
+ if (obj(config).set === false) {
936
+ await http.delete('/v1/instance/proxy_secret');
937
+ return;
938
+ }
939
+ const overlap = obj(config).overlap_seconds;
940
+ await http.post('/v1/instance/proxy_secret', typeof overlap === 'number' ? { overlap_seconds: overlap } : {});
941
+ },
942
+ },
816
943
  ];
817
944
  return specs;
818
945
  }
946
+ /** A domain's natural key: its host, plus the mount prefix for a path mount (default `/__atlas`). */
947
+ function domainKey(host, method, basePath) {
948
+ return method === 'path' || typeof basePath === 'string' ? `${String(host ?? '')}${typeof basePath === 'string' ? basePath : '/__atlas'}` : String(host ?? '');
949
+ }
950
+ const INTEGRATION_KEYS = ['id', 'enabled', 'audience', 'name', 'role', 'claims', 'ttl_seconds', 'events_url', 'backchannel_logout_url', 'oauth_client_id', 'external_ref'];
951
+ const REFERRAL_KEYS = [
952
+ 'enabled', 'provider', 'endpoint_url', 'program_id', 'connection_id', 'url_params', 'context_cookies', 'consent_category', 'consent_fallback_category',
953
+ 'auto_enroll_users', 'link_template', 'partner_portal_url', 'timeout_ms', 'tracking_token', 'code_lookup_url', 'signup_code_field', 'browser_sources',
954
+ ];
955
+ const REFERRAL_SECRETS = ['signing_secret', 'api_key', 'inbound_secret'];
956
+ const PRIVACY_KEYS = [
957
+ 'provider', 'name', 'enabled', 'case_url', 'cancel_url', 'auth_header', 'auth_scheme', 'use_partner_link', 'partner_link_id', 'site_id',
958
+ 'open_closure_cases', 'cancel_deletion_on_sign_in',
959
+ ];
960
+ async function putIntegration(http, config) {
961
+ const { id, ...body } = compact(withoutMarkers(config), true);
962
+ await http.put(`/v1/instance/integrations/${enc(String(id))}`, body);
963
+ }
819
964
  const OAUTH_CLIENT_KEYS = [
820
965
  'name',
821
966
  'redirect_uris',
@@ -908,7 +1053,7 @@ const CUSTOM_PROVIDER_WRITE_KEYS = [
908
1053
  'logout',
909
1054
  'idp_initiated_login',
910
1055
  ];
911
- const WEBHOOK_KEYS = ['url', 'enabled_events', 'active'];
1056
+ const WEBHOOK_KEYS = ['url', 'enabled_events', 'active', 'signature_versions', 'external_ref'];
912
1057
  const SSO_KEYS = [
913
1058
  'type',
914
1059
  'status',
@@ -1781,7 +1926,7 @@ function keepingSecrets(http, dir) {
1781
1926
  async post(path, body) {
1782
1927
  const res = await http.post(path, body);
1783
1928
  const r = (res ?? {});
1784
- const id = String(r.id ?? r.client_id ?? 'new').replace(/[^A-Za-z0-9_-]/g, '_');
1929
+ const id = String(path === '/v1/instance/proxy_secret' ? `${Date.now()}` : (r.id ?? r.client_id ?? 'new')).replace(/[^A-Za-z0-9_-]/g, '_');
1785
1930
  let entries = null;
1786
1931
  if (path === '/v1/oauth_clients' && typeof r.client_secret === 'string') {
1787
1932
  entries = { ATLAS_CLIENT_ID: String(r.client_id ?? ''), ATLAS_CLIENT_SECRET: r.client_secret };
@@ -1790,8 +1935,10 @@ function keepingSecrets(http, dir) {
1790
1935
  // A secret the file chose is already the caller's; only a minted one needs keeping.
1791
1936
  entries = { ATLAS_WEBHOOK_SECRET: r.secret };
1792
1937
  }
1938
+ if (path === '/v1/instance/proxy_secret' && typeof r.secret === 'string')
1939
+ entries = { ATLAS_PROXY_SECRET: r.secret };
1793
1940
  if (entries) {
1794
- const kind = path === '/v1/oauth_clients' ? 'oauth-client' : 'webhook';
1941
+ const kind = path === '/v1/oauth_clients' ? 'oauth-client' : path === '/v1/instance/proxy_secret' ? 'proxy-secret' : 'webhook';
1795
1942
  saved.push((0, secrets_1.writeSecretFile)(dir, `${kind}-${id}.env`, entries, { comment: `Written by atlas apply. ${kind} ${id}.` }).path);
1796
1943
  }
1797
1944
  return res;