@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.
Files changed (101) hide show
  1. package/build/dist/commands/__tests__/login.test.js +17 -10
  2. package/build/dist/commands/__tests__/login.test.js.map +1 -1
  3. package/build/dist/commands/__tests__/request.test.js +64 -9
  4. package/build/dist/commands/__tests__/request.test.js.map +1 -1
  5. package/build/dist/commands/__tests__/ssh.test.js +75 -51
  6. package/build/dist/commands/__tests__/ssh.test.js.map +1 -1
  7. package/build/dist/commands/allow.js +3 -2
  8. package/build/dist/commands/allow.js.map +1 -1
  9. package/build/dist/commands/aws/__tests__/role.test.js +18 -12
  10. package/build/dist/commands/aws/__tests__/role.test.js.map +1 -1
  11. package/build/dist/commands/aws/index.js +0 -4
  12. package/build/dist/commands/aws/index.js.map +1 -1
  13. package/build/dist/commands/aws/permission-set.js +1 -2
  14. package/build/dist/commands/aws/permission-set.js.map +1 -1
  15. package/build/dist/commands/aws/role.js +1 -2
  16. package/build/dist/commands/aws/role.js.map +1 -1
  17. package/build/dist/commands/grant.js +12 -2
  18. package/build/dist/commands/grant.js.map +1 -1
  19. package/build/dist/commands/index.js +2 -0
  20. package/build/dist/commands/index.js.map +1 -1
  21. package/build/dist/commands/kubeconfig.js +1 -2
  22. package/build/dist/commands/kubeconfig.js.map +1 -1
  23. package/build/dist/commands/login.js +19 -27
  24. package/build/dist/commands/login.js.map +1 -1
  25. package/build/dist/commands/logout.d.ts +2 -0
  26. package/build/dist/commands/logout.js +61 -0
  27. package/build/dist/commands/logout.js.map +1 -0
  28. package/build/dist/commands/ls.js +1 -2
  29. package/build/dist/commands/ls.js.map +1 -1
  30. package/build/dist/commands/request.js +12 -2
  31. package/build/dist/commands/request.js.map +1 -1
  32. package/build/dist/commands/scp.js +1 -2
  33. package/build/dist/commands/scp.js.map +1 -1
  34. package/build/dist/commands/shared/index.d.ts +7 -4
  35. package/build/dist/commands/shared/index.js +20 -45
  36. package/build/dist/commands/shared/index.js.map +1 -1
  37. package/build/dist/commands/shared/request.d.ts +3 -0
  38. package/build/dist/commands/shared/request.js +105 -59
  39. package/build/dist/commands/shared/request.js.map +1 -1
  40. package/build/dist/commands/shared/ssh.js +21 -12
  41. package/build/dist/commands/shared/ssh.js.map +1 -1
  42. package/build/dist/commands/ssh-proxy.js +2 -3
  43. package/build/dist/commands/ssh-proxy.js.map +1 -1
  44. package/build/dist/commands/ssh-resolve.js +2 -3
  45. package/build/dist/commands/ssh-resolve.js.map +1 -1
  46. package/build/dist/commands/ssh.js +3 -4
  47. package/build/dist/commands/ssh.js.map +1 -1
  48. package/build/dist/drivers/__tests__/api.test.d.ts +1 -0
  49. package/build/dist/drivers/__tests__/api.test.js +688 -0
  50. package/build/dist/drivers/__tests__/api.test.js.map +1 -0
  51. package/build/dist/drivers/api.d.ts +17 -1
  52. package/build/dist/drivers/api.js +252 -25
  53. package/build/dist/drivers/api.js.map +1 -1
  54. package/build/dist/drivers/auth/index.js +23 -10
  55. package/build/dist/drivers/auth/index.js.map +1 -1
  56. package/build/dist/drivers/auth/path.d.ts +2 -0
  57. package/build/dist/drivers/auth/path.js +19 -1
  58. package/build/dist/drivers/auth/path.js.map +1 -1
  59. package/build/dist/drivers/config.js +10 -18
  60. package/build/dist/drivers/config.js.map +1 -1
  61. package/build/dist/drivers/env.d.ts +1 -1
  62. package/build/dist/drivers/env.js +2 -2
  63. package/build/dist/drivers/env.js.map +1 -1
  64. package/build/dist/drivers/firestore.d.ts +0 -10
  65. package/build/dist/drivers/firestore.js +3 -43
  66. package/build/dist/drivers/firestore.js.map +1 -1
  67. package/build/dist/drivers/org.d.ts +1 -0
  68. package/build/dist/drivers/org.js +43 -0
  69. package/build/dist/drivers/org.js.map +1 -0
  70. package/build/dist/plugins/aws/config.js +3 -6
  71. package/build/dist/plugins/aws/config.js.map +1 -1
  72. package/build/dist/plugins/azure/login.d.ts +3 -0
  73. package/build/dist/plugins/azure/login.js +86 -0
  74. package/build/dist/plugins/azure/login.js.map +1 -0
  75. package/build/dist/plugins/google/ssh-key.js +9 -9
  76. package/build/dist/plugins/google/ssh-key.js.map +1 -1
  77. package/build/dist/plugins/kubeconfig/index.js +12 -10
  78. package/build/dist/plugins/kubeconfig/index.js.map +1 -1
  79. package/build/dist/plugins/login.js +11 -9
  80. package/build/dist/plugins/login.js.map +1 -1
  81. package/build/dist/plugins/self-hosted/ssh.d.ts +3 -0
  82. package/build/dist/plugins/self-hosted/ssh.js +80 -0
  83. package/build/dist/plugins/self-hosted/ssh.js.map +1 -0
  84. package/build/dist/plugins/self-hosted/types.d.ts +31 -0
  85. package/build/dist/plugins/self-hosted/types.js +3 -0
  86. package/build/dist/plugins/self-hosted/types.js.map +1 -0
  87. package/build/dist/types/identity.d.ts +2 -1
  88. package/build/dist/types/org.d.ts +2 -0
  89. package/build/dist/types/request.d.ts +1 -1
  90. package/build/dist/types/ssh.d.ts +5 -4
  91. package/build/dist/types/ssh.js +6 -1
  92. package/build/dist/types/ssh.js.map +1 -1
  93. package/build/dist/util.d.ts +3 -0
  94. package/build/dist/util.js +19 -3
  95. package/build/dist/util.js.map +1 -1
  96. package/build/tsconfig.tsbuildinfo +1 -1
  97. package/p0 +0 -13
  98. package/package.json +2 -1
  99. package/build/dist/testing/firestore.d.ts +0 -2
  100. package/build/dist/testing/firestore.js +0 -17
  101. package/build/dist/testing/firestore.js.map +0 -1
@@ -42,12 +42,12 @@ This file is part of @p0security/cli
42
42
 
43
43
  You should have received a copy of the GNU General Public License along with @p0security/cli. If not, see <https://www.gnu.org/licenses/>.
44
44
  **/
45
+ const api_1 = require("../../drivers/api");
45
46
  const auth = __importStar(require("../../drivers/auth"));
46
47
  const config = __importStar(require("../../drivers/config"));
47
48
  const env_1 = require("../../drivers/env");
48
49
  const stdio_1 = require("../../drivers/stdio");
49
50
  const login_1 = require("../../plugins/login");
50
- const firestore_1 = require("../../testing/firestore");
51
51
  const login_2 = require("../login");
52
52
  const auth_1 = require("firebase/auth");
53
53
  const promises_1 = require("fs/promises");
@@ -58,36 +58,42 @@ jest.mock("../../drivers/auth/path", () => ({
58
58
  }));
59
59
  jest.mock("../../drivers/stdio");
60
60
  jest.mock("../../plugins/login");
61
+ jest.mock("../../drivers/api");
61
62
  const mockIdentity = {
63
+ // @ts-expect-error credential has more fields, this is enough for tests
62
64
  credential: {
63
65
  expires_at: Date.now() * 1e-3 + 60 * 1000,
64
66
  },
67
+ // @ts-expect-error org has more fields, this is enough for tests
65
68
  org: {
66
69
  tenantId: "test-tenant",
67
70
  slug: "test-org",
68
71
  ssoProvider: "google",
69
72
  },
73
+ token: "test",
70
74
  };
71
75
  const mockSignInWithCredential = auth_1.signInWithCredential;
72
76
  const mockReadFile = promises_1.readFile;
73
77
  const mockWriteFile = promises_1.writeFile;
78
+ const mockFetchOrgData = api_1.fetchOrgData;
74
79
  describe("login", () => {
75
80
  beforeEach(() => {
76
- jest.spyOn(config, "loadConfig").mockResolvedValueOnce(env_1.bootstrapConfig);
81
+ jest.spyOn(config, "loadConfig").mockResolvedValueOnce(env_1.defaultConfig);
77
82
  jest.spyOn(config, "saveConfig").mockImplementation(jest.fn());
78
- jest.spyOn(config, "getTenantConfig").mockReturnValue(env_1.bootstrapConfig);
83
+ jest.spyOn(config, "getTenantConfig").mockReturnValue(env_1.defaultConfig);
79
84
  // do NOT spyOn getContactMessage — you want the real one
80
85
  });
81
86
  it("prints a friendly error if the org is not provided", () => __awaiter(void 0, void 0, void 0, function* () {
82
- (0, firestore_1.mockGetDoc)(undefined);
83
87
  yield expect((0, login_2.login)({})).rejects.toMatchInlineSnapshot(`"The P0 organization ID is required. Please provide it as an argument or set the P0_ORG environment variable."`);
84
88
  }));
85
89
  it("prints a friendly error if the org is not found", () => __awaiter(void 0, void 0, void 0, function* () {
86
- (0, firestore_1.mockGetDoc)(undefined);
90
+ mockFetchOrgData.mockImplementation(() => {
91
+ throw "Not found";
92
+ });
87
93
  yield expect((0, login_2.login)({ org: "test-org" })).rejects.toMatchInlineSnapshot(`"Could not find organization"`);
88
94
  }));
89
95
  it("prints a friendly error if unsupported login", () => __awaiter(void 0, void 0, void 0, function* () {
90
- (0, firestore_1.mockGetDoc)({
96
+ mockFetchOrgData.mockResolvedValue({
91
97
  slug: "test-org",
92
98
  tenantId: "test-tenant",
93
99
  ssoProvider: "microsoft",
@@ -103,7 +109,7 @@ describe("login", () => {
103
109
  error.code = "ENOENT";
104
110
  return Promise.reject(error);
105
111
  });
106
- (0, firestore_1.mockGetDoc)({
112
+ mockFetchOrgData.mockResolvedValue({
107
113
  slug: "test-org",
108
114
  tenantId: "test-tenant",
109
115
  ssoProvider: "google",
@@ -118,6 +124,7 @@ describe("login", () => {
118
124
  beforeEach(() => {
119
125
  credentialData = "";
120
126
  jest.clearAllMocks();
127
+ jest.spyOn(config, "loadConfig").mockResolvedValueOnce(env_1.defaultConfig);
121
128
  mockReadFile.mockImplementation(() => __awaiter(void 0, void 0, void 0, function* () { return Buffer.from(credentialData, "utf-8"); }));
122
129
  mockWriteFile.mockImplementation((_path, data) => __awaiter(void 0, void 0, void 0, function* () {
123
130
  credentialData = data;
@@ -130,7 +137,7 @@ describe("login", () => {
130
137
  },
131
138
  });
132
139
  }));
133
- (0, firestore_1.mockGetDoc)({
140
+ mockFetchOrgData.mockResolvedValue({
134
141
  slug: "test-org",
135
142
  tenantId: "test-tenant",
136
143
  ssoProvider: "google",
@@ -161,7 +168,7 @@ Please contact support@p0.dev for assistance."
161
168
  beforeEach(() => {
162
169
  jest.clearAllMocks();
163
170
  jest.spyOn(auth, "loadCredentials").mockResolvedValue(mockIdentity);
164
- (0, firestore_1.mockGetDoc)({
171
+ mockFetchOrgData.mockResolvedValue({
165
172
  slug: "test-org",
166
173
  tenantId: "test-tenant",
167
174
  ssoProvider: "google",
@@ -182,7 +189,7 @@ Please contact support@p0.dev for assistance."
182
189
  expect(stdio_1.print2).toHaveBeenCalledWith("You are now logged in to the test-org organization, and can use the p0 CLI.");
183
190
  }));
184
191
  it("different org provided, need to re-login", () => __awaiter(void 0, void 0, void 0, function* () {
185
- (0, firestore_1.mockGetDoc)({
192
+ mockFetchOrgData.mockResolvedValue({
186
193
  slug: "other-org",
187
194
  tenantId: "other-tenant",
188
195
  ssoProvider: "google",
@@ -1 +1 @@
1
- {"version":3,"file":"login.test.js","sourceRoot":"","sources":["../../../../src/commands/__tests__/login.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"login.test.js","sourceRoot":"","sources":["../../../../src/commands/__tests__/login.test.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,18 @@ 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 __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
12
+ var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
13
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
14
+ var g = generator.apply(thisArg, _arguments || []), i, q = [];
15
+ return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
16
+ function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
17
+ function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
18
+ function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
19
+ function fulfill(value) { resume("next", value); }
20
+ function reject(value) { resume("throw", value); }
21
+ function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
22
+ };
11
23
  var __importDefault = (this && this.__importDefault) || function (mod) {
12
24
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
25
  };
@@ -27,16 +39,18 @@ const stdio_1 = require("../../drivers/stdio");
27
39
  const yargs_1 = require("../../testing/yargs");
28
40
  const util_1 = require("../../util");
29
41
  const request_1 = require("../request");
30
- const firestore_1 = require("firebase/firestore");
31
42
  const yargs_2 = __importDefault(require("yargs"));
32
- jest.mock("../../drivers/api");
43
+ jest.mock("../../drivers/api", () => (Object.assign(Object.assign({}, jest.requireActual("../../drivers/api")), { fetchCommand: jest.fn(), fetchStreamingCommand: jest.fn(), streamingApiFetch: jest.fn() })));
33
44
  jest.mock("../../drivers/auth");
34
- jest.mock("../../drivers/stdio");
45
+ jest.mock("../../drivers/stdio", () => (Object.assign(Object.assign({}, jest.requireActual("../../drivers/stdio")), { print1: jest.fn(), print2: jest.fn() })));
35
46
  const mockFetchCommand = api_1.fetchCommand;
47
+ const mockFetchStreamingCommand = api_1.fetchStreamingCommand;
36
48
  const mockPrint1 = stdio_1.print1;
37
49
  const mockPrint2 = stdio_1.print2;
38
50
  describe("request", () => {
39
- beforeEach(() => jest.clearAllMocks());
51
+ beforeEach(() => {
52
+ jest.clearAllMocks();
53
+ });
40
54
  describe("when valid request command", () => {
41
55
  const command = "request gcloud role viewer";
42
56
  function mockFetch(response) {
@@ -55,13 +69,35 @@ describe("request", () => {
55
69
  }));
56
70
  });
57
71
  it("should wait for access", () => __awaiter(void 0, void 0, void 0, function* () {
58
- mockFetch();
72
+ /**
73
+ * This test checks that the request command waits for access to be granted
74
+ * before resolving the promise.
75
+ */
76
+ mockFetchStreamingCommand.mockImplementation(function () {
77
+ return __asyncGenerator(this, arguments, function* () {
78
+ yield yield __await({
79
+ ok: true,
80
+ message: "a message",
81
+ id: "abcefg",
82
+ isPreexisting: false,
83
+ isPersistent: false,
84
+ request: { status: "NEW" },
85
+ });
86
+ yield __await((0, util_1.sleep)(200));
87
+ yield yield __await({
88
+ ok: true,
89
+ message: "Request approved",
90
+ id: "abcefg",
91
+ isPreexisting: false,
92
+ isPersistent: false,
93
+ request: { status: "DONE" },
94
+ });
95
+ });
96
+ });
59
97
  const promise = (0, request_1.requestCommand)((0, yargs_2.default)()).parse(`${command} --wait`);
60
- const wait = (0, util_1.sleep)(10);
98
+ // await for the first response to yield
99
+ const wait = (0, util_1.sleep)(100);
61
100
  yield expect(wait).resolves.toBeUndefined();
62
- firestore_1.onSnapshot.trigger({
63
- status: "DONE",
64
- });
65
101
  yield expect(promise).resolves.toBeDefined();
66
102
  expect(mockPrint2.mock.calls).toMatchSnapshot();
67
103
  expect(mockPrint1).not.toHaveBeenCalled();
@@ -90,6 +126,25 @@ Unknown argument: foo`,
90
126
  const error = yield (0, yargs_1.failure)((0, request_1.requestCommand)((0, yargs_2.default)()), command);
91
127
  expect(error).toMatchSnapshot();
92
128
  }));
129
+ it("should handle stream errors", () => __awaiter(void 0, void 0, void 0, function* () {
130
+ mockFetchStreamingCommand.mockImplementation(function () {
131
+ return __asyncGenerator(this, arguments, function* () {
132
+ yield yield __await({
133
+ ok: true,
134
+ message: "a message",
135
+ id: "abcefg",
136
+ isPreexisting: false,
137
+ isPersistent: false,
138
+ request: { status: "NEW" },
139
+ });
140
+ yield __await((0, util_1.sleep)(200));
141
+ throw new TypeError("terminated");
142
+ });
143
+ });
144
+ const command = "request gcloud role viewer --wait";
145
+ const error = yield (0, yargs_1.failure)((0, request_1.requestCommand)((0, yargs_2.default)()), command);
146
+ expect(error).toMatchSnapshot();
147
+ }));
93
148
  });
94
149
  });
95
150
  //# sourceMappingURL=request.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"request.test.js","sourceRoot":"","sources":["../../../../src/commands/__tests__/request.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request.test.js","sourceRoot":"","sources":["../../../../src/commands/__tests__/request.test.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,18 @@ 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 __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
12
+ var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
13
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
14
+ var g = generator.apply(thisArg, _arguments || []), i, q = [];
15
+ return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
16
+ function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
17
+ function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
18
+ function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
19
+ function fulfill(value) { resume("next", value); }
20
+ function reject(value) { resume("throw", value); }
21
+ function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
22
+ };
11
23
  var __importDefault = (this && this.__importDefault) || function (mod) {
12
24
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
25
  };
@@ -26,21 +38,20 @@ const keys_1 = require("../../common/__mocks__/keys");
26
38
  const api_1 = require("../../drivers/api");
27
39
  const stdio_1 = require("../../drivers/stdio");
28
40
  const ssh_1 = require("../../plugins/ssh");
29
- const firestore_1 = require("../../testing/firestore");
30
41
  const util_1 = require("../../util");
31
42
  const ssh_2 = require("../ssh");
32
- const firestore_2 = require("firebase/firestore");
33
43
  const lodash_1 = require("lodash");
34
44
  const yargs_1 = __importDefault(require("yargs"));
35
45
  jest.mock("../../drivers/api");
36
46
  jest.mock("../../drivers/auth");
37
- jest.mock("../../drivers/stdio");
47
+ jest.mock("../../drivers/stdio", () => (Object.assign(Object.assign({}, jest.requireActual("../../drivers/stdio")), { print1: jest.fn(), print2: jest.fn() })));
38
48
  jest.mock("../../plugins/ssh");
39
49
  jest.mock("../../common/keys");
40
- const mockFetchCommand = api_1.fetchCommand;
41
50
  const mockSshOrScp = ssh_1.sshOrScp;
42
51
  const mockPrint1 = stdio_1.print1;
43
52
  const mockPrint2 = stdio_1.print2;
53
+ const mockIntegrationConfig = api_1.fetchIntegrationConfig;
54
+ const mockFetchStreamingCommand = api_1.fetchStreamingCommand;
44
55
  const MOCK_PERMISSION = {
45
56
  provider: "aws",
46
57
  publicKey: keys_1.TEST_PUBLIC_KEY,
@@ -68,85 +79,98 @@ const MOCK_REQUEST = {
68
79
  generated: MOCK_GENERATED,
69
80
  permission: MOCK_PERMISSION,
70
81
  };
71
- (0, firestore_1.mockGetDoc)({
72
- "iam-write": {
73
- ["aws:test-account"]: {
74
- state: "installed",
82
+ mockIntegrationConfig.mockResolvedValue({
83
+ config: {
84
+ "iam-write": {
85
+ ["aws:test-account"]: {
86
+ state: "installed",
87
+ },
75
88
  },
76
89
  },
77
90
  });
78
91
  describe("ssh", () => {
92
+ /**
93
+ * mockStreaming simulates a streaming response from the API.
94
+ * It yields an initial response and then a final response after a delay.
95
+ * @param sleep sleep function to simulate delay in streaming response
96
+ */
97
+ const mockStreaming = (isPersistent, sleep) => {
98
+ mockFetchStreamingCommand.mockImplementationOnce(function () {
99
+ return __asyncGenerator(this, arguments, function* () {
100
+ yield yield __await({
101
+ ok: true,
102
+ message: "a message",
103
+ id: "abcefg",
104
+ isPreexisting: false,
105
+ isPersistent,
106
+ request: { status: "NEW" },
107
+ });
108
+ yield __await((sleep === null || sleep === void 0 ? void 0 : sleep()));
109
+ yield yield __await({
110
+ ok: true,
111
+ message: "Request approved",
112
+ id: "abcefg",
113
+ isPreexisting: false,
114
+ isPersistent,
115
+ request: {
116
+ status: "DONE",
117
+ id: "abcefg",
118
+ generated: MOCK_GENERATED,
119
+ permission: MOCK_PERMISSION,
120
+ },
121
+ });
122
+ });
123
+ });
124
+ };
79
125
  describe.each([
80
126
  ["persistent", true],
81
127
  ["ephemeral", false],
82
128
  ])("%s access", (_, isPersistent) => {
83
129
  beforeEach(() => {
84
130
  jest.clearAllMocks();
85
- mockFetchCommand.mockResolvedValue({
86
- ok: true,
87
- message: "a message",
88
- id: "abcefg",
89
- isPreexisting: false,
90
- isPersistent,
91
- event: {
92
- permission: {
93
- type: "session",
94
- spec: {
95
- resource: {
96
- arn: "arn:aws:ec2:us-west-2:391052057035:instance/i-0b1b7b7b7b7b7b7b7",
97
- },
98
- },
99
- },
100
- },
101
- });
131
+ });
132
+ afterEach(() => {
133
+ mockFetchStreamingCommand.mockReset();
102
134
  });
103
135
  it("should call p0 request with reason arg", () => __awaiter(void 0, void 0, void 0, function* () {
104
- void (0, ssh_2.sshCommand)((0, yargs_1.default)())
136
+ mockStreaming(isPersistent);
137
+ const promise = (0, ssh_2.sshCommand)((0, yargs_1.default)())
105
138
  .fail(lodash_1.noop)
106
139
  .parse(`ssh some-instance --reason reason --provider aws`);
107
- yield (0, util_1.sleep)(100);
108
- const hiddenFilenameRequestArgs = (0, lodash_1.omit)(mockFetchCommand.mock.calls[0][1], "$0");
140
+ // await for the first response to yield
141
+ yield (0, util_1.sleep)(10);
142
+ const hiddenFilenameRequestArgs = (0, lodash_1.omit)(mockFetchStreamingCommand.mock.calls[0][1], "$0");
109
143
  expect(hiddenFilenameRequestArgs).toMatchSnapshot("args");
144
+ yield expect(promise).resolves.toBeDefined();
110
145
  }));
111
- it("should wait for access grant", () => __awaiter(void 0, void 0, void 0, function* () {
112
- const promise = (0, ssh_2.sshCommand)((0, yargs_1.default)()).fail(lodash_1.noop).parse(`ssh some-instance`);
113
- const wait = (0, util_1.sleep)(100);
114
- yield Promise.race([wait, promise]);
115
- yield expect(wait).resolves.toBeUndefined();
116
- }));
117
- it("should wait for provisioning", () => __awaiter(void 0, void 0, void 0, function* () {
146
+ it("should wait for access grant/provisioning", () => __awaiter(void 0, void 0, void 0, function* () {
147
+ mockStreaming(isPersistent, () => __awaiter(void 0, void 0, void 0, function* () { return yield (0, util_1.sleep)(200); }));
118
148
  const promise = (0, ssh_2.sshCommand)((0, yargs_1.default)()).fail(lodash_1.noop).parse(`ssh some-instance`);
119
- yield (0, util_1.sleep)(100); // Need to wait for listen before trigger in tests
120
- firestore_2.onSnapshot.trigger({
121
- status: "APPROVED",
122
- });
123
149
  const wait = (0, util_1.sleep)(100);
124
150
  yield Promise.race([wait, promise]);
125
151
  yield expect(wait).resolves.toBeUndefined();
152
+ yield expect(promise).resolves.toBeDefined();
126
153
  }));
154
+ /**
155
+ * This test checks that the sshOrScp function is called with the correct parameters
156
+ * when the command is parsed with a non-interactive command.
157
+ * It mocks the sshOrScp function and verifies that it is called with the expected
158
+ * arguments, including the generated resource and permission.
159
+ * It also checks that the output is printed correctly.
160
+ */
127
161
  it("should call sshOrScp with non-interactive command", () => __awaiter(void 0, void 0, void 0, function* () {
162
+ mockStreaming(isPersistent);
128
163
  const promise = (0, ssh_2.sshCommand)((0, yargs_1.default)())
129
164
  .fail(lodash_1.noop)
130
165
  .parse(`ssh some-instance do something`);
131
- yield (0, util_1.sleep)(100); // Need to wait for listen before trigger in tests
132
- firestore_2.onSnapshot.trigger({
133
- status: "APPROVED",
134
- });
135
- yield (0, util_1.sleep)(100); // Need to wait for listen before trigger in tests
136
- firestore_2.onSnapshot.trigger(MOCK_REQUEST);
137
166
  yield expect(promise).resolves.toBeDefined();
138
167
  expect(mockPrint2.mock.calls).toMatchSnapshot("stderr");
139
168
  expect(mockPrint1).not.toHaveBeenCalled();
140
169
  expect(mockSshOrScp).toHaveBeenCalled();
141
170
  }));
142
171
  it("should call sshOrScp with interactive session", () => __awaiter(void 0, void 0, void 0, function* () {
172
+ mockStreaming(isPersistent);
143
173
  const promise = (0, ssh_2.sshCommand)((0, yargs_1.default)()).fail(lodash_1.noop).parse(`ssh some-instance`);
144
- yield (0, util_1.sleep)(100); // Need to wait for listen before trigger in tests
145
- firestore_2.onSnapshot.trigger({
146
- status: "APPROVED",
147
- });
148
- yield (0, util_1.sleep)(100); // Need to wait for listen before trigger in tests
149
- firestore_2.onSnapshot.trigger(MOCK_REQUEST);
150
174
  yield expect(promise).resolves.toBeDefined();
151
175
  expect(mockPrint2.mock.calls).toMatchSnapshot("stderr");
152
176
  expect(mockPrint1).not.toHaveBeenCalled();
@@ -1 +1 @@
1
- {"version":3,"file":"ssh.test.js","sourceRoot":"","sources":["../../../../src/commands/__tests__/ssh.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ssh.test.js","sourceRoot":"","sources":["../../../../src/commands/__tests__/ssh.test.ts"],"names":[],"mappings":"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"}
@@ -22,7 +22,6 @@ You should have received a copy of the GNU General Public License along with @p0
22
22
  **/
23
23
  const api_1 = require("../drivers/api");
24
24
  const auth_1 = require("../drivers/auth");
25
- const firestore_1 = require("../drivers/firestore");
26
25
  const stdio_1 = require("../drivers/stdio");
27
26
  const allowArgs = (yargs) => yargs
28
27
  .parserConfiguration({ "unknown-options-as-args": true })
@@ -38,7 +37,9 @@ const allowArgs = (yargs) => yargs
38
37
  string: true,
39
38
  default: [],
40
39
  });
41
- const allowCommand = (yargs) => yargs.command("allow [arguments..]", "Create standing access for a resource", allowArgs, (0, firestore_1.fsShutdownGuard)(exports.allow));
40
+ const allowCommand = (yargs) => yargs.command("allow [arguments..]", "Create standing access for a resource", allowArgs, (args) => __awaiter(void 0, void 0, void 0, function* () {
41
+ yield (0, exports.allow)(args);
42
+ }));
42
43
  exports.allowCommand = allowCommand;
43
44
  const allow = (args, authn) => __awaiter(void 0, void 0, void 0, function* () {
44
45
  const resolvedAuthn = authn !== null && authn !== void 0 ? authn : (yield (0, auth_1.authenticate)());
@@ -1 +1 @@
1
- {"version":3,"file":"allow.js","sourceRoot":"","sources":["../../../src/commands/allow.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;;;;;;GASG;AACH,wCAA8C;AAC9C,0CAA+C;AAC/C,oDAAuD;AACvD,4CAA0C;AAK1C,MAAM,SAAS,GAAG,CAAI,KAAoB,EAAE,EAAE,CAC5C,KAAK;KACF,mBAAmB,CAAC,EAAE,yBAAyB,EAAE,IAAI,EAAE,CAAC;KACxD,IAAI,CAAC,KAAK,CAAC,CAAC,4HAA4H;KACxI,MAAM,CAAC,MAAM,EAAE;IACd,KAAK,EAAE,GAAG;IACV,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,sCAAsC;CACjD,CAAC;KACD,MAAM,CAAC,WAAW,EAAE;IACnB,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,EAAc;CACxB,CAAC,CAAC;AAEA,MAAM,YAAY,GAAG,CAAC,KAAiB,EAAE,EAAE,CAChD,KAAK,CAAC,OAAO,CACX,qBAAqB,EACrB,uCAAuC,EACvC,SAAS,EACT,IAAA,2BAAe,EAAC,aAAK,CAAC,CACvB,CAAC;AANS,QAAA,YAAY,gBAMrB;AAEG,MAAM,KAAK,GAAG,CACnB,IAGE,EACF,KAAa,EACuB,EAAE;IACtC,MAAM,aAAa,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,CAAC,MAAM,IAAA,mBAAY,GAAE,CAAC,CAAC;IACtD,MAAM,IAAI,GAAG,MAAM,IAAA,kBAAY,EAAgB,aAAa,EAAE,IAAI,EAAE;QAClE,OAAO;QACP,GAAG,IAAI,CAAC,SAAS;KAClB,CAAC,CAAC;IAEH,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,EAAE,EAAE;QACxD,IAAA,cAAM,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;KACb;SAAM;QACL,MAAM,IAAI,CAAC;KACZ;AACH,CAAC,CAAA,CAAC;AAnBW,QAAA,KAAK,SAmBhB"}
1
+ {"version":3,"file":"allow.js","sourceRoot":"","sources":["../../../src/commands/allow.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;;;;;;GASG;AACH,wCAA8C;AAC9C,0CAA+C;AAC/C,4CAA0C;AAK1C,MAAM,SAAS,GAAG,CAAI,KAAoB,EAAE,EAAE,CAC5C,KAAK;KACF,mBAAmB,CAAC,EAAE,yBAAyB,EAAE,IAAI,EAAE,CAAC;KACxD,IAAI,CAAC,KAAK,CAAC,CAAC,4HAA4H;KACxI,MAAM,CAAC,MAAM,EAAE;IACd,KAAK,EAAE,GAAG;IACV,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,sCAAsC;CACjD,CAAC;KACD,MAAM,CAAC,WAAW,EAAE;IACnB,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,EAAc;CACxB,CAAC,CAAC;AAEA,MAAM,YAAY,GAAG,CAAC,KAAiB,EAAE,EAAE,CAChD,KAAK,CAAC,OAAO,CACX,qBAAqB,EACrB,uCAAuC,EACvC,SAAS,EACT,CAAO,IAAI,EAAE,EAAE;IACb,MAAM,IAAA,aAAK,EAAC,IAAI,CAAC,CAAC;AACpB,CAAC,CAAA,CACF,CAAC;AARS,QAAA,YAAY,gBAQrB;AAEG,MAAM,KAAK,GAAG,CACnB,IAGE,EACF,KAAa,EACuB,EAAE;IACtC,MAAM,aAAa,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,CAAC,MAAM,IAAA,mBAAY,GAAE,CAAC,CAAC;IACtD,MAAM,IAAI,GAAG,MAAM,IAAA,kBAAY,EAAgB,aAAa,EAAE,IAAI,EAAE;QAClE,OAAO;QACP,GAAG,IAAI,CAAC,SAAS;KAClB,CAAC,CAAC;IAEH,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,EAAE,EAAE;QACxD,IAAA,cAAM,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;KACb;SAAM;QACL,MAAM,IAAI,CAAC;KACZ;AACH,CAAC,CAAA,CAAC;AAnBW,QAAA,KAAK,SAmBhB"}
@@ -23,8 +23,8 @@ This file is part of @p0security/cli
23
23
  You should have received a copy of the GNU General Public License along with @p0security/cli. If not, see <https://www.gnu.org/licenses/>.
24
24
  **/
25
25
  const __1 = require("..");
26
+ const api_1 = require("../../../drivers/api");
26
27
  const stdio_1 = require("../../../drivers/stdio");
27
- const firestore_1 = require("../../../testing/firestore");
28
28
  const yargs_1 = require("../../../testing/yargs");
29
29
  const saml_response_1 = require("./__input__/saml-response");
30
30
  const sts_response_1 = require("./__input__/sts-response");
@@ -32,6 +32,7 @@ const yargs_2 = __importDefault(require("yargs"));
32
32
  jest.mock("fs/promises");
33
33
  jest.mock("../../../drivers/auth");
34
34
  jest.mock("../../../drivers/stdio");
35
+ jest.mock("../../../drivers/api");
35
36
  jest.mock("typescript", () => (Object.assign(Object.assign({}, jest.requireActual("typescript")), { sys: {
36
37
  writeOutputIsTTY: () => true,
37
38
  } })));
@@ -41,6 +42,7 @@ jest.mock("../../shared/request", () => ({
41
42
  const mockFetch = jest.spyOn(global, "fetch");
42
43
  const mockPrint1 = stdio_1.print1;
43
44
  const mockPrint2 = stdio_1.print2;
45
+ const mockIntegrationConfigFetch = api_1.fetchIntegrationConfig;
44
46
  beforeEach(() => {
45
47
  jest.clearAllMocks();
46
48
  mockFetch.mockImplementation((url) => __awaiter(void 0, void 0, void 0, function* () {
@@ -60,7 +62,9 @@ describe("aws role", () => {
60
62
  state: "installed",
61
63
  };
62
64
  describe("without Okta SAML", () => {
63
- (0, firestore_1.mockGetDoc)({ "iam-write": { "1": item } });
65
+ mockIntegrationConfigFetch.mockResolvedValue({
66
+ config: { "iam-write": { "1": item } },
67
+ });
64
68
  describe.each([["assume", "aws role assume Role1"]])("%s", (_, command) => {
65
69
  it("should print a friendly error message", () => __awaiter(void 0, void 0, void 0, function* () {
66
70
  const error = yield (0, yargs_1.failure)((0, __1.awsCommand)((0, yargs_2.default)()), command);
@@ -70,16 +74,18 @@ describe("aws role", () => {
70
74
  });
71
75
  describe("with Okta SAML", () => {
72
76
  beforeEach(() => {
73
- (0, firestore_1.mockGetDoc)({
74
- "iam-write": {
75
- "1": Object.assign(Object.assign({}, item), { login: {
76
- type: "federated",
77
- provider: {
78
- type: "okta",
79
- appId: "0oabcdefgh",
80
- identityProvider: "okta",
81
- },
82
- } }),
77
+ mockIntegrationConfigFetch.mockResolvedValue({
78
+ config: {
79
+ "iam-write": {
80
+ "1": Object.assign(Object.assign({}, item), { login: {
81
+ type: "federated",
82
+ provider: {
83
+ type: "okta",
84
+ appId: "0oabcdefgh",
85
+ identityProvider: "okta",
86
+ },
87
+ } }),
88
+ },
83
89
  },
84
90
  });
85
91
  });
@@ -1 +1 @@
1
- {"version":3,"file":"role.test.js","sourceRoot":"","sources":["../../../../../src/commands/aws/__tests__/role.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"role.test.js","sourceRoot":"","sources":["../../../../../src/commands/aws/__tests__/role.test.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 stdio_1 = require("../../drivers/stdio");
26
25
  const config_1 = require("../../plugins/aws/config");
27
26
  const permission_set_1 = require("./permission-set");
@@ -53,9 +52,6 @@ const awsArgs = (yargs) => __awaiter(void 0, void 0, void 0, function* () {
53
52
  catch (error) {
54
53
  // Handle authentication errors here, since
55
54
  // this occurs during command building
56
- // Handle Firestore shutdown here, since Firebase is
57
- // initialized as part of authentication
58
- (0, firestore_1.shutdownFirebase)();
59
55
  (0, stdio_1.print2)(error);
60
56
  typescript_1.sys.exit(1);
61
57
  throw error; // This will never be reached, but is needed to satisfy TypeScript
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/aws/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;;;;;;GASG;AACH,6CAAkD;AAClD,uDAA2D;AAC3D,+CAA6C;AAC7C,qDAA6D;AAC7D,qDAAiD;AACjD,iCAA8B;AAC9B,2CAAiC;AAGjC,MAAM,OAAO,GAAG,CAAO,KAAiB,EAAE,EAAE;;IAC1C,IAAI;QACF,MAAM,KAAK,GAAG,MAAM,IAAA,mBAAY,GAAE,CAAC;QAEnC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAA,0BAAiB,EAAC,KAAK,CAAC,CAAC;QAElD,MAAM,IAAI,GAAG,KAAK;YAChB,gEAAgE;YAChE,6DAA6D;aAC5D,aAAa,CAAC,CAAC,CAAC;aAChB,MAAM,CAAC,SAAS,EAAE;YACjB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,iDAAiD;SAC5D,CAAC;aACD,MAAM,CAAC,QAAQ,EAAE;YAChB,QAAQ,EAAE,yBAAyB;YACnC,IAAI,EAAE,QAAQ;SACf,CAAC;aACD,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEjB,MAAM,WAAW,GACf,CAAA,MAAA,MAAM,CAAC,KAAK,0CAAE,IAAI,MAAK,KAAK;YAC1B,CAAC,CAAC,IAAA,8BAAa,EAAC,IAAI,EAAE,KAAK,CAAC;YAC5B,CAAC,CAAC,IAAA,WAAI,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACxB,OAAO,WAAW,CAAC;KACpB;IAAC,OAAO,KAAK,EAAE;QACd,2CAA2C;QAC3C,sCAAsC;QAEtC,oDAAoD;QACpD,wCAAwC;QACxC,IAAA,4BAAgB,GAAE,CAAC;QAEnB,IAAA,cAAM,EAAC,KAAK,CAAC,CAAC;QACd,gBAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACZ,MAAM,KAAK,CAAC,CAAC,kEAAkE;KAChF;AACH,CAAC,CAAA,CAAC;AAEK,MAAM,UAAU,GAAG,CAAC,KAAiB,EAAE,EAAE,CAC9C,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,sBAAsB,EAAE,OAAO,CAAC,CAAC;AAD3C,QAAA,UAAU,cACiC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/aws/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;;;;;;GASG;AACH,6CAAkD;AAClD,+CAA6C;AAC7C,qDAA6D;AAC7D,qDAAiD;AACjD,iCAA8B;AAC9B,2CAAiC;AAGjC,MAAM,OAAO,GAAG,CAAO,KAAiB,EAAE,EAAE;;IAC1C,IAAI;QACF,MAAM,KAAK,GAAG,MAAM,IAAA,mBAAY,GAAE,CAAC;QAEnC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAA,0BAAiB,EAAC,KAAK,CAAC,CAAC;QAElD,MAAM,IAAI,GAAG,KAAK;YAChB,gEAAgE;YAChE,6DAA6D;aAC5D,aAAa,CAAC,CAAC,CAAC;aAChB,MAAM,CAAC,SAAS,EAAE;YACjB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,iDAAiD;SAC5D,CAAC;aACD,MAAM,CAAC,QAAQ,EAAE;YAChB,QAAQ,EAAE,yBAAyB;YACnC,IAAI,EAAE,QAAQ;SACf,CAAC;aACD,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEjB,MAAM,WAAW,GACf,CAAA,MAAA,MAAM,CAAC,KAAK,0CAAE,IAAI,MAAK,KAAK;YAC1B,CAAC,CAAC,IAAA,8BAAa,EAAC,IAAI,EAAE,KAAK,CAAC;YAC5B,CAAC,CAAC,IAAA,WAAI,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACxB,OAAO,WAAW,CAAC;KACpB;IAAC,OAAO,KAAK,EAAE;QACd,2CAA2C;QAC3C,sCAAsC;QAEtC,IAAA,cAAM,EAAC,KAAK,CAAC,CAAC;QACd,gBAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACZ,MAAM,KAAK,CAAC,CAAC,kEAAkE;KAChF;AACH,CAAC,CAAA,CAAC;AAEK,MAAM,UAAU,GAAG,CAAC,KAAiB,EAAE,EAAE,CAC9C,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,sBAAsB,EAAE,OAAO,CAAC,CAAC;AAD3C,QAAA,UAAU,cACiC"}