@p0security/cli 0.18.8 → 0.18.10
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/build/dist/commands/__tests__/login.test.js +17 -10
- package/build/dist/commands/__tests__/login.test.js.map +1 -1
- package/build/dist/commands/__tests__/request.test.js +64 -9
- package/build/dist/commands/__tests__/request.test.js.map +1 -1
- package/build/dist/commands/__tests__/ssh.test.js +75 -51
- package/build/dist/commands/__tests__/ssh.test.js.map +1 -1
- package/build/dist/commands/allow.js +3 -2
- package/build/dist/commands/allow.js.map +1 -1
- package/build/dist/commands/aws/__tests__/role.test.js +18 -12
- package/build/dist/commands/aws/__tests__/role.test.js.map +1 -1
- package/build/dist/commands/aws/index.js +0 -4
- package/build/dist/commands/aws/index.js.map +1 -1
- package/build/dist/commands/aws/permission-set.js +1 -2
- package/build/dist/commands/aws/permission-set.js.map +1 -1
- package/build/dist/commands/aws/role.js +1 -2
- package/build/dist/commands/aws/role.js.map +1 -1
- package/build/dist/commands/grant.js +12 -2
- package/build/dist/commands/grant.js.map +1 -1
- package/build/dist/commands/index.js +2 -0
- package/build/dist/commands/index.js.map +1 -1
- package/build/dist/commands/kubeconfig.js +1 -2
- package/build/dist/commands/kubeconfig.js.map +1 -1
- package/build/dist/commands/login.js +19 -27
- package/build/dist/commands/login.js.map +1 -1
- package/build/dist/commands/logout.d.ts +2 -0
- package/build/dist/commands/logout.js +61 -0
- package/build/dist/commands/logout.js.map +1 -0
- package/build/dist/commands/ls.js +1 -2
- package/build/dist/commands/ls.js.map +1 -1
- package/build/dist/commands/request.js +12 -2
- package/build/dist/commands/request.js.map +1 -1
- package/build/dist/commands/scp.js +1 -2
- package/build/dist/commands/scp.js.map +1 -1
- package/build/dist/commands/shared/index.d.ts +7 -4
- package/build/dist/commands/shared/index.js +20 -45
- package/build/dist/commands/shared/index.js.map +1 -1
- package/build/dist/commands/shared/request.d.ts +3 -0
- package/build/dist/commands/shared/request.js +105 -59
- package/build/dist/commands/shared/request.js.map +1 -1
- package/build/dist/commands/shared/ssh.js +21 -12
- package/build/dist/commands/shared/ssh.js.map +1 -1
- package/build/dist/commands/ssh-proxy.js +2 -3
- package/build/dist/commands/ssh-proxy.js.map +1 -1
- package/build/dist/commands/ssh-resolve.js +2 -3
- package/build/dist/commands/ssh-resolve.js.map +1 -1
- package/build/dist/commands/ssh.js +3 -4
- package/build/dist/commands/ssh.js.map +1 -1
- package/build/dist/drivers/__tests__/api.test.d.ts +1 -0
- package/build/dist/drivers/__tests__/api.test.js +688 -0
- package/build/dist/drivers/__tests__/api.test.js.map +1 -0
- package/build/dist/drivers/api.d.ts +17 -1
- package/build/dist/drivers/api.js +252 -25
- package/build/dist/drivers/api.js.map +1 -1
- package/build/dist/drivers/auth/index.js +23 -10
- package/build/dist/drivers/auth/index.js.map +1 -1
- package/build/dist/drivers/auth/path.d.ts +2 -0
- package/build/dist/drivers/auth/path.js +19 -1
- package/build/dist/drivers/auth/path.js.map +1 -1
- package/build/dist/drivers/config.js +10 -18
- package/build/dist/drivers/config.js.map +1 -1
- package/build/dist/drivers/env.d.ts +1 -1
- package/build/dist/drivers/env.js +2 -2
- package/build/dist/drivers/env.js.map +1 -1
- package/build/dist/drivers/firestore.d.ts +0 -10
- package/build/dist/drivers/firestore.js +3 -43
- package/build/dist/drivers/firestore.js.map +1 -1
- package/build/dist/drivers/org.d.ts +1 -0
- package/build/dist/drivers/org.js +43 -0
- package/build/dist/drivers/org.js.map +1 -0
- package/build/dist/plugins/aws/config.js +3 -6
- package/build/dist/plugins/aws/config.js.map +1 -1
- package/build/dist/plugins/azure/login.d.ts +3 -0
- package/build/dist/plugins/azure/login.js +86 -0
- package/build/dist/plugins/azure/login.js.map +1 -0
- package/build/dist/plugins/google/ssh-key.js +9 -9
- package/build/dist/plugins/google/ssh-key.js.map +1 -1
- package/build/dist/plugins/kubeconfig/index.js +12 -10
- package/build/dist/plugins/kubeconfig/index.js.map +1 -1
- package/build/dist/plugins/login.js +11 -9
- package/build/dist/plugins/login.js.map +1 -1
- package/build/dist/plugins/self-hosted/ssh.d.ts +3 -0
- package/build/dist/plugins/self-hosted/ssh.js +80 -0
- package/build/dist/plugins/self-hosted/ssh.js.map +1 -0
- package/build/dist/plugins/self-hosted/types.d.ts +31 -0
- package/build/dist/plugins/self-hosted/types.js +3 -0
- package/build/dist/plugins/self-hosted/types.js.map +1 -0
- package/build/dist/types/identity.d.ts +2 -1
- package/build/dist/types/org.d.ts +2 -0
- package/build/dist/types/request.d.ts +1 -1
- package/build/dist/types/ssh.d.ts +5 -4
- package/build/dist/types/ssh.js +6 -1
- package/build/dist/types/ssh.js.map +1 -1
- package/build/dist/util.d.ts +3 -0
- package/build/dist/util.js +19 -3
- package/build/dist/util.js.map +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/p0 +0 -13
- package/package.json +2 -1
- package/build/dist/testing/firestore.d.ts +0 -2
- package/build/dist/testing/firestore.js +0 -17
- package/build/dist/testing/firestore.js.map +0 -1
|
@@ -8,6 +8,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
+
var __asyncValues = (this && this.__asyncValues) || function (o) {
|
|
12
|
+
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
13
|
+
var m = o[Symbol.asyncIterator], i;
|
|
14
|
+
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
|
|
15
|
+
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
|
|
16
|
+
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
|
17
|
+
};
|
|
11
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
19
|
exports.provisionRequest = exports.request = exports.requestArgs = exports.ACCESS_EXISTS_ERROR_MESSAGE = exports.EXISTING_ACCESS_MESSAGE = exports.PROVISIONING_ACCESS_MESSAGE = void 0;
|
|
13
20
|
/** Copyright © 2024-present P0 Security
|
|
@@ -20,14 +27,10 @@ This file is part of @p0security/cli
|
|
|
20
27
|
|
|
21
28
|
You should have received a copy of the GNU General Public License along with @p0security/cli. If not, see <https://www.gnu.org/licenses/>.
|
|
22
29
|
**/
|
|
23
|
-
const _1 = require(".");
|
|
24
30
|
const api_1 = require("../../drivers/api");
|
|
25
31
|
const auth_1 = require("../../drivers/auth");
|
|
26
|
-
const firestore_1 = require("../../drivers/firestore");
|
|
27
32
|
const stdio_1 = require("../../drivers/stdio");
|
|
28
|
-
const firestore_2 = require("firebase/firestore");
|
|
29
33
|
const typescript_1 = require("typescript");
|
|
30
|
-
const WAIT_TIMEOUT = 300e3;
|
|
31
34
|
exports.PROVISIONING_ACCESS_MESSAGE = "Waiting for access to be provisioned";
|
|
32
35
|
exports.EXISTING_ACCESS_MESSAGE = "Existing access found.";
|
|
33
36
|
exports.ACCESS_EXISTS_ERROR_MESSAGE = "This principal already has this access";
|
|
@@ -52,45 +55,31 @@ const requestArgs = (yargs) => yargs
|
|
|
52
55
|
default: false,
|
|
53
56
|
describe: "Block until the command is completed",
|
|
54
57
|
})
|
|
58
|
+
.option("debug", { type: "boolean", describe: "Print debug information." })
|
|
55
59
|
.option("arguments", {
|
|
56
60
|
array: true,
|
|
57
61
|
string: true,
|
|
58
62
|
default: [],
|
|
59
63
|
});
|
|
60
64
|
exports.requestArgs = requestArgs;
|
|
61
|
-
const
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
? `${message}: ${data.error.message}`
|
|
78
|
-
: message;
|
|
79
|
-
if (code !== 0 || logMessage)
|
|
80
|
-
(0, stdio_1.print2)(errorMessage);
|
|
81
|
-
resolve(code);
|
|
82
|
-
}
|
|
83
|
-
});
|
|
84
|
-
cancel = setTimeout(() => {
|
|
85
|
-
unsubscribe === null || unsubscribe === void 0 ? void 0 : unsubscribe();
|
|
86
|
-
(0, stdio_1.print2)("Your request did not complete within 5 minutes.");
|
|
87
|
-
resolve(4);
|
|
88
|
-
}, WAIT_TIMEOUT);
|
|
89
|
-
});
|
|
90
|
-
});
|
|
65
|
+
const resolveCode = (permission, logMessage) => {
|
|
66
|
+
const { status } = permission;
|
|
67
|
+
if (isCompletedStatus(status)) {
|
|
68
|
+
const { message, code } = COMPLETED_REQUEST_STATUSES[status];
|
|
69
|
+
const errorMessage = permission.error
|
|
70
|
+
? `${message}: ${permission.error.message}`
|
|
71
|
+
: message;
|
|
72
|
+
if (code !== 0 || logMessage)
|
|
73
|
+
(0, stdio_1.print2)(errorMessage);
|
|
74
|
+
return code;
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
(0, stdio_1.print2)("Your request did not complete within 5 minutes.");
|
|
78
|
+
return 4;
|
|
79
|
+
}
|
|
80
|
+
};
|
|
91
81
|
const request = (command) => (args, authn, options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
92
82
|
const resolvedAuthn = authn !== null && authn !== void 0 ? authn : (yield (0, auth_1.authenticate)());
|
|
93
|
-
const { userCredential } = resolvedAuthn;
|
|
94
83
|
const accessMessage = (message) => {
|
|
95
84
|
switch (message) {
|
|
96
85
|
case "approval-required":
|
|
@@ -99,47 +88,104 @@ const request = (command) => (args, authn, options) => __awaiter(void 0, void 0,
|
|
|
99
88
|
return "Requesting access";
|
|
100
89
|
}
|
|
101
90
|
};
|
|
102
|
-
const
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
(
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
91
|
+
const executeApiRequest = (fetcher) => __awaiter(void 0, void 0, void 0, function* () {
|
|
92
|
+
return (options === null || options === void 0 ? void 0 : options.message) != "quiet"
|
|
93
|
+
? yield (0, stdio_1.spinUntil)(accessMessage(options === null || options === void 0 ? void 0 : options.message), fetcher)
|
|
94
|
+
: yield fetcher;
|
|
95
|
+
});
|
|
96
|
+
const processResponse = (data) => {
|
|
97
|
+
if (data && "ok" in data && "message" in data && data.ok) {
|
|
98
|
+
const shouldLogMessage = !(options === null || options === void 0 ? void 0 : options.message) ||
|
|
99
|
+
(options === null || options === void 0 ? void 0 : options.message) === "all" ||
|
|
100
|
+
((options === null || options === void 0 ? void 0 : options.message) === "approval-required" &&
|
|
101
|
+
!data.isPreexisting &&
|
|
102
|
+
!data.isPersistent);
|
|
103
|
+
return { shouldLogMessage, data };
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
throw data;
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
const invokeRequest = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
110
|
+
const fetchCommandPromise = (0, api_1.fetchCommand)(resolvedAuthn, args, [command, ...args.arguments]);
|
|
111
|
+
const response = yield executeApiRequest(fetchCommandPromise);
|
|
112
|
+
const { data, shouldLogMessage } = processResponse(response);
|
|
113
|
+
if (shouldLogMessage)
|
|
113
114
|
(0, stdio_1.print2)(data.message);
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
115
|
+
return data;
|
|
116
|
+
});
|
|
117
|
+
const executeStreamingRequest = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
118
|
+
var _a, e_1, _b, _c;
|
|
119
|
+
const fetchStreamingCommandGenerator = (0, api_1.fetchStreamingCommand)(resolvedAuthn, args, [command, ...args.arguments], args.debug);
|
|
120
|
+
const getNextPermissionRequestChunk = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
121
|
+
const generatedValue = yield fetchStreamingCommandGenerator.next();
|
|
122
|
+
if (generatedValue.done) {
|
|
119
123
|
return undefined;
|
|
120
124
|
}
|
|
121
|
-
return
|
|
125
|
+
return generatedValue.value;
|
|
126
|
+
});
|
|
127
|
+
const firstChunk = yield executeApiRequest(getNextPermissionRequestChunk());
|
|
128
|
+
const { data, shouldLogMessage } = processResponse(firstChunk);
|
|
129
|
+
if (shouldLogMessage) {
|
|
130
|
+
(0, stdio_1.print2)(data.message);
|
|
131
|
+
(0, stdio_1.print2)("Will wait up to 5 minutes for this request to complete...");
|
|
132
|
+
}
|
|
133
|
+
try {
|
|
134
|
+
for (var _d = true, fetchStreamingCommandGenerator_1 = __asyncValues(fetchStreamingCommandGenerator), fetchStreamingCommandGenerator_1_1; fetchStreamingCommandGenerator_1_1 = yield fetchStreamingCommandGenerator_1.next(), _a = fetchStreamingCommandGenerator_1_1.done, !_a;) {
|
|
135
|
+
_c = fetchStreamingCommandGenerator_1_1.value;
|
|
136
|
+
_d = false;
|
|
137
|
+
try {
|
|
138
|
+
const chunkData = _c;
|
|
139
|
+
if (!chunkData) {
|
|
140
|
+
throw new Error("Errored waiting for request to complete");
|
|
141
|
+
}
|
|
142
|
+
const code = resolveCode(chunkData.request, shouldLogMessage);
|
|
143
|
+
if (code) {
|
|
144
|
+
typescript_1.sys.exit(code);
|
|
145
|
+
return undefined;
|
|
146
|
+
}
|
|
147
|
+
return chunkData;
|
|
148
|
+
}
|
|
149
|
+
finally {
|
|
150
|
+
_d = true;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
155
|
+
finally {
|
|
156
|
+
try {
|
|
157
|
+
if (!_d && !_a && (_b = fetchStreamingCommandGenerator_1.return)) yield _b.call(fetchStreamingCommandGenerator_1);
|
|
158
|
+
}
|
|
159
|
+
finally { if (e_1) throw e_1.error; }
|
|
122
160
|
}
|
|
123
|
-
else
|
|
124
|
-
return undefined;
|
|
125
|
-
}
|
|
126
|
-
else {
|
|
127
161
|
throw data;
|
|
162
|
+
});
|
|
163
|
+
try {
|
|
164
|
+
return yield (!args.wait ? invokeRequest() : executeStreamingRequest());
|
|
165
|
+
}
|
|
166
|
+
catch (error) {
|
|
167
|
+
if (error instanceof Error && error.name === "TimeoutError") {
|
|
168
|
+
(0, stdio_1.print2)("Your request did not complete within 5 minutes.");
|
|
169
|
+
}
|
|
170
|
+
if (error instanceof Error &&
|
|
171
|
+
(error.name === "disconnect" || error.name === "terminated")) {
|
|
172
|
+
(0, stdio_1.print2)("Disconnected from server. Retry after 1 minutes.");
|
|
173
|
+
}
|
|
174
|
+
throw error;
|
|
128
175
|
}
|
|
129
176
|
});
|
|
130
177
|
exports.request = request;
|
|
131
178
|
const provisionRequest = (argv, authn) => __awaiter(void 0, void 0, void 0, function* () {
|
|
132
179
|
try {
|
|
133
|
-
const response = yield (0, exports.request)("request")(argv, authn, {
|
|
180
|
+
const response = yield (0, exports.request)("request")(Object.assign(Object.assign({}, argv), { wait: true }), authn, {
|
|
134
181
|
message: "approval-required",
|
|
135
182
|
});
|
|
136
183
|
if (!response) {
|
|
137
184
|
(0, stdio_1.print2)("Did not receive access ID from server");
|
|
138
185
|
return;
|
|
139
186
|
}
|
|
140
|
-
const {
|
|
187
|
+
const { isPreexisting } = response;
|
|
141
188
|
(0, stdio_1.print2)(!isPreexisting ? exports.PROVISIONING_ACCESS_MESSAGE : exports.EXISTING_ACCESS_MESSAGE);
|
|
142
|
-
yield (0, _1.waitForProvisioning)(authn, id);
|
|
143
189
|
}
|
|
144
190
|
catch (error) {
|
|
145
191
|
if (error === exports.ACCESS_EXISTS_ERROR_MESSAGE) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../../../src/commands/shared/request.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../../../src/commands/shared/request.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,28 +22,29 @@ You should have received a copy of the GNU General Public License along with @p0
|
|
|
22
22
|
**/
|
|
23
23
|
const _1 = require(".");
|
|
24
24
|
const keys_1 = require("../../common/keys");
|
|
25
|
+
const api_1 = require("../../drivers/api");
|
|
25
26
|
const config_1 = require("../../drivers/config");
|
|
26
|
-
const firestore_1 = require("../../drivers/firestore");
|
|
27
27
|
const stdio_1 = require("../../drivers/stdio");
|
|
28
28
|
const ssh_1 = require("../../plugins/aws/ssh");
|
|
29
29
|
const ssh_2 = require("../../plugins/azure/ssh");
|
|
30
30
|
const ssh_3 = require("../../plugins/google/ssh");
|
|
31
|
-
const ssh_4 = require("../../
|
|
31
|
+
const ssh_4 = require("../../plugins/self-hosted/ssh");
|
|
32
|
+
const ssh_5 = require("../../types/ssh");
|
|
32
33
|
const request_1 = require("./request");
|
|
33
|
-
const firestore_2 = require("firebase/firestore");
|
|
34
34
|
const lodash_1 = require("lodash");
|
|
35
|
+
const typescript_1 = require("typescript");
|
|
35
36
|
exports.SSH_PROVIDERS = {
|
|
36
37
|
aws: ssh_1.awsSshProvider,
|
|
37
38
|
azure: ssh_2.azureSshProvider,
|
|
38
39
|
gcloud: ssh_3.gcpSshProvider,
|
|
40
|
+
"self-hosted": ssh_4.selfHostedSshProvider,
|
|
39
41
|
};
|
|
40
42
|
const validateSshInstall = (authn, args) => __awaiter(void 0, void 0, void 0, function* () {
|
|
41
|
-
|
|
42
|
-
const
|
|
43
|
-
const configItems = (_a = configDoc.data()) === null || _a === void 0 ? void 0 : _a["iam-write"];
|
|
43
|
+
const configDoc = yield (0, api_1.fetchIntegrationConfig)(authn, "ssh");
|
|
44
|
+
const configItems = configDoc === null || configDoc === void 0 ? void 0 : configDoc.config["iam-write"];
|
|
44
45
|
const providersToCheck = args.provider
|
|
45
46
|
? [args.provider]
|
|
46
|
-
:
|
|
47
|
+
: ssh_5.SupportedSshProviders;
|
|
47
48
|
const items = Object.entries(configItems !== null && configItems !== void 0 ? configItems : {}).filter(([key, value]) => value.state == "installed" &&
|
|
48
49
|
providersToCheck.some((prefix) => key.startsWith(prefix)));
|
|
49
50
|
if (items.length === 0) {
|
|
@@ -69,7 +70,7 @@ const provisionRequest = (authn, args, destination, approvedOnly, quiet) => __aw
|
|
|
69
70
|
...((0, exports.isSudoCommand)(args) ? ["--sudo"] : []),
|
|
70
71
|
...(args.reason ? ["--reason", args.reason] : []),
|
|
71
72
|
...(args.parent ? ["--parent", args.parent] : []),
|
|
72
|
-
], wait: true }), authn, { message: quiet ? "quiet" : "approval-required" });
|
|
73
|
+
], wait: true, debug: args.debug }), authn, { message: quiet ? "quiet" : "approval-required" });
|
|
73
74
|
if (!response) {
|
|
74
75
|
if (!quiet) {
|
|
75
76
|
(0, stdio_1.print2)("Did not receive access ID from server");
|
|
@@ -81,19 +82,27 @@ const provisionRequest = (authn, args, destination, approvedOnly, quiet) => __aw
|
|
|
81
82
|
(0, stdio_1.print2)("Waiting for access to be provisioned");
|
|
82
83
|
else
|
|
83
84
|
(0, stdio_1.print2)("Existing access found. Connecting to instance.");
|
|
84
|
-
const
|
|
85
|
-
|
|
85
|
+
const result = yield (0, _1.decodeProvisionStatus)(response.request);
|
|
86
|
+
if (!result) {
|
|
87
|
+
typescript_1.sys.exit(1);
|
|
88
|
+
}
|
|
89
|
+
return {
|
|
90
|
+
requestId: id,
|
|
91
|
+
provisionedRequest: response.request,
|
|
92
|
+
publicKey,
|
|
93
|
+
privateKey,
|
|
94
|
+
};
|
|
86
95
|
});
|
|
87
96
|
exports.provisionRequest = provisionRequest;
|
|
88
97
|
const prepareRequest = (authn, args, destination, approvedOnly, quiet) => __awaiter(void 0, void 0, void 0, function* () {
|
|
89
|
-
var
|
|
98
|
+
var _a;
|
|
90
99
|
const result = yield (0, exports.provisionRequest)(authn, args, destination, approvedOnly, quiet);
|
|
91
100
|
if (!result) {
|
|
92
101
|
throw `Server did not return a request id. ${(0, config_1.getContactMessage)()}`;
|
|
93
102
|
}
|
|
94
103
|
const { requestId, publicKey, provisionedRequest } = result;
|
|
95
104
|
const sshProvider = exports.SSH_PROVIDERS[provisionedRequest.permission.provider];
|
|
96
|
-
yield ((
|
|
105
|
+
yield ((_a = sshProvider.submitPublicKey) === null || _a === void 0 ? void 0 : _a.call(sshProvider, authn, provisionedRequest, requestId, publicKey));
|
|
97
106
|
yield sshProvider.ensureInstall();
|
|
98
107
|
const cliRequest = yield pluginToCliRequest(provisionedRequest, {
|
|
99
108
|
debug: args.debug,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssh.js","sourceRoot":"","sources":["../../../../src/commands/shared/ssh.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;;;;;;GASG;AACH,
|
|
1
|
+
{"version":3,"file":"ssh.js","sourceRoot":"","sources":["../../../../src/commands/shared/ssh.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,7 +48,6 @@ You should have received a copy of the GNU General Public License along with @p0
|
|
|
48
48
|
**/
|
|
49
49
|
const destination_1 = require("../common/destination");
|
|
50
50
|
const auth_1 = require("../drivers/auth");
|
|
51
|
-
const firestore_1 = require("../drivers/firestore");
|
|
52
51
|
const ssh_1 = require("../plugins/ssh");
|
|
53
52
|
const util_1 = require("../util");
|
|
54
53
|
const ssh_2 = require("./shared/ssh");
|
|
@@ -67,7 +66,7 @@ const sshProxyCommand = (yargs) => yargs.command("ssh-proxy <destination>", fals
|
|
|
67
66
|
requiresArg: true,
|
|
68
67
|
type: "string",
|
|
69
68
|
describe: "The cloud provider where the instance is hosted",
|
|
70
|
-
choices: ["aws", "azure", "gcloud"],
|
|
69
|
+
choices: ["aws", "azure", "gcloud", "self-hosted"],
|
|
71
70
|
demandOption: true,
|
|
72
71
|
})
|
|
73
72
|
.option("identityFile", {
|
|
@@ -87,7 +86,7 @@ const sshProxyCommand = (yargs) => yargs.command("ssh-proxy <destination>", fals
|
|
|
87
86
|
type: "boolean",
|
|
88
87
|
describe: "Print debug information.",
|
|
89
88
|
})
|
|
90
|
-
.usage("$0 ssh-proxy <destination>"),
|
|
89
|
+
.usage("$0 ssh-proxy <destination>"), sshProxyAction);
|
|
91
90
|
exports.sshProxyCommand = sshProxyCommand;
|
|
92
91
|
const sshProxyAction = (args) => __awaiter(void 0, void 0, void 0, function* () {
|
|
93
92
|
var _a;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssh-proxy.js","sourceRoot":"","sources":["../../../src/commands/ssh-proxy.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;GASG;AACH,uDAA2D;AAC3D,0CAA+C;AAC/C,
|
|
1
|
+
{"version":3,"file":"ssh-proxy.js","sourceRoot":"","sources":["../../../src/commands/ssh-proxy.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,7 +26,6 @@ You should have received a copy of the GNU General Public License along with @p0
|
|
|
26
26
|
const destination_1 = require("../common/destination");
|
|
27
27
|
const keys_1 = require("../common/keys");
|
|
28
28
|
const auth_1 = require("../drivers/auth");
|
|
29
|
-
const firestore_1 = require("../drivers/firestore");
|
|
30
29
|
const stdio_1 = require("../drivers/stdio");
|
|
31
30
|
const util_1 = require("../util");
|
|
32
31
|
const ssh_1 = require("./shared/ssh");
|
|
@@ -47,7 +46,7 @@ const sshResolveCommand = (yargs) => yargs.command("ssh-resolve <destination>",
|
|
|
47
46
|
.option("provider", {
|
|
48
47
|
type: "string",
|
|
49
48
|
describe: "The cloud provider where the instance is hosted",
|
|
50
|
-
choices: ["aws", "azure", "gcloud"],
|
|
49
|
+
choices: ["aws", "azure", "gcloud", "self-hosted"],
|
|
51
50
|
})
|
|
52
51
|
.option("debug", {
|
|
53
52
|
type: "boolean",
|
|
@@ -62,7 +61,7 @@ const sshResolveCommand = (yargs) => yargs.command("ssh-resolve <destination>",
|
|
|
62
61
|
describe: "Reason access is needed",
|
|
63
62
|
type: "string",
|
|
64
63
|
})
|
|
65
|
-
.env(ENV_PREFIX),
|
|
64
|
+
.env(ENV_PREFIX), sshResolveAction);
|
|
66
65
|
exports.sshResolveCommand = sshResolveCommand;
|
|
67
66
|
/** Determine if an SSH backend is accessible to the user and prepares local files for access
|
|
68
67
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssh-resolve.js","sourceRoot":"","sources":["../../../src/commands/ssh-resolve.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA;;;;;;;;;GASG;AACH,uDAA2D;AAC3D,yCAAkD;AAClD,0CAA+C;AAC/C,
|
|
1
|
+
{"version":3,"file":"ssh-resolve.js","sourceRoot":"","sources":["../../../src/commands/ssh-resolve.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,7 +21,6 @@ This file is part of @p0security/cli
|
|
|
21
21
|
You should have received a copy of the GNU General Public License along with @p0security/cli. If not, see <https://www.gnu.org/licenses/>.
|
|
22
22
|
**/
|
|
23
23
|
const auth_1 = require("../drivers/auth");
|
|
24
|
-
const firestore_1 = require("../drivers/firestore");
|
|
25
24
|
const ssh_1 = require("../plugins/ssh");
|
|
26
25
|
const ssh_2 = require("./shared/ssh");
|
|
27
26
|
const sshCommand = (yargs) => yargs.command("ssh <destination> [command [arguments..]]", "SSH into a virtual machine", (yargs) => yargs
|
|
@@ -55,7 +54,7 @@ const sshCommand = (yargs) => yargs.command("ssh <destination> [command [argumen
|
|
|
55
54
|
.option("provider", {
|
|
56
55
|
type: "string",
|
|
57
56
|
describe: "The cloud provider where the instance is hosted",
|
|
58
|
-
choices: ["aws", "azure", "gcloud"],
|
|
57
|
+
choices: ["aws", "azure", "gcloud", "self-hosted"],
|
|
59
58
|
})
|
|
60
59
|
.option("debug", {
|
|
61
60
|
type: "boolean",
|
|
@@ -67,10 +66,10 @@ const sshCommand = (yargs) => yargs.command("ssh <destination> [command [argumen
|
|
|
67
66
|
"populate--": true,
|
|
68
67
|
})
|
|
69
68
|
.epilogue(`[-- SSH_ARGS ...]
|
|
70
|
-
|
|
69
|
+
Options passed to the underlying ssh implementation.
|
|
71
70
|
The '--' argument must be specified between P0-specific args on the left and SSH_ARGS on the right. Example;
|
|
72
71
|
|
|
73
|
-
$ p0 ssh example-instance --provider gcloud -- -NR '*:8080:localhost:8088' -o 'GatewayPorts yes'`),
|
|
72
|
+
$ p0 ssh example-instance --provider gcloud -- -NR '*:8080:localhost:8088' -o 'GatewayPorts yes'`), sshAction);
|
|
74
73
|
exports.sshCommand = sshCommand;
|
|
75
74
|
/** Connect to an SSH backend
|
|
76
75
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssh.js","sourceRoot":"","sources":["../../../src/commands/ssh.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;;;;;;GASG;AACH,0CAA+C;AAC/C,
|
|
1
|
+
{"version":3,"file":"ssh.js","sourceRoot":"","sources":["../../../src/commands/ssh.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;;;;;;GASG;AACH,0CAA+C;AAC/C,wCAA0C;AAC1C,sCAA8D;AAGvD,MAAM,UAAU,GAAG,CAAC,KAAiB,EAAE,EAAE,CAC9C,KAAK,CAAC,OAAO,CACX,2CAA2C,EAC3C,4BAA4B,EAC5B,CAAC,KAAK,EAAE,EAAE,CACR,KAAK;KACF,UAAU,CAAC,aAAa,EAAE;IACzB,IAAI,EAAE,QAAQ;IACd,YAAY,EAAE,IAAI;CACnB,CAAC;KACD,UAAU,CAAC,SAAS,EAAE;IACrB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,2BAA2B;CACtC,CAAC;KACD,UAAU,CAAC,WAAW,EAAE;IACvB,QAAQ,EAAE,mBAAmB;IAC7B,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,EAAc;CACxB,CAAC;KACD,MAAM,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,0BAA0B;CACrC,CAAC;IACF,8BAA8B;KAC7B,MAAM,CAAC,QAAQ,EAAE;IAChB,QAAQ,EAAE,yBAAyB;IACnC,IAAI,EAAE,QAAQ;CACf,CAAC;KACD,MAAM,CAAC,QAAQ,EAAE;IAChB,IAAI,EAAE,QAAQ;IACd,QAAQ,EACN,qGAAqG;CACxG,CAAC;KACD,MAAM,CAAC,UAAU,EAAE;IAClB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,iDAAiD;IAC3D,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,CAAC;CACnD,CAAC;KACD,MAAM,CAAC,OAAO,EAAE;IACf,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,0BAA0B;CACrC,CAAC;KACD,KAAK,CAAC,gEAAgE,CAAC;IACxE,+DAA+D;KAC9D,mBAAmB,CAAC;IACnB,YAAY,EAAE,IAAI;CACnB,CAAC;KACD,QAAQ,CACP;;;;mGAIyF,CAC1F,EAEL,SAAS,CACV,CAAC;AAzDS,QAAA,UAAU,cAyDnB;AAEJ;;;;;;GAMG;AACH,MAAM,SAAS,GAAG,CAAO,IAA8C,EAAE,EAAE;IACzE,0FAA0F;IAC1F,MAAM,KAAK,GAAG,MAAM,IAAA,mBAAY,EAAC,IAAI,CAAC,CAAC;IAEvC,MAAM,UAAU,GAAa,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;QACxB,CAAC,CAAC,EAAE,CAAC;IACP,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAE7B,uGAAuG;IACvG,IACE,IAAI,CAAC,QAAQ,KAAK,OAAO;QACzB,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAC9C;QACA,MAAM,wHAAwH,CAAC;KAChI;IAED,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,MAAM,IAAA,oBAAc,EAC1E,KAAK,EACL,IAAI,EACJ,IAAI,CAAC,WAAW,CACjB,CAAC;IAEF,MAAM,IAAA,cAAQ,EAAC;QACb,KAAK;QACL,OAAO;QACP,SAAS;QACT,OAAO,EAAE,IAAI;QACb,UAAU;QACV,WAAW;KACZ,CAAC,CAAC;AACL,CAAC,CAAA,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|