@atlasauth/cli 0.9.0 → 0.11.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,14 @@
1
1
  # @atlasauth/cli changelog
2
2
 
3
+ ## 0.11.0 — 2026-10-25
4
+
5
+ - `atlas id-accounts provision|list|rotate|remove`: test and review accounts for a Sign in with Atlas app (reviewer logins, CI, demos), with a platform key or a per-app key scoped `atlas_id_apps:<app id>:provision`. Passwords go to 0600 files and are never printed (`--print-secret` is the opt-out).
6
+ - `atlas admin id-accounts list|provision|extend|rotate|revoke` and `atlas admin developer-accounts provision|revoke`: for Atlas staff, accounts for other platforms' integration teams. Uses the operator sign-in (`atlas login --device`) exchanged for Atlas's own account, signs in again once when a recent second factor is needed (`--no-step-up` to just fail), and writes passwords (delivered sealed) to 0600 files.
7
+
8
+ ## 0.10.0 — 2026-10-24
9
+
10
+ - Per-call integration audiences (`getToken({ for, cbid })`), partner platforms, operator tokens for partner products.
11
+
3
12
  ## 0.9.0 — 2026-10-24
4
13
 
5
14
  ### Added
package/dist/args.d.ts CHANGED
@@ -356,6 +356,64 @@ declare const OPTIONS: {
356
356
  readonly disable: {
357
357
  readonly type: "boolean";
358
358
  };
359
+ readonly 'platform-id': {
360
+ readonly type: "string";
361
+ };
362
+ readonly 'jwks-url': {
363
+ readonly type: "string";
364
+ };
365
+ readonly 'signature-header': {
366
+ readonly type: "string";
367
+ };
368
+ readonly 'allowed-source': {
369
+ readonly type: "string";
370
+ readonly multiple: true;
371
+ };
372
+ readonly 'token-file': {
373
+ readonly type: "string";
374
+ };
375
+ readonly rotate: {
376
+ readonly type: "boolean";
377
+ };
378
+ readonly app: {
379
+ readonly type: "string";
380
+ };
381
+ readonly label: {
382
+ readonly type: "string";
383
+ };
384
+ readonly 'password-file': {
385
+ readonly type: "string";
386
+ };
387
+ readonly 'two-factor-exempt': {
388
+ readonly type: "boolean";
389
+ };
390
+ readonly unverified: {
391
+ readonly type: "boolean";
392
+ };
393
+ readonly team: {
394
+ readonly type: "string";
395
+ };
396
+ readonly kind: {
397
+ readonly type: "string";
398
+ };
399
+ readonly days: {
400
+ readonly type: "string";
401
+ };
402
+ readonly 'any-app': {
403
+ readonly type: "boolean";
404
+ };
405
+ readonly 'staff-account': {
406
+ readonly type: "string";
407
+ };
408
+ readonly 'account-name': {
409
+ readonly type: "string";
410
+ };
411
+ readonly 'application-name': {
412
+ readonly type: "string";
413
+ };
414
+ readonly 'no-step-up': {
415
+ readonly type: "boolean";
416
+ };
359
417
  readonly cursor: {
360
418
  readonly type: "boolean";
361
419
  };
package/dist/args.js CHANGED
@@ -156,6 +156,28 @@ const OPTIONS = {
156
156
  'oauth-client-id': { type: 'string' },
157
157
  trace: { type: 'string' },
158
158
  disable: { type: 'boolean' },
159
+ // partner-platforms.
160
+ 'platform-id': { type: 'string' },
161
+ 'jwks-url': { type: 'string' },
162
+ 'signature-header': { type: 'string' },
163
+ 'allowed-source': { type: 'string', multiple: true },
164
+ 'token-file': { type: 'string' },
165
+ rotate: { type: 'boolean' },
166
+ // id-accounts provision / list / rotate / remove.
167
+ app: { type: 'string' },
168
+ label: { type: 'string' },
169
+ 'password-file': { type: 'string' },
170
+ 'two-factor-exempt': { type: 'boolean' },
171
+ unverified: { type: 'boolean' },
172
+ // admin id-accounts / developer-accounts (Atlas staff).
173
+ team: { type: 'string' },
174
+ kind: { type: 'string' },
175
+ days: { type: 'string' },
176
+ 'any-app': { type: 'boolean' },
177
+ 'staff-account': { type: 'string' },
178
+ 'account-name': { type: 'string' },
179
+ 'application-name': { type: 'string' },
180
+ 'no-step-up': { type: 'boolean' },
159
181
  // mcp install.
160
182
  cursor: { type: 'boolean' },
161
183
  'claude-code': { type: 'boolean' },
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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"}
@@ -0,0 +1,49 @@
1
+ import { type ParsedArgs } from '../args';
2
+ import type { RunContext } from '../context';
3
+ /** The scope an operator token needs on Atlas's own account for the staff routes. */
4
+ export declare const STAFF_PROVISION_SCOPE = "platform:atlas_id_apps:provision";
5
+ /** A staff-made account as the /v1/admin routes return it. */
6
+ export interface StaffAccount {
7
+ object: 'atlas_id_provisioned_account';
8
+ id: string;
9
+ sub: string;
10
+ email: string | null;
11
+ label: string;
12
+ team: string;
13
+ kind: 'provisioned' | 'developer' | 'test_mode';
14
+ app_ids: string[];
15
+ apps: Array<{
16
+ id: string;
17
+ client_id: string;
18
+ name: string;
19
+ }>;
20
+ any_app: boolean;
21
+ two_factor_exempt: boolean;
22
+ expires_at: number | null;
23
+ expired: boolean;
24
+ developer_account_id: string | null;
25
+ developer_account?: {
26
+ id: string;
27
+ name: string;
28
+ } | null;
29
+ last_sign_in_at: number | null;
30
+ password?: string;
31
+ sealed_password?: string;
32
+ application?: {
33
+ id: string;
34
+ name: string;
35
+ };
36
+ }
37
+ /**
38
+ * `atlas admin id-accounts list|provision|extend|rotate|revoke` and
39
+ * `atlas admin developer-accounts provision|revoke`: Atlas STAFF provisioning
40
+ * Sign in with Atlas accounts for other platforms' integration teams.
41
+ *
42
+ * Credential: the operator sign-in (`atlas login --device`), exchanged for a
43
+ * one-hour token on Atlas's own account with `platform:atlas_id_apps:provision`.
44
+ * Writes need a second factor proved in the last 5 minutes; when the server
45
+ * says so, the CLI runs the operator sign-in again and retries once. Passwords
46
+ * come back sealed to a key pair made for the run and are written to 0600 files,
47
+ * never printed (unless --print-secret).
48
+ */
49
+ export declare function admin(ctx: RunContext, args: ParsedArgs): Promise<number>;
@@ -0,0 +1,353 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.STAFF_PROVISION_SCOPE = void 0;
4
+ exports.admin = admin;
5
+ const backend_1 = require("@atlasauth/backend");
6
+ const args_1 = require("../args");
7
+ const errors_1 = require("../errors");
8
+ const output_1 = require("../output");
9
+ const project_1 = require("../project");
10
+ const secrets_1 = require("../secrets");
11
+ const shared_1 = require("./shared");
12
+ /** The scope an operator token needs on Atlas's own account for the staff routes. */
13
+ exports.STAFF_PROVISION_SCOPE = 'platform:atlas_id_apps:provision';
14
+ const MIN_PASSWORD_LENGTH = 12;
15
+ const BASE = '/v1/admin/atlas_id/provisioned_accounts';
16
+ const DEVELOPER_BASE = '/v1/admin/atlas_id/developer_accounts';
17
+ const COLUMNS = [
18
+ { header: 'ID', get: (a) => a.id },
19
+ { header: 'EMAIL', get: (a) => a.email ?? '' },
20
+ { header: 'TEAM', get: (a) => a.team ?? a.label },
21
+ { header: 'KIND', get: (a) => a.kind },
22
+ { header: 'APPS', get: (a) => (a.any_app ? 'any' : a.kind === 'developer' ? '-' : a.apps.map((x) => x.name).join(', ') || a.app_ids.join(', ')) },
23
+ { header: 'EXPIRES', get: (a) => (a.expires_at ? (a.expired ? `${(0, output_1.fmtTime)(a.expires_at)} (expired)` : (0, output_1.fmtTime)(a.expires_at)) : 'never') },
24
+ ];
25
+ /** The first non-comment line of a file (or stdin): `NAME=value` or a bare value. */
26
+ function readPasswordFile(ctx, file) {
27
+ const where = file === '-' ? 'stdin' : file;
28
+ let text;
29
+ try {
30
+ text = ctx.readFile(file === '-' ? '/dev/stdin' : file);
31
+ }
32
+ catch {
33
+ throw new errors_1.CliError(`Could not read the password from ${where}.`);
34
+ }
35
+ const line = text.split(/\r?\n/).find((l) => l.trim() && !l.trim().startsWith('#')) ?? '';
36
+ const m = /^[A-Za-z_][A-Za-z0-9_]*=(.*)$/.exec(line.trim());
37
+ const password = (m ? m[1] : line).replace(/[\r\n]+$/, '').replace(/^"(.*)"$/, '$1');
38
+ if (!password)
39
+ throw new errors_1.CliError(`No password found in ${where}.`);
40
+ if (password.length < MIN_PASSWORD_LENGTH)
41
+ throw new errors_1.CliError(`The password in ${where} must be at least ${MIN_PASSWORD_LENGTH} characters.`);
42
+ return password;
43
+ }
44
+ /** `--days N` / `--expires-at <ISO|epoch ms>` as the staff routes take them. */
45
+ function expiryBody(values) {
46
+ const days = (0, args_1.str)(values, 'days');
47
+ const at = (0, args_1.str)(values, 'expires-at');
48
+ if (days && at)
49
+ throw new errors_1.CliError('Pass --days or --expires-at, not both.');
50
+ if (days) {
51
+ const n = Number(days);
52
+ if (!Number.isInteger(n) || n < 1)
53
+ throw new errors_1.CliError(`--days must be a whole number of days, got '${days}'.`);
54
+ return { days: n };
55
+ }
56
+ if (at) {
57
+ if (/^\d+$/.test(at))
58
+ return { expires_at: Number(at) };
59
+ if (Number.isNaN(Date.parse(at)))
60
+ throw new errors_1.CliError(`--expires-at must be an ISO 8601 date (2026-12-31) or epoch milliseconds, got '${at}'.`);
61
+ return { expires_at: at };
62
+ }
63
+ return {};
64
+ }
65
+ function withoutSecrets(a) {
66
+ const { password: _p, sealed_password: _s, ...rest } = a;
67
+ void _p;
68
+ void _s;
69
+ return rest;
70
+ }
71
+ const stepUpError = (err) => err instanceof backend_1.AtlasApiError && err.errors.some((e) => e.code === 'STEP_UP_REQUIRED' || e.code === 'MFA_REQUIRED');
72
+ /**
73
+ * The staff credential: the profile's operator sign-in (`atlas login --device`)
74
+ * exchanged for a one-hour token on Atlas's own account with the provision
75
+ * scope. Nothing long-lived is stored; the staff account id is remembered on
76
+ * the profile once given.
77
+ */
78
+ class StaffSession {
79
+ ctx;
80
+ args;
81
+ token;
82
+ pair = (0, backend_1.generateSealKeyPair)();
83
+ constructor(ctx, args) {
84
+ this.ctx = ctx;
85
+ this.args = args;
86
+ }
87
+ profileName() {
88
+ const file = this.ctx.config.load();
89
+ return (0, args_1.str)(this.args.values, 'profile') || file.active_profile || 'default';
90
+ }
91
+ apiUrl() {
92
+ const profile = this.ctx.config.load().profiles[this.profileName()];
93
+ return (0, args_1.str)(this.args.values, 'url') || (0, shared_1.envApiUrl)(this.ctx.env) || profile?.api_url || backend_1.DEFAULT_API_URL;
94
+ }
95
+ staffAccount() {
96
+ const file = this.ctx.config.load();
97
+ const name = this.profileName();
98
+ const given = (0, args_1.str)(this.args.values, 'staff-account') || this.ctx.env.ATLAS_STAFF_ACCOUNT_ID?.trim();
99
+ const account = given || file.profiles[name]?.staff_account_id;
100
+ if (!account) {
101
+ throw new errors_1.CliError("atlas admin needs Atlas's own account id once: pass --staff-account <acct_…> (or set ATLAS_STAFF_ACCOUNT_ID). It is remembered on the profile.");
102
+ }
103
+ if (given && file.profiles[name] && file.profiles[name].staff_account_id !== given) {
104
+ file.profiles[name].staff_account_id = given;
105
+ this.ctx.config.save(file);
106
+ }
107
+ return account;
108
+ }
109
+ async exchange() {
110
+ const file = this.ctx.config.load();
111
+ const operator = file.profiles[this.profileName()]?.operator;
112
+ if (!operator || operator.expires_at <= Date.now()) {
113
+ throw new errors_1.CliError("No current operator sign-in. Run 'atlas login --device' (confirm with your second factor) first.");
114
+ }
115
+ try {
116
+ const bound = await (0, backend_1.exchangeOperatorToken)(operator.access_token, { resource: this.staffAccount(), scope: exports.STAFF_PROVISION_SCOPE }, { apiUrl: this.apiUrl(), fetch: this.ctx.fetch });
117
+ return bound.access_token;
118
+ }
119
+ catch (err) {
120
+ if (err instanceof backend_1.OAuthFlowError) {
121
+ throw new errors_1.CliError(`Atlas refused the staff token (${err.error}): ${err.message}. Only owners and admins of Atlas's own account can use 'atlas admin'.`);
122
+ }
123
+ throw err;
124
+ }
125
+ }
126
+ /** A fresh operator sign-in (the device flow), for a write that needs a recent second factor. */
127
+ async stepUp() {
128
+ const opts = { apiUrl: this.apiUrl(), fetch: this.ctx.fetch };
129
+ let start;
130
+ try {
131
+ start = await (0, backend_1.startOperatorLogin)(opts);
132
+ }
133
+ catch (err) {
134
+ throw new errors_1.CliError(err instanceof Error ? err.message : String(err));
135
+ }
136
+ this.ctx.io.err('This action needs a sign-in verified with your second factor in the last 5 minutes.');
137
+ this.ctx.io.err(`Open ${start.verification_uri_complete}`);
138
+ this.ctx.io.err(`and confirm the code ${start.user_code} with your passkey or authenticator.`);
139
+ let token;
140
+ try {
141
+ token = await (0, backend_1.pollOperatorLogin)(start, { fetch: this.ctx.fetch, sleep: this.ctx.sleep });
142
+ }
143
+ catch (err) {
144
+ if (err instanceof backend_1.OAuthFlowError)
145
+ throw new errors_1.CliError(`Sign-in did not complete: ${err.message}`);
146
+ throw err;
147
+ }
148
+ const file = this.ctx.config.load();
149
+ const name = this.profileName();
150
+ const entry = file.profiles[name] ?? { api_url: opts.apiUrl, secret_key: '' };
151
+ entry.operator = { access_token: token.access_token, expires_at: Date.now() + token.expires_in * 1000, issuer: start.config.issuer };
152
+ file.profiles[name] = entry;
153
+ this.ctx.config.save(file);
154
+ this.token = undefined;
155
+ }
156
+ async http() {
157
+ this.token ??= await this.exchange();
158
+ // Passwords come back sealed to a key pair made here, opened only locally.
159
+ return (0, project_1.httpFor)(this.ctx, { secretKey: this.token, apiUrl: this.apiUrl(), headers: { 'x-secret-recipient': this.pair.secretRecipient } });
160
+ }
161
+ read(fn) {
162
+ return this.http().then(fn);
163
+ }
164
+ /** A write: on STEP_UP_REQUIRED, sign in again (unless --no-step-up) and retry once. */
165
+ async write(fn) {
166
+ try {
167
+ return await fn(await this.http());
168
+ }
169
+ catch (err) {
170
+ if (!stepUpError(err))
171
+ throw err;
172
+ if (this.args.values['no-step-up'] === true) {
173
+ throw new errors_1.CliError("This action needs a sign-in verified with your second factor in the last 5 minutes. Run 'atlas login --device' and retry.");
174
+ }
175
+ await this.stepUp();
176
+ return fn(await this.http());
177
+ }
178
+ }
179
+ /** The password: opened from `sealed_password` (or the plain field), then to a 0600 file. */
180
+ deliverPassword(account, label) {
181
+ const password = account.sealed_password ? (0, backend_1.openSealedSecret)(account.sealed_password, this.pair) : account.password;
182
+ if (!password)
183
+ return undefined;
184
+ const json = (0, shared_1.wantsJson)(this.args.values);
185
+ const io = json ? { out: () => undefined, err: this.ctx.io.err } : this.ctx.io;
186
+ return (0, secrets_1.deliverSecret)({
187
+ io,
188
+ env: this.ctx.env,
189
+ product: (0, args_1.str)(this.args.values, 'product') ?? 'atlasauth',
190
+ fileName: `staff-account-${account.id}.env`,
191
+ entries: { ATLAS_ID_TEST_EMAIL: account.email ?? '', ATLAS_ID_TEST_PASSWORD: password },
192
+ label,
193
+ printSecret: this.args.values['print-secret'] === true,
194
+ force: true,
195
+ comment: `Atlas staff-provisioned account ${account.email ?? account.id} (team ${account.team ?? account.label}). Hand it to that team only.`,
196
+ }).path;
197
+ }
198
+ }
199
+ function emitAccount(ctx, args, account, path, line) {
200
+ if ((0, shared_1.wantsJson)(args.values))
201
+ (0, output_1.printJson)(ctx.io, { ...withoutSecrets(account), ...(path ? { secret_file: path } : {}) });
202
+ else
203
+ ctx.io.out(line);
204
+ }
205
+ async function idAccountsCommand(ctx, args, staff) {
206
+ const v = args.values;
207
+ const sub = args.positionals[2];
208
+ switch (sub) {
209
+ case 'list': {
210
+ const kind = (0, args_1.str)(v, 'kind');
211
+ if (kind && kind !== 'provisioned' && kind !== 'developer')
212
+ throw new errors_1.CliError('--kind must be provisioned or developer.');
213
+ const q = new URLSearchParams();
214
+ const team = (0, args_1.str)(v, 'team');
215
+ if (team)
216
+ q.set('team', team);
217
+ if (kind)
218
+ q.set('kind', kind);
219
+ const limit = (0, args_1.str)(v, 'limit');
220
+ if (limit)
221
+ q.set('limit', limit);
222
+ const qs = q.toString();
223
+ const page = await staff.read((http) => http.get(`${BASE}${qs ? `?${qs}` : ''}`));
224
+ if ((0, shared_1.wantsJson)(v))
225
+ (0, output_1.printJson)(ctx.io, page);
226
+ else {
227
+ ctx.io.out((0, output_1.renderTable)(COLUMNS, page.data));
228
+ for (const t of page.teams)
229
+ ctx.io.out(`${t.team}: ${t.count} of ${t.limit}${t.expired ? ` (${t.expired} expired)` : ''}`);
230
+ }
231
+ return 0;
232
+ }
233
+ case 'provision': {
234
+ const email = (0, args_1.str)(v, 'email');
235
+ const team = (0, args_1.str)(v, 'team');
236
+ if (!email || !team)
237
+ throw new errors_1.CliError('admin id-accounts provision needs --email <address> and --team <partner team>.');
238
+ const anyApp = v['any-app'] === true;
239
+ const apps = ((0, args_1.str)(v, 'app') ?? '').split(',').map((s) => s.trim()).filter(Boolean);
240
+ if (anyApp === (apps.length > 0))
241
+ throw new errors_1.CliError('Pass --app <id[,id…]> (the apps the account may sign in to) or --any-app, exactly one.');
242
+ if (anyApp && v['two-factor-exempt'] === true)
243
+ throw new errors_1.CliError('--two-factor-exempt needs named apps (--app), not --any-app.');
244
+ const passwordFile = (0, args_1.str)(v, 'password-file');
245
+ const body = {
246
+ email,
247
+ team,
248
+ ...(anyApp ? { any_app: true } : { app_ids: apps }),
249
+ email_verified: v.unverified !== true,
250
+ ...(passwordFile ? { password: readPasswordFile(ctx, passwordFile) } : {}),
251
+ ...(v['two-factor-exempt'] === true ? { two_factor_exempt: true } : {}),
252
+ ...expiryBody(v),
253
+ };
254
+ const created = await staff.write((http) => http.post(BASE, body));
255
+ const path = staff.deliverPassword(created, `The password for ${created.email ?? email}`);
256
+ emitAccount(ctx, args, created, path, `Created ${created.email ?? email} (${created.id}) for team ${team}${anyApp ? ', any Sign in with Atlas app' : ''}${created.expires_at ? `, expires ${(0, output_1.fmtTime)(created.expires_at)}` : ''}.`);
257
+ return 0;
258
+ }
259
+ case 'extend': {
260
+ const id = (0, shared_1.requireArg)(args.positionals, 3, 'account id');
261
+ const extended = await staff.write((http) => http.post(`${BASE}/${encodeURIComponent(id)}/extend`, expiryBody(v)));
262
+ emitAccount(ctx, args, extended, undefined, `${id} now expires ${extended.expires_at ? (0, output_1.fmtTime)(extended.expires_at) : 'never'}.`);
263
+ return 0;
264
+ }
265
+ case 'rotate': {
266
+ const id = (0, shared_1.requireArg)(args.positionals, 3, 'account id');
267
+ const passwordFile = (0, args_1.str)(v, 'password-file');
268
+ const rotated = await staff.write((http) => http.post(`${BASE}/${encodeURIComponent(id)}/password`, passwordFile ? { password: readPasswordFile(ctx, passwordFile) } : {}));
269
+ const path = staff.deliverPassword(rotated, `The new password for ${rotated.email ?? id}`);
270
+ emitAccount(ctx, args, rotated, path, 'Existing sessions stay signed in; revoke the account to end them.');
271
+ return 0;
272
+ }
273
+ case 'revoke': {
274
+ const id = (0, shared_1.requireArg)(args.positionals, 3, 'account id');
275
+ await staff.write((http) => http.delete(`${BASE}/${encodeURIComponent(id)}`));
276
+ if ((0, shared_1.wantsJson)(v))
277
+ (0, output_1.printJson)(ctx.io, { id, revoked: true });
278
+ else
279
+ ctx.io.out(`Revoked ${id}: the account is deleted and its sessions and grants end.`);
280
+ return 0;
281
+ }
282
+ default:
283
+ throw new errors_1.CliError(sub
284
+ ? `Unknown subcommand 'admin id-accounts ${sub}'. Try: list, provision, extend, rotate, revoke.`
285
+ : 'admin id-accounts needs a subcommand: list, provision, extend, rotate, revoke.');
286
+ }
287
+ }
288
+ async function developerAccountsCommand(ctx, args, staff) {
289
+ const v = args.values;
290
+ const sub = args.positionals[2];
291
+ switch (sub) {
292
+ case 'provision': {
293
+ const email = (0, args_1.str)(v, 'email');
294
+ const team = (0, args_1.str)(v, 'team');
295
+ if (!email || !team)
296
+ throw new errors_1.CliError('admin developer-accounts provision needs --email <address> and --team <partner team>.');
297
+ const passwordFile = (0, args_1.str)(v, 'password-file');
298
+ const body = {
299
+ email,
300
+ team,
301
+ ...((0, args_1.str)(v, 'account-name') ? { account_name: (0, args_1.str)(v, 'account-name') } : {}),
302
+ ...((0, args_1.str)(v, 'application-name') ? { application_name: (0, args_1.str)(v, 'application-name') } : {}),
303
+ ...(passwordFile ? { password: readPasswordFile(ctx, passwordFile) } : {}),
304
+ ...expiryBody(v),
305
+ };
306
+ const created = await staff.write((http) => http.post(DEVELOPER_BASE, body));
307
+ const path = staff.deliverPassword(created, `The password for ${created.email ?? email}`);
308
+ emitAccount(ctx, args, created, path, `Created developer account ${created.email ?? email} (${created.id}) for team ${team}${created.application ? `, owning ${created.application.name} (${created.application.id})` : ''}${created.expires_at ? `, expires ${(0, output_1.fmtTime)(created.expires_at)}` : ''}.`);
309
+ return 0;
310
+ }
311
+ case 'revoke': {
312
+ const id = (0, shared_1.requireArg)(args.positionals, 3, 'account id');
313
+ const out = await staff.write((http) => http.get(`${BASE}/${encodeURIComponent(id)}`).then(async (row) => {
314
+ if (row.kind !== 'developer')
315
+ throw new errors_1.CliError(`${id} is not a developer account; use 'atlas admin id-accounts revoke'.`);
316
+ await http.delete(`${BASE}/${encodeURIComponent(id)}`);
317
+ return row;
318
+ }));
319
+ if ((0, shared_1.wantsJson)(v))
320
+ (0, output_1.printJson)(ctx.io, { id, revoked: true, developer_account_id: out.developer_account_id });
321
+ else
322
+ ctx.io.out(`Revoked ${id}: the account is deleted, its sessions end, and its dashboard account goes when no one else is a member.`);
323
+ return 0;
324
+ }
325
+ default:
326
+ throw new errors_1.CliError(sub
327
+ ? `Unknown subcommand 'admin developer-accounts ${sub}'. Try: provision, revoke.`
328
+ : 'admin developer-accounts needs a subcommand: provision, revoke.');
329
+ }
330
+ }
331
+ /**
332
+ * `atlas admin id-accounts list|provision|extend|rotate|revoke` and
333
+ * `atlas admin developer-accounts provision|revoke`: Atlas STAFF provisioning
334
+ * Sign in with Atlas accounts for other platforms' integration teams.
335
+ *
336
+ * Credential: the operator sign-in (`atlas login --device`), exchanged for a
337
+ * one-hour token on Atlas's own account with `platform:atlas_id_apps:provision`.
338
+ * Writes need a second factor proved in the last 5 minutes; when the server
339
+ * says so, the CLI runs the operator sign-in again and retries once. Passwords
340
+ * come back sealed to a key pair made for the run and are written to 0600 files,
341
+ * never printed (unless --print-secret).
342
+ */
343
+ async function admin(ctx, args) {
344
+ const group = args.positionals[1];
345
+ if (group !== 'id-accounts' && group !== 'developer-accounts') {
346
+ throw new errors_1.CliError(group
347
+ ? `Unknown 'atlas admin ${group}'. Try: atlas admin id-accounts …, atlas admin developer-accounts ….`
348
+ : 'atlas admin needs a group: id-accounts or developer-accounts.');
349
+ }
350
+ const staff = new StaffSession(ctx, args);
351
+ return group === 'id-accounts' ? idAccountsCommand(ctx, args, staff) : developerAccountsCommand(ctx, args, staff);
352
+ }
353
+ //# sourceMappingURL=admin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin.js","sourceRoot":"","sources":["../../src/commands/admin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { type ParsedArgs } from '../args';
2
+ import type { RunContext } from '../context';
3
+ /**
4
+ * `atlas id-accounts provision|list|rotate|remove --app <app id>`: test and
5
+ * review accounts for a Sign in with Atlas app (a directory reviewer login, CI,
6
+ * a demo). Takes a platform key with `platform:atlas_id_apps:provision`, or a
7
+ * per-app key scoped `atlas_id_apps:<app id>:provision`.
8
+ *
9
+ * The password (yours, via `--password-file`, or one Atlas generates) is
10
+ * returned once. It is written to a 0600 file next to the CLI's other secrets
11
+ * and never printed, except with the explicit `--print-secret` opt-out.
12
+ */
13
+ export declare function idAccounts(ctx: RunContext, args: ParsedArgs): Promise<number>;