lim 0.42.0 → 0.43.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/tunnel/create.d.ts +21 -0
- package/dist/commands/tunnel/create.d.ts.map +1 -0
- package/dist/commands/tunnel/create.js +63 -0
- package/dist/commands/tunnel/create.js.map +1 -0
- package/dist/commands/tunnel/delete.d.ts +19 -0
- package/dist/commands/tunnel/delete.d.ts.map +1 -0
- package/dist/commands/tunnel/delete.js +30 -0
- package/dist/commands/tunnel/delete.js.map +1 -0
- package/dist/commands/tunnel/list.d.ts +16 -0
- package/dist/commands/tunnel/list.d.ts.map +1 -0
- package/dist/commands/tunnel/list.js +34 -0
- package/dist/commands/tunnel/list.js.map +1 -0
- package/dist/commands/tunnel/manage.test.d.ts +2 -0
- package/dist/commands/tunnel/manage.test.d.ts.map +1 -0
- package/dist/commands/tunnel/manage.test.js +156 -0
- package/dist/commands/tunnel/manage.test.js.map +1 -0
- package/dist/commands/tunnel/rotate.d.ts +20 -0
- package/dist/commands/tunnel/rotate.d.ts.map +1 -0
- package/dist/commands/tunnel/rotate.js +57 -0
- package/dist/commands/tunnel/rotate.js.map +1 -0
- package/dist/commands/tunnel/run.d.ts.map +1 -1
- package/dist/commands/tunnel/run.js +12 -12
- package/dist/commands/tunnel/run.js.map +1 -1
- package/dist/commands/tunnel/run.test.js +25 -17
- package/dist/commands/tunnel/run.test.js.map +1 -1
- package/dist/commands/tunnel/update.d.ts +20 -0
- package/dist/commands/tunnel/update.d.ts.map +1 -0
- package/dist/commands/tunnel/update.js +47 -0
- package/dist/commands/tunnel/update.js.map +1 -0
- package/dist/lib/backend.d.ts +41 -9
- package/dist/lib/backend.d.ts.map +1 -1
- package/dist/lib/backend.js +67 -23
- package/dist/lib/backend.js.map +1 -1
- package/dist/lib/backend.test.js +29 -4
- package/dist/lib/backend.test.js.map +1 -1
- package/dist/lib/tunnel-run.d.ts +8 -0
- package/dist/lib/tunnel-run.d.ts.map +1 -1
- package/dist/lib/tunnel-run.js +16 -2
- package/dist/lib/tunnel-run.js.map +1 -1
- package/package.json +2 -2
|
@@ -10,15 +10,19 @@ const backend_1 = require("../../lib/backend");
|
|
|
10
10
|
const tunnel_run_1 = require("../../lib/tunnel-run");
|
|
11
11
|
jest.mock('@limrun/api', () => ({ ...jest.requireActual('@limrun/api'), runTunnel: jest.fn() }));
|
|
12
12
|
jest.mock('../../lib/backend', () => ({
|
|
13
|
-
|
|
13
|
+
tunnelOrganization: jest.fn(),
|
|
14
14
|
findTunnel: jest.fn(),
|
|
15
15
|
createQuickTunnel: jest.fn(),
|
|
16
|
-
|
|
16
|
+
deleteTunnel: jest.fn(async () => { }),
|
|
17
17
|
tunnelTokenClaims: jest.requireActual('../../lib/backend').tunnelTokenClaims,
|
|
18
18
|
}));
|
|
19
19
|
// A tunnel token's header and signature do not matter to the CLI; only the
|
|
20
20
|
// payload's claims are read.
|
|
21
21
|
const tunnelToken = `lim_st_eyJhbGciOiJFZERTQSJ9.${Buffer.from(JSON.stringify({ sub: 'org_1', scopes: ['tunnel:tunnel_01h455vb4pex5vsknk084sn02q:connect'] })).toString('base64url')}.c2ln`;
|
|
22
|
+
/** A tunnel as the backend lists it, with the fields a test cares about. */
|
|
23
|
+
function tunnelFixture(fields) {
|
|
24
|
+
return { online: false, selectors: [], instances: [], ...fields };
|
|
25
|
+
}
|
|
22
26
|
beforeEach(() => jest.clearAllMocks());
|
|
23
27
|
describe('tunnel run flags', () => {
|
|
24
28
|
test('need neither a name nor selectors, with inspection on by default', async () => {
|
|
@@ -52,7 +56,7 @@ describe('tunnel run flags', () => {
|
|
|
52
56
|
});
|
|
53
57
|
describe('tunnel run command', () => {
|
|
54
58
|
function setup(flags, { closed = Promise.resolve() } = {}) {
|
|
55
|
-
jest.mocked(backend_1.
|
|
59
|
+
jest.mocked(backend_1.tunnelOrganization).mockResolvedValue('org_1');
|
|
56
60
|
const close = jest.fn(async () => { });
|
|
57
61
|
jest.mocked(api_1.runTunnel).mockReturnValue({ closed, close });
|
|
58
62
|
const info = jest.fn();
|
|
@@ -89,7 +93,7 @@ describe('tunnel run command', () => {
|
|
|
89
93
|
await command.run();
|
|
90
94
|
// The admin's key in the shell is never used: no backend call, and the
|
|
91
95
|
// connector runs with the tunnel token.
|
|
92
|
-
expect(backend_1.
|
|
96
|
+
expect(backend_1.tunnelOrganization).not.toHaveBeenCalled();
|
|
93
97
|
expect(backend_1.findTunnel).not.toHaveBeenCalled();
|
|
94
98
|
expect(options()).toMatchObject({
|
|
95
99
|
token: tunnelToken,
|
|
@@ -112,12 +116,12 @@ describe('tunnel run command', () => {
|
|
|
112
116
|
])('refuses %s passed as --token', async (_, token) => {
|
|
113
117
|
const { command } = setup({ token });
|
|
114
118
|
await expect(command.run()).rejects.toThrow('--token takes a tunnel token');
|
|
115
|
-
expect(backend_1.
|
|
119
|
+
expect(backend_1.tunnelOrganization).not.toHaveBeenCalled();
|
|
116
120
|
});
|
|
117
121
|
test("creates a quick tunnel for --name with --selector and runs it with the tunnel's token", async () => {
|
|
118
122
|
jest.mocked(backend_1.findTunnel).mockResolvedValue(undefined);
|
|
119
123
|
jest.mocked(backend_1.createQuickTunnel).mockResolvedValue({
|
|
120
|
-
tunnel: { id: 'tunnel_3', name: 'scratch', ephemeral: true },
|
|
124
|
+
tunnel: tunnelFixture({ id: 'tunnel_3', name: 'scratch', ephemeral: true }),
|
|
121
125
|
token: 'lim_st_quick',
|
|
122
126
|
});
|
|
123
127
|
const { command, info } = setup({ name: 'scratch', selector: ['localhost:3000'] });
|
|
@@ -127,12 +131,12 @@ describe('tunnel run command', () => {
|
|
|
127
131
|
expect(options()).toMatchObject({ tunnelId: 'tunnel_3', token: 'lim_st_quick' });
|
|
128
132
|
options().onEvent({ type: 'active', sessionId: 's1', name: 'scratch' });
|
|
129
133
|
expect(info).toHaveBeenCalledWith(expect.stringContaining('goes away when this connector exits'));
|
|
130
|
-
expect(backend_1.
|
|
134
|
+
expect(backend_1.deleteTunnel).toHaveBeenCalledWith(expect.anything(), 'org_1', 'tunnel_3');
|
|
131
135
|
});
|
|
132
136
|
test('deletes its quick tunnel when the connector cannot start', async () => {
|
|
133
137
|
jest.mocked(backend_1.findTunnel).mockResolvedValue(undefined);
|
|
134
138
|
jest.mocked(backend_1.createQuickTunnel).mockResolvedValue({
|
|
135
|
-
tunnel: { id: 'tunnel_3', name: 'scratch', ephemeral: true },
|
|
139
|
+
tunnel: tunnelFixture({ id: 'tunnel_3', name: 'scratch', ephemeral: true }),
|
|
136
140
|
token: 'lim_st_quick',
|
|
137
141
|
});
|
|
138
142
|
const { command } = setup({ name: 'scratch', selector: ['localhost:3000'] });
|
|
@@ -140,17 +144,17 @@ describe('tunnel run command', () => {
|
|
|
140
144
|
throw new Error('invalid header value');
|
|
141
145
|
});
|
|
142
146
|
await expect(command.run()).rejects.toThrow('invalid header value');
|
|
143
|
-
expect(backend_1.
|
|
147
|
+
expect(backend_1.deleteTunnel).toHaveBeenCalledWith(expect.anything(), 'org_1', 'tunnel_3');
|
|
144
148
|
});
|
|
145
149
|
test('deletes its quick tunnel when the connector fails', async () => {
|
|
146
150
|
jest.mocked(backend_1.findTunnel).mockResolvedValue(undefined);
|
|
147
151
|
jest.mocked(backend_1.createQuickTunnel).mockResolvedValue({
|
|
148
|
-
tunnel: { id: 'tunnel_3', name: 'scratch', ephemeral: true },
|
|
152
|
+
tunnel: tunnelFixture({ id: 'tunnel_3', name: 'scratch', ephemeral: true }),
|
|
149
153
|
token: 'lim_st_quick',
|
|
150
154
|
});
|
|
151
155
|
const { command } = setup({ name: 'scratch', selector: ['localhost:3000'] }, { closed: Promise.reject(new Error('tunnel scratch: unauthorized')) });
|
|
152
156
|
await expect(command.run()).rejects.toThrow('tunnel scratch: unauthorized');
|
|
153
|
-
expect(backend_1.
|
|
157
|
+
expect(backend_1.deleteTunnel).toHaveBeenCalledWith(expect.anything(), 'org_1', 'tunnel_3');
|
|
154
158
|
});
|
|
155
159
|
test.each([
|
|
156
160
|
[
|
|
@@ -171,8 +175,8 @@ describe('tunnel run command', () => {
|
|
|
171
175
|
[
|
|
172
176
|
'a name that does not exist without selectors',
|
|
173
177
|
{ name: 'missing' },
|
|
174
|
-
'Tunnel missing does not exist. Create it
|
|
175
|
-
'run a quick tunnel.',
|
|
178
|
+
'Tunnel missing does not exist. Create it with lim tunnel create missing --selector <destination>, or ' +
|
|
179
|
+
'pass --selector to run a quick tunnel.',
|
|
176
180
|
],
|
|
177
181
|
])('refuses %s', async (_, flags, message) => {
|
|
178
182
|
jest.mocked(backend_1.findTunnel).mockResolvedValue(undefined);
|
|
@@ -181,14 +185,18 @@ describe('tunnel run command', () => {
|
|
|
181
185
|
expect(api_1.runTunnel).not.toHaveBeenCalled();
|
|
182
186
|
});
|
|
183
187
|
test.each([[{ name: 'staging' }], [{ name: 'staging', selector: ['localhost:3000'] }]])('refuses to run a console-created tunnel without its token (%j)', async (flags) => {
|
|
184
|
-
jest
|
|
188
|
+
jest
|
|
189
|
+
.mocked(backend_1.findTunnel)
|
|
190
|
+
.mockResolvedValue(tunnelFixture({ id: 'tunnel_2', name: 'staging', ephemeral: false }));
|
|
185
191
|
const { command } = setup(flags);
|
|
186
192
|
await expect(command.run()).rejects.toThrow('Tunnel staging runs with its own token (--token)');
|
|
187
193
|
expect(api_1.runTunnel).not.toHaveBeenCalled();
|
|
188
194
|
expect(backend_1.createQuickTunnel).not.toHaveBeenCalled();
|
|
189
195
|
});
|
|
190
196
|
test.each([[{ name: 'scratch' }], [{ name: 'scratch', selector: ['localhost:3000'] }]])("refuses another connector's quick tunnel (%j)", async (flags) => {
|
|
191
|
-
jest
|
|
197
|
+
jest
|
|
198
|
+
.mocked(backend_1.findTunnel)
|
|
199
|
+
.mockResolvedValue(tunnelFixture({ id: 'tunnel_3', name: 'scratch', ephemeral: true }));
|
|
192
200
|
const { command } = setup(flags);
|
|
193
201
|
await expect(command.run()).rejects.toThrow("Tunnel scratch is another connector's quick tunnel");
|
|
194
202
|
expect(api_1.runTunnel).not.toHaveBeenCalled();
|
|
@@ -206,8 +214,8 @@ describe('tunnel run event lines', () => {
|
|
|
206
214
|
],
|
|
207
215
|
[
|
|
208
216
|
{ type: 'tokenExpiring', expiresAt: '2026-10-20T00:00:00Z' },
|
|
209
|
-
'The token this connector runs with expires at 2026-10-20T00:00:00Z.
|
|
210
|
-
'
|
|
217
|
+
'The token this connector runs with expires at 2026-10-20T00:00:00Z. Issue a new one with ' +
|
|
218
|
+
'lim tunnel rotate staging and restart the connector with it.',
|
|
211
219
|
],
|
|
212
220
|
[
|
|
213
221
|
{ type: 'standby', holder: { hostname: 'ci-1', since: '2026-10-08T10:00:00Z' } },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.test.js","sourceRoot":"","sources":["../../../src/commands/tunnel/run.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run.test.js","sourceRoot":"","sources":["../../../src/commands/tunnel/run.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { BaseCommand } from '../../base-command';
|
|
2
|
+
export default class TunnelUpdate extends BaseCommand {
|
|
3
|
+
static summary: string;
|
|
4
|
+
static description: string;
|
|
5
|
+
static examples: string[];
|
|
6
|
+
static args: {
|
|
7
|
+
name: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
8
|
+
};
|
|
9
|
+
static flags: {
|
|
10
|
+
selector: import("@oclif/core/lib/interfaces").OptionFlag<string[], import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
11
|
+
'api-key': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
12
|
+
json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
13
|
+
quiet: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
14
|
+
create: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
15
|
+
workspace: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
16
|
+
daemon: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
17
|
+
};
|
|
18
|
+
run(): Promise<void>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=update.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/commands/tunnel/update.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAIjD,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,WAAW;IACnD,MAAM,CAAC,OAAO,SAA6C;IAC3D,MAAM,CAAC,WAAW,SAEgF;IAClG,MAAM,CAAC,QAAQ,WAEb;IAEF,MAAM,CAAC,IAAI;;MAET;IAEF,MAAM,CAAC,KAAK;;;;;;;;MASV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAsB3B"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const core_1 = require("@oclif/core");
|
|
4
|
+
const base_command_1 = require("../../base-command");
|
|
5
|
+
const backend_1 = require("../../lib/backend");
|
|
6
|
+
const tunnel_process_1 = require("../../lib/tunnel-process");
|
|
7
|
+
class TunnelUpdate extends base_command_1.BaseCommand {
|
|
8
|
+
async run() {
|
|
9
|
+
const { args, flags } = await this.parse(TunnelUpdate);
|
|
10
|
+
this.setParsedFlags(flags);
|
|
11
|
+
const selectors = (0, tunnel_process_1.parseTunnelSelectors)(flags.selector);
|
|
12
|
+
await this.withAuth(async () => {
|
|
13
|
+
const organizationId = await (0, backend_1.tunnelOrganization)(this.client);
|
|
14
|
+
const tunnel = await (0, backend_1.findTunnel)(this.client, organizationId, args.name);
|
|
15
|
+
if (!tunnel) {
|
|
16
|
+
this.error(`Tunnel ${args.name} does not exist.`);
|
|
17
|
+
}
|
|
18
|
+
const updated = await (0, backend_1.updateTunnelSelectors)(this.client, organizationId, tunnel, [...selectors]);
|
|
19
|
+
if (flags.json) {
|
|
20
|
+
this.outputJson(updated);
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
this.output(`Updated the selectors of tunnel ${args.name}. Instances attached from now on get them; restart the ` +
|
|
24
|
+
'connector to apply them to attached instances.');
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
TunnelUpdate.summary = "Replace a persistent tunnel's selectors";
|
|
29
|
+
TunnelUpdate.description = "Replace a persistent tunnel's selectors. Instances attached after the change get the new ones; " +
|
|
30
|
+
"restart the connector to apply them to attached instances. Needs an admin's API key or login.";
|
|
31
|
+
TunnelUpdate.examples = [
|
|
32
|
+
'<%= config.bin %> tunnel update staging --selector localhost:3000 --selector localhost:4000',
|
|
33
|
+
];
|
|
34
|
+
TunnelUpdate.args = {
|
|
35
|
+
name: core_1.Args.string({ description: 'Name of the tunnel to update.', required: true }),
|
|
36
|
+
};
|
|
37
|
+
TunnelUpdate.flags = {
|
|
38
|
+
...base_command_1.BaseCommand.baseFlags,
|
|
39
|
+
selector: core_1.Flags.string({
|
|
40
|
+
description: 'Destination instances reach through the connector, as localhost:port, IPv4:port, [IPv6]:port, or ' +
|
|
41
|
+
'an exact or *. wildcard domain. Repeat for more selectors; they replace the current ones.',
|
|
42
|
+
multiple: true,
|
|
43
|
+
required: true,
|
|
44
|
+
}),
|
|
45
|
+
};
|
|
46
|
+
exports.default = TunnelUpdate;
|
|
47
|
+
//# sourceMappingURL=update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/commands/tunnel/update.ts"],"names":[],"mappings":";;AAAA,sCAA0C;AAC1C,qDAAiD;AACjD,+CAA0F;AAC1F,6DAAgE;AAEhE,MAAqB,YAAa,SAAQ,0BAAW;IAwBnD,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACvD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC3B,MAAM,SAAS,GAAG,IAAA,qCAAoB,EAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEvD,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAC7B,MAAM,cAAc,GAAG,MAAM,IAAA,4BAAkB,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7D,MAAM,MAAM,GAAG,MAAM,IAAA,oBAAU,EAAC,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACxE,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,IAAI,kBAAkB,CAAC,CAAC;YACpD,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,IAAA,+BAAqB,EAAC,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;YACjG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;gBACzB,OAAO;YACT,CAAC;YACD,IAAI,CAAC,MAAM,CACT,mCAAmC,IAAI,CAAC,IAAI,yDAAyD;gBACnG,gDAAgD,CACnD,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;;AA5CM,oBAAO,GAAG,yCAAyC,CAAC;AACpD,wBAAW,GAChB,iGAAiG;IACjG,+FAA+F,CAAC;AAC3F,qBAAQ,GAAG;IAChB,6FAA6F;CAC9F,CAAC;AAEK,iBAAI,GAAG;IACZ,IAAI,EAAE,WAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,+BAA+B,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;CACpF,CAAC;AAEK,kBAAK,GAAG;IACb,GAAG,0BAAW,CAAC,SAAS;IACxB,QAAQ,EAAE,YAAK,CAAC,MAAM,CAAC;QACrB,WAAW,EACT,mGAAmG;YACnG,2FAA2F;QAC7F,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;KACf,CAAC;CACH,CAAC;kBAtBiB,YAAY"}
|
package/dist/lib/backend.d.ts
CHANGED
|
@@ -24,14 +24,28 @@ export interface PersistentTunnel {
|
|
|
24
24
|
id: string;
|
|
25
25
|
name: string;
|
|
26
26
|
ephemeral: boolean;
|
|
27
|
+
online: boolean;
|
|
28
|
+
selectors: string[];
|
|
29
|
+
hostname?: string;
|
|
30
|
+
tokenExpiresAt?: string;
|
|
31
|
+
instances: {
|
|
32
|
+
id: string;
|
|
33
|
+
platform: string;
|
|
34
|
+
state: string;
|
|
35
|
+
}[];
|
|
36
|
+
}
|
|
37
|
+
/** A tunnel token as the backend returns it, once: Limrun never stores it. */
|
|
38
|
+
export interface TunnelToken {
|
|
39
|
+
token: string;
|
|
40
|
+
expiresAt: string;
|
|
27
41
|
}
|
|
28
42
|
/**
|
|
29
|
-
* Resolves the organization
|
|
30
|
-
*
|
|
31
|
-
*
|
|
43
|
+
* Resolves the organization a credential manages tunnels for. It must be an
|
|
44
|
+
* organization key or login, so a user token's default organization does not
|
|
45
|
+
* count. A tunnel token belongs in `lim tunnel run --token`: the backend
|
|
32
46
|
* accepts no signed token.
|
|
33
47
|
*/
|
|
34
|
-
export declare function
|
|
48
|
+
export declare function tunnelOrganization(client: Limrun): Promise<string>;
|
|
35
49
|
/**
|
|
36
50
|
* Reads the organization and tunnel a tunnel token names, without verifying
|
|
37
51
|
* it; undefined when the token is no tunnel token. Its only scope is
|
|
@@ -41,22 +55,40 @@ export declare function tunnelTokenClaims(token: string): {
|
|
|
41
55
|
organizationId: string;
|
|
42
56
|
tunnelId: string;
|
|
43
57
|
} | undefined;
|
|
58
|
+
/** Lists an organization's tunnels. */
|
|
59
|
+
export declare function listTunnels(client: Limrun, organizationId: string): Promise<PersistentTunnel[]>;
|
|
44
60
|
/** Finds an organization's tunnel by the name instances use. */
|
|
45
61
|
export declare function findTunnel(client: Limrun, organizationId: string, name: string): Promise<PersistentTunnel | undefined>;
|
|
46
62
|
/**
|
|
47
|
-
* Creates a
|
|
48
|
-
*
|
|
63
|
+
* Creates a tunnel with the token its connector runs with: only tunnel tokens
|
|
64
|
+
* connect. The token is returned only here.
|
|
65
|
+
*/
|
|
66
|
+
export declare function createTunnel(client: Limrun, organizationId: string, request: {
|
|
67
|
+
name: string;
|
|
68
|
+
selectors: string[];
|
|
69
|
+
expirationMonths: number;
|
|
70
|
+
ephemeral?: boolean;
|
|
71
|
+
}): Promise<{
|
|
72
|
+
tunnel: PersistentTunnel;
|
|
73
|
+
token: TunnelToken;
|
|
74
|
+
}>;
|
|
75
|
+
/**
|
|
76
|
+
* Creates a quick tunnel that goes away when its connector does. Its token
|
|
49
77
|
* goes with the tunnel, so it lasts a month, the shortest the API takes.
|
|
50
78
|
*/
|
|
51
79
|
export declare function createQuickTunnel(client: Limrun, organizationId: string, name: string, selectors: string[]): Promise<{
|
|
52
80
|
tunnel: PersistentTunnel;
|
|
53
81
|
token: string;
|
|
54
82
|
}>;
|
|
83
|
+
/** Replaces a tunnel's selectors. Instances attached after the change get them. */
|
|
84
|
+
export declare function updateTunnelSelectors(client: Limrun, organizationId: string, tunnel: PersistentTunnel, selectors: string[]): Promise<PersistentTunnel>;
|
|
85
|
+
/** Issues a tunnel's token, which revokes the one it had. */
|
|
86
|
+
export declare function rotateTunnelToken(client: Limrun, organizationId: string, tunnel: PersistentTunnel, expirationMonths: number): Promise<TunnelToken>;
|
|
55
87
|
/**
|
|
56
|
-
* Deletes a
|
|
57
|
-
*
|
|
88
|
+
* Deletes a tunnel, which revokes its token. A tunnel already gone is fine:
|
|
89
|
+
* the hub deletes a quick tunnel when its connector says bye.
|
|
58
90
|
*/
|
|
59
|
-
export declare function
|
|
91
|
+
export declare function deleteTunnel(client: Limrun, organizationId: string, tunnelId: string): Promise<void>;
|
|
60
92
|
/** Fetches a secret's data, or undefined when it does not exist. */
|
|
61
93
|
export declare function getSecret(client: Limrun, organizationId: string, secretType: string, secretName: string): Promise<SecretData | undefined>;
|
|
62
94
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../src/lib/backend.ts"],"names":[],"mappings":"AAAA,OAAO,MAAwD,MAAM,aAAa,CAAC;AAEnF;;;;;GAKG;AAEH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEhD,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,UAAU,CAAC;IACjB,4EAA4E;IAC5E,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,2BAA2B,sBAAsB,CAAC;AAU/D;;;;;GAKG;AACH,wBAAsB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAO5D;AAeD,mDAAmD;AACnD,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../src/lib/backend.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/backend.js
CHANGED
|
@@ -2,11 +2,15 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.androidSigningKeySecretType = void 0;
|
|
4
4
|
exports.whoAmI = whoAmI;
|
|
5
|
-
exports.
|
|
5
|
+
exports.tunnelOrganization = tunnelOrganization;
|
|
6
6
|
exports.tunnelTokenClaims = tunnelTokenClaims;
|
|
7
|
+
exports.listTunnels = listTunnels;
|
|
7
8
|
exports.findTunnel = findTunnel;
|
|
9
|
+
exports.createTunnel = createTunnel;
|
|
8
10
|
exports.createQuickTunnel = createQuickTunnel;
|
|
9
|
-
exports.
|
|
11
|
+
exports.updateTunnelSelectors = updateTunnelSelectors;
|
|
12
|
+
exports.rotateTunnelToken = rotateTunnelToken;
|
|
13
|
+
exports.deleteTunnel = deleteTunnel;
|
|
10
14
|
exports.getSecret = getSecret;
|
|
11
15
|
exports.putSecret = putSecret;
|
|
12
16
|
const api_1 = require("@limrun/api");
|
|
@@ -41,20 +45,20 @@ async function fetchWhoAmI(client) {
|
|
|
41
45
|
}
|
|
42
46
|
}
|
|
43
47
|
/**
|
|
44
|
-
* Resolves the organization
|
|
45
|
-
*
|
|
46
|
-
*
|
|
48
|
+
* Resolves the organization a credential manages tunnels for. It must be an
|
|
49
|
+
* organization key or login, so a user token's default organization does not
|
|
50
|
+
* count. A tunnel token belongs in `lim tunnel run --token`: the backend
|
|
47
51
|
* accepts no signed token.
|
|
48
52
|
*/
|
|
49
|
-
async function
|
|
53
|
+
async function tunnelOrganization(client) {
|
|
50
54
|
if ((client.apiKey ?? '').startsWith(SIGNED_TOKEN_PREFIX)) {
|
|
51
|
-
throw new Error('The API key is a signed token. Pass a tunnel token with --token or
|
|
52
|
-
|
|
55
|
+
throw new Error('The API key is a signed token. Pass a tunnel token to lim tunnel run with --token or ' +
|
|
56
|
+
'LIM_TUNNEL_TOKEN; managing tunnels needs an organization API key or login.');
|
|
53
57
|
}
|
|
54
58
|
const body = await fetchWhoAmI(client);
|
|
55
59
|
const organizationId = body.organization?.id;
|
|
56
60
|
if (!organizationId) {
|
|
57
|
-
throw new Error(
|
|
61
|
+
throw new Error('Managing tunnels needs an organization API key or login.');
|
|
58
62
|
}
|
|
59
63
|
return organizationId;
|
|
60
64
|
}
|
|
@@ -95,8 +99,11 @@ function tunnelTokenClaims(token) {
|
|
|
95
99
|
function tunnelsPath(organizationId) {
|
|
96
100
|
return `/v1/organizations/${encodeURIComponent(organizationId)}/tunnels`;
|
|
97
101
|
}
|
|
98
|
-
|
|
99
|
-
|
|
102
|
+
function tunnelPath(organizationId, tunnelId) {
|
|
103
|
+
return `${tunnelsPath(organizationId)}/${encodeURIComponent(tunnelId)}`;
|
|
104
|
+
}
|
|
105
|
+
/** Lists an organization's tunnels. */
|
|
106
|
+
async function listTunnels(client, organizationId) {
|
|
100
107
|
let body;
|
|
101
108
|
try {
|
|
102
109
|
body = await client.get(tunnelsPath(organizationId));
|
|
@@ -104,18 +111,22 @@ async function findTunnel(client, organizationId, name) {
|
|
|
104
111
|
catch (err) {
|
|
105
112
|
rethrow(err, 'Failed to list tunnels');
|
|
106
113
|
}
|
|
107
|
-
return body.tunnels
|
|
114
|
+
return body.tunnels ?? [];
|
|
115
|
+
}
|
|
116
|
+
/** Finds an organization's tunnel by the name instances use. */
|
|
117
|
+
async function findTunnel(client, organizationId, name) {
|
|
118
|
+
return (await listTunnels(client, organizationId)).find((tunnel) => tunnel.name === name);
|
|
108
119
|
}
|
|
109
120
|
/**
|
|
110
|
-
* Creates a
|
|
111
|
-
*
|
|
112
|
-
* goes with the tunnel, so it lasts a month, the shortest the API takes.
|
|
121
|
+
* Creates a tunnel with the token its connector runs with: only tunnel tokens
|
|
122
|
+
* connect. The token is returned only here.
|
|
113
123
|
*/
|
|
114
|
-
async function
|
|
124
|
+
async function createTunnel(client, organizationId, request) {
|
|
125
|
+
const { name, selectors, expirationMonths, ephemeral } = request;
|
|
115
126
|
let body;
|
|
116
127
|
try {
|
|
117
128
|
body = await client.post(tunnelsPath(organizationId), {
|
|
118
|
-
body: { name, selectors, ephemeral
|
|
129
|
+
body: { name, selectors, ...(ephemeral && { ephemeral }), token: { expirationMonths } },
|
|
119
130
|
});
|
|
120
131
|
}
|
|
121
132
|
catch (err) {
|
|
@@ -123,18 +134,51 @@ async function createQuickTunnel(client, organizationId, name, selectors) {
|
|
|
123
134
|
}
|
|
124
135
|
if (!body.token?.token) {
|
|
125
136
|
// Nothing can run a tunnel without its token, so it goes at once.
|
|
126
|
-
await
|
|
137
|
+
await deleteTunnel(client, organizationId, body.tunnel.id).catch(() => { });
|
|
127
138
|
throw new Error(`Limrun created tunnel ${name} but returned no token to run it with.`);
|
|
128
139
|
}
|
|
129
|
-
return { tunnel: body.tunnel, token: body.token
|
|
140
|
+
return { tunnel: body.tunnel, token: body.token };
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Creates a quick tunnel that goes away when its connector does. Its token
|
|
144
|
+
* goes with the tunnel, so it lasts a month, the shortest the API takes.
|
|
145
|
+
*/
|
|
146
|
+
async function createQuickTunnel(client, organizationId, name, selectors) {
|
|
147
|
+
const created = await createTunnel(client, organizationId, {
|
|
148
|
+
name,
|
|
149
|
+
selectors,
|
|
150
|
+
expirationMonths: 1,
|
|
151
|
+
ephemeral: true,
|
|
152
|
+
});
|
|
153
|
+
return { tunnel: created.tunnel, token: created.token.token };
|
|
154
|
+
}
|
|
155
|
+
/** Replaces a tunnel's selectors. Instances attached after the change get them. */
|
|
156
|
+
async function updateTunnelSelectors(client, organizationId, tunnel, selectors) {
|
|
157
|
+
try {
|
|
158
|
+
return await client.patch(tunnelPath(organizationId, tunnel.id), { body: { selectors } });
|
|
159
|
+
}
|
|
160
|
+
catch (err) {
|
|
161
|
+
rethrow(err, `Failed to update tunnel ${tunnel.name}`);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
/** Issues a tunnel's token, which revokes the one it had. */
|
|
165
|
+
async function rotateTunnelToken(client, organizationId, tunnel, expirationMonths) {
|
|
166
|
+
try {
|
|
167
|
+
return await client.post(`${tunnelPath(organizationId, tunnel.id)}/token`, {
|
|
168
|
+
body: { expirationMonths },
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
catch (err) {
|
|
172
|
+
rethrow(err, `Failed to rotate the token of tunnel ${tunnel.name}`);
|
|
173
|
+
}
|
|
130
174
|
}
|
|
131
175
|
/**
|
|
132
|
-
* Deletes a
|
|
133
|
-
*
|
|
176
|
+
* Deletes a tunnel, which revokes its token. A tunnel already gone is fine:
|
|
177
|
+
* the hub deletes a quick tunnel when its connector says bye.
|
|
134
178
|
*/
|
|
135
|
-
async function
|
|
179
|
+
async function deleteTunnel(client, organizationId, tunnelId) {
|
|
136
180
|
try {
|
|
137
|
-
await client.delete(
|
|
181
|
+
await client.delete(tunnelPath(organizationId, tunnelId));
|
|
138
182
|
}
|
|
139
183
|
catch (err) {
|
|
140
184
|
if (err instanceof api_1.NotFoundError) {
|
package/dist/lib/backend.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend.js","sourceRoot":"","sources":["../../src/lib/backend.ts"],"names":[],"mappings":";;;AAiCA,wBAOC;
|
|
1
|
+
{"version":3,"file":"backend.js","sourceRoot":"","sources":["../../src/lib/backend.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/backend.test.js
CHANGED
|
@@ -78,7 +78,7 @@ describe('backend client', () => {
|
|
|
78
78
|
});
|
|
79
79
|
it("asks whoami for the organization of an admin's key", async () => {
|
|
80
80
|
fetchMock.mockResolvedValue(mockResponse(200, { organization: { id: 'org_1' } }));
|
|
81
|
-
await expect((0, backend_1.
|
|
81
|
+
await expect((0, backend_1.tunnelOrganization)(client)).resolves.toBe('org_1');
|
|
82
82
|
});
|
|
83
83
|
it('refuses a signed token as the API key, without a call', async () => {
|
|
84
84
|
const tokenClient = new api_1.default({
|
|
@@ -86,7 +86,7 @@ describe('backend client', () => {
|
|
|
86
86
|
baseURL: apiEndpoint,
|
|
87
87
|
maxRetries: 0,
|
|
88
88
|
});
|
|
89
|
-
await expect((0, backend_1.
|
|
89
|
+
await expect((0, backend_1.tunnelOrganization)(tokenClient)).rejects.toThrow('--token or LIM_TUNNEL_TOKEN');
|
|
90
90
|
expect(fetchMock).not.toHaveBeenCalled();
|
|
91
91
|
});
|
|
92
92
|
it('finds a tunnel by name and creates a quick one', async () => {
|
|
@@ -121,14 +121,39 @@ describe('backend client', () => {
|
|
|
121
121
|
expect(deleteURL).toBe(`${apiEndpoint}/v1/organizations/org_1/tunnels/tunnel_3`);
|
|
122
122
|
expect(deleteInit.method).toBe('DELETE');
|
|
123
123
|
});
|
|
124
|
+
it('replaces selectors and rotates the token of a tunnel by its ID', async () => {
|
|
125
|
+
const tunnel = {
|
|
126
|
+
id: 'tunnel_1',
|
|
127
|
+
name: 'staging',
|
|
128
|
+
ephemeral: false,
|
|
129
|
+
online: true,
|
|
130
|
+
selectors: [],
|
|
131
|
+
instances: [],
|
|
132
|
+
};
|
|
133
|
+
fetchMock.mockResolvedValueOnce(mockResponse(200, { ...tunnel, selectors: ['localhost:4000'] }));
|
|
134
|
+
await (0, backend_1.updateTunnelSelectors)(client, 'org_1', tunnel, ['localhost:4000']);
|
|
135
|
+
const [updateURL, updateInit] = fetchMock.mock.calls[0];
|
|
136
|
+
expect(updateURL).toBe(`${apiEndpoint}/v1/organizations/org_1/tunnels/tunnel_1`);
|
|
137
|
+
expect(updateInit.method).toBe('PATCH');
|
|
138
|
+
expect(JSON.parse(String(updateInit.body))).toEqual({ selectors: ['localhost:4000'] });
|
|
139
|
+
fetchMock.mockResolvedValueOnce(mockResponse(201, { token: 'lim_st_new', expiresAt: '2027-10-10T00:00:00Z' }));
|
|
140
|
+
await expect((0, backend_1.rotateTunnelToken)(client, 'org_1', tunnel, 3)).resolves.toEqual({
|
|
141
|
+
token: 'lim_st_new',
|
|
142
|
+
expiresAt: '2027-10-10T00:00:00Z',
|
|
143
|
+
});
|
|
144
|
+
const [rotateURL, rotateInit] = fetchMock.mock.calls[1];
|
|
145
|
+
expect(rotateURL).toBe(`${apiEndpoint}/v1/organizations/org_1/tunnels/tunnel_1/token`);
|
|
146
|
+
expect(rotateInit.method).toBe('POST');
|
|
147
|
+
expect(JSON.parse(String(rotateInit.body))).toEqual({ expirationMonths: 3 });
|
|
148
|
+
});
|
|
124
149
|
it('deletes a quick tunnel by ID, and a tunnel the hub already removed is fine', async () => {
|
|
125
150
|
fetchMock.mockResolvedValueOnce(new Response(null, { status: 204 }));
|
|
126
|
-
await (0, backend_1.
|
|
151
|
+
await (0, backend_1.deleteTunnel)(client, 'org_1', 'tunnel_2');
|
|
127
152
|
const [url, init] = fetchMock.mock.calls[0];
|
|
128
153
|
expect(url).toBe(`${apiEndpoint}/v1/organizations/org_1/tunnels/tunnel_2`);
|
|
129
154
|
expect(init.method).toBe('DELETE');
|
|
130
155
|
fetchMock.mockResolvedValueOnce(mockResponse(404, { message: 'tunnel not found' }));
|
|
131
|
-
await expect((0, backend_1.
|
|
156
|
+
await expect((0, backend_1.deleteTunnel)(client, 'org_1', 'tunnel_2')).resolves.toBeUndefined();
|
|
132
157
|
});
|
|
133
158
|
});
|
|
134
159
|
describe('whoAmI', () => {
|