@p0security/cli 0.9.0 → 0.10.1
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/README.md +8 -1
- package/dist/commands/__tests__/grant.test.js +1 -0
- package/dist/commands/__tests__/grant.test.js.map +1 -0
- package/dist/commands/__tests__/login.test.js +1 -0
- package/dist/commands/__tests__/login.test.js.map +1 -0
- package/dist/commands/__tests__/ls.test.js +1 -0
- package/dist/commands/__tests__/ls.test.js.map +1 -0
- package/dist/commands/__tests__/request.test.js +1 -0
- package/dist/commands/__tests__/request.test.js.map +1 -0
- package/dist/commands/__tests__/ssh.test.js +1 -0
- package/dist/commands/__tests__/ssh.test.js.map +1 -0
- package/dist/commands/allow.js +1 -0
- package/dist/commands/allow.js.map +1 -0
- package/dist/commands/aws/__tests__/__input__/saml-response.js +1 -0
- package/dist/commands/aws/__tests__/__input__/saml-response.js.map +1 -0
- package/dist/commands/aws/__tests__/__input__/sts-response.js +1 -0
- package/dist/commands/aws/__tests__/__input__/sts-response.js.map +1 -0
- package/dist/commands/aws/__tests__/role.test.js +1 -0
- package/dist/commands/aws/__tests__/role.test.js.map +1 -0
- package/dist/commands/aws/files.js +1 -0
- package/dist/commands/aws/files.js.map +1 -0
- package/dist/commands/aws/index.js +1 -0
- package/dist/commands/aws/index.js.map +1 -0
- package/dist/commands/aws/role.js +1 -0
- package/dist/commands/aws/role.js.map +1 -0
- package/dist/commands/grant.js +1 -0
- package/dist/commands/grant.js.map +1 -0
- package/dist/commands/index.js +3 -1
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/kubeconfig.d.ts +1 -1
- package/dist/commands/kubeconfig.js +1 -0
- package/dist/commands/kubeconfig.js.map +1 -0
- package/dist/commands/login.js +1 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/ls.js +2 -0
- package/dist/commands/ls.js.map +1 -0
- package/dist/commands/request.js +1 -0
- package/dist/commands/request.js.map +1 -0
- package/dist/commands/scp.js +12 -10
- package/dist/commands/scp.js.map +1 -0
- package/dist/commands/shared/index.js +1 -0
- package/dist/commands/shared/index.js.map +1 -0
- package/dist/commands/shared/request.js +1 -0
- package/dist/commands/shared/request.js.map +1 -0
- package/dist/commands/shared/ssh.d.ts +15 -7
- package/dist/commands/shared/ssh.js +16 -5
- package/dist/commands/shared/ssh.js.map +1 -0
- package/dist/commands/ssh.js +23 -12
- package/dist/commands/ssh.js.map +1 -0
- package/dist/common/__mocks__/keys.js +1 -0
- package/dist/common/__mocks__/keys.js.map +1 -0
- package/dist/common/auth/oidc.js +1 -0
- package/dist/common/auth/oidc.js.map +1 -0
- package/dist/common/auth/server.js +1 -0
- package/dist/common/auth/server.js.map +1 -0
- package/dist/common/fetch.js +1 -0
- package/dist/common/fetch.js.map +1 -0
- package/dist/common/install.d.ts +3 -3
- package/dist/common/install.js +1 -0
- package/dist/common/install.js.map +1 -0
- package/dist/common/keys.js +1 -0
- package/dist/common/keys.js.map +1 -0
- package/dist/common/mime.js +1 -0
- package/dist/common/mime.js.map +1 -0
- package/dist/common/retry.js +1 -0
- package/dist/common/retry.js.map +1 -0
- package/dist/common/subprocess.d.ts +4 -2
- package/dist/common/subprocess.js +10 -3
- package/dist/common/subprocess.js.map +1 -0
- package/dist/common/xml.js +1 -0
- package/dist/common/xml.js.map +1 -0
- package/dist/drivers/__mocks__/auth.js +1 -0
- package/dist/drivers/__mocks__/auth.js.map +1 -0
- package/dist/drivers/api.js +24 -13
- package/dist/drivers/api.js.map +1 -0
- package/dist/drivers/auth.js +1 -0
- package/dist/drivers/auth.js.map +1 -0
- package/dist/drivers/env.d.ts +1 -0
- package/dist/drivers/env.js +3 -1
- package/dist/drivers/env.js.map +1 -0
- package/dist/drivers/firestore.js +1 -0
- package/dist/drivers/firestore.js.map +1 -0
- package/dist/drivers/stdio.js +1 -0
- package/dist/drivers/stdio.js.map +1 -0
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -0
- package/dist/middlewares/version.js +1 -0
- package/dist/middlewares/version.js.map +1 -0
- package/dist/plugins/__mocks__/login.js +1 -0
- package/dist/plugins/__mocks__/login.js.map +1 -0
- package/dist/plugins/aws/__mocks__/assumeRole.js +1 -0
- package/dist/plugins/aws/__mocks__/assumeRole.js.map +1 -0
- package/dist/plugins/aws/api.js +1 -0
- package/dist/plugins/aws/api.js.map +1 -0
- package/dist/plugins/aws/assumeRole.js +1 -0
- package/dist/plugins/aws/assumeRole.js.map +1 -0
- package/dist/plugins/aws/config.js +1 -0
- package/dist/plugins/aws/config.js.map +1 -0
- package/dist/plugins/aws/idc/index.js +1 -0
- package/dist/plugins/aws/idc/index.js.map +1 -0
- package/dist/plugins/aws/ssh.js +5 -2
- package/dist/plugins/aws/ssh.js.map +1 -0
- package/dist/plugins/aws/ssm/install.js +2 -21
- package/dist/plugins/aws/ssm/install.js.map +1 -0
- package/dist/plugins/aws/types.d.ts +16 -16
- package/dist/plugins/aws/types.js +1 -0
- package/dist/plugins/aws/types.js.map +1 -0
- package/dist/plugins/google/install.d.ts +2 -0
- package/dist/plugins/google/install.js +39 -0
- package/dist/plugins/google/install.js.map +1 -0
- package/dist/plugins/google/login.js +1 -0
- package/dist/plugins/google/login.js.map +1 -0
- package/dist/plugins/google/ssh-key.js +4 -0
- package/dist/plugins/google/ssh-key.js.map +1 -0
- package/dist/plugins/google/ssh.js +7 -0
- package/dist/plugins/google/ssh.js.map +1 -0
- package/dist/plugins/google/types.d.ts +8 -8
- package/dist/plugins/google/types.js +1 -0
- package/dist/plugins/google/types.js.map +1 -0
- package/dist/plugins/kubeconfig/index.d.ts +6 -2
- package/dist/plugins/kubeconfig/index.js +14 -7
- package/dist/plugins/kubeconfig/index.js.map +1 -0
- package/dist/plugins/kubeconfig/install.js +1 -0
- package/dist/plugins/kubeconfig/install.js.map +1 -0
- package/dist/plugins/kubeconfig/types.d.ts +17 -23
- package/dist/plugins/kubeconfig/types.js +1 -0
- package/dist/plugins/kubeconfig/types.js.map +1 -0
- package/dist/plugins/login.d.ts +1 -1
- package/dist/plugins/login.js +1 -0
- package/dist/plugins/login.js.map +1 -0
- package/dist/plugins/oidc/login.js +1 -0
- package/dist/plugins/oidc/login.js.map +1 -0
- package/dist/plugins/okta/aws.js +1 -0
- package/dist/plugins/okta/aws.js.map +1 -0
- package/dist/plugins/okta/login.js +1 -0
- package/dist/plugins/okta/login.js.map +1 -0
- package/dist/plugins/ping/login.js +1 -0
- package/dist/plugins/ping/login.js.map +1 -0
- package/dist/plugins/ssh/index.d.ts +8 -2
- package/dist/plugins/ssh/index.js +43 -35
- package/dist/plugins/ssh/index.js.map +1 -0
- package/dist/plugins/ssh/types.d.ts +3 -3
- package/dist/plugins/ssh/types.js +1 -0
- package/dist/plugins/ssh/types.js.map +1 -0
- package/dist/testing/firestore.js +1 -0
- package/dist/testing/firestore.js.map +1 -0
- package/dist/testing/yargs.js +1 -0
- package/dist/testing/yargs.js.map +1 -0
- package/dist/types/allow.d.ts +1 -1
- package/dist/types/allow.js +1 -0
- package/dist/types/allow.js.map +1 -0
- package/dist/types/aws/oidc.d.ts +3 -3
- package/dist/types/aws/oidc.js +1 -0
- package/dist/types/aws/oidc.js.map +1 -0
- package/dist/types/identity.d.ts +2 -2
- package/dist/types/identity.js +1 -0
- package/dist/types/identity.js.map +1 -0
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/oidc.d.ts +5 -5
- package/dist/types/oidc.js +1 -0
- package/dist/types/oidc.js.map +1 -0
- package/dist/types/org.d.ts +3 -3
- package/dist/types/org.js +1 -0
- package/dist/types/org.js.map +1 -0
- package/dist/types/request.d.ts +4 -4
- package/dist/types/request.js +1 -0
- package/dist/types/request.js.map +1 -0
- package/dist/types/ssh.d.ts +7 -6
- package/dist/types/ssh.js +1 -0
- package/dist/types/ssh.js.map +1 -0
- package/dist/util.d.ts +0 -10
- package/dist/util.js +3 -1
- package/dist/util.js.map +1 -0
- package/package.json +5 -1
- package/dist/plugins/ssh-agent/index.d.ts +0 -4
- package/dist/plugins/ssh-agent/index.js +0 -102
- package/dist/plugins/ssh-agent/types.d.ts +0 -13
- package/dist/plugins/ssh-agent/types.js +0 -2
|
@@ -60,6 +60,9 @@ const importSshKey = (publicKey, options) => __awaiter(void 0, void 0, void 0, f
|
|
|
60
60
|
"Content-Type": "application/json",
|
|
61
61
|
},
|
|
62
62
|
});
|
|
63
|
+
if (!response.ok) {
|
|
64
|
+
throw `Import of SSH public key failed. HTTP error ${response.status}: ${yield response.text()}`;
|
|
65
|
+
}
|
|
63
66
|
const data = yield response.json();
|
|
64
67
|
if (debug) {
|
|
65
68
|
(0, stdio_1.print2)(`Login profile for user after importing public key: ${JSON.stringify(data)}`);
|
|
@@ -78,3 +81,4 @@ const importSshKey = (publicKey, options) => __awaiter(void 0, void 0, void 0, f
|
|
|
78
81
|
return posixAccount.username;
|
|
79
82
|
});
|
|
80
83
|
exports.importSshKey = importSshKey;
|
|
84
|
+
//# sourceMappingURL=ssh-key.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ssh-key.js","sourceRoot":"","sources":["../../../src/plugins/google/ssh-key.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;;;;;;GASG;AACH,wDAAqD;AACrD,+CAA6C;AAG7C;;;;;;;;;;GAUG;AACI,MAAM,YAAY,GAAG,CAC1B,SAAiB,EACjB,OAA6B,EAC7B,EAAE;;IACF,MAAM,KAAK,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,mCAAI,KAAK,CAAC;IACtC,yDAAyD;IACzD,MAAM,WAAW,GAAG,MAAM,IAAA,uBAAU,EAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE;QAC/D,MAAM;QACN,oBAAoB;KACrB,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,MAAM,IAAA,uBAAU,EAAC,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE;QACpD,QAAQ;QACR,WAAW;QACX,SAAS;KACV,CAAC,CAAC;IAEH,IAAI,KAAK,EAAE;QACT,IAAA,cAAM,EACJ,0BAA0B,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,OAAO,EAAE,CAC/E,CAAC;KACH;IAED,MAAM,GAAG,GAAG,2CAA2C,OAAO,qBAAqB,CAAC;IACpF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAChC,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,GAAG,EAAE,SAAS;SACf,CAAC;QACF,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,WAAW,EAAE;YACtC,cAAc,EAAE,kBAAkB;SACnC;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;QAChB,MAAM,+CAA+C,QAAQ,CAAC,MAAM,KAAK,MAAM,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;KAClG;IAED,MAAM,IAAI,GAA+B,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/D,IAAI,KAAK,EAAE;QACT,IAAA,cAAM,EACJ,sDAAsD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAC7E,CAAC;KACH;IAED,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IAE9B,yEAAyE;IACzE,MAAM,aAAa,GAAG,YAAY,CAAC,aAAa,CAAC,MAAM,CACrD,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,mBAAmB,KAAK,OAAO,CACrD,CAAC;IAEF,MAAM,YAAY,GAChB,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;QAChD,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAEhC,IAAI,KAAK,EAAE;QACT,IAAA,cAAM,EAAC,2BAA2B,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,QAAQ,EAAE,CAAC,CAAC;KAC7D;IAED,IAAI,CAAC,YAAY,EAAE;QACjB,MAAM,2HAA2H,CAAC;KACnI;IAED,OAAO,YAAY,CAAC,QAAQ,CAAC;AAC/B,CAAC,CAAA,CAAC;AAlEW,QAAA,YAAY,gBAkEvB"}
|
|
@@ -21,6 +21,7 @@ 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 ssh_1 = require("../../commands/shared/ssh");
|
|
24
|
+
const install_1 = require("./install");
|
|
24
25
|
const ssh_key_1 = require("./ssh-key");
|
|
25
26
|
/** Maximum number of attempts to start an SSH session
|
|
26
27
|
*
|
|
@@ -42,6 +43,11 @@ exports.gcpSshProvider = {
|
|
|
42
43
|
linuxUserName: yield (0, ssh_key_1.importSshKey)(request.permission.spec.publicKey, options),
|
|
43
44
|
} }));
|
|
44
45
|
}),
|
|
46
|
+
ensureInstall: () => __awaiter(void 0, void 0, void 0, function* () {
|
|
47
|
+
if (!(yield (0, install_1.ensureGcpSshInstall)())) {
|
|
48
|
+
throw "Please try again after installing the required GCP utilities";
|
|
49
|
+
}
|
|
50
|
+
}),
|
|
45
51
|
cloudProviderLogin: () => __awaiter(void 0, void 0, void 0, function* () { return undefined; }),
|
|
46
52
|
proxyCommand: (request) => {
|
|
47
53
|
return [
|
|
@@ -72,3 +78,4 @@ exports.gcpSshProvider = {
|
|
|
72
78
|
maxRetries: MAX_SSH_RETRIES,
|
|
73
79
|
friendlyName: "Google Cloud",
|
|
74
80
|
};
|
|
81
|
+
//# sourceMappingURL=ssh.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ssh.js","sourceRoot":"","sources":["../../../src/plugins/google/ssh.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;;;;;;GASG;AACH,mDAA0D;AAE1D,uCAAgD;AAChD,uCAAyC;AAGzC;;;GAGG;AACH,MAAM,eAAe,GAAG,GAAG,CAAC;AAEf,QAAA,cAAc,GAIvB;IACF,YAAY,EAAE,CAAC,OAAO,EAAE,EAAE;QACxB,OAAO;YACL,EAAE,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY;YACxC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS;YAC5C,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI;YAClC,aAAa,EAAE,OAAO,CAAC,YAAY,CAAC,aAAa;YACjD,IAAI,EAAE,QAAQ;SACf,CAAC;IACJ,CAAC;IACD,YAAY,EAAE,CAAO,OAAO,EAAE,OAAO,EAAE,EAAE;QAAC,OAAA,iCACrC,OAAO,KACV,YAAY,EAAE;gBACZ,aAAa,EAAE,MAAM,IAAA,sBAAY,EAC/B,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EACjC,OAAO,CACR;aACF,IACD,CAAA;MAAA;IACF,aAAa,EAAE,GAAS,EAAE;QACxB,IAAI,CAAC,CAAC,MAAM,IAAA,6BAAmB,GAAE,CAAC,EAAE;YAClC,MAAM,8DAA8D,CAAC;SACtE;IACH,CAAC,CAAA;IACD,kBAAkB,EAAE,GAAS,EAAE,kDAAC,OAAA,SAAS,CAAA,GAAA;IACzC,YAAY,EAAE,CAAC,OAAO,EAAE,EAAE;QACxB,OAAO;YACL,QAAQ;YACR,SAAS;YACT,kBAAkB;YAClB,OAAO,CAAC,EAAE;YACV,IAAI;YACJ,kEAAkE;YAClE,oGAAoG;YACpG,oEAAoE;YACpE,kDAAkD;YAClD,mBAAmB;YACnB,UAAU,OAAO,CAAC,IAAI,EAAE;YACxB,aAAa,OAAO,CAAC,SAAS,EAAE;SACjC,CAAC;IACJ,CAAC;IACD,aAAa,EAAE,GAAG,EAAE,CAAC,SAAS;IAC9B,4BAA4B,EAAE,CAAC,OAAO,EAAE,EAAE;QACxC,IAAI,IAAA,mBAAa,EAAC,OAAO,CAAC,EAAE;YAC1B,uCACK,OAAO;gBACV,6GAA6G;gBAC7G,6HAA6H;gBAC7H,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,CAAC,IAAI,CAAC,IACjB;SACH;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,UAAU,EAAE,eAAe;IAC3B,YAAY,EAAE,cAAc;CAC7B,CAAC"}
|
|
@@ -11,7 +11,7 @@ You should have received a copy of the GNU General Public License along with @p0
|
|
|
11
11
|
import { PermissionSpec } from "../../types/request";
|
|
12
12
|
import { CliPermissionSpec } from "../../types/ssh";
|
|
13
13
|
import { CommonSshPermissionSpec } from "../ssh/types";
|
|
14
|
-
export
|
|
14
|
+
export type GcpSshPermission = {
|
|
15
15
|
spec: CommonSshPermissionSpec & {
|
|
16
16
|
instanceName: string;
|
|
17
17
|
projectId: string;
|
|
@@ -20,18 +20,18 @@ export declare type GcpSshPermission = {
|
|
|
20
20
|
};
|
|
21
21
|
type: "session";
|
|
22
22
|
};
|
|
23
|
-
export
|
|
24
|
-
export
|
|
23
|
+
export type GcpSshPermissionSpec = PermissionSpec<"ssh", GcpSshPermission>;
|
|
24
|
+
export type GcpSsh = CliPermissionSpec<GcpSshPermissionSpec, {
|
|
25
25
|
linuxUserName: string;
|
|
26
26
|
}>;
|
|
27
|
-
export
|
|
27
|
+
export type GcpSshRequest = {
|
|
28
28
|
linuxUserName: string;
|
|
29
29
|
projectId: string;
|
|
30
30
|
zone: string;
|
|
31
31
|
id: string;
|
|
32
32
|
type: "gcloud";
|
|
33
33
|
};
|
|
34
|
-
|
|
34
|
+
type PosixAccount = {
|
|
35
35
|
username: string;
|
|
36
36
|
uid: string;
|
|
37
37
|
gid: string;
|
|
@@ -39,19 +39,19 @@ declare type PosixAccount = {
|
|
|
39
39
|
homeDirectory?: string;
|
|
40
40
|
primary?: boolean;
|
|
41
41
|
};
|
|
42
|
-
|
|
42
|
+
type SshPublicKey = {
|
|
43
43
|
key: string;
|
|
44
44
|
fingerprint?: string;
|
|
45
45
|
expirationTimeUsec?: number;
|
|
46
46
|
};
|
|
47
|
-
|
|
47
|
+
type LoginProfile = {
|
|
48
48
|
name: string;
|
|
49
49
|
posixAccounts: PosixAccount[];
|
|
50
50
|
sshPublicKeys: {
|
|
51
51
|
[fingerprint: string]: SshPublicKey;
|
|
52
52
|
};
|
|
53
53
|
};
|
|
54
|
-
export
|
|
54
|
+
export type ImportSshPublicKeyResponse = {
|
|
55
55
|
loginProfile: LoginProfile;
|
|
56
56
|
};
|
|
57
57
|
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/plugins/google/types.ts"],"names":[],"mappings":""}
|
|
@@ -12,10 +12,14 @@ import { KubeconfigCommandArgs } from "../../commands/kubeconfig";
|
|
|
12
12
|
import { Authn } from "../../types/identity";
|
|
13
13
|
import { Request } from "../../types/request";
|
|
14
14
|
import { AwsCredentials } from "../aws/types";
|
|
15
|
-
import {
|
|
15
|
+
import { K8sGenerated, K8sPermissionSpec } from "./types";
|
|
16
16
|
import yargs from "yargs";
|
|
17
17
|
export declare const getAndValidateK8sIntegration: (authn: Authn, clusterId: string) => Promise<{
|
|
18
|
-
clusterConfig:
|
|
18
|
+
clusterConfig: {
|
|
19
|
+
clusterId: string;
|
|
20
|
+
awsAccountId: string;
|
|
21
|
+
awsClusterArn: string;
|
|
22
|
+
};
|
|
19
23
|
awsLoginType: "federated" | "idc";
|
|
20
24
|
}>;
|
|
21
25
|
export declare const requestAccessToCluster: (authn: Authn, args: yargs.ArgumentsCamelCase<KubeconfigCommandArgs>, clusterId: string, role: string) => Promise<Request<K8sPermissionSpec>>;
|
|
@@ -21,15 +21,18 @@ const aws_1 = require("../okta/aws");
|
|
|
21
21
|
const firestore_2 = require("firebase/firestore");
|
|
22
22
|
const lodash_1 = require("lodash");
|
|
23
23
|
const getAndValidateK8sIntegration = (authn, clusterId) => __awaiter(void 0, void 0, void 0, function* () {
|
|
24
|
-
var _a;
|
|
24
|
+
var _a, _b;
|
|
25
25
|
const configDoc = yield (0, firestore_2.getDoc)((0, firestore_1.doc)(`o/${authn.identity.org.tenantId}/integrations/k8s`));
|
|
26
26
|
// Validation done here in lieu of the backend, since the backend doesn't validate until approval. TODO: ENG-2365.
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
if (!clusterConfig) {
|
|
27
|
+
const config = (_b = (_a = configDoc.data()) === null || _a === void 0 ? void 0 : _a["iam-write"]) === null || _b === void 0 ? void 0 : _b[clusterId];
|
|
28
|
+
if (!config) {
|
|
30
29
|
throw `Cluster with ID ${clusterId} not found`;
|
|
31
30
|
}
|
|
32
|
-
|
|
31
|
+
if (config.state !== "installed" || config.provider.type !== "aws") {
|
|
32
|
+
throw `Cluster with ID ${clusterId} is not installed`;
|
|
33
|
+
}
|
|
34
|
+
const { provider } = config;
|
|
35
|
+
const { accountId: awsAccountId, clusterArn: awsClusterArn } = provider;
|
|
33
36
|
if (!awsAccountId || !awsClusterArn) {
|
|
34
37
|
throw (`This command currently only supports AWS EKS clusters, and ${clusterId} is not configured as one.\n` +
|
|
35
38
|
"You can request access to the cluster using the `p0 request k8s` command.");
|
|
@@ -41,8 +44,11 @@ const getAndValidateK8sIntegration = (authn, clusterId) => __awaiter(void 0, voi
|
|
|
41
44
|
throw "This AWS account is not configured for kubectl access via the P0 CLI.\nYou can request access to the cluster using the `p0 request k8s` command.";
|
|
42
45
|
}
|
|
43
46
|
return {
|
|
44
|
-
clusterConfig:
|
|
45
|
-
|
|
47
|
+
clusterConfig: {
|
|
48
|
+
clusterId,
|
|
49
|
+
awsAccountId,
|
|
50
|
+
awsClusterArn,
|
|
51
|
+
},
|
|
46
52
|
awsLoginType: awsLogin.type,
|
|
47
53
|
};
|
|
48
54
|
});
|
|
@@ -96,3 +102,4 @@ const awsCloudAuth = (authn, awsAccountId, generated, loginType) => __awaiter(vo
|
|
|
96
102
|
}
|
|
97
103
|
});
|
|
98
104
|
exports.awsCloudAuth = awsCloudAuth;
|
|
105
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/kubeconfig/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -63,3 +63,4 @@ const EksInstall = Object.assign(Object.assign({}, install_1.AwsInstall), { kube
|
|
|
63
63
|
} });
|
|
64
64
|
const ensureEksInstall = () => __awaiter(void 0, void 0, void 0, function* () { return yield (0, install_1.ensureInstall)(EksItems, EksInstall); });
|
|
65
65
|
exports.ensureEksInstall = ensureEksInstall;
|
|
66
|
+
//# sourceMappingURL=install.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/plugins/kubeconfig/install.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;;;;;;GASG;AACH,kDAK8B;AAE9B,MAAM,QAAQ,GAAG,CAAC,GAAG,kBAAQ,EAAE,SAAS,CAAU,CAAC;AAGnD;;;;GAIG;AACH,MAAM,mBAAmB,GAAG,GAAW,EAAE;IACvC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAE1B,QAAQ,IAAI,EAAE;QACZ,KAAK,KAAK,EAAE,4BAA4B;YACtC,OAAO,OAAO,CAAC;QACjB,KAAK,OAAO,EAAE,uBAAuB;YACnC,OAAO,IAAI,CAAC;QACd;YACE,MAAM,gDAAgD,IAAI,gFAAgF,CAAC;KAC9I;AACH,CAAC,CAAC;AAEF,MAAM,4BAA4B,GAAG,GAAuB,EAAE;IAC5D,MAAM,IAAI,GAAG,mBAAmB,EAAE,CAAC;IAEnC,4CAA4C;IAC5C,OAAO;QACL,qGAAqG,IAAI,WAAW;QACpH,kBAAkB;QAClB,8BAA8B;QAC9B,6CAA6C;QAC7C,yCAAyC;KAC1C,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,UAAU,mCACX,oBAAU,KACb,OAAO,EAAE;QACP,KAAK,EAAE,8BAA8B;QACrC,QAAQ,EAAE;YACR,IAAI,MAAM;gBACR,oFAAoF;gBACpF,uFAAuF;gBACvF,sFAAsF;gBACtF,wDAAwD;gBACxD,OAAO,4BAA4B,EAAE,CAAC;YACxC,CAAC;SACF;KACF,GACF,CAAC;AAEK,MAAM,gBAAgB,GAAG,GAAS,EAAE,kDACzC,OAAA,MAAM,IAAA,uBAAa,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAA,GAAA,CAAC;AAD/B,QAAA,gBAAgB,oBACe"}
|
|
@@ -9,32 +9,27 @@ This file is part of @p0security/cli
|
|
|
9
9
|
You should have received a copy of the GNU General Public License along with @p0security/cli. If not, see <https://www.gnu.org/licenses/>.
|
|
10
10
|
**/
|
|
11
11
|
import { PermissionSpec } from "../../types/request";
|
|
12
|
-
export
|
|
13
|
-
|
|
14
|
-
items: K8sClusterConfig[];
|
|
15
|
-
};
|
|
16
|
-
};
|
|
17
|
-
export declare type K8sClusterConfig = {
|
|
18
|
-
clusterId: string;
|
|
12
|
+
export type K8sClusterConfig = {
|
|
13
|
+
label?: string;
|
|
19
14
|
clusterServer: string;
|
|
20
15
|
clusterCertificate: string;
|
|
16
|
+
isProxy: boolean;
|
|
17
|
+
token: string;
|
|
18
|
+
publicJwk?: string;
|
|
19
|
+
provider: {
|
|
20
|
+
type: "aws";
|
|
21
|
+
clusterArn: string;
|
|
22
|
+
accountId: string;
|
|
23
|
+
} | {
|
|
24
|
+
type: "email";
|
|
25
|
+
};
|
|
21
26
|
state: string;
|
|
22
|
-
awsAccountId?: string;
|
|
23
|
-
awsClusterArn?: string;
|
|
24
|
-
} & (KubernetesProxyComponentConfig | KubernetesPublicComponentConfig);
|
|
25
|
-
export declare type EksClusterConfig = K8sClusterConfig & {
|
|
26
|
-
awsAccountId: string;
|
|
27
|
-
awsClusterArn: string;
|
|
28
|
-
};
|
|
29
|
-
declare type KubernetesProxyComponentConfig = {
|
|
30
|
-
isProxy: true;
|
|
31
|
-
publicJwk: string;
|
|
32
27
|
};
|
|
33
|
-
export
|
|
34
|
-
|
|
28
|
+
export type K8sConfig = {
|
|
29
|
+
"iam-write": Record<string, K8sClusterConfig>;
|
|
35
30
|
};
|
|
36
|
-
export
|
|
37
|
-
export
|
|
31
|
+
export type K8sPermissionSpec = PermissionSpec<"k8s", K8sResourcePermission, K8sGenerated>;
|
|
32
|
+
export type K8sResourcePermission = {
|
|
38
33
|
resource: {
|
|
39
34
|
name: string;
|
|
40
35
|
namespace: string;
|
|
@@ -44,7 +39,7 @@ export declare type K8sResourcePermission = {
|
|
|
44
39
|
clusterId: string;
|
|
45
40
|
type: "resource";
|
|
46
41
|
};
|
|
47
|
-
export
|
|
42
|
+
export type K8sGenerated = {
|
|
48
43
|
eksGenerated: {
|
|
49
44
|
name: string;
|
|
50
45
|
idc?: {
|
|
@@ -54,4 +49,3 @@ export declare type K8sGenerated = {
|
|
|
54
49
|
};
|
|
55
50
|
role: string;
|
|
56
51
|
};
|
|
57
|
-
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/plugins/kubeconfig/types.ts"],"names":[],"mappings":""}
|
package/dist/plugins/login.d.ts
CHANGED
|
@@ -11,6 +11,6 @@ You should have received a copy of the GNU General Public License along with @p0
|
|
|
11
11
|
import { TokenResponse } from "../types/oidc";
|
|
12
12
|
import { OrgData } from "../types/org";
|
|
13
13
|
declare const loginPlugins: readonly ["google", "okta", "ping", "oidc-pkce", "microsoft", "azure-oidc", "google-oidc", "aws-oidc"];
|
|
14
|
-
export
|
|
14
|
+
export type LoginPluginType = (typeof loginPlugins)[number];
|
|
15
15
|
export declare const pluginLoginMap: Record<string, (org: OrgData) => Promise<TokenResponse>>;
|
|
16
16
|
export {};
|
package/dist/plugins/login.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/plugins/login.ts"],"names":[],"mappings":";;;;;;;;;;;;AAYA,0CAA6C;AAC7C,wCAAyC;AACzC,wCAAyC;AAEzC,MAAM,YAAY,GAAG;IACnB,QAAQ;IACR,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;IACX,YAAY;IACZ,aAAa;IACb,UAAU;CACF,CAAC;AAIE,QAAA,cAAc,GAGvB;IACF,MAAM,EAAE,mBAAW;IACnB,IAAI,EAAE,iBAAS;IACf,IAAI,EAAE,iBAAS;IACf,WAAW,EAAE,CAAO,GAAG,EAAE,EAAE,kDAAC,OAAA,MAAM,sBAAc,CAAC,GAAG,CAAC,YAAa,CAAE,CAAC,GAAG,CAAC,CAAA,GAAA;CAC1E,CAAC"}
|
|
@@ -171,3 +171,4 @@ const oidcLogin = (steps) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
171
171
|
return yield (0, exports.waitForActivation)(deviceAuthorizationResponse, processAuthzExpiry, buildTokenRequest(deviceAuthorizationResponse));
|
|
172
172
|
});
|
|
173
173
|
exports.oidcLogin = oidcLogin;
|
|
174
|
+
//# sourceMappingURL=login.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/plugins/oidc/login.ts"],"names":[],"mappings":"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"}
|
package/dist/plugins/okta/aws.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aws.js","sourceRoot":"","sources":["../../../src/plugins/okta/aws.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;;;;;;GASG;AACH,kDAAsE;AACtE,6CAA4C;AAE5C,kDAAuD;AAEhD,MAAM,sBAAsB,GAAG,CACpC,KAAY,EACZ,IAA0C,EAC1C,EAAE;IACF,OAAA,MAAM,IAAA,aAAM,EACV,YAAY,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE,EACzC,GAAS,EAAE;QACT,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,IAAA,mBAAY,EAC1D,KAAK,EACL,IAAI,CAAC,SAAS,CACf,CAAC;QACF,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,oBAAa,EAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QACvD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YAC5B,MAAM,yCAAyC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACzF,OAAO,MAAM,IAAA,+BAAkB,EAAC;YAC9B,OAAO;YACP,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE;gBACJ,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB;gBACpD,QAAQ,EAAE,YAAY;aACvB;SACF,CAAC,CAAC;IACL,CAAC,CAAA,EACD,EAAE,QAAQ,EAAE,MAAM,EAAE,CACrB,CAAA;EAAA,CAAC;AAxBS,QAAA,sBAAsB,0BAwB/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/plugins/okta/login.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/plugins/ping/login.ts"],"names":[],"mappings":";;;;;;;;;;;;AAYA,yCAA0D;AAE1D,kCAAkC;AAC3B,MAAM,SAAS,GAAG,CAAO,GAAY,EAAE,EAAE;IAC9C,OAAA,IAAA,iBAAS,EACP,IAAA,sBAAc,EAAC,GAAG,EAAE,sBAAsB,EAAE,GAAG,EAAE;QAC/C,IAAI,GAAG,CAAC,YAAY,KAAK,MAAM,IAAI,GAAG,CAAC,YAAY,KAAK,SAAS,EAAE;YACjE,MAAM,yBAAyB,GAAG,CAAC,YAAY,oBAAoB,CAAC;SACrE;QACD,OAAO;YACL,sBAAsB,EAAE,WAAW,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,aAAa,0BAA0B;YACpG,QAAQ,EAAE,WAAW,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,aAAa,WAAW;SACxE,CAAC;IACJ,CAAC,CAAC,CACH,CAAA;EAAA,CAAC;AAXS,QAAA,SAAS,aAWlB"}
|
|
@@ -10,5 +10,11 @@ You should have received a copy of the GNU General Public License along with @p0
|
|
|
10
10
|
**/
|
|
11
11
|
import { CommandArgs } from "../../commands/shared/ssh";
|
|
12
12
|
import { Authn } from "../../types/identity";
|
|
13
|
-
import { SshRequest } from "../../types/ssh";
|
|
14
|
-
export declare const sshOrScp: (
|
|
13
|
+
import { SshProvider, SshRequest } from "../../types/ssh";
|
|
14
|
+
export declare const sshOrScp: (args: {
|
|
15
|
+
authn: Authn;
|
|
16
|
+
request: SshRequest;
|
|
17
|
+
cmdArgs: CommandArgs;
|
|
18
|
+
privateKey: string;
|
|
19
|
+
sshProvider: SshProvider<any, any, any, any>;
|
|
20
|
+
}) => Promise<number | null>;
|
|
@@ -23,7 +23,6 @@ You should have received a copy of the GNU General Public License along with @p0
|
|
|
23
23
|
const ssh_1 = require("../../commands/shared/ssh");
|
|
24
24
|
const keys_1 = require("../../common/keys");
|
|
25
25
|
const stdio_1 = require("../../drivers/stdio");
|
|
26
|
-
const ssh_agent_1 = require("../ssh-agent");
|
|
27
26
|
const node_child_process_1 = require("node:child_process");
|
|
28
27
|
/** Matches the error message that AWS SSM print1 when access is not propagated */
|
|
29
28
|
// Note that the resource will randomly be either the SSM document or the EC2 instance
|
|
@@ -137,6 +136,13 @@ function spawnSshNode(options) {
|
|
|
137
136
|
return __awaiter(this, void 0, void 0, function* () {
|
|
138
137
|
return new Promise((resolve, reject) => {
|
|
139
138
|
const provider = ssh_1.SSH_PROVIDERS[options.provider];
|
|
139
|
+
const attemptsRemaining = options.attemptsRemaining;
|
|
140
|
+
if (options.debug) {
|
|
141
|
+
const gerund = options.isAccessPropagationPreTest
|
|
142
|
+
? "Pre-testing"
|
|
143
|
+
: "Trying";
|
|
144
|
+
(0, stdio_1.print2)(`Waiting for access to propagate. ${gerund} SSH session... (remaining attempts: ${attemptsRemaining})`);
|
|
145
|
+
}
|
|
140
146
|
const child = spawnChildProcess(options.credential, options.command, options.args, options.stdio);
|
|
141
147
|
// TODO ENG-2284 support login with Google Cloud: currently return a boolean to indicate if the exception was a Google login error.
|
|
142
148
|
const { isAccessPropagated, isGoogleLoginException } = accessPropagationGuard(child, options.debug);
|
|
@@ -146,10 +152,6 @@ function spawnSshNode(options) {
|
|
|
146
152
|
// In the case of ephemeral AccessDenied exceptions due to unpropagated
|
|
147
153
|
// permissions, continually retry access until success
|
|
148
154
|
if (!isAccessPropagated()) {
|
|
149
|
-
const attemptsRemaining = options.attemptsRemaining;
|
|
150
|
-
if (options.debug) {
|
|
151
|
-
(0, stdio_1.print2)(`Waiting for access to propagate. Retrying SSH session... (remaining attempts: ${attemptsRemaining})`);
|
|
152
|
-
}
|
|
153
155
|
if (attemptsRemaining <= 0) {
|
|
154
156
|
reject(`Access did not propagate through ${provider.friendlyName} before max retry attempts were exceeded. Please contact support@p0.dev for assistance.`);
|
|
155
157
|
return;
|
|
@@ -174,6 +176,13 @@ function spawnSshNode(options) {
|
|
|
174
176
|
const createCommand = (data, args, proxyCommand) => {
|
|
175
177
|
const commonArgs = [
|
|
176
178
|
...(args.debug ? ["-v"] : []),
|
|
179
|
+
// Explicitly specify which private key to use to avoid "Too many authentication failures"
|
|
180
|
+
// error caused by SSH trying every available key
|
|
181
|
+
"-i",
|
|
182
|
+
keys_1.PRIVATE_KEY_PATH,
|
|
183
|
+
// Only use the authentication identity specified by -i above
|
|
184
|
+
"-o",
|
|
185
|
+
"IdentitiesOnly=yes",
|
|
177
186
|
"-o",
|
|
178
187
|
`ProxyCommand=${proxyCommand.join(" ")}`,
|
|
179
188
|
];
|
|
@@ -200,7 +209,9 @@ const createCommand = (data, args, proxyCommand) => {
|
|
|
200
209
|
...commonArgs,
|
|
201
210
|
...(args.A ? ["-A"] : []),
|
|
202
211
|
...(args.L ? ["-L", args.L] : []),
|
|
212
|
+
...(args.R ? ["-R", args.R] : []),
|
|
203
213
|
...(args.N ? ["-N"] : []),
|
|
214
|
+
...(args.o ? ["-o", args.o] : []),
|
|
204
215
|
`${data.linuxUserName}@${data.id}`,
|
|
205
216
|
...(args.command ? [args.command] : []),
|
|
206
217
|
...args.arguments.map((argument) =>
|
|
@@ -243,41 +254,38 @@ const preTestAccessPropagationIfNeeded = (sshProvider, request, cmdArgs, proxyCo
|
|
|
243
254
|
}
|
|
244
255
|
return null;
|
|
245
256
|
});
|
|
246
|
-
const sshOrScp = (
|
|
257
|
+
const sshOrScp = (args) => __awaiter(void 0, void 0, void 0, function* () {
|
|
258
|
+
const { authn, request, cmdArgs, privateKey, sshProvider } = args;
|
|
247
259
|
if (!privateKey) {
|
|
248
260
|
throw "Failed to load a private key for this request. Please contact support@p0.dev for assistance.";
|
|
249
261
|
}
|
|
250
|
-
const sshProvider = ssh_1.SSH_PROVIDERS[request.type];
|
|
251
262
|
const credential = yield sshProvider.cloudProviderLogin(authn, request);
|
|
252
263
|
const proxyCommand = sshProvider.proxyCommand(request);
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
`${command} ${transformForShell(args).join(" ")}`,
|
|
263
|
-
].join("\n");
|
|
264
|
-
(0, stdio_1.print2)(`Execute the following commands to create a similar SSH/SCP session:\n*** COMMANDS BEGIN ***\n${repro}\n*** COMMANDS END ***"\n`);
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
const exitCode = yield preTestAccessPropagationIfNeeded(sshProvider, request, cmdArgs, proxyCommand, credential);
|
|
268
|
-
if (exitCode && exitCode !== 0) {
|
|
269
|
-
return exitCode; // Only exit if there was an error when pre-testing
|
|
264
|
+
const { command, args: commandArgs } = createCommand(request, cmdArgs, proxyCommand);
|
|
265
|
+
if (cmdArgs.debug) {
|
|
266
|
+
const reproCommands = sshProvider.reproCommands(request);
|
|
267
|
+
if (reproCommands) {
|
|
268
|
+
const repro = [
|
|
269
|
+
...reproCommands,
|
|
270
|
+
`${command} ${transformForShell(commandArgs).join(" ")}`,
|
|
271
|
+
].join("\n");
|
|
272
|
+
(0, stdio_1.print2)(`Execute the following commands to create a similar SSH/SCP session:\n*** COMMANDS BEGIN ***\n${repro}\n*** COMMANDS END ***"\n`);
|
|
270
273
|
}
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
274
|
+
}
|
|
275
|
+
const exitCode = yield preTestAccessPropagationIfNeeded(sshProvider, request, cmdArgs, proxyCommand, credential);
|
|
276
|
+
if (exitCode && exitCode !== 0) {
|
|
277
|
+
return exitCode; // Only exit if there was an error when pre-testing
|
|
278
|
+
}
|
|
279
|
+
return spawnSshNode({
|
|
280
|
+
credential,
|
|
281
|
+
abortController: new AbortController(),
|
|
282
|
+
command,
|
|
283
|
+
args: commandArgs,
|
|
284
|
+
stdio: ["inherit", "inherit", "pipe"],
|
|
285
|
+
debug: cmdArgs.debug,
|
|
286
|
+
provider: request.type,
|
|
287
|
+
attemptsRemaining: sshProvider.maxRetries,
|
|
288
|
+
});
|
|
282
289
|
});
|
|
283
290
|
exports.sshOrScp = sshOrScp;
|
|
291
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/ssh/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,14 +8,14 @@ This file is part of @p0security/cli
|
|
|
8
8
|
|
|
9
9
|
You should have received a copy of the GNU General Public License along with @p0security/cli. If not, see <https://www.gnu.org/licenses/>.
|
|
10
10
|
**/
|
|
11
|
-
|
|
11
|
+
type SshItemConfig = {
|
|
12
12
|
label?: string;
|
|
13
13
|
state: string;
|
|
14
14
|
};
|
|
15
|
-
export
|
|
15
|
+
export type SshConfig = {
|
|
16
16
|
"iam-write": Record<string, SshItemConfig>;
|
|
17
17
|
};
|
|
18
|
-
export
|
|
18
|
+
export type CommonSshPermissionSpec = {
|
|
19
19
|
publicKey: string;
|
|
20
20
|
sudo?: boolean;
|
|
21
21
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/plugins/ssh/types.ts"],"names":[],"mappings":""}
|
|
@@ -14,3 +14,4 @@ You should have received a copy of the GNU General Public License along with @p0
|
|
|
14
14
|
const firestore_1 = require("firebase/firestore");
|
|
15
15
|
const mockGetDoc = (data) => firestore_1.getDoc.mockResolvedValue({ data: () => data });
|
|
16
16
|
exports.mockGetDoc = mockGetDoc;
|
|
17
|
+
//# sourceMappingURL=firestore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"firestore.js","sourceRoot":"","sources":["../../src/testing/firestore.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;GASG;AACH,kDAA4C;AAErC,MAAM,UAAU,GAAG,CAAC,IAAS,EAAE,EAAE,CACrC,kBAAoB,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;AADnD,QAAA,UAAU,cACyC"}
|
package/dist/testing/yargs.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yargs.js","sourceRoot":"","sources":["../../src/testing/yargs.ts"],"names":[],"mappings":";;;;;;;;;;;;AAYO,MAAM,OAAO,GAAG,CAAO,IAAgB,EAAE,OAAe,EAAE,EAAE;IACjE,IAAI,KAAU,CAAC;IACf,IAAI;QACF,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;KAC3D;IAAC,OAAO,MAAW,EAAE;QACpB,KAAK,GAAG,MAAM,CAAC;KAChB;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAA,CAAC;AARW,QAAA,OAAO,WAQlB"}
|
package/dist/types/allow.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ This file is part of @p0security/cli
|
|
|
8
8
|
|
|
9
9
|
You should have received a copy of the GNU General Public License along with @p0security/cli. If not, see <https://www.gnu.org/licenses/>.
|
|
10
10
|
**/
|
|
11
|
-
export
|
|
11
|
+
export type AllowResponse = {
|
|
12
12
|
ok: true;
|
|
13
13
|
message: string;
|
|
14
14
|
};
|
package/dist/types/allow.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"allow.js","sourceRoot":"","sources":["../../src/types/allow.ts"],"names":[],"mappings":""}
|
package/dist/types/aws/oidc.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ This file is part of @p0security/cli
|
|
|
8
8
|
|
|
9
9
|
You should have received a copy of the GNU General Public License along with @p0security/cli. If not, see <https://www.gnu.org/licenses/>.
|
|
10
10
|
**/
|
|
11
|
-
export
|
|
11
|
+
export type AWSClientInformation = {
|
|
12
12
|
authorizationEndpoint: string;
|
|
13
13
|
clientId: string;
|
|
14
14
|
clientIdIssuedAt: number;
|
|
@@ -19,14 +19,14 @@ export declare type AWSClientInformation = {
|
|
|
19
19
|
/**
|
|
20
20
|
* AWS OIDC token response uses camelCase instead of snake_case
|
|
21
21
|
*/
|
|
22
|
-
export
|
|
22
|
+
export type AWSTokenResponse = {
|
|
23
23
|
accessToken: string;
|
|
24
24
|
expiresIn: number;
|
|
25
25
|
idToken: string;
|
|
26
26
|
refreshToken: string;
|
|
27
27
|
tokenType: string;
|
|
28
28
|
};
|
|
29
|
-
export
|
|
29
|
+
export type AWSAuthorizeResponse = {
|
|
30
30
|
deviceCode: string;
|
|
31
31
|
expiresIn: number;
|
|
32
32
|
interval: number;
|
package/dist/types/aws/oidc.js
CHANGED
|
@@ -10,3 +10,4 @@ This file is part of @p0security/cli
|
|
|
10
10
|
You should have received a copy of the GNU General Public License along with @p0security/cli. If not, see <https://www.gnu.org/licenses/>.
|
|
11
11
|
**/
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
//# sourceMappingURL=oidc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oidc.js","sourceRoot":"","sources":["../../../src/types/aws/oidc.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG"}
|
package/dist/types/identity.d.ts
CHANGED
|
@@ -11,13 +11,13 @@ You should have received a copy of the GNU General Public License along with @p0
|
|
|
11
11
|
import { TokenResponse } from "./oidc";
|
|
12
12
|
import { OrgData } from "./org";
|
|
13
13
|
import { UserCredential } from "firebase/auth";
|
|
14
|
-
export
|
|
14
|
+
export type Identity = {
|
|
15
15
|
credential: TokenResponse & {
|
|
16
16
|
expires_at: number;
|
|
17
17
|
};
|
|
18
18
|
org: OrgData;
|
|
19
19
|
};
|
|
20
|
-
export
|
|
20
|
+
export type Authn = {
|
|
21
21
|
identity: Identity;
|
|
22
22
|
userCredential: UserCredential;
|
|
23
23
|
};
|