tapimo 0.18.0 → 0.18.2
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/apps/data/App.d.ts +10 -10
- package/dist/apps/data/routes/indexer.d.ts +10 -10
- package/dist/cli/ApiKeys.d.ts +5 -0
- package/dist/cli/ApiKeys.d.ts.map +1 -1
- package/dist/cli/ApiKeys.js +13 -0
- package/dist/cli/ApiKeys.js.map +1 -1
- package/dist/cli/Cli.js +14 -0
- package/dist/cli/Cli.js.map +1 -1
- package/dist/cli/bin.js +2 -1
- package/dist/cli/bin.js.map +1 -1
- package/dist/cli/commands/keys.d.ts +24 -1
- package/dist/cli/commands/keys.d.ts.map +1 -1
- package/dist/cli/commands/keys.js +32 -5
- package/dist/cli/commands/keys.js.map +1 -1
- package/package.json +1 -1
- package/src/cli/ApiKeys.ts +17 -0
- package/src/cli/Cli.test.ts +39 -0
- package/src/cli/Cli.ts +12 -0
- package/src/cli/bin.test.ts +5 -0
- package/src/cli/bin.ts +2 -1
- package/src/cli/commands/keys.test.ts +44 -1
- package/src/cli/commands/keys.ts +57 -7
package/dist/apps/data/App.d.ts
CHANGED
|
@@ -308,16 +308,6 @@ export declare function data(options?: data.Options): import("hono/hono-base").H
|
|
|
308
308
|
outputFormat: "body";
|
|
309
309
|
status: 402;
|
|
310
310
|
input: {};
|
|
311
|
-
} | {
|
|
312
|
-
output: "event: result\ndata: {\"ok\":true,\"columns\":[],\"rows\":[],\"row_count\":0}\n\n";
|
|
313
|
-
outputFormat: "text";
|
|
314
|
-
status: 200;
|
|
315
|
-
input: {};
|
|
316
|
-
} | {
|
|
317
|
-
output: never;
|
|
318
|
-
outputFormat: never;
|
|
319
|
-
status: never;
|
|
320
|
-
input: {};
|
|
321
311
|
} | {
|
|
322
312
|
output: {
|
|
323
313
|
error: {
|
|
@@ -450,6 +440,16 @@ export declare function data(options?: data.Options): import("hono/hono-base").H
|
|
|
450
440
|
outputFormat: "json";
|
|
451
441
|
status: 504;
|
|
452
442
|
input: {};
|
|
443
|
+
} | {
|
|
444
|
+
output: "event: result\ndata: {\"ok\":true,\"columns\":[],\"rows\":[],\"row_count\":0}\n\n";
|
|
445
|
+
outputFormat: "text";
|
|
446
|
+
status: 200;
|
|
447
|
+
input: {};
|
|
448
|
+
} | {
|
|
449
|
+
output: never;
|
|
450
|
+
outputFormat: never;
|
|
451
|
+
status: never;
|
|
452
|
+
input: {};
|
|
453
453
|
};
|
|
454
454
|
};
|
|
455
455
|
}, "/"> | import("hono/types").MergeSchemaPath<{
|
|
@@ -94,6 +94,16 @@ export declare function indexer(): import("hono/hono-base").HonoBase<App.Environ
|
|
|
94
94
|
outputFormat: "body";
|
|
95
95
|
status: 402;
|
|
96
96
|
input: {};
|
|
97
|
+
} | {
|
|
98
|
+
output: "event: result\ndata: {\"ok\":true,\"columns\":[],\"rows\":[],\"row_count\":0}\n\n";
|
|
99
|
+
outputFormat: "text";
|
|
100
|
+
status: 200;
|
|
101
|
+
input: {};
|
|
102
|
+
} | {
|
|
103
|
+
output: never;
|
|
104
|
+
outputFormat: never;
|
|
105
|
+
status: never;
|
|
106
|
+
input: {};
|
|
97
107
|
} | {
|
|
98
108
|
output: {
|
|
99
109
|
error: {
|
|
@@ -226,16 +236,6 @@ export declare function indexer(): import("hono/hono-base").HonoBase<App.Environ
|
|
|
226
236
|
outputFormat: "json";
|
|
227
237
|
status: 504;
|
|
228
238
|
input: {};
|
|
229
|
-
} | {
|
|
230
|
-
output: "event: result\ndata: {\"ok\":true,\"columns\":[],\"rows\":[],\"row_count\":0}\n\n";
|
|
231
|
-
outputFormat: "text";
|
|
232
|
-
status: 200;
|
|
233
|
-
input: {};
|
|
234
|
-
} | {
|
|
235
|
-
output: never;
|
|
236
|
-
outputFormat: never;
|
|
237
|
-
status: never;
|
|
238
|
-
input: {};
|
|
239
239
|
};
|
|
240
240
|
};
|
|
241
241
|
}, "/", "/v1/indexer/query">;
|
package/dist/cli/ApiKeys.d.ts
CHANGED
|
@@ -115,6 +115,11 @@ export declare namespace resolve {
|
|
|
115
115
|
sourceKeyId?: string | undefined;
|
|
116
116
|
};
|
|
117
117
|
}
|
|
118
|
+
/**
|
|
119
|
+
* Returns the one stored inferred key matching the options, without contacting the API, or
|
|
120
|
+
* `undefined` when none or several match.
|
|
121
|
+
*/
|
|
122
|
+
export declare function cached(session: Credentials.Session, options: resolve.Options): string | undefined;
|
|
118
123
|
/** Revokes inferred keys before forgetting or replacing a CLI session. */
|
|
119
124
|
export declare function revoke(context: Auth.Context, session: Credentials.Session): Promise<boolean>;
|
|
120
125
|
//# sourceMappingURL=ApiKeys.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiKeys.d.ts","sourceRoot":"","sources":["../../src/cli/ApiKeys.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAC/C,OAAO,KAAK,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAIpD,wFAAwF;AACxF,wBAAgB,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCAetE;AAwHD,MAAM,CAAC,OAAO,WAAW,OAAO,CAAC;IAC/B,mEAAmE;IACnE,KAAK,OAAO,GAAG;QACb,mDAAmD;QACnD,WAAW,CAAC,EAAE,YAAY,GAAG,SAAS,GAAG,SAAS,CAAA;QAClD,2DAA2D;QAC3D,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC1B,0DAA0D;QAC1D,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC9B,wCAAwC;QACxC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;QACzB,+EAA+E;QAC/E,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KACjC,CAAA;CACF;AAED,0EAA0E;AAC1E,wBAAsB,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,oBAmB/E"}
|
|
1
|
+
{"version":3,"file":"ApiKeys.d.ts","sourceRoot":"","sources":["../../src/cli/ApiKeys.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAC/C,OAAO,KAAK,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAIpD,wFAAwF;AACxF,wBAAgB,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCAetE;AAwHD,MAAM,CAAC,OAAO,WAAW,OAAO,CAAC;IAC/B,mEAAmE;IACnE,KAAK,OAAO,GAAG;QACb,mDAAmD;QACnD,WAAW,CAAC,EAAE,YAAY,GAAG,SAAS,GAAG,SAAS,CAAA;QAClD,2DAA2D;QAC3D,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC1B,0DAA0D;QAC1D,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC9B,wCAAwC;QACxC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;QACzB,+EAA+E;QAC/E,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KACjC,CAAA;CACF;AAED;;;GAGG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,sBAW5E;AAED,0EAA0E;AAC1E,wBAAsB,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,oBAmB/E"}
|
package/dist/cli/ApiKeys.js
CHANGED
|
@@ -113,6 +113,19 @@ async function resolveKey(context, options) {
|
|
|
113
113
|
});
|
|
114
114
|
return key.token;
|
|
115
115
|
}
|
|
116
|
+
/**
|
|
117
|
+
* Returns the one stored inferred key matching the options, without contacting the API, or
|
|
118
|
+
* `undefined` when none or several match.
|
|
119
|
+
*/
|
|
120
|
+
export function cached(session, options) {
|
|
121
|
+
const environment = options.environment ?? 'production';
|
|
122
|
+
const matches = (session.apiKeys ?? []).filter((key) => key.environment === environment &&
|
|
123
|
+
(!options.orgId || key.orgId === options.orgId) &&
|
|
124
|
+
(!options.projectId || key.projectId === options.projectId) &&
|
|
125
|
+
(!key.expiresAt || Date.parse(key.expiresAt) > Date.now()) &&
|
|
126
|
+
options.scopes.every((scope) => key.scopes.includes(scope)));
|
|
127
|
+
return matches.length === 1 ? matches[0].token : undefined;
|
|
128
|
+
}
|
|
116
129
|
/** Revokes inferred keys before forgetting or replacing a CLI session. */
|
|
117
130
|
export async function revoke(context, session) {
|
|
118
131
|
const keys = session.apiKeys ?? [];
|
package/dist/cli/ApiKeys.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiKeys.js","sourceRoot":"","sources":["../../src/cli/ApiKeys.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ApiKeys.js","sourceRoot":"","sources":["../../src/cli/ApiKeys.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/Cli.js
CHANGED
|
@@ -163,6 +163,20 @@ function source(parameters) {
|
|
|
163
163
|
if (inferred)
|
|
164
164
|
headers.set('tempo-api-key', inferred);
|
|
165
165
|
}
|
|
166
|
+
// Signed-in reads of public data use the session's key for project rate limits and attribution.
|
|
167
|
+
else if (lanes?.apiKey) {
|
|
168
|
+
const inferred = await (async () => {
|
|
169
|
+
const session = await credentials.get(apiUrl);
|
|
170
|
+
if (!session)
|
|
171
|
+
return undefined;
|
|
172
|
+
const options = { environment, orgId, projectId, scopes: lanes.scopes, sourceKeyId };
|
|
173
|
+
// A stored key skips the account lookups, so every data command stays fast.
|
|
174
|
+
return ApiKeys.cached(session, options) ?? (await ApiKeys.resolve(context, options));
|
|
175
|
+
})().catch(() => undefined);
|
|
176
|
+
// Any failure to infer one keeps today's anonymous access rather than failing the read.
|
|
177
|
+
if (typeof inferred === 'string')
|
|
178
|
+
headers.set('tempo-api-key', inferred);
|
|
179
|
+
}
|
|
166
180
|
// Sending nothing (or an API key) would earn an unhelpful 401 or 403.
|
|
167
181
|
else if (lanes?.session && !lanes.apiKey && !lanes.public) {
|
|
168
182
|
const message = `Not signed in, or the session expired. Run \`${name} login\`.`;
|
package/dist/cli/Cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cli.js","sourceRoot":"","sources":["../../src/cli/Cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Cli.js","sourceRoot":"","sources":["../../src/cli/Cli.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/bin.js
CHANGED
|
@@ -4,5 +4,6 @@ import * as Admin from './commands/admin.js';
|
|
|
4
4
|
// Admin commands only need the database, so they never wait on the hosted API document.
|
|
5
5
|
const admin = process.argv[2] === 'admin';
|
|
6
6
|
const cli = await Cli.fromEnv(process.env, admin ? { openapi: { paths: {} } } : {});
|
|
7
|
-
|
|
7
|
+
// Bare `tapimo` shows help; incur would otherwise send `GET /` through its request gateway.
|
|
8
|
+
await cli.command(Admin.admin).serve(process.argv.length > 2 ? undefined : ['--help']);
|
|
8
9
|
//# sourceMappingURL=bin.js.map
|
package/dist/cli/bin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../../src/cli/bin.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAC/B,OAAO,KAAK,KAAK,MAAM,qBAAqB,CAAA;AAE5C,wFAAwF;AACxF,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,CAAA;AACzC,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;AACnF,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../../src/cli/bin.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAC/B,OAAO,KAAK,KAAK,MAAM,qBAAqB,CAAA;AAE5C,wFAAwF;AACxF,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,CAAA;AACzC,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;AACnF,4FAA4F;AAC5F,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Cli as incur_Cli } from 'incur';
|
|
2
2
|
import * as Auth from './auth.js';
|
|
3
3
|
/** API-key commands that act through the stored CLI session. */
|
|
4
|
-
export declare function keys(context:
|
|
4
|
+
export declare function keys(context: keys.Options): incur_Cli.Cli<{
|
|
5
5
|
create: {
|
|
6
6
|
args: {};
|
|
7
7
|
options: {
|
|
@@ -14,4 +14,27 @@ export declare function keys(context: Auth.Context): incur_Cli.Cli<{
|
|
|
14
14
|
};
|
|
15
15
|
};
|
|
16
16
|
}, undefined, undefined, undefined, "keys">;
|
|
17
|
+
export declare namespace keys {
|
|
18
|
+
/** Options for {@link keys}. */
|
|
19
|
+
type Options = Auth.Context & {
|
|
20
|
+
/** Picks one of several organizations or projects, or returns `undefined` to list them in the error. @default a numbered prompt in an interactive terminal */
|
|
21
|
+
select?: ((options: select.Options) => Promise<string | undefined>) | undefined;
|
|
22
|
+
};
|
|
23
|
+
namespace select {
|
|
24
|
+
/** What {@link keys.Options.select} chooses between. */
|
|
25
|
+
type Options = {
|
|
26
|
+
/** Whether the output is for an agent or script rather than a person. */
|
|
27
|
+
agent: boolean;
|
|
28
|
+
/** Candidates, in API order. */
|
|
29
|
+
choices: readonly Choice[];
|
|
30
|
+
/** Singular noun for the prompt (`project`). */
|
|
31
|
+
label: string;
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
type Choice = {
|
|
36
|
+
id: string;
|
|
37
|
+
name: string;
|
|
38
|
+
};
|
|
39
|
+
export {};
|
|
17
40
|
//# sourceMappingURL=keys.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/keys.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/keys.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,IAAI,SAAS,EAAK,MAAM,OAAO,CAAA;AAE3C,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAEjC,gEAAgE;AAChE,wBAAgB,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO;;;;;;;;;;;;4CA0HzC;AAED,MAAM,CAAC,OAAO,WAAW,IAAI,CAAC;IAC5B,gCAAgC;IAChC,KAAK,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG;QAC5B,8JAA8J;QAC9J,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,GAAG,SAAS,CAAA;KAChF,CAAA;IAED,UAAU,MAAM,CAAC;QACf,wDAAwD;QACxD,KAAK,OAAO,GAAG;YACb,yEAAyE;YACzE,KAAK,EAAE,OAAO,CAAA;YACd,gCAAgC;YAChC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;YAC1B,gDAAgD;YAChD,KAAK,EAAE,MAAM,CAAA;SACd,CAAA;KACF;CACF;AAED,KAAK,MAAM,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import * as readline from 'node:readline/promises';
|
|
1
2
|
import { Cli as incur_Cli, z } from 'incur';
|
|
2
3
|
import * as Auth from './auth.js';
|
|
3
4
|
/** API-key commands that act through the stored CLI session. */
|
|
4
5
|
export function keys(context) {
|
|
5
|
-
const { api, apiUrl, credentials } = context;
|
|
6
|
+
const { api, apiUrl, credentials, select = selectInTerminal } = context;
|
|
6
7
|
// Maps an API failure to a CLI error; an expired session also forgets the stored token.
|
|
7
8
|
async function failure(response) {
|
|
8
9
|
if (response.status === 401) {
|
|
@@ -56,7 +57,10 @@ export function keys(context) {
|
|
|
56
57
|
if (orgs && orgs.status !== 200)
|
|
57
58
|
return c.error(await failure(orgs));
|
|
58
59
|
const orgChoices = orgs ? (await orgs.json()).data : [];
|
|
59
|
-
const orgId = c.options.org ??
|
|
60
|
+
const orgId = c.options.org ??
|
|
61
|
+
(orgChoices.length > 1
|
|
62
|
+
? await select({ agent: c.agent, choices: orgChoices, label: 'organization' })
|
|
63
|
+
: orgChoices[0]?.id);
|
|
60
64
|
if (!orgId)
|
|
61
65
|
return c.error(orgChoices.length === 0
|
|
62
66
|
? { code: 'no_organizations', message: 'Create an organization in the Tempo console first.' } // prettier-ignore
|
|
@@ -68,7 +72,10 @@ export function keys(context) {
|
|
|
68
72
|
if (projects && projects.status !== 200)
|
|
69
73
|
return c.error(await failure(projects));
|
|
70
74
|
const projectChoices = projects ? (await projects.json()).data : [];
|
|
71
|
-
const projectId = c.options.project ??
|
|
75
|
+
const projectId = c.options.project ??
|
|
76
|
+
(projectChoices.length > 1
|
|
77
|
+
? await select({ agent: c.agent, choices: projectChoices, label: 'project' })
|
|
78
|
+
: projectChoices[0]?.id);
|
|
72
79
|
if (!projectId)
|
|
73
80
|
return c.error(projectChoices.length === 0
|
|
74
81
|
? { code: 'no_projects', message: 'Create a project in the Tempo console first.' }
|
|
@@ -96,8 +103,8 @@ export function keys(context) {
|
|
|
96
103
|
token: key.token,
|
|
97
104
|
}, {
|
|
98
105
|
cta: {
|
|
99
|
-
commands: [{ command: 'v1
|
|
100
|
-
description: 'Store the token now; it is not shown again.',
|
|
106
|
+
commands: [{ command: 'v1 --help', description: 'Call the API; the CLI uses your sign-in' }], // prettier-ignore
|
|
107
|
+
description: 'Store the token for your app now; it is not shown again.',
|
|
101
108
|
},
|
|
102
109
|
});
|
|
103
110
|
},
|
|
@@ -106,4 +113,24 @@ export function keys(context) {
|
|
|
106
113
|
function describe(choices) {
|
|
107
114
|
return choices.map(({ id, name }) => `${id} (${name})`).join(', ');
|
|
108
115
|
}
|
|
116
|
+
async function selectInTerminal(options) {
|
|
117
|
+
const { agent, choices, label } = options;
|
|
118
|
+
// Agents and scripts get the choices in the error rather than a prompt that would wait forever.
|
|
119
|
+
if (agent || !process.stdin.isTTY || !process.stderr.isTTY)
|
|
120
|
+
return undefined;
|
|
121
|
+
// The prompt writes to stderr so stdout keeps only the command's result.
|
|
122
|
+
const prompt = readline.createInterface({ input: process.stdin, output: process.stderr });
|
|
123
|
+
try {
|
|
124
|
+
process.stderr.write(`Select a ${label}:\n${choices.map(({ id, name }, index) => ` ${index + 1}) ${name} ${id}`).join('\n')}\n`);
|
|
125
|
+
for (;;) {
|
|
126
|
+
const answer = (await prompt.question(`${label} [1-${choices.length}]: `)).trim();
|
|
127
|
+
const choice = choices[Number(answer) - 1] ?? choices.find(({ id }) => id === answer);
|
|
128
|
+
if (choice)
|
|
129
|
+
return choice.id;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
finally {
|
|
133
|
+
prompt.close();
|
|
134
|
+
}
|
|
135
|
+
}
|
|
109
136
|
//# sourceMappingURL=keys.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../src/cli/commands/keys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,IAAI,SAAS,EAAE,CAAC,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAEjC,gEAAgE;AAChE,MAAM,UAAU,IAAI,CAAC,OAAqB;IACxC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../src/cli/commands/keys.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/cli/ApiKeys.ts
CHANGED
|
@@ -156,6 +156,23 @@ export declare namespace resolve {
|
|
|
156
156
|
}
|
|
157
157
|
}
|
|
158
158
|
|
|
159
|
+
/**
|
|
160
|
+
* Returns the one stored inferred key matching the options, without contacting the API, or
|
|
161
|
+
* `undefined` when none or several match.
|
|
162
|
+
*/
|
|
163
|
+
export function cached(session: Credentials.Session, options: resolve.Options) {
|
|
164
|
+
const environment = options.environment ?? 'production'
|
|
165
|
+
const matches = (session.apiKeys ?? []).filter(
|
|
166
|
+
(key) =>
|
|
167
|
+
key.environment === environment &&
|
|
168
|
+
(!options.orgId || key.orgId === options.orgId) &&
|
|
169
|
+
(!options.projectId || key.projectId === options.projectId) &&
|
|
170
|
+
(!key.expiresAt || Date.parse(key.expiresAt) > Date.now()) &&
|
|
171
|
+
options.scopes.every((scope) => key.scopes.includes(scope)),
|
|
172
|
+
)
|
|
173
|
+
return matches.length === 1 ? matches[0]!.token : undefined
|
|
174
|
+
}
|
|
175
|
+
|
|
159
176
|
/** Revokes inferred keys before forgetting or replacing a CLI session. */
|
|
160
177
|
export async function revoke(context: Auth.Context, session: Credentials.Session) {
|
|
161
178
|
const keys = session.apiKeys ?? []
|
package/src/cli/Cli.test.ts
CHANGED
|
@@ -205,6 +205,45 @@ describe('from', () => {
|
|
|
205
205
|
}
|
|
206
206
|
})
|
|
207
207
|
|
|
208
|
+
test('signs public data reads with the session key, falling back to anonymous access', async () => {
|
|
209
|
+
const context = await TestCli.create()
|
|
210
|
+
const sent = () =>
|
|
211
|
+
context.requests.findLast((request) => new URL(request.url).pathname === '/v1/tokens')!
|
|
212
|
+
const tokens = () => TestCli.serve(context.cli, ['v1', 'tokens', 'get', '--format', 'json'])
|
|
213
|
+
|
|
214
|
+
// Signed out: anonymous, as before.
|
|
215
|
+
await tokens()
|
|
216
|
+
expect(sent().headers.has('tempo-api-key')).toBe(false)
|
|
217
|
+
|
|
218
|
+
// Signed in without a project: inference fails, so the read stays anonymous.
|
|
219
|
+
const { cookie } = await TestCli.login(context, { scopes: ['data:read'] })
|
|
220
|
+
await tokens()
|
|
221
|
+
expect(sent().headers.has('tempo-api-key')).toBe(false)
|
|
222
|
+
|
|
223
|
+
const headers = { 'content-type': 'application/json', cookie }
|
|
224
|
+
const org = (await (
|
|
225
|
+
await context.app.request('/v1/orgs', { body: '{"name":"Acme"}', headers, method: 'POST' })
|
|
226
|
+
).json()) as { id: string }
|
|
227
|
+
await context.app.request(`/v1/orgs/${org.id}/projects`, {
|
|
228
|
+
body: '{"name":"Checkout"}',
|
|
229
|
+
headers,
|
|
230
|
+
method: 'POST',
|
|
231
|
+
})
|
|
232
|
+
|
|
233
|
+
// Signed in with one project: the CLI infers a scoped key and sends it.
|
|
234
|
+
await tokens()
|
|
235
|
+
const key = sent().headers.get('tempo-api-key')
|
|
236
|
+
expect(key).toMatch(/^tempo:sk:/)
|
|
237
|
+
|
|
238
|
+
// The stored key is reused without account lookups.
|
|
239
|
+
const before = context.requests.length
|
|
240
|
+
await tokens()
|
|
241
|
+
expect(sent().headers.get('tempo-api-key')).toBe(key)
|
|
242
|
+
expect(context.requests.slice(before).map((request) => new URL(request.url).pathname)).toEqual([
|
|
243
|
+
'/v1/tokens',
|
|
244
|
+
])
|
|
245
|
+
})
|
|
246
|
+
|
|
208
247
|
test('sends the API key only to operations that accept one', async () => {
|
|
209
248
|
const context = await TestCli.create({ apiKey: TestApp.key.token })
|
|
210
249
|
const sent = (pathname: string) =>
|
package/src/cli/Cli.ts
CHANGED
|
@@ -261,6 +261,18 @@ function source(parameters: source.Parameters): Fetch.RequestSource {
|
|
|
261
261
|
if (inferred && typeof inferred !== 'string') return inferred as Response
|
|
262
262
|
if (inferred) headers.set('tempo-api-key', inferred)
|
|
263
263
|
}
|
|
264
|
+
// Signed-in reads of public data use the session's key for project rate limits and attribution.
|
|
265
|
+
else if (lanes?.apiKey) {
|
|
266
|
+
const inferred = await (async () => {
|
|
267
|
+
const session = await credentials.get(apiUrl)
|
|
268
|
+
if (!session) return undefined
|
|
269
|
+
const options = { environment, orgId, projectId, scopes: lanes.scopes, sourceKeyId }
|
|
270
|
+
// A stored key skips the account lookups, so every data command stays fast.
|
|
271
|
+
return ApiKeys.cached(session, options) ?? (await ApiKeys.resolve(context, options))
|
|
272
|
+
})().catch(() => undefined)
|
|
273
|
+
// Any failure to infer one keeps today's anonymous access rather than failing the read.
|
|
274
|
+
if (typeof inferred === 'string') headers.set('tempo-api-key', inferred)
|
|
275
|
+
}
|
|
264
276
|
// Sending nothing (or an API key) would earn an unhelpful 401 or 403.
|
|
265
277
|
else if (lanes?.session && !lanes.apiKey && !lanes.public) {
|
|
266
278
|
const message = `Not signed in, or the session expired. Run \`${name} login\`.`
|
package/src/cli/bin.test.ts
CHANGED
|
@@ -19,6 +19,11 @@ describe('tapimo', () => {
|
|
|
19
19
|
|
|
20
20
|
await tapimo(['--help'], api.url)
|
|
21
21
|
expect(api.requests).toEqual(['/openapi.json'])
|
|
22
|
+
|
|
23
|
+
// A bare run shows help instead of requesting the API root.
|
|
24
|
+
const { stdout } = await tapimo([], api.url)
|
|
25
|
+
expect(stdout).toContain('Usage: tapimo <command>')
|
|
26
|
+
expect(api.requests).toEqual(['/openapi.json', '/openapi.json'])
|
|
22
27
|
} finally {
|
|
23
28
|
api.server.close()
|
|
24
29
|
}
|
package/src/cli/bin.ts
CHANGED
|
@@ -5,4 +5,5 @@ import * as Admin from './commands/admin.js'
|
|
|
5
5
|
// Admin commands only need the database, so they never wait on the hosted API document.
|
|
6
6
|
const admin = process.argv[2] === 'admin'
|
|
7
7
|
const cli = await Cli.fromEnv(process.env, admin ? { openapi: { paths: {} } } : {})
|
|
8
|
-
|
|
8
|
+
// Bare `tapimo` shows help; incur would otherwise send `GET /` through its request gateway.
|
|
9
|
+
await cli.command(Admin.admin).serve(process.argv.length > 2 ? undefined : ['--help'])
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
+
import { Cli as incur_Cli } from 'incur'
|
|
2
|
+
|
|
1
3
|
import * as TestCli from '../../../test/cli.js'
|
|
4
|
+
import * as Client from '../../Client.js'
|
|
5
|
+
import * as Keys from './keys.js'
|
|
2
6
|
|
|
3
7
|
type Context = Awaited<ReturnType<typeof TestCli.create>>
|
|
4
8
|
|
|
@@ -34,7 +38,7 @@ describe('keys create', () => {
|
|
|
34
38
|
])
|
|
35
39
|
expect(code).toBe(0)
|
|
36
40
|
const { cta, id, token, ...key } = JSON.parse(lines.join('\n'))
|
|
37
|
-
expect(cta.description).toBe('Store the token now; it is not shown again.')
|
|
41
|
+
expect(cta.description).toBe('Store the token for your app now; it is not shown again.')
|
|
38
42
|
expect(id).toMatch(/^key_/)
|
|
39
43
|
expect(token).toMatch(/^tempo:sk:[a-f0-9]{48}$/)
|
|
40
44
|
expect(key).toEqual({
|
|
@@ -59,6 +63,45 @@ describe('keys create', () => {
|
|
|
59
63
|
expect(error.message).toMatch(/^Pass --org with one of: org_\S+ \((Acme|Globex)\), org_\S+/)
|
|
60
64
|
})
|
|
61
65
|
|
|
66
|
+
test('lets a person pick the organization and project', async () => {
|
|
67
|
+
const context = await TestCli.create()
|
|
68
|
+
const { cookie } = await TestCli.login(context)
|
|
69
|
+
await organization(context, cookie, 'Acme')
|
|
70
|
+
const globex = await organization(context, cookie, 'Globex')
|
|
71
|
+
const offered: { choices: string[]; label: string }[] = []
|
|
72
|
+
const cli = incur_Cli.create('tempo-api').command(
|
|
73
|
+
Keys.keys({
|
|
74
|
+
api: Client.create({
|
|
75
|
+
fetch: async (input: Request | string | URL, init?: RequestInit) =>
|
|
76
|
+
context.app.fetch(new Request(input, init)),
|
|
77
|
+
url: TestCli.origin,
|
|
78
|
+
}),
|
|
79
|
+
apiUrl: new URL(TestCli.origin),
|
|
80
|
+
credentials: context.credentials,
|
|
81
|
+
fetch: async (request) => context.app.fetch(request),
|
|
82
|
+
name: 'tempo api 0.0.0',
|
|
83
|
+
select: async ({ choices, label }) => {
|
|
84
|
+
offered.push({ choices: choices.map(({ name }) => name), label })
|
|
85
|
+
return choices.find(({ name }) => name === 'Globex')?.id ?? choices[0]?.id
|
|
86
|
+
},
|
|
87
|
+
}),
|
|
88
|
+
)
|
|
89
|
+
|
|
90
|
+
const { code, lines } = await TestCli.serve(cli as never, [
|
|
91
|
+
'keys',
|
|
92
|
+
'create',
|
|
93
|
+
'--format',
|
|
94
|
+
'json',
|
|
95
|
+
])
|
|
96
|
+
expect(code).toBe(0)
|
|
97
|
+
const { orgId, projectId } = JSON.parse(lines.join('\n'))
|
|
98
|
+
expect({ orgId, projectId }).toEqual(globex)
|
|
99
|
+
// A single project skips the picker.
|
|
100
|
+
expect(offered).toEqual([
|
|
101
|
+
{ choices: expect.arrayContaining(['Acme', 'Globex']), label: 'organization' },
|
|
102
|
+
])
|
|
103
|
+
})
|
|
104
|
+
|
|
62
105
|
test('asks to sign in when no session is stored', async () => {
|
|
63
106
|
const { cli } = await TestCli.create()
|
|
64
107
|
const { code, lines } = await TestCli.serve(cli, ['keys', 'create', '--format', 'json'])
|
package/src/cli/commands/keys.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import * as readline from 'node:readline/promises'
|
|
1
2
|
import { Cli as incur_Cli, z } from 'incur'
|
|
2
3
|
|
|
3
4
|
import * as Auth from './auth.js'
|
|
4
5
|
|
|
5
6
|
/** API-key commands that act through the stored CLI session. */
|
|
6
|
-
export function keys(context:
|
|
7
|
-
const { api, apiUrl, credentials } = context
|
|
7
|
+
export function keys(context: keys.Options) {
|
|
8
|
+
const { api, apiUrl, credentials, select = selectInTerminal } = context
|
|
8
9
|
|
|
9
10
|
// Maps an API failure to a CLI error; an expired session also forgets the stored token.
|
|
10
11
|
async function failure(response: Auth.ErrorResponse) {
|
|
@@ -61,7 +62,11 @@ export function keys(context: Auth.Context) {
|
|
|
61
62
|
const orgs = c.options.org ? undefined : await api.v1.orgs.$get(undefined, request)
|
|
62
63
|
if (orgs && orgs.status !== 200) return c.error(await failure(orgs))
|
|
63
64
|
const orgChoices = orgs ? (await orgs.json()).data : []
|
|
64
|
-
const orgId =
|
|
65
|
+
const orgId =
|
|
66
|
+
c.options.org ??
|
|
67
|
+
(orgChoices.length > 1
|
|
68
|
+
? await select({ agent: c.agent, choices: orgChoices, label: 'organization' })
|
|
69
|
+
: orgChoices[0]?.id)
|
|
65
70
|
if (!orgId)
|
|
66
71
|
return c.error(
|
|
67
72
|
orgChoices.length === 0
|
|
@@ -76,7 +81,10 @@ export function keys(context: Auth.Context) {
|
|
|
76
81
|
if (projects && projects.status !== 200) return c.error(await failure(projects))
|
|
77
82
|
const projectChoices = projects ? (await projects.json()).data : []
|
|
78
83
|
const projectId =
|
|
79
|
-
c.options.project ??
|
|
84
|
+
c.options.project ??
|
|
85
|
+
(projectChoices.length > 1
|
|
86
|
+
? await select({ agent: c.agent, choices: projectChoices, label: 'project' })
|
|
87
|
+
: projectChoices[0]?.id)
|
|
80
88
|
if (!projectId)
|
|
81
89
|
return c.error(
|
|
82
90
|
projectChoices.length === 0
|
|
@@ -111,8 +119,8 @@ export function keys(context: Auth.Context) {
|
|
|
111
119
|
},
|
|
112
120
|
{
|
|
113
121
|
cta: {
|
|
114
|
-
commands: [{ command: 'v1
|
|
115
|
-
description: 'Store the token now; it is not shown again.',
|
|
122
|
+
commands: [{ command: 'v1 --help', description: 'Call the API; the CLI uses your sign-in' }], // prettier-ignore
|
|
123
|
+
description: 'Store the token for your app now; it is not shown again.',
|
|
116
124
|
},
|
|
117
125
|
},
|
|
118
126
|
)
|
|
@@ -120,6 +128,48 @@ export function keys(context: Auth.Context) {
|
|
|
120
128
|
})
|
|
121
129
|
}
|
|
122
130
|
|
|
123
|
-
|
|
131
|
+
export declare namespace keys {
|
|
132
|
+
/** Options for {@link keys}. */
|
|
133
|
+
type Options = Auth.Context & {
|
|
134
|
+
/** Picks one of several organizations or projects, or returns `undefined` to list them in the error. @default a numbered prompt in an interactive terminal */
|
|
135
|
+
select?: ((options: select.Options) => Promise<string | undefined>) | undefined
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
namespace select {
|
|
139
|
+
/** What {@link keys.Options.select} chooses between. */
|
|
140
|
+
type Options = {
|
|
141
|
+
/** Whether the output is for an agent or script rather than a person. */
|
|
142
|
+
agent: boolean
|
|
143
|
+
/** Candidates, in API order. */
|
|
144
|
+
choices: readonly Choice[]
|
|
145
|
+
/** Singular noun for the prompt (`project`). */
|
|
146
|
+
label: string
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
type Choice = { id: string; name: string }
|
|
152
|
+
|
|
153
|
+
function describe(choices: readonly Choice[]) {
|
|
124
154
|
return choices.map(({ id, name }) => `${id} (${name})`).join(', ')
|
|
125
155
|
}
|
|
156
|
+
|
|
157
|
+
async function selectInTerminal(options: keys.select.Options) {
|
|
158
|
+
const { agent, choices, label } = options
|
|
159
|
+
// Agents and scripts get the choices in the error rather than a prompt that would wait forever.
|
|
160
|
+
if (agent || !process.stdin.isTTY || !process.stderr.isTTY) return undefined
|
|
161
|
+
// The prompt writes to stderr so stdout keeps only the command's result.
|
|
162
|
+
const prompt = readline.createInterface({ input: process.stdin, output: process.stderr })
|
|
163
|
+
try {
|
|
164
|
+
process.stderr.write(
|
|
165
|
+
`Select a ${label}:\n${choices.map(({ id, name }, index) => ` ${index + 1}) ${name} ${id}`).join('\n')}\n`,
|
|
166
|
+
)
|
|
167
|
+
for (;;) {
|
|
168
|
+
const answer = (await prompt.question(`${label} [1-${choices.length}]: `)).trim()
|
|
169
|
+
const choice = choices[Number(answer) - 1] ?? choices.find(({ id }) => id === answer)
|
|
170
|
+
if (choice) return choice.id
|
|
171
|
+
}
|
|
172
|
+
} finally {
|
|
173
|
+
prompt.close()
|
|
174
|
+
}
|
|
175
|
+
}
|