@p0security/cli 0.18.9 → 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 (100) 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/package.json +2 -1
  98. package/build/dist/testing/firestore.d.ts +0 -2
  99. package/build/dist/testing/firestore.js +0 -17
  100. package/build/dist/testing/firestore.js.map +0 -1
@@ -19,5 +19,6 @@ export type Identity = {
19
19
  };
20
20
  export type Authn = {
21
21
  identity: Identity;
22
- userCredential: UserCredential;
22
+ userCredential?: UserCredential;
23
+ getToken(): Promise<string>;
23
24
  };
@@ -37,6 +37,8 @@ type BaseOrgData = {
37
37
  usePassword?: boolean;
38
38
  tenantId: string;
39
39
  config: Config;
40
+ /** Swaps API auth to tokens from the ssoProvider, rather than firebase */
41
+ useProviderToken?: boolean;
40
42
  };
41
43
  /** Publicly readable organization data */
42
44
  export type RawOrgData = BaseOrgData & ({
@@ -34,7 +34,7 @@ export type RequestResponse<T> = {
34
34
  ok: true;
35
35
  message: string;
36
36
  id: string;
37
- event: T;
37
+ request: T;
38
38
  isPreexisting: boolean;
39
39
  isPersistent: boolean;
40
40
  };
@@ -12,14 +12,15 @@ import { CommandArgs, SshAdditionalSetup } from "../commands/shared/ssh";
12
12
  import { AwsSsh, AwsSshPermissionSpec, AwsSshRequest } from "../plugins/aws/types";
13
13
  import { AzureSsh, AzureSshPermissionSpec, AzureSshRequest } from "../plugins/azure/types";
14
14
  import { GcpSsh, GcpSshPermissionSpec, GcpSshRequest } from "../plugins/google/types";
15
+ import { SelfHostedSsh, SelfHostedSshPermissionSpec, SelfHostedSshRequest } from "../plugins/self-hosted/types";
15
16
  import { Authn } from "./identity";
16
17
  import { PermissionRequest } from "./request";
17
- export type CliSshRequest = AwsSsh | AzureSsh | GcpSsh;
18
- export type PluginSshRequest = AwsSshPermissionSpec | AzureSshPermissionSpec | GcpSshPermissionSpec;
18
+ export type CliSshRequest = AwsSsh | AzureSsh | GcpSsh | SelfHostedSsh;
19
+ export type PluginSshRequest = AwsSshPermissionSpec | AzureSshPermissionSpec | GcpSshPermissionSpec | SelfHostedSshPermissionSpec;
19
20
  export type CliPermissionSpec<P extends PluginSshRequest, C extends object | undefined> = P & {
20
21
  cliLocalData: C;
21
22
  };
22
- export declare const SupportedSshProviders: readonly ["aws", "azure", "gcloud"];
23
+ export declare const SupportedSshProviders: readonly ["aws", "azure", "gcloud", "self-hosted"];
23
24
  export type SupportedSshProvider = (typeof SupportedSshProviders)[number];
24
25
  export type AccessPattern = {
25
26
  /** If the error matches this string, indicates that access is not provisioned */
@@ -87,4 +88,4 @@ export type SshProvider<PR extends PluginSshRequest = PluginSshRequest, O extend
87
88
  debug?: boolean;
88
89
  }) => Promise<PermissionRequest<CliSshRequest>>;
89
90
  };
90
- export type SshRequest = AwsSshRequest | AzureSshRequest | GcpSshRequest;
91
+ export type SshRequest = AwsSshRequest | AzureSshRequest | GcpSshRequest | SelfHostedSshRequest;
@@ -2,5 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SupportedSshProviders = void 0;
4
4
  // The prefix of installed SSH accounts in P0 is the provider name
5
- exports.SupportedSshProviders = ["aws", "azure", "gcloud"];
5
+ exports.SupportedSshProviders = [
6
+ "aws",
7
+ "azure",
8
+ "gcloud",
9
+ "self-hosted",
10
+ ];
6
11
  //# sourceMappingURL=ssh.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ssh.js","sourceRoot":"","sources":["../../../src/types/ssh.ts"],"names":[],"mappings":";;;AA0CA,kEAAkE;AACrD,QAAA,qBAAqB,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAU,CAAC"}
1
+ {"version":3,"file":"ssh.js","sourceRoot":"","sources":["../../../src/types/ssh.ts"],"names":[],"mappings":";;;AAgDA,kEAAkE;AACrD,QAAA,qBAAqB,GAAG;IACnC,KAAK;IACL,OAAO;IACP,QAAQ;IACR,aAAa;CACL,CAAC"}
@@ -47,3 +47,6 @@ export declare const unexpectedValueError: (value: any) => Error;
47
47
  */
48
48
  export declare const ciEquals: (a: string, b: string) => boolean;
49
49
  export declare const delay: (ms: number) => Promise<unknown>;
50
+ type OperatingSystem = "linux" | "mac" | "unknown" | "win";
51
+ export declare const getOperatingSystem: () => OperatingSystem;
52
+ export {};
@@ -12,7 +12,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.delay = exports.ciEquals = exports.unexpectedValueError = exports.assertNever = exports.conditionalAbortBeforeThrow = exports.throwAssertNever = exports.exec = exports.timeout = exports.sleep = exports.P0_PATH = exports.getAppPath = void 0;
15
+ exports.getOperatingSystem = exports.delay = exports.ciEquals = exports.unexpectedValueError = exports.assertNever = exports.conditionalAbortBeforeThrow = exports.throwAssertNever = exports.exec = exports.timeout = exports.sleep = exports.P0_PATH = exports.getAppPath = void 0;
16
16
  /** Copyright © 2024-present P0 Security
17
17
 
18
18
  This file is part of @p0security/cli
@@ -31,9 +31,9 @@ const node_process_1 = require("node:process");
31
31
  const typescript_1 = require("typescript");
32
32
  const getAppPath = () => { var _a; return (_a = node_process_1.env.P0_APP_PATH) !== null && _a !== void 0 ? _a : "p0"; };
33
33
  exports.getAppPath = getAppPath;
34
- exports.P0_PATH = node_path_1.default.join(node_os_1.default.homedir(), env_1.bootstrapConfig.environment === "production"
34
+ exports.P0_PATH = node_path_1.default.join(node_os_1.default.homedir(), env_1.defaultConfig.environment === "production"
35
35
  ? ".p0"
36
- : `.p0-${env_1.bootstrapConfig.environment}`);
36
+ : `.p0-${env_1.defaultConfig.environment}`);
37
37
  /** Waits the specified delay (in ms)
38
38
  *
39
39
  * The returned promise is cancelable:
@@ -124,4 +124,20 @@ const ciEquals = (a, b) => a.localeCompare(b, undefined, { sensitivity: "accent"
124
124
  exports.ciEquals = ciEquals;
125
125
  const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
126
126
  exports.delay = delay;
127
+ const getOperatingSystem = () => {
128
+ const platform = process.platform;
129
+ if (platform === "win32") {
130
+ return "win";
131
+ }
132
+ else if (platform === "darwin") {
133
+ return "mac";
134
+ }
135
+ else if (platform === "linux") {
136
+ return "linux";
137
+ }
138
+ else {
139
+ return "unknown";
140
+ }
141
+ };
142
+ exports.getOperatingSystem = getOperatingSystem;
127
143
  //# sourceMappingURL=util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"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"}