@miosa/cli 1.1.7 → 1.1.9
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/commands/login.d.ts +7 -0
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +21 -6
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/teams.d.ts.map +1 -1
- package/dist/commands/teams.js +24 -26
- package/dist/commands/teams.js.map +1 -1
- package/dist/commands/tenant.d.ts.map +1 -1
- package/dist/commands/tenant.js +11 -4
- package/dist/commands/tenant.js.map +1 -1
- package/package.json +1 -1
package/dist/commands/login.d.ts
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
1
|
import type { Command } from "commander";
|
|
2
|
+
import { loadConfig } from "../config.js";
|
|
3
|
+
export interface CliAuthTenant {
|
|
4
|
+
id?: string;
|
|
5
|
+
slug: string;
|
|
6
|
+
name?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function browserLogin(config: ReturnType<typeof loadConfig>, requestedTenant?: string): Promise<CliAuthTenant>;
|
|
2
9
|
export declare function register(program: Command): void;
|
|
3
10
|
//# sourceMappingURL=login.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,UAAU,EAA6B,MAAM,cAAc,CAAC;AA2BrE,MAAM,WAAW,aAAa;IAC5B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAiDD,wBAAsB,YAAY,CAChC,MAAM,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,EACrC,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,aAAa,CAAC,CAsIxB;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsJ/C"}
|
package/dist/commands/login.js
CHANGED
|
@@ -41,8 +41,11 @@ function cacheIdentity(tenant, config) {
|
|
|
41
41
|
cached_at: new Date().toISOString(),
|
|
42
42
|
});
|
|
43
43
|
}
|
|
44
|
-
async function browserLogin(config) {
|
|
45
|
-
const start = await postJson(config.endpoint, "/api/v1/auth/cli/start", {
|
|
44
|
+
export async function browserLogin(config, requestedTenant) {
|
|
45
|
+
const start = await postJson(config.endpoint, "/api/v1/auth/cli/start", {
|
|
46
|
+
client_name: "MIOSA CLI",
|
|
47
|
+
...(requestedTenant ? { tenant: requestedTenant } : {}),
|
|
48
|
+
});
|
|
46
49
|
if (start.status >= 400) {
|
|
47
50
|
throw new UserError(`Could not start CLI auth flow: HTTP ${start.status}`);
|
|
48
51
|
}
|
|
@@ -72,13 +75,24 @@ async function browserLogin(config) {
|
|
|
72
75
|
});
|
|
73
76
|
if (poll.status === 200 && poll.body.api_key) {
|
|
74
77
|
const apiKey = poll.body.api_key;
|
|
75
|
-
|
|
78
|
+
const mintedTenant = poll.body.tenant;
|
|
79
|
+
if (!mintedTenant?.slug) {
|
|
80
|
+
throw new UserError("The server did not identify the organization for this CLI key. Update the server and run miosa login again.");
|
|
81
|
+
}
|
|
82
|
+
// CLI keys are tenant-bound. Persist the exact tenant returned by the
|
|
83
|
+
// server so a prior context can never send this new key to a different
|
|
84
|
+
// organization through X-MIOSA-Tenant.
|
|
85
|
+
saveConfig({ api_key: apiKey, tenant: mintedTenant.slug });
|
|
76
86
|
// Fetch and cache identity for instant `whoami`. Cache failure is
|
|
77
87
|
// non-fatal — the key still works, `whoami` will refetch on demand.
|
|
78
88
|
let tenantName;
|
|
79
89
|
let tenantPlan;
|
|
80
90
|
try {
|
|
81
|
-
const freshConfig = {
|
|
91
|
+
const freshConfig = {
|
|
92
|
+
...config,
|
|
93
|
+
api_key: apiKey,
|
|
94
|
+
tenant: mintedTenant.slug,
|
|
95
|
+
};
|
|
82
96
|
const client = new MiosaClient(freshConfig);
|
|
83
97
|
const tenant = await client.getTenant();
|
|
84
98
|
cacheIdentity(tenant, freshConfig);
|
|
@@ -110,7 +124,7 @@ async function browserLogin(config) {
|
|
|
110
124
|
"miosa computers list",
|
|
111
125
|
]));
|
|
112
126
|
printElapsed(formatDuration(Date.now() - flowStart));
|
|
113
|
-
return;
|
|
127
|
+
return mintedTenant;
|
|
114
128
|
}
|
|
115
129
|
if (poll.status === 428 || poll.body.error === "authorization_pending") {
|
|
116
130
|
continue;
|
|
@@ -131,6 +145,7 @@ export function register(program) {
|
|
|
131
145
|
.description("Authenticate with MIOSA (opens browser by default)")
|
|
132
146
|
.option("--api-key <key>", "Authenticate with an explicit API key (msk_...)")
|
|
133
147
|
.option("--stdin", "Read API key from stdin (for piping: echo 'msk_...' | miosa login --stdin)")
|
|
148
|
+
.option("--tenant <tenant>", "Authorize this CLI session for a specific organization")
|
|
134
149
|
.action(async (opts) => {
|
|
135
150
|
// Inside a sandbox the CLI is pre-authenticated via env; block interactive login.
|
|
136
151
|
const sandboxId = process.env["MIOSA_SANDBOX_ID"];
|
|
@@ -168,7 +183,7 @@ export function register(program) {
|
|
|
168
183
|
else {
|
|
169
184
|
// TTY — browser OAuth flow
|
|
170
185
|
try {
|
|
171
|
-
await browserLogin(loadConfig());
|
|
186
|
+
await browserLogin(loadConfig(), opts.tenant);
|
|
172
187
|
}
|
|
173
188
|
catch (err) {
|
|
174
189
|
if (err instanceof UserError || err instanceof AuthError) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEpD,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EACL,MAAM,EACN,aAAa,EACb,SAAS,EACT,IAAI,EACJ,OAAO,EACP,YAAY,EACZ,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"teams.d.ts","sourceRoot":"","sources":["../../src/commands/teams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"teams.d.ts","sourceRoot":"","sources":["../../src/commands/teams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwDzC,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkK/C"}
|
package/dist/commands/teams.js
CHANGED
|
@@ -35,33 +35,33 @@ function fmtStatus(status) {
|
|
|
35
35
|
export function register(program) {
|
|
36
36
|
const teams = program
|
|
37
37
|
.command("teams")
|
|
38
|
-
.description("Manage
|
|
38
|
+
.description("Manage organization members and invitations");
|
|
39
39
|
// list
|
|
40
40
|
teams
|
|
41
41
|
.command("list")
|
|
42
|
-
.description("List
|
|
42
|
+
.description("List organization members")
|
|
43
43
|
.option("--json", "Output raw JSON")
|
|
44
44
|
.action(async (opts) => {
|
|
45
45
|
try {
|
|
46
46
|
const config = loadConfig();
|
|
47
47
|
const client = new MiosaClient(config);
|
|
48
|
-
const spinner = spin("Fetching
|
|
49
|
-
const rows = unwrapMembers(await client.apiGet("/api/v1/
|
|
48
|
+
const spinner = spin("Fetching organization members...");
|
|
49
|
+
const rows = unwrapMembers(await client.apiGet("/api/v1/tenant/members"));
|
|
50
50
|
spinner.stop();
|
|
51
51
|
if (opts.json) {
|
|
52
52
|
console.log(JSON.stringify(rows, null, 2));
|
|
53
53
|
return;
|
|
54
54
|
}
|
|
55
55
|
if (rows.length === 0) {
|
|
56
|
-
console.log(chalk.dim("No
|
|
56
|
+
console.log(chalk.dim("No organization members found."));
|
|
57
57
|
return;
|
|
58
58
|
}
|
|
59
59
|
renderTable(rows, [
|
|
60
60
|
{ header: "ID", key: (m) => m.id.slice(0, 12), width: 14 },
|
|
61
|
+
{ header: "USER ID", key: (m) => m.user_id.slice(0, 12), width: 14 },
|
|
61
62
|
{ header: "EMAIL", key: "email", width: 32 },
|
|
62
63
|
{ header: "NAME", key: (m) => m.name ?? chalk.dim("-"), width: 22 },
|
|
63
64
|
{ header: "ROLE", key: (m) => fmtRole(m.role), width: 10 },
|
|
64
|
-
{ header: "STATUS", key: (m) => fmtStatus(m.status), width: 10 },
|
|
65
65
|
]);
|
|
66
66
|
}
|
|
67
67
|
catch (err) {
|
|
@@ -71,32 +71,30 @@ export function register(program) {
|
|
|
71
71
|
// invite
|
|
72
72
|
teams
|
|
73
73
|
.command("invite <email>")
|
|
74
|
-
.description("Invite a user to the
|
|
75
|
-
.option("--role <role>", "Role to assign: admin or
|
|
74
|
+
.description("Invite a user to the organization")
|
|
75
|
+
.option("--role <role>", "Role to assign: owner, admin, member, or viewer", "member")
|
|
76
76
|
.option("--json", "Output raw JSON")
|
|
77
77
|
.action(async (email, opts) => {
|
|
78
78
|
try {
|
|
79
79
|
const role = opts.role;
|
|
80
|
-
if (
|
|
81
|
-
console.error(chalk.red(`Invalid role "${role}". Use: admin, member`));
|
|
80
|
+
if (!["owner", "admin", "member", "viewer"].includes(role)) {
|
|
81
|
+
console.error(chalk.red(`Invalid role "${role}". Use: owner, admin, member, viewer`));
|
|
82
82
|
process.exit(1);
|
|
83
83
|
}
|
|
84
84
|
const config = loadConfig();
|
|
85
85
|
const client = new MiosaClient(config);
|
|
86
86
|
const spinner = spin(`Inviting ${email}...`);
|
|
87
|
-
const invite = unwrapInvite(await client.apiPost("/api/v1/
|
|
87
|
+
const invite = unwrapInvite(await client.apiPost("/api/v1/tenant/members", { email, role }));
|
|
88
88
|
spinner.succeed(`Invited ${email}`);
|
|
89
89
|
if (opts.json) {
|
|
90
90
|
console.log(JSON.stringify(invite, null, 2));
|
|
91
91
|
return;
|
|
92
92
|
}
|
|
93
93
|
console.log();
|
|
94
|
-
console.log(` ${chalk.bold("ID")}
|
|
94
|
+
console.log(` ${chalk.bold("Invite ID")} ${invite.invite_id}`);
|
|
95
95
|
console.log(` ${chalk.bold("Email")} ${invite.email}`);
|
|
96
96
|
console.log(` ${chalk.bold("Role")} ${fmtRole(invite.role)}`);
|
|
97
97
|
console.log(` ${chalk.bold("Status")} ${fmtStatus(invite.status)}`);
|
|
98
|
-
if (invite.expires_at)
|
|
99
|
-
console.log(` ${chalk.bold("Expires")} ${invite.expires_at}`);
|
|
100
98
|
console.log();
|
|
101
99
|
}
|
|
102
100
|
catch (err) {
|
|
@@ -105,11 +103,11 @@ export function register(program) {
|
|
|
105
103
|
});
|
|
106
104
|
// remove
|
|
107
105
|
teams
|
|
108
|
-
.command("remove <
|
|
109
|
-
.description("Remove
|
|
106
|
+
.command("remove <member-id>")
|
|
107
|
+
.description("Remove an organization member")
|
|
110
108
|
.option("-f, --force", "Skip confirmation prompt")
|
|
111
109
|
.option("--json", "Output raw JSON")
|
|
112
|
-
.action(async (
|
|
110
|
+
.action(async (memberId, opts) => {
|
|
113
111
|
try {
|
|
114
112
|
if (!opts.force) {
|
|
115
113
|
const { default: inquirer } = await import("inquirer");
|
|
@@ -117,7 +115,7 @@ export function register(program) {
|
|
|
117
115
|
{
|
|
118
116
|
type: "confirm",
|
|
119
117
|
name: "ok",
|
|
120
|
-
message: chalk.red(`Remove member ${
|
|
118
|
+
message: chalk.red(`Remove organization member ${memberId}?`),
|
|
121
119
|
default: false,
|
|
122
120
|
},
|
|
123
121
|
]);
|
|
@@ -129,7 +127,7 @@ export function register(program) {
|
|
|
129
127
|
const config = loadConfig();
|
|
130
128
|
const client = new MiosaClient(config);
|
|
131
129
|
const spinner = spin("Removing member...");
|
|
132
|
-
const result = await client.apiDelete(`/api/v1/
|
|
130
|
+
const result = await client.apiDelete(`/api/v1/tenant/members/${encodeURIComponent(memberId)}`);
|
|
133
131
|
spinner.succeed("Member removed");
|
|
134
132
|
if (opts.json)
|
|
135
133
|
console.log(JSON.stringify(result ?? { ok: true }, null, 2));
|
|
@@ -140,26 +138,26 @@ export function register(program) {
|
|
|
140
138
|
});
|
|
141
139
|
// role
|
|
142
140
|
teams
|
|
143
|
-
.command("role <
|
|
144
|
-
.description("Update
|
|
141
|
+
.command("role <member-id> <role>")
|
|
142
|
+
.description("Update an organization member's role")
|
|
145
143
|
.option("--json", "Output raw JSON")
|
|
146
|
-
.action(async (
|
|
144
|
+
.action(async (memberId, role, opts) => {
|
|
147
145
|
try {
|
|
148
|
-
if (
|
|
149
|
-
console.error(chalk.red(`Invalid role "${role}". Use: admin, member`));
|
|
146
|
+
if (!["owner", "admin", "member", "viewer"].includes(role)) {
|
|
147
|
+
console.error(chalk.red(`Invalid role "${role}". Use: owner, admin, member, viewer`));
|
|
150
148
|
process.exit(1);
|
|
151
149
|
}
|
|
152
150
|
const config = loadConfig();
|
|
153
151
|
const client = new MiosaClient(config);
|
|
154
152
|
const spinner = spin(`Updating role to ${role}...`);
|
|
155
|
-
const result = await client.apiPatch(`/api/v1/
|
|
153
|
+
const result = await client.apiPatch(`/api/v1/tenant/members/${encodeURIComponent(memberId)}/role`, { role });
|
|
156
154
|
spinner.succeed(`Role updated to ${role}`);
|
|
157
155
|
if (opts.json) {
|
|
158
156
|
console.log(JSON.stringify(result, null, 2));
|
|
159
157
|
return;
|
|
160
158
|
}
|
|
161
159
|
console.log();
|
|
162
|
-
console.log(` ${chalk.bold("
|
|
160
|
+
console.log(` ${chalk.bold("Member")} ${memberId}`);
|
|
163
161
|
console.log(` ${chalk.bold("Role")} ${fmtRole(role)}`);
|
|
164
162
|
console.log();
|
|
165
163
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"teams.js","sourceRoot":"","sources":["../../src/commands/teams.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"teams.js","sourceRoot":"","sources":["../../src/commands/teams.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAkBxC,SAAS,aAAa,CACpB,GAEwB;IAExB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IACnC,OAAO,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;AACvC,CAAC;AAED,SAAS,YAAY,CACnB,GAEsB;IAEtB,IAAI,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI;QAAE,OAAO,GAAG,CAAC,IAAI,CAAC;IAC/C,IAAI,QAAQ,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM;QAAE,OAAO,GAAG,CAAC,MAAM,CAAC;IACrD,OAAO,GAAyB,CAAC;AACnC,CAAC;AAED,SAAS,OAAO,CAAC,IAAwB;IACvC,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAChD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,SAAS,CAAC,MAA0B;IAC3C,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,MAAM,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACpD,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpD,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAgB;IACvC,MAAM,KAAK,GAAG,OAAO;SAClB,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,6CAA6C,CAAC,CAAC;IAE9D,OAAO;IACP,KAAK;SACF,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,2BAA2B,CAAC;SACxC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,CAAC;SACnC,MAAM,CAAC,KAAK,EAAE,IAAwB,EAAE,EAAE;QACzC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;YACvC,MAAM,OAAO,GAAG,IAAI,CAAC,kCAAkC,CAAC,CAAC;YACzD,MAAM,IAAI,GAAG,aAAa,CACxB,MAAM,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAC9C,CAAC;YACF,OAAO,CAAC,IAAI,EAAE,CAAC;YAEf,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC3C,OAAO;YACT,CAAC;YAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC,CAAC;gBACzD,OAAO;YACT,CAAC;YAED,WAAW,CAAC,IAAI,EAAE;gBAChB,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;gBAC1D,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;gBACpE,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;gBAC5C,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;gBACnE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;aAC3D,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,SAAS;IACT,KAAK;SACF,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CAAC,mCAAmC,CAAC;SAChD,MAAM,CACL,eAAe,EACf,iDAAiD,EACjD,QAAQ,CACT;SACA,MAAM,CAAC,QAAQ,EAAE,iBAAiB,CAAC;SACnC,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,IAAsC,EAAE,EAAE;QACtE,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACvB,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3D,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CAAC,iBAAiB,IAAI,sCAAsC,CAAC,CACvE,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;YACvC,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAG,YAAY,CACzB,MAAM,MAAM,CAAC,OAAO,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAChE,CAAC;YACF,OAAO,CAAC,OAAO,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC;YAEpC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC7C,OAAO;YACT,CAAC;YAED,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;YAChE,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YAC1D,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClE,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACtE,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,SAAS;IACT,KAAK;SACF,OAAO,CAAC,oBAAoB,CAAC;SAC7B,WAAW,CAAC,+BAA+B,CAAC;SAC5C,MAAM,CAAC,aAAa,EAAE,0BAA0B,CAAC;SACjD,MAAM,CAAC,QAAQ,EAAE,iBAAiB,CAAC;SACnC,MAAM,CACL,KAAK,EAAE,QAAgB,EAAE,IAAyC,EAAE,EAAE;QACpE,IAAI,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBAChB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;gBACvD,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAkB;oBACpD;wBACE,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,IAAI;wBACV,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,8BAA8B,QAAQ,GAAG,CAAC;wBAC7D,OAAO,EAAE,KAAK;qBACf;iBACF,CAAC,CAAC;gBACH,IAAI,CAAC,EAAE,EAAE,CAAC;oBACR,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;oBACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;YAED,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;YACvC,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAC3C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CACnC,0BAA0B,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CACzD,CAAC;YACF,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;YAClC,IAAI,IAAI,CAAC,IAAI;gBACX,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACjE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CACF,CAAC;IAEJ,OAAO;IACP,KAAK;SACF,OAAO,CAAC,yBAAyB,CAAC;SAClC,WAAW,CAAC,sCAAsC,CAAC;SACnD,MAAM,CAAC,QAAQ,EAAE,iBAAiB,CAAC;SACnC,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,IAAY,EAAE,IAAwB,EAAE,EAAE;QACzE,IAAI,CAAC;YACH,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3D,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CAAC,iBAAiB,IAAI,sCAAsC,CAAC,CACvE,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;YACvC,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,IAAI,KAAK,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAClC,0BAA0B,kBAAkB,CAAC,QAAQ,CAAC,OAAO,EAC7D,EAAE,IAAI,EAAE,CACT,CAAC;YACF,OAAO,CAAC,OAAO,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC;YAE3C,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC7C,OAAO;YACT,CAAC;YAED,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACzD,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenant.d.ts","sourceRoot":"","sources":["../../src/commands/tenant.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"tenant.d.ts","sourceRoot":"","sources":["../../src/commands/tenant.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4BzC,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyG/C"}
|
package/dist/commands/tenant.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
2
|
import { loadConfig, saveConfigForActiveContext } from "../config.js";
|
|
3
3
|
import { MiosaClient } from "../client.js";
|
|
4
|
+
import { browserLogin } from "./login.js";
|
|
4
5
|
import { renderTable } from "../ui/table.js";
|
|
5
6
|
import { spin } from "../ui/spinner.js";
|
|
6
7
|
import { handleError } from "./util.js";
|
|
@@ -55,11 +56,12 @@ export function register(program) {
|
|
|
55
56
|
handleError(err);
|
|
56
57
|
}
|
|
57
58
|
});
|
|
58
|
-
//
|
|
59
|
-
//
|
|
59
|
+
// CLI API keys are deliberately tenant-bound. Switching organizations must
|
|
60
|
+
// mint a fresh personal key through the browser, not just rewrite a header
|
|
61
|
+
// and pretend the existing key can cross an organization boundary.
|
|
60
62
|
tenant
|
|
61
63
|
.command("switch <slug>")
|
|
62
|
-
.description("
|
|
64
|
+
.description("Authorize and switch this CLI to another organization")
|
|
63
65
|
.option("--json", "Output raw JSON")
|
|
64
66
|
.action(async (slug, opts) => {
|
|
65
67
|
try {
|
|
@@ -74,8 +76,13 @@ export function register(program) {
|
|
|
74
76
|
console.error(chalk.dim(` Available tenants: ${rows.map((t) => t.slug).join(", ") || "(none)"}`));
|
|
75
77
|
process.exit(1);
|
|
76
78
|
}
|
|
79
|
+
spinner.stop();
|
|
80
|
+
const authorizedTenant = await browserLogin({ ...config, tenant: null, workspace: null }, match.slug);
|
|
81
|
+
if (authorizedTenant.slug !== match.slug) {
|
|
82
|
+
throw new Error(`CLI authorization returned ${authorizedTenant.slug}, expected ${match.slug}`);
|
|
83
|
+
}
|
|
77
84
|
saveConfigForActiveContext({ tenant: match.slug });
|
|
78
|
-
spinner.succeed(`
|
|
85
|
+
spinner.succeed(`Authorized for tenant ${chalk.bold(match.name)} (${match.slug})`);
|
|
79
86
|
if (opts.json) {
|
|
80
87
|
console.log(JSON.stringify({ tenant_id: match.id, slug: match.slug }, null, 2));
|
|
81
88
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenant.js","sourceRoot":"","sources":["../../src/commands/tenant.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tenant.js","sourceRoot":"","sources":["../../src/commands/tenant.ts"],"names":[],"mappings":"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"}
|