@ledgerhq/vault-cli 1.14.2 → 1.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +2 -2
- package/CHANGELOG.md +12 -0
- package/bin/__tests__/backupCompartment.test.d.ts +2 -0
- package/bin/__tests__/backupCompartment.test.d.ts.map +1 -0
- package/bin/__tests__/backupCompartment.test.js +84 -0
- package/bin/__tests__/backupCompartment.test.js.map +1 -0
- package/bin/__tests__/restoreCompartment.test.d.ts +2 -0
- package/bin/__tests__/restoreCompartment.test.d.ts.map +1 -0
- package/bin/__tests__/restoreCompartment.test.js +92 -0
- package/bin/__tests__/restoreCompartment.test.js.map +1 -0
- package/bin/commands/backupCompartment.d.ts +31 -0
- package/bin/commands/backupCompartment.d.ts.map +1 -0
- package/bin/commands/backupCompartment.js +76 -0
- package/bin/commands/backupCompartment.js.map +1 -0
- package/bin/commands/index.d.ts +29 -0
- package/bin/commands/index.d.ts.map +1 -1
- package/bin/commands/index.js +4 -0
- package/bin/commands/index.js.map +1 -1
- package/bin/commands/restoreCompartment.d.ts +39 -0
- package/bin/commands/restoreCompartment.d.ts.map +1 -0
- package/bin/commands/restoreCompartment.js +85 -0
- package/bin/commands/restoreCompartment.js.map +1 -0
- package/package.json +2 -2
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
@ledgerhq/vault-cli:build: cache hit, replaying output
|
|
1
|
+
@ledgerhq/vault-cli:build: cache hit, replaying output 16bff0e5826675b6
|
|
2
2
|
@ledgerhq/vault-cli:build:
|
|
3
|
-
@ledgerhq/vault-cli:build: > @ledgerhq/vault-cli@1.
|
|
3
|
+
@ledgerhq/vault-cli:build: > @ledgerhq/vault-cli@1.15.0 build /home/runner/work/vault-ts/vault-ts/apps/cli
|
|
4
4
|
@ledgerhq/vault-cli:build: > tsc && chmod +x bin/index.js
|
|
5
5
|
@ledgerhq/vault-cli:build:
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @ledgerhq/vault-cli
|
|
2
2
|
|
|
3
|
+
## 1.15.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 41de09a: Add ability to backup & restore HSM compartment
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies [17b3731]
|
|
12
|
+
- Updated dependencies [41de09a]
|
|
13
|
+
- @ledgerhq/vault-common@1.17.0
|
|
14
|
+
|
|
3
15
|
## 1.14.2
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backupCompartment.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/backupCompartment.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
+
};
|
|
37
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
+
const createHSMBridge = __importStar(require("@ledgerhq/vault-common/lib/createHSMBridge"));
|
|
39
|
+
const fs_1 = __importDefault(require("fs"));
|
|
40
|
+
const backupCompartment_1 = __importDefault(require("../commands/backupCompartment"));
|
|
41
|
+
describe("backupCompartment", () => {
|
|
42
|
+
beforeEach(() => {
|
|
43
|
+
jest.spyOn(console, "log").mockImplementation();
|
|
44
|
+
jest.spyOn(fs_1.default, "readFileSync").mockReturnValue("<cert>");
|
|
45
|
+
});
|
|
46
|
+
afterEach(() => {
|
|
47
|
+
jest.restoreAllMocks();
|
|
48
|
+
});
|
|
49
|
+
it("should throw if no HSM cert given", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
50
|
+
let err;
|
|
51
|
+
try {
|
|
52
|
+
yield backupCompartment_1.default.run({
|
|
53
|
+
compartment: 1,
|
|
54
|
+
hsm: "<hsm>",
|
|
55
|
+
hsmCert: undefined,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
catch (e) {
|
|
59
|
+
err = e;
|
|
60
|
+
}
|
|
61
|
+
expect(err).toEqual(new Error("You must specify the path to your HSM certificate in your environment variable VAULT_HSM_CLIENT_CERT_PATH or use the --hsmCert flag"));
|
|
62
|
+
}));
|
|
63
|
+
it("should backup a compartment", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
64
|
+
const fakeBridge = {
|
|
65
|
+
backupCompartment: jest.fn(),
|
|
66
|
+
restoreCompartment: jest.fn(),
|
|
67
|
+
resetCompartment: jest.fn(),
|
|
68
|
+
};
|
|
69
|
+
const createHSMBridgeSpy = jest.spyOn(createHSMBridge, "default").mockReturnValue(fakeBridge);
|
|
70
|
+
yield backupCompartment_1.default.run({
|
|
71
|
+
compartment: 42,
|
|
72
|
+
hsm: "<hsm>",
|
|
73
|
+
hsmCert: "abcde",
|
|
74
|
+
hsmCertPassword: "1234",
|
|
75
|
+
});
|
|
76
|
+
expect(createHSMBridgeSpy).toHaveBeenCalledWith({
|
|
77
|
+
hsmCert: "<cert>",
|
|
78
|
+
hsmCertPassword: "1234",
|
|
79
|
+
hsmEndpoint: "<hsm>",
|
|
80
|
+
});
|
|
81
|
+
expect(fakeBridge.backupCompartment).toHaveBeenCalledWith(42);
|
|
82
|
+
}));
|
|
83
|
+
});
|
|
84
|
+
//# sourceMappingURL=backupCompartment.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backupCompartment.test.js","sourceRoot":"","sources":["../../src/__tests__/backupCompartment.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4FAA8E;AAC9E,4CAAoB;AAEpB,sFAA8D;AAE9D,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,EAAE,CAAC;QAChD,IAAI,CAAC,KAAK,CAAC,YAAE,EAAE,cAAc,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAS,EAAE;QACjD,IAAI,GAAG,CAAC;QACR,IAAI;YACF,MAAM,2BAAiB,CAAC,GAAG,CAAC;gBAC1B,WAAW,EAAE,CAAC;gBACd,GAAG,EAAE,OAAO;gBAEZ,OAAO,EAAE,SAAS;aACnB,CAAC,CAAC;SACJ;QAAC,OAAO,CAAC,EAAE;YACV,GAAG,GAAG,CAAC,CAAC;SACT;QACD,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CACjB,IAAI,KAAK,CACP,qIAAqI,CACtI,CACF,CAAC;IACJ,CAAC,CAAA,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,GAAS,EAAE;QAC3C,MAAM,UAAU,GAAG;YACjB,iBAAiB,EAAE,IAAI,CAAC,EAAE,EAAE;YAC5B,kBAAkB,EAAE,IAAI,CAAC,EAAE,EAAE;YAC7B,gBAAgB,EAAE,IAAI,CAAC,EAAE,EAAE;SAC5B,CAAC;QACF,MAAM,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAC9F,MAAM,2BAAiB,CAAC,GAAG,CAAC;YAC1B,WAAW,EAAE,EAAE;YACf,GAAG,EAAE,OAAO;YACZ,OAAO,EAAE,OAAO;YAChB,eAAe,EAAE,MAAM;SACxB,CAAC,CAAC;QACH,MAAM,CAAC,kBAAkB,CAAC,CAAC,oBAAoB,CAAC;YAC9C,OAAO,EAAE,QAAQ;YACjB,eAAe,EAAE,MAAM;YACvB,WAAW,EAAE,OAAO;SACrB,CAAC,CAAC;QACH,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;IAChE,CAAC,CAAA,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"restoreCompartment.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/restoreCompartment.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
+
};
|
|
37
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
+
const createHSMBridge = __importStar(require("@ledgerhq/vault-common/lib/createHSMBridge"));
|
|
39
|
+
const fs_1 = __importDefault(require("fs"));
|
|
40
|
+
const restoreCompartment_1 = __importDefault(require("../commands/restoreCompartment"));
|
|
41
|
+
const logger_1 = __importDefault(require("../logger"));
|
|
42
|
+
describe("restoreCompartment", () => {
|
|
43
|
+
beforeEach(() => {
|
|
44
|
+
jest.spyOn(console, "log").mockImplementation();
|
|
45
|
+
});
|
|
46
|
+
afterEach(() => {
|
|
47
|
+
jest.restoreAllMocks();
|
|
48
|
+
});
|
|
49
|
+
it("should throw if no HSM cert given", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
50
|
+
let err;
|
|
51
|
+
try {
|
|
52
|
+
yield restoreCompartment_1.default.run({
|
|
53
|
+
compartment: 1,
|
|
54
|
+
hsm: "<hsm>",
|
|
55
|
+
hsmCert: undefined,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
catch (e) {
|
|
59
|
+
err = e;
|
|
60
|
+
}
|
|
61
|
+
expect(err).toEqual(new Error("You must specify the path to your HSM certificate in your environment variable VAULT_HSM_CLIENT_CERT_PATH or use the --hsmCert flag"));
|
|
62
|
+
}));
|
|
63
|
+
it("should restore a compartment", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
64
|
+
jest
|
|
65
|
+
.spyOn(fs_1.default, "readFileSync")
|
|
66
|
+
.mockReturnValueOnce("<cert>")
|
|
67
|
+
.mockReturnValue('{"counters":"1234","internalfs":"abcdef"}');
|
|
68
|
+
const fakeBridge = {
|
|
69
|
+
backupCompartment: jest.fn(),
|
|
70
|
+
restoreCompartment: jest.fn(),
|
|
71
|
+
resetCompartment: jest.fn(),
|
|
72
|
+
};
|
|
73
|
+
const createHSMBridgeSpy = jest.spyOn(createHSMBridge, "default").mockReturnValue(fakeBridge);
|
|
74
|
+
yield restoreCompartment_1.default.run({
|
|
75
|
+
backupFile: "/path/to/file",
|
|
76
|
+
compartment: 42,
|
|
77
|
+
hsm: "<hsm>",
|
|
78
|
+
hsmCert: "abcde",
|
|
79
|
+
hsmCertPassword: "1234",
|
|
80
|
+
});
|
|
81
|
+
expect(createHSMBridgeSpy).toHaveBeenCalledWith({
|
|
82
|
+
hsmCert: "<cert>",
|
|
83
|
+
hsmCertPassword: "1234",
|
|
84
|
+
hsmEndpoint: "<hsm>",
|
|
85
|
+
});
|
|
86
|
+
expect(fakeBridge.restoreCompartment).toHaveBeenCalledWith(42, {
|
|
87
|
+
counters: "1234",
|
|
88
|
+
internalfs: "abcdef",
|
|
89
|
+
}, { logger: logger_1.default });
|
|
90
|
+
}));
|
|
91
|
+
});
|
|
92
|
+
//# sourceMappingURL=restoreCompartment.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"restoreCompartment.test.js","sourceRoot":"","sources":["../../src/__tests__/restoreCompartment.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4FAA8E;AAC9E,4CAAoB;AAEpB,wFAAgE;AAChE,uDAA+B;AAE/B,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,EAAE,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAS,EAAE;QACjD,IAAI,GAAG,CAAC;QACR,IAAI;YACF,MAAM,4BAAkB,CAAC,GAAG,CAAC;gBAC3B,WAAW,EAAE,CAAC;gBACd,GAAG,EAAE,OAAO;gBAEZ,OAAO,EAAE,SAAS;aACnB,CAAC,CAAC;SACJ;QAAC,OAAO,CAAC,EAAE;YACV,GAAG,GAAG,CAAC,CAAC;SACT;QACD,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CACjB,IAAI,KAAK,CACP,qIAAqI,CACtI,CACF,CAAC;IACJ,CAAC,CAAA,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAS,EAAE;QAC5C,IAAI;aACD,KAAK,CAAC,YAAE,EAAE,cAAc,CAAC;aACzB,mBAAmB,CAAC,QAAQ,CAAC;aAC7B,eAAe,CAAC,2CAA2C,CAAC,CAAC;QAChE,MAAM,UAAU,GAAG;YACjB,iBAAiB,EAAE,IAAI,CAAC,EAAE,EAAE;YAC5B,kBAAkB,EAAE,IAAI,CAAC,EAAE,EAAE;YAC7B,gBAAgB,EAAE,IAAI,CAAC,EAAE,EAAE;SAC5B,CAAC;QACF,MAAM,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAC9F,MAAM,4BAAkB,CAAC,GAAG,CAAC;YAC3B,UAAU,EAAE,eAAe;YAC3B,WAAW,EAAE,EAAE;YACf,GAAG,EAAE,OAAO;YACZ,OAAO,EAAE,OAAO;YAChB,eAAe,EAAE,MAAM;SACxB,CAAC,CAAC;QACH,MAAM,CAAC,kBAAkB,CAAC,CAAC,oBAAoB,CAAC;YAC9C,OAAO,EAAE,QAAQ;YACjB,eAAe,EAAE,MAAM;YACvB,WAAW,EAAE,OAAO;SACrB,CAAC,CAAC;QACH,MAAM,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,oBAAoB,CACxD,EAAE,EACF;YACE,QAAQ,EAAE,MAAM;YAChB,UAAU,EAAE,QAAQ;SACrB,EACD,EAAE,MAAM,EAAN,gBAAM,EAAE,CACX,CAAC;IACJ,CAAC,CAAA,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export declare type Options = {
|
|
2
|
+
compartment: number;
|
|
3
|
+
hsm: string;
|
|
4
|
+
hsmCert: string;
|
|
5
|
+
hsmCertPassword: string;
|
|
6
|
+
};
|
|
7
|
+
declare const _default: {
|
|
8
|
+
command: string;
|
|
9
|
+
description: string;
|
|
10
|
+
help: {
|
|
11
|
+
content: string;
|
|
12
|
+
}[];
|
|
13
|
+
options: ({
|
|
14
|
+
name: string;
|
|
15
|
+
alias: string;
|
|
16
|
+
type: NumberConstructor;
|
|
17
|
+
description: string;
|
|
18
|
+
defaultValue: string | undefined;
|
|
19
|
+
required: boolean;
|
|
20
|
+
} | {
|
|
21
|
+
name: string;
|
|
22
|
+
type: StringConstructor;
|
|
23
|
+
description: string;
|
|
24
|
+
defaultValue: string | undefined;
|
|
25
|
+
required: boolean;
|
|
26
|
+
alias?: undefined;
|
|
27
|
+
})[];
|
|
28
|
+
run: (options: Options) => Promise<void>;
|
|
29
|
+
};
|
|
30
|
+
export default _default;
|
|
31
|
+
//# sourceMappingURL=backupCompartment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backupCompartment.d.ts","sourceRoot":"","sources":["../../src/commands/backupCompartment.ts"],"names":[],"mappings":"AAGA,oBAAY,OAAO,GAAG;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;;;;;;;;;;;;;;;;;;;;;;mBAyCqB,OAAO,KAAG,QAAQ,IAAI,CAAC;;AAvC9C,wBA+DE"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
const createHSMBridge_1 = __importDefault(require("@ledgerhq/vault-common/lib/createHSMBridge"));
|
|
16
|
+
const fs_1 = __importDefault(require("fs"));
|
|
17
|
+
exports.default = {
|
|
18
|
+
command: "backupCompartment",
|
|
19
|
+
description: "Backup HSM simu compartment",
|
|
20
|
+
help: [
|
|
21
|
+
{
|
|
22
|
+
content: "{grey $} ledger-vault backupCompartment --cid 123",
|
|
23
|
+
},
|
|
24
|
+
],
|
|
25
|
+
options: [
|
|
26
|
+
{
|
|
27
|
+
name: "compartment",
|
|
28
|
+
alias: "c",
|
|
29
|
+
type: Number,
|
|
30
|
+
description: "HSM compartment ID {blue $VAULT_COMPARTMENT_ID}",
|
|
31
|
+
defaultValue: process.env.VAULT_COMPARTMENT_ID,
|
|
32
|
+
required: true,
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
name: "hsm",
|
|
36
|
+
type: String,
|
|
37
|
+
description: "HSM endpoint {blue $VAULT_HSM_ENDPOINT}",
|
|
38
|
+
defaultValue: process.env.VAULT_HSM_ENDPOINT,
|
|
39
|
+
required: true,
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: "hsmCert",
|
|
43
|
+
type: String,
|
|
44
|
+
description: "Path to HSM certificate {blue $VAULT_HSM_CLIENT_CERT_PATH}",
|
|
45
|
+
defaultValue: process.env.VAULT_HSM_CLIENT_CERT_PATH,
|
|
46
|
+
required: true,
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: "hsmCertPassword",
|
|
50
|
+
type: String,
|
|
51
|
+
description: "HSM certificate password {blue $VAULT_HSM_CLIENT_CERT_PWD}",
|
|
52
|
+
defaultValue: process.env.VAULT_HSM_CLIENT_CERT_PWD,
|
|
53
|
+
required: true,
|
|
54
|
+
},
|
|
55
|
+
],
|
|
56
|
+
run: (options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
57
|
+
if (!options.hsmCert) {
|
|
58
|
+
throw new Error("You must specify the path to your HSM certificate in your environment variable VAULT_HSM_CLIENT_CERT_PATH or use the --hsmCert flag");
|
|
59
|
+
}
|
|
60
|
+
let hsmCert;
|
|
61
|
+
try {
|
|
62
|
+
hsmCert = fs_1.default.readFileSync(options.hsmCert);
|
|
63
|
+
}
|
|
64
|
+
catch (_a) {
|
|
65
|
+
throw new Error(`Invalid path for hsmCert: ${options.hsmCert}`);
|
|
66
|
+
}
|
|
67
|
+
const bridge = (0, createHSMBridge_1.default)({
|
|
68
|
+
hsmCert,
|
|
69
|
+
hsmEndpoint: options.hsm,
|
|
70
|
+
hsmCertPassword: options.hsmCertPassword,
|
|
71
|
+
});
|
|
72
|
+
const backup = yield bridge.backupCompartment(options.compartment);
|
|
73
|
+
console.log(JSON.stringify(backup));
|
|
74
|
+
}),
|
|
75
|
+
};
|
|
76
|
+
//# sourceMappingURL=backupCompartment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backupCompartment.js","sourceRoot":"","sources":["../../src/commands/backupCompartment.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,iGAAyE;AACzE,4CAAoB;AASpB,kBAAe;IACb,OAAO,EAAE,mBAAmB;IAC5B,WAAW,EAAE,6BAA6B;IAC1C,IAAI,EAAE;QACJ;YACE,OAAO,EAAE,mDAAmD;SAC7D;KACF;IACD,OAAO,EAAE;QACP;YACE,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,iDAAiD;YAC9D,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB;YAC9C,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,yCAAyC;YACtD,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB;YAC5C,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,4DAA4D;YACzE,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,0BAA0B;YACpD,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,iBAAiB;YACvB,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,4DAA4D;YACzE,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB;YACnD,QAAQ,EAAE,IAAI;SACf;KACF;IACD,GAAG,EAAE,CAAO,OAAgB,EAAiB,EAAE;QAC7C,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YACpB,MAAM,IAAI,KAAK,CACb,qIAAqI,CACtI,CAAC;SACH;QAED,IAAI,OAAe,CAAC;QACpB,IAAI;YACF,OAAO,GAAG,YAAE,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SAC5C;QAAC,WAAiC;YACjC,MAAM,IAAI,KAAK,CAAC,6BAA6B,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;SACjE;QAED,MAAM,MAAM,GAAG,IAAA,yBAAe,EAAC;YAC7B,OAAO;YACP,WAAW,EAAE,OAAO,CAAC,GAAG;YACxB,eAAe,EAAE,OAAO,CAAC,eAAe;SACzC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAEnE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IACtC,CAAC,CAAA;CACF,CAAC"}
|
package/bin/commands/index.d.ts
CHANGED
|
@@ -385,6 +385,35 @@ declare const _default: {
|
|
|
385
385
|
required?: undefined;
|
|
386
386
|
})[];
|
|
387
387
|
run: (options: import("./faucet").FaucetOptions) => Promise<void>;
|
|
388
|
+
} | {
|
|
389
|
+
command: string;
|
|
390
|
+
description: string;
|
|
391
|
+
help: {
|
|
392
|
+
content: string;
|
|
393
|
+
}[];
|
|
394
|
+
options: ({
|
|
395
|
+
name: string;
|
|
396
|
+
alias: string;
|
|
397
|
+
type: NumberConstructor;
|
|
398
|
+
description: string;
|
|
399
|
+
defaultValue: string | undefined;
|
|
400
|
+
required: boolean;
|
|
401
|
+
} | {
|
|
402
|
+
name: string;
|
|
403
|
+
alias: string;
|
|
404
|
+
type: StringConstructor;
|
|
405
|
+
description: string;
|
|
406
|
+
required: boolean;
|
|
407
|
+
defaultValue?: undefined;
|
|
408
|
+
} | {
|
|
409
|
+
name: string;
|
|
410
|
+
type: StringConstructor;
|
|
411
|
+
description: string;
|
|
412
|
+
defaultValue: string | undefined;
|
|
413
|
+
required: boolean;
|
|
414
|
+
alias?: undefined;
|
|
415
|
+
})[];
|
|
416
|
+
run: (options: import("./restoreCompartment").Options) => Promise<void>;
|
|
388
417
|
} | {
|
|
389
418
|
command: string;
|
|
390
419
|
description: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+DA,wBAiCE"}
|
package/bin/commands/index.js
CHANGED
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const apdu_1 = __importDefault(require("./apdu"));
|
|
7
7
|
const approve_1 = __importDefault(require("./approve"));
|
|
8
|
+
const backupCompartment_1 = __importDefault(require("./backupCompartment"));
|
|
8
9
|
const bake_1 = __importDefault(require("./bake"));
|
|
9
10
|
const bridge_1 = __importDefault(require("./bridge"));
|
|
10
11
|
const create_1 = __importDefault(require("./create"));
|
|
@@ -26,6 +27,7 @@ const receive_1 = __importDefault(require("./receive"));
|
|
|
26
27
|
const recipe_1 = __importDefault(require("./recipe"));
|
|
27
28
|
const registerMigratedUsers_1 = __importDefault(require("./registerMigratedUsers"));
|
|
28
29
|
const reject_1 = __importDefault(require("./reject"));
|
|
30
|
+
const restoreCompartment_1 = __importDefault(require("./restoreCompartment"));
|
|
29
31
|
const send_1 = __importDefault(require("./send"));
|
|
30
32
|
const setQuorum_1 = __importDefault(require("./setQuorum"));
|
|
31
33
|
const wipe_1 = __importDefault(require("./wipe"));
|
|
@@ -75,6 +77,8 @@ exports.default = {
|
|
|
75
77
|
faucet_1.default,
|
|
76
78
|
getAuthToken_1.default,
|
|
77
79
|
getUserID_1.default,
|
|
80
|
+
backupCompartment_1.default,
|
|
81
|
+
restoreCompartment_1.default,
|
|
78
82
|
migrate_1.default,
|
|
79
83
|
registerMigratedUsers_1.default,
|
|
80
84
|
listen_1.default,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";;;;;AAAA,kDAAiC;AACjC,wDAAuC;AACvC,kDAAiC;AACjC,sDAAqC;AACrC,sDAAqC;AACrC,sDAAqC;AACrC,wDAAuC;AACvC,oDAAmC;AACnC,sDAAqC;AACrC,oDAAmC;AACnC,gDAA+B;AAC/B,kEAAiD;AACjD,sEAAqD;AACrD,0DAAyC;AACzC,4DAA2C;AAC3C,sDAAqC;AACrC,wDAAuC;AACvC,wDAAuC;AACvC,oDAAmC;AACnC,wDAAuC;AACvC,sDAAqC;AACrC,oFAAmE;AACnE,sDAAqC;AACrC,kDAAiC;AACjC,4DAA2C;AAC3C,kDAAiC;AAKjC,MAAM,IAAI,GAAG;IACX;QACE,MAAM,EAAE,cAAc;QACtB,OAAO,EAAE;YACP,uDAAuD;YACvD,EAAE;YACF,yCAAyC;SAC1C;KACF;CACF,CAAC;AAEF,MAAM,OAAO,GAAG;IACd;QACE,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,sBAAsB;KACpC;IACD;QACE,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,cAAc;KAC5B;IACD;QACE,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,WAAW;KACzB;CACF,CAAC;AAEF,kBAAe;IACb,IAAI;IACJ,OAAO;IACP,WAAW,EAAE;QACX,iBAAc;QACd,cAAW;QACX,gBAAa;QACb,cAAW;QACX,gBAAa;QACb,iBAAc;QACd,gBAAa;QACb,mBAAgB;QAChB,aAAU;QACV,eAAY;QACZ,gBAAa;QACb,sBAAmB;QACnB,mBAAgB;QAChB,iBAAc;QACd,+BAA4B;QAC5B,gBAAa;QACb,kBAAe;QACf,eAAY;QACZ,cAAW;QACX,iBAAc;QACd,eAAY;QACZ,gBAAa;QACb,iBAAc;QACd,gBAAa;QACb,cAAW;QACX,wBAAqB;KACtB;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";;;;;AAAA,kDAAiC;AACjC,wDAAuC;AACvC,4EAA2D;AAC3D,kDAAiC;AACjC,sDAAqC;AACrC,sDAAqC;AACrC,sDAAqC;AACrC,wDAAuC;AACvC,oDAAmC;AACnC,sDAAqC;AACrC,oDAAmC;AACnC,gDAA+B;AAC/B,kEAAiD;AACjD,sEAAqD;AACrD,0DAAyC;AACzC,4DAA2C;AAC3C,sDAAqC;AACrC,wDAAuC;AACvC,wDAAuC;AACvC,oDAAmC;AACnC,wDAAuC;AACvC,sDAAqC;AACrC,oFAAmE;AACnE,sDAAqC;AACrC,8EAA6D;AAC7D,kDAAiC;AACjC,4DAA2C;AAC3C,kDAAiC;AAKjC,MAAM,IAAI,GAAG;IACX;QACE,MAAM,EAAE,cAAc;QACtB,OAAO,EAAE;YACP,uDAAuD;YACvD,EAAE;YACF,yCAAyC;SAC1C;KACF;CACF,CAAC;AAEF,MAAM,OAAO,GAAG;IACd;QACE,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,sBAAsB;KACpC;IACD;QACE,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,cAAc;KAC5B;IACD;QACE,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,WAAW;KACzB;CACF,CAAC;AAEF,kBAAe;IACb,IAAI;IACJ,OAAO;IACP,WAAW,EAAE;QACX,iBAAc;QACd,cAAW;QACX,gBAAa;QACb,cAAW;QACX,gBAAa;QACb,iBAAc;QACd,gBAAa;QACb,mBAAgB;QAChB,aAAU;QACV,eAAY;QACZ,gBAAa;QACb,sBAAmB;QACnB,mBAAgB;QAChB,2BAAwB;QACxB,4BAAyB;QACzB,iBAAc;QACd,+BAA4B;QAC5B,gBAAa;QACb,kBAAe;QACf,eAAY;QACZ,cAAW;QACX,iBAAc;QACd,eAAY;QACZ,gBAAa;QACb,iBAAc;QACd,gBAAa;QACb,cAAW;QACX,wBAAqB;KACtB;CACF,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export declare type Options = {
|
|
2
|
+
compartment: number;
|
|
3
|
+
hsm: string;
|
|
4
|
+
hsmCert: string;
|
|
5
|
+
hsmCertPassword: string;
|
|
6
|
+
backupFile: string;
|
|
7
|
+
};
|
|
8
|
+
declare const _default: {
|
|
9
|
+
command: string;
|
|
10
|
+
description: string;
|
|
11
|
+
help: {
|
|
12
|
+
content: string;
|
|
13
|
+
}[];
|
|
14
|
+
options: ({
|
|
15
|
+
name: string;
|
|
16
|
+
alias: string;
|
|
17
|
+
type: NumberConstructor;
|
|
18
|
+
description: string;
|
|
19
|
+
defaultValue: string | undefined;
|
|
20
|
+
required: boolean;
|
|
21
|
+
} | {
|
|
22
|
+
name: string;
|
|
23
|
+
alias: string;
|
|
24
|
+
type: StringConstructor;
|
|
25
|
+
description: string;
|
|
26
|
+
required: boolean;
|
|
27
|
+
defaultValue?: undefined;
|
|
28
|
+
} | {
|
|
29
|
+
name: string;
|
|
30
|
+
type: StringConstructor;
|
|
31
|
+
description: string;
|
|
32
|
+
defaultValue: string | undefined;
|
|
33
|
+
required: boolean;
|
|
34
|
+
alias?: undefined;
|
|
35
|
+
})[];
|
|
36
|
+
run: (options: Options) => Promise<void>;
|
|
37
|
+
};
|
|
38
|
+
export default _default;
|
|
39
|
+
//# sourceMappingURL=restoreCompartment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"restoreCompartment.d.ts","sourceRoot":"","sources":["../../src/commands/restoreCompartment.ts"],"names":[],"mappings":"AAKA,oBAAY,OAAO,GAAG;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAgDqB,OAAO,KAAG,QAAQ,IAAI,CAAC;;AA9C9C,wBAuEE"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
const createHSMBridge_1 = __importDefault(require("@ledgerhq/vault-common/lib/createHSMBridge"));
|
|
16
|
+
const fs_1 = __importDefault(require("fs"));
|
|
17
|
+
const logger_1 = __importDefault(require("../logger"));
|
|
18
|
+
exports.default = {
|
|
19
|
+
command: "restoreCompartment",
|
|
20
|
+
description: "Restore HSM simu compartment",
|
|
21
|
+
help: [
|
|
22
|
+
{
|
|
23
|
+
content: "{grey $} ledger-vault restoreCompartment --cid 123 --backupFile backup.json",
|
|
24
|
+
},
|
|
25
|
+
],
|
|
26
|
+
options: [
|
|
27
|
+
{
|
|
28
|
+
name: "compartment",
|
|
29
|
+
alias: "c",
|
|
30
|
+
type: Number,
|
|
31
|
+
description: "HSM compartment ID {blue $VAULT_COMPARTMENT_ID}",
|
|
32
|
+
defaultValue: process.env.VAULT_COMPARTMENT_ID,
|
|
33
|
+
required: true,
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
name: "backupFile",
|
|
37
|
+
alias: "b",
|
|
38
|
+
type: String,
|
|
39
|
+
description: "Location of the backup file (output of ledger-vault backupCompartment)",
|
|
40
|
+
required: true,
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: "hsm",
|
|
44
|
+
type: String,
|
|
45
|
+
description: "HSM endpoint {blue $VAULT_HSM_ENDPOINT}",
|
|
46
|
+
defaultValue: process.env.VAULT_HSM_ENDPOINT,
|
|
47
|
+
required: true,
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
name: "hsmCert",
|
|
51
|
+
type: String,
|
|
52
|
+
description: "Path to HSM certificate {blue $VAULT_HSM_CLIENT_CERT_PATH}",
|
|
53
|
+
defaultValue: process.env.VAULT_HSM_CLIENT_CERT_PATH,
|
|
54
|
+
required: true,
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
name: "hsmCertPassword",
|
|
58
|
+
type: String,
|
|
59
|
+
description: "HSM certificate password {blue $VAULT_HSM_CLIENT_CERT_PWD}",
|
|
60
|
+
defaultValue: process.env.VAULT_HSM_CLIENT_CERT_PWD,
|
|
61
|
+
required: true,
|
|
62
|
+
},
|
|
63
|
+
],
|
|
64
|
+
run: (options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
65
|
+
if (!options.hsmCert) {
|
|
66
|
+
throw new Error("You must specify the path to your HSM certificate in your environment variable VAULT_HSM_CLIENT_CERT_PATH or use the --hsmCert flag");
|
|
67
|
+
}
|
|
68
|
+
let hsmCert;
|
|
69
|
+
try {
|
|
70
|
+
hsmCert = fs_1.default.readFileSync(options.hsmCert);
|
|
71
|
+
}
|
|
72
|
+
catch (_a) {
|
|
73
|
+
throw new Error(`Invalid path for hsmCert: ${options.hsmCert}`);
|
|
74
|
+
}
|
|
75
|
+
const bridge = (0, createHSMBridge_1.default)({
|
|
76
|
+
hsmCert,
|
|
77
|
+
hsmEndpoint: options.hsm,
|
|
78
|
+
hsmCertPassword: options.hsmCertPassword,
|
|
79
|
+
});
|
|
80
|
+
const fileContent = fs_1.default.readFileSync(options.backupFile, "utf-8");
|
|
81
|
+
const backup = JSON.parse(fileContent);
|
|
82
|
+
yield bridge.restoreCompartment(options.compartment, backup, { logger: logger_1.default });
|
|
83
|
+
}),
|
|
84
|
+
};
|
|
85
|
+
//# sourceMappingURL=restoreCompartment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"restoreCompartment.js","sourceRoot":"","sources":["../../src/commands/restoreCompartment.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,iGAAyE;AACzE,4CAAoB;AAEpB,uDAA+B;AAU/B,kBAAe;IACb,OAAO,EAAE,oBAAoB;IAC7B,WAAW,EAAE,8BAA8B;IAC3C,IAAI,EAAE;QACJ;YACE,OAAO,EAAE,6EAA6E;SACvF;KACF;IACD,OAAO,EAAE;QACP;YACE,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,iDAAiD;YAC9D,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB;YAC9C,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,wEAAwE;YACrF,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,yCAAyC;YACtD,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB;YAC5C,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,4DAA4D;YACzE,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,0BAA0B;YACpD,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,iBAAiB;YACvB,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,4DAA4D;YACzE,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB;YACnD,QAAQ,EAAE,IAAI;SACf;KACF;IACD,GAAG,EAAE,CAAO,OAAgB,EAAiB,EAAE;QAC7C,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YACpB,MAAM,IAAI,KAAK,CACb,qIAAqI,CACtI,CAAC;SACH;QAED,IAAI,OAAe,CAAC;QACpB,IAAI;YACF,OAAO,GAAG,YAAE,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SAC5C;QAAC,WAAiC;YACjC,MAAM,IAAI,KAAK,CAAC,6BAA6B,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;SACjE;QAED,MAAM,MAAM,GAAG,IAAA,yBAAe,EAAC;YAC7B,OAAO;YACP,WAAW,EAAE,OAAO,CAAC,GAAG;YACxB,eAAe,EAAE,OAAO,CAAC,eAAe;SACzC,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,YAAE,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAEvC,MAAM,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,MAAM,EAAN,gBAAM,EAAE,CAAC,CAAC;IAC3E,CAAC,CAAA;CACF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ledgerhq/vault-cli",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.15.0",
|
|
4
4
|
"description": "A various utility command-line for Vault development",
|
|
5
5
|
"homepage": "https://github.com/LedgerHQ/vault-ts",
|
|
6
6
|
"license": "BSD-2-Clause",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"@ledgerhq/cryptoassets": "^6.28.2",
|
|
19
19
|
"@ledgerhq/hw-transport-node-hid": "^6.24.1",
|
|
20
20
|
"@ledgerhq/live-common-stub": "1.4.6",
|
|
21
|
-
"@ledgerhq/vault-common": "1.
|
|
21
|
+
"@ledgerhq/vault-common": "1.17.0",
|
|
22
22
|
"axios": "^0.21.0",
|
|
23
23
|
"bignumber.js": "^9.0.1",
|
|
24
24
|
"body-parser": "^1.19.0",
|