@harperfast/harper 5.2.0-beta.4 → 5.2.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.
Files changed (169) hide show
  1. package/bin/backup.ts +169 -0
  2. package/bin/cliOperations.ts +92 -73
  3. package/bin/harper.ts +25 -6
  4. package/components/Scope.ts +52 -6
  5. package/components/componentLoader.ts +107 -9
  6. package/components/mcp/toolRegistry.ts +10 -0
  7. package/components/mcp/tools/application.ts +12 -5
  8. package/components/mcp/tools/operations.ts +3 -0
  9. package/components/mcp/tools/schemas/operationDescriptions.ts +3 -0
  10. package/components/mcp/tools/schemas/operations.ts +9 -0
  11. package/components/operations.js +1 -0
  12. package/components/operationsValidation.js +32 -2
  13. package/components/scopeMount.ts +150 -0
  14. package/config-root.schema.json +4 -0
  15. package/dataLayer/backupManifest.ts +102 -0
  16. package/dataLayer/blobBackup.ts +286 -0
  17. package/dataLayer/harperBridge/ResourceBridge.ts +43 -0
  18. package/dataLayer/restoreMarker.ts +276 -0
  19. package/dataLayer/rocksdbBackup.ts +1100 -0
  20. package/dist/bin/backup.d.ts +9 -0
  21. package/dist/bin/backup.js +192 -0
  22. package/dist/bin/backup.js.map +1 -0
  23. package/dist/bin/cliOperations.d.ts +13 -0
  24. package/dist/bin/cliOperations.js +89 -70
  25. package/dist/bin/cliOperations.js.map +1 -1
  26. package/dist/bin/harper.d.ts +7 -0
  27. package/dist/bin/harper.js +27 -6
  28. package/dist/bin/harper.js.map +1 -1
  29. package/dist/components/Scope.d.ts +37 -1
  30. package/dist/components/Scope.js +48 -6
  31. package/dist/components/Scope.js.map +1 -1
  32. package/dist/components/componentLoader.d.ts +2 -6
  33. package/dist/components/componentLoader.js +91 -8
  34. package/dist/components/componentLoader.js.map +1 -1
  35. package/dist/components/mcp/toolRegistry.d.ts +7 -0
  36. package/dist/components/mcp/toolRegistry.js +10 -0
  37. package/dist/components/mcp/toolRegistry.js.map +1 -1
  38. package/dist/components/mcp/tools/application.js +11 -5
  39. package/dist/components/mcp/tools/application.js.map +1 -1
  40. package/dist/components/mcp/tools/operations.js +3 -0
  41. package/dist/components/mcp/tools/operations.js.map +1 -1
  42. package/dist/components/mcp/tools/schemas/operationDescriptions.js +2 -0
  43. package/dist/components/mcp/tools/schemas/operationDescriptions.js.map +1 -1
  44. package/dist/components/mcp/tools/schemas/operations.js +9 -0
  45. package/dist/components/mcp/tools/schemas/operations.js.map +1 -1
  46. package/dist/components/operations.js +2 -0
  47. package/dist/components/operations.js.map +1 -1
  48. package/dist/components/operationsValidation.js +34 -2
  49. package/dist/components/operationsValidation.js.map +1 -1
  50. package/dist/components/scopeMount.d.ts +86 -0
  51. package/dist/components/scopeMount.js +131 -0
  52. package/dist/components/scopeMount.js.map +1 -0
  53. package/dist/dataLayer/backupManifest.d.ts +26 -0
  54. package/dist/dataLayer/backupManifest.js +97 -0
  55. package/dist/dataLayer/backupManifest.js.map +1 -0
  56. package/dist/dataLayer/blobBackup.d.ts +87 -0
  57. package/dist/dataLayer/blobBackup.js +282 -0
  58. package/dist/dataLayer/blobBackup.js.map +1 -0
  59. package/dist/dataLayer/harperBridge/ResourceBridge.d.ts +3 -0
  60. package/dist/dataLayer/harperBridge/ResourceBridge.js +33 -0
  61. package/dist/dataLayer/harperBridge/ResourceBridge.js.map +1 -1
  62. package/dist/dataLayer/restoreMarker.d.ts +122 -0
  63. package/dist/dataLayer/restoreMarker.js +261 -0
  64. package/dist/dataLayer/restoreMarker.js.map +1 -0
  65. package/dist/dataLayer/rocksdbBackup.d.ts +127 -0
  66. package/dist/dataLayer/rocksdbBackup.js +1039 -0
  67. package/dist/dataLayer/rocksdbBackup.js.map +1 -0
  68. package/dist/resources/DatabaseTransaction.js +0 -6
  69. package/dist/resources/DatabaseTransaction.js.map +1 -1
  70. package/dist/resources/ResourceInterface.d.ts +0 -3
  71. package/dist/resources/ResourceInterface.js.map +1 -1
  72. package/dist/resources/Table.js +22 -22
  73. package/dist/resources/Table.js.map +1 -1
  74. package/dist/resources/blob.d.ts +8 -0
  75. package/dist/resources/blob.js +16 -7
  76. package/dist/resources/blob.js.map +1 -1
  77. package/dist/resources/databases.d.ts +42 -1
  78. package/dist/resources/databases.js +276 -40
  79. package/dist/resources/databases.js.map +1 -1
  80. package/dist/resources/transaction.js +0 -3
  81. package/dist/resources/transaction.js.map +1 -1
  82. package/dist/server/REST.js +25 -9
  83. package/dist/server/REST.js.map +1 -1
  84. package/dist/server/fastifyRoutes.js +15 -1
  85. package/dist/server/fastifyRoutes.js.map +1 -1
  86. package/dist/server/itc/serverHandlers.js +7 -1
  87. package/dist/server/itc/serverHandlers.js.map +1 -1
  88. package/dist/server/jobs/jobProcess.js +20 -1
  89. package/dist/server/jobs/jobProcess.js.map +1 -1
  90. package/dist/server/jobs/jobRunner.js +10 -0
  91. package/dist/server/jobs/jobRunner.js.map +1 -1
  92. package/dist/server/jobs/jobs.js +11 -0
  93. package/dist/server/jobs/jobs.js.map +1 -1
  94. package/dist/server/middlewareChain.d.ts +10 -1
  95. package/dist/server/middlewareChain.js +81 -21
  96. package/dist/server/middlewareChain.js.map +1 -1
  97. package/dist/server/serverHelpers/serverHandlers.js +8 -4
  98. package/dist/server/serverHelpers/serverHandlers.js.map +1 -1
  99. package/dist/server/serverHelpers/serverUtilities.js +11 -0
  100. package/dist/server/serverHelpers/serverUtilities.js.map +1 -1
  101. package/dist/server/static.js +11 -3
  102. package/dist/server/static.js.map +1 -1
  103. package/dist/utility/OperationFunctionCaller.js +25 -6
  104. package/dist/utility/OperationFunctionCaller.js.map +1 -1
  105. package/dist/utility/hdbTerms.d.ts +11 -1
  106. package/dist/utility/hdbTerms.js +11 -1
  107. package/dist/utility/hdbTerms.js.map +1 -1
  108. package/dist/utility/logging/harper_logger.d.ts +40 -0
  109. package/dist/utility/logging/harper_logger.js +746 -14
  110. package/dist/utility/logging/harper_logger.js.map +1 -1
  111. package/dist/utility/operation_authorization.js +13 -3
  112. package/dist/utility/operation_authorization.js.map +1 -1
  113. package/npm-shrinkwrap.json +3 -2
  114. package/package.json +4 -1
  115. package/resources/DESIGN.md +2 -0
  116. package/resources/DatabaseTransaction.ts +0 -3
  117. package/resources/ResourceInterface.ts +0 -3
  118. package/resources/Table.ts +20 -20
  119. package/resources/blob.ts +16 -6
  120. package/resources/databases.ts +272 -42
  121. package/resources/transaction.ts +0 -3
  122. package/server/DESIGN.md +16 -0
  123. package/server/REST.ts +25 -9
  124. package/server/fastifyRoutes.ts +20 -1
  125. package/server/itc/serverHandlers.js +7 -1
  126. package/server/jobs/jobProcess.ts +18 -1
  127. package/server/jobs/jobRunner.ts +10 -0
  128. package/server/jobs/jobs.ts +11 -0
  129. package/server/middlewareChain.ts +79 -20
  130. package/server/serverHelpers/serverHandlers.js +8 -4
  131. package/server/serverHelpers/serverUtilities.ts +19 -0
  132. package/server/static.ts +12 -3
  133. package/static/defaultConfig.yaml +1 -0
  134. package/studio/web/assets/{Chat-DK3GlWEb.js → Chat-DoVWScmq.js} +2 -2
  135. package/studio/web/assets/{Chat-DK3GlWEb.js.map → Chat-DoVWScmq.js.map} +1 -1
  136. package/studio/web/assets/{FloatingChat-fBcC1Ew_.js → FloatingChat-UZ2NsUOZ.js} +4 -4
  137. package/studio/web/assets/{FloatingChat-fBcC1Ew_.js.map → FloatingChat-UZ2NsUOZ.js.map} +1 -1
  138. package/studio/web/assets/{apiToken-DJo1nakA.js → apiToken-BUI_04o7.js} +2 -2
  139. package/studio/web/assets/{apiToken-DJo1nakA.js.map → apiToken-BUI_04o7.js.map} +1 -1
  140. package/studio/web/assets/{applications-BDfH8urd.js → applications-D03NA7wW.js} +2 -2
  141. package/studio/web/assets/{applications-BDfH8urd.js.map → applications-D03NA7wW.js.map} +1 -1
  142. package/studio/web/assets/{index-BHo3c2Gk.js → index-Bh_CNAHr.js} +6 -6
  143. package/studio/web/assets/index-Bh_CNAHr.js.map +1 -0
  144. package/studio/web/assets/{index.lazy-BTo0y6UM.js → index.lazy-Dx3MpyDC.js} +4 -4
  145. package/studio/web/assets/{index.lazy-BTo0y6UM.js.map → index.lazy-Dx3MpyDC.js.map} +1 -1
  146. package/studio/web/assets/{notifications-CMxvWNnz.js → notifications-0edoFTsb.js} +2 -2
  147. package/studio/web/assets/{notifications-CMxvWNnz.js.map → notifications-0edoFTsb.js.map} +1 -1
  148. package/studio/web/assets/{notifications-D3GoB26g.js → notifications-CwKhipK7.js} +2 -2
  149. package/studio/web/assets/{notifications-D3GoB26g.js.map → notifications-CwKhipK7.js.map} +1 -1
  150. package/studio/web/assets/{profile-Doj5FVDE.js → profile-DUfEPQtx.js} +2 -2
  151. package/studio/web/assets/{profile-Doj5FVDE.js.map → profile-DUfEPQtx.js.map} +1 -1
  152. package/studio/web/assets/{setComponentFile-yinsqJy0.js → setComponentFile-DMPo4UjC.js} +2 -2
  153. package/studio/web/assets/{setComponentFile-yinsqJy0.js.map → setComponentFile-DMPo4UjC.js.map} +1 -1
  154. package/studio/web/assets/{setup-DJwR0BHd.js → setup-B56Oz1_u.js} +2 -2
  155. package/studio/web/assets/{setup-DJwR0BHd.js.map → setup-B56Oz1_u.js.map} +1 -1
  156. package/studio/web/assets/{status-Br_AbsJs.js → status-BAod7p3o.js} +2 -2
  157. package/studio/web/assets/{status-Br_AbsJs.js.map → status-BAod7p3o.js.map} +1 -1
  158. package/studio/web/assets/{swagger-ui-react-02XH5sVf.js → swagger-ui-react-lQrBxfwM.js} +2 -2
  159. package/studio/web/assets/{swagger-ui-react-02XH5sVf.js.map → swagger-ui-react-lQrBxfwM.js.map} +1 -1
  160. package/studio/web/assets/{tsMode-D1DMKY7h.js → tsMode-CrHCRjTK.js} +2 -2
  161. package/studio/web/assets/{tsMode-D1DMKY7h.js.map → tsMode-CrHCRjTK.js.map} +1 -1
  162. package/studio/web/assets/{useEntityRestURL-DtRblRgw.js → useEntityRestURL-DoaBMEvU.js} +2 -2
  163. package/studio/web/assets/{useEntityRestURL-DtRblRgw.js.map → useEntityRestURL-DoaBMEvU.js.map} +1 -1
  164. package/studio/web/index.html +1 -1
  165. package/utility/OperationFunctionCaller.ts +24 -3
  166. package/utility/hdbTerms.ts +11 -1
  167. package/utility/logging/harper_logger.ts +729 -15
  168. package/utility/operation_authorization.ts +31 -3
  169. package/studio/web/assets/index-BHo3c2Gk.js.map +0 -1
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Runs a backup operation from the CLI. `command` is the operation name (e.g. `create_backup`);
3
+ * there is no hyphenated alias. Each works whether or not Harper is running: RocksDB is
4
+ * single-writer, so when a server is reachable the running process must own the database handle
5
+ * and the operation is forwarded to it (also handling remote `target=` and auth); only when the
6
+ * *local* server is stopped do we open the database/backup files directly. `get_backup` is the
7
+ * exception — it streams a live snapshot from a running server and has no offline form.
8
+ */
9
+ export declare function runBackupCommand(command: string): Promise<void>;
@@ -0,0 +1,192 @@
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 () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.runBackupCommand = runBackupCommand;
37
+ const node_fs_1 = require("node:fs");
38
+ const promises_1 = require("node:fs/promises");
39
+ const node_path_1 = require("node:path");
40
+ const promises_2 = require("node:stream/promises");
41
+ const YAML = __importStar(require("yaml"));
42
+ const envMgr = __importStar(require("../utility/environment/environmentManager.js"));
43
+ envMgr.initSync();
44
+ const terms = __importStar(require("../utility/hdbTerms.js"));
45
+ const cliOperations_ts_1 = require("./cliOperations.js");
46
+ const cliCredentials_ts_1 = require("./cliCredentials.js");
47
+ const common_utils_ts_1 = require("../utility/common_utils.js");
48
+ const configUtils_ts_1 = require("../config/configUtils.js");
49
+ const processManagement_js_1 = require("../utility/processManagement/processManagement.js");
50
+ const rocksdbBackup_ts_1 = require("../dataLayer/rocksdbBackup.js");
51
+ const { OPERATIONS_ENUM } = terms;
52
+ /**
53
+ * Runs a backup operation from the CLI. `command` is the operation name (e.g. `create_backup`);
54
+ * there is no hyphenated alias. Each works whether or not Harper is running: RocksDB is
55
+ * single-writer, so when a server is reachable the running process must own the database handle
56
+ * and the operation is forwarded to it (also handling remote `target=` and auth); only when the
57
+ * *local* server is stopped do we open the database/backup files directly. `get_backup` is the
58
+ * exception — it streams a live snapshot from a running server and has no offline form.
59
+ */
60
+ async function runBackupCommand(command) {
61
+ // Load .env before anything reads process.env — useOperationApi and resolveRequestOptions key
62
+ // the local-vs-remote routing off HARPER_CLI_TARGET/CLI_TARGET, and without this a `.env`-
63
+ // configured remote target would be invisible, silently running a destructive op locally
64
+ // (cliOperations does the same on its first line).
65
+ require('dotenv').config();
66
+ const request = (0, cliOperations_ts_1.buildRequest)();
67
+ const databaseName = request.database || 'data';
68
+ // We print results here (not by returning a string) so the CLI's top-level handler doesn't
69
+ // re-emit them through logger.notify — this keeps output identical to forwarding the operation
70
+ // to a running server, which the online branch below simply delegates to.
71
+ if (command === OPERATIONS_ENUM.GET_BACKUP) {
72
+ console.log(await downloadBackup(request, databaseName));
73
+ return;
74
+ }
75
+ // Fall back to direct file access only when there is no server to talk to (no target and the
76
+ // local instance is stopped). We never fall back on a *reachable* server's error response —
77
+ // e.g. restore_backup rejecting the system/component-held database (whose offline path is to
78
+ // stop the server and rerun this same command, which then takes the branch below).
79
+ if (useOperationApi(request)) {
80
+ request.operation = command;
81
+ await (0, cliOperations_ts_1.cliOperations)(request); // prints its own result, exactly like any forwarded operation
82
+ return;
83
+ }
84
+ let result;
85
+ switch (command) {
86
+ case OPERATIONS_ENUM.CREATE_BACKUP:
87
+ result = await (0, rocksdbBackup_ts_1.createBackupOffline)(databaseName, request.exclude_blobs === true);
88
+ break;
89
+ case OPERATIONS_ENUM.LIST_BACKUPS:
90
+ result = await (0, rocksdbBackup_ts_1.listBackupsOffline)(databaseName);
91
+ break;
92
+ case OPERATIONS_ENUM.VERIFY_BACKUP:
93
+ result = await (0, rocksdbBackup_ts_1.verifyBackupOffline)(databaseName, request.backup_id, request.verify_checksum);
94
+ break;
95
+ case OPERATIONS_ENUM.DELETE_BACKUP:
96
+ result = await (0, rocksdbBackup_ts_1.deleteBackupOffline)(databaseName, request.backup_id);
97
+ break;
98
+ case OPERATIONS_ENUM.PURGE_BACKUPS:
99
+ result = await (0, rocksdbBackup_ts_1.purgeBackupsOffline)(databaseName, request.keep_count);
100
+ break;
101
+ case OPERATIONS_ENUM.RESTORE_BACKUP:
102
+ result = await (0, rocksdbBackup_ts_1.restoreBackupOffline)(databaseName, request.backup_id, request.target_database);
103
+ break;
104
+ default:
105
+ throw new Error(`Unknown backup command '${command}'`);
106
+ }
107
+ console.log(YAML.stringify(result).trim());
108
+ }
109
+ /**
110
+ * Whether the target of a saved `last_target` is the local instance (localhost / loopback). A
111
+ * `harper login` against a local server saves `http://localhost:9925/`, which must NOT be treated as
112
+ * a remote target — otherwise the offline backup commands would try to reach a stopped local server
113
+ * instead of falling back to direct file access.
114
+ */
115
+ function isLocalTarget(target) {
116
+ try {
117
+ const url = new URL(target.includes('://') ? target : `http://${target}`);
118
+ const host = url.hostname.replace(/^\[|\]$/g, ''); // strip IPv6 brackets
119
+ return host === 'localhost' || host === '::1' || host.startsWith('127.');
120
+ }
121
+ catch {
122
+ return false;
123
+ }
124
+ }
125
+ /**
126
+ * Whether to route a backup command through the operation API rather than direct file access. An
127
+ * explicit `target=`/env target, or a saved `last_target` pointing at a *remote* server, always
128
+ * implies talking to a server. A saved *local* `last_target` does not: the offline backup commands
129
+ * exist to work on local files while the local server is stopped, so a local/absent target falls
130
+ * through to the liveness check — the API only when the local instance is actually running
131
+ * (`getHdbPid` verifies process liveness, so a stale pid file reads as stopped).
132
+ */
133
+ function useOperationApi(request) {
134
+ const lastTarget = (0, cliCredentials_ts_1.loadCredentials)()?.last_target;
135
+ if (request.target ||
136
+ process.env.HARPER_CLI_TARGET ||
137
+ process.env.CLI_TARGET ||
138
+ (lastTarget && !isLocalTarget(lastTarget))) {
139
+ return true;
140
+ }
141
+ (0, configUtils_ts_1.initConfig)();
142
+ return Boolean((0, processManagement_js_1.getHdbPid)());
143
+ }
144
+ /**
145
+ * `get_backup` streams a full-snapshot tar of the database's current state from a running server
146
+ * into a local file. It works against a remote server (`target=…`) or the local instance, resolving
147
+ * the target and auth the same way as any other CLI operation; a local connection requires Harper to
148
+ * be running (there is no offline form). For RocksDB the stream is gzipped by default (pass
149
+ * `gzip=false` for a plain tar) and includes the database's file-backed blobs by default (pass
150
+ * `exclude_blobs=true` for an engine-only archive). While stopped, use `create_backup` — a local
151
+ * incremental directory backup — instead.
152
+ */
153
+ async function downloadBackup(request, databaseName) {
154
+ // only forward gzip/exclude_blobs when the user passed them — they are RocksDB-only options
155
+ // (sending them unconditionally would fail LMDB downloads), and when unset the server applies its
156
+ // own defaults (RocksDB gzips and includes blobs)
157
+ const body = { operation: terms.OPERATIONS_ENUM.GET_BACKUP, database: databaseName };
158
+ if (request.gzip !== undefined)
159
+ body.gzip = request.gzip;
160
+ if (request.exclude_blobs !== undefined)
161
+ body.exclude_blobs = request.exclude_blobs;
162
+ // resolveRequestOptions connects to a remote target (target=/env/saved) or the local domain
163
+ // socket with auth; for a local connection it enforces that Harper is running.
164
+ const { options } = await (0, cliOperations_ts_1.resolveRequestOptions)(request);
165
+ options.streamResponse = true;
166
+ const response = await (0, common_utils_ts_1.httpRequest)(options, body);
167
+ if (response.statusCode !== 200) {
168
+ const chunks = [];
169
+ for await (const chunk of response)
170
+ chunks.push(Buffer.from(chunk));
171
+ throw new Error(`get_backup failed (${response.statusCode}): ${Buffer.concat(chunks).toString('utf8')}`);
172
+ }
173
+ // name the file after what the server is sending (RocksDB: <db>.tar[.gz]; LMDB: the database file).
174
+ // basename() strips any path from the server-supplied filename — a malicious/compromised target
175
+ // could otherwise return `../../…` and steer the write outside the cwd.
176
+ const serverFilename = response.headers['content-disposition']?.match(/filename="([^"]+)"/)?.[1];
177
+ const outputPath = request.out || (serverFilename && (0, node_path_1.basename)(serverFilename)) || `${databaseName}.backup`;
178
+ // Stream to a temporary sibling and rename on success, so a network/server failure mid-download
179
+ // neither truncates an existing known-good backup at `outputPath` nor leaves a partial file that
180
+ // looks complete. The temp name is unique per process+time so concurrent downloads never collide.
181
+ const tempPath = `${outputPath}.${process.pid}-${Date.now()}.part`;
182
+ try {
183
+ await (0, promises_2.pipeline)(response, (0, node_fs_1.createWriteStream)(tempPath, { flags: 'wx' }));
184
+ await (0, promises_1.rename)(tempPath, outputPath);
185
+ }
186
+ catch (error) {
187
+ await (0, promises_1.unlink)(tempPath).catch(() => { });
188
+ throw error;
189
+ }
190
+ return `Backup of database '${databaseName}' written to ${outputPath}`;
191
+ }
192
+ //# sourceMappingURL=backup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backup.js","sourceRoot":"","sources":["../../bin/backup.ts"],"names":[],"mappings":"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"}
@@ -24,4 +24,17 @@ declare function refreshExpiredOperationToken(options: any, tokens: {
24
24
  * @param skipResponseLog By default, the response is logged to the console. Set this to true to skip logging it, which can be useful for sensitive responses like login calls!
25
25
  * @returns {Promise<void>}
26
26
  */
27
+ /**
28
+ * Resolve the transport options for a CLI operation request: a remote target URL (with auth) when
29
+ * one is configured (`target=`, env, or a saved `last_target`), otherwise the local domain socket.
30
+ * Returns the `options` object ready for `httpRequest` (method + Content-Type, and an Authorization
31
+ * header for remote targets, refreshing an expired operation token when possible) plus the resolved
32
+ * `target` (undefined for a local connection). Exits the process if a local connection is required
33
+ * but Harper is not running or has no domain socket. Shared by `cliOperations` and the CLI's
34
+ * streaming `get_backup` download so both reach local and remote servers the same way.
35
+ */
36
+ export declare function resolveRequestOptions(req: any): Promise<{
37
+ options: any;
38
+ target: any;
39
+ }>;
27
40
  declare function cliOperations(req: any, skipResponseLog?: boolean): Promise<any>;
@@ -37,6 +37,7 @@ exports.cliOperations = cliOperations;
37
37
  exports.buildRequest = buildRequest;
38
38
  exports.redactCredentials = redactCredentials;
39
39
  exports.refreshExpiredOperationToken = refreshExpiredOperationToken;
40
+ exports.resolveRequestOptions = resolveRequestOptions;
40
41
  const cliCredentials_ts_1 = require("./cliCredentials.js");
41
42
  const tokenAuthentication_ts_1 = require("../security/tokenAuthentication.js");
42
43
  const envMgr = __importStar(require("../utility/environment/environmentManager.js"));
@@ -415,8 +416,16 @@ async function refreshExpiredOperationToken(options, tokens, persistKey) {
415
416
  * @param skipResponseLog By default, the response is logged to the console. Set this to true to skip logging it, which can be useful for sensitive responses like login calls!
416
417
  * @returns {Promise<void>}
417
418
  */
418
- async function cliOperations(req, skipResponseLog = false) {
419
- require('dotenv').config();
419
+ /**
420
+ * Resolve the transport options for a CLI operation request: a remote target URL (with auth) when
421
+ * one is configured (`target=`, env, or a saved `last_target`), otherwise the local domain socket.
422
+ * Returns the `options` object ready for `httpRequest` (method + Content-Type, and an Authorization
423
+ * header for remote targets, refreshing an expired operation token when possible) plus the resolved
424
+ * `target` (undefined for a local connection). Exits the process if a local connection is required
425
+ * but Harper is not running or has no domain socket. Shared by `cliOperations` and the CLI's
426
+ * streaming `get_backup` download so both reach local and remote servers the same way.
427
+ */
428
+ async function resolveRequestOptions(req) {
420
429
  const allCredentials = (0, cliCredentials_ts_1.loadCredentials)();
421
430
  const rawTarget = resolveTarget(req, allCredentials);
422
431
  // Userinfo is a transport credential, and `normalizeTarget` strips it so the resolved target can
@@ -461,76 +470,86 @@ async function cliOperations(req, skipResponseLog = false) {
461
470
  process.exit(1);
462
471
  }
463
472
  }
464
- await PREPARE_OPERATION[req.operation]?.(req);
465
- try {
466
- let options = target ?? {
467
- protocol: 'http:',
468
- socketPath: (0, configUtils_ts_1.getConfigPath)(terms.CONFIG_PARAMS.OPERATIONSAPI_NETWORK_DOMAINSOCKET),
469
- };
470
- options.method = 'POST';
471
- options.headers = { 'Content-Type': 'application/json' };
472
- options.timeout = SSE_OPERATIONS.has(req.operation) ? SSE_OPERATION_TIMEOUT_MS : CLI_OPERATION_TIMEOUT_MS;
473
- // Authentication precedence: explicitly configured credentials (dedicated args, URL
474
- // userinfo, env vars) beat everything, then env-var tokens, then the saved `harper login`
475
- // token, and only then the legacy `username=`/`password=` payload fallback below. The
476
- // tokens must outrank that fallback: for add_user/alter_user those args are the credentials
477
- // of the user being created/altered, so treating them as auth would authenticate as a user
478
- // who doesn't exist yet (or as the wrong identity) instead of using the admin's session.
479
- const transportCredentials = target ? resolveTransportCredentials(req, urlCredentials) : undefined;
480
- if (transportCredentials) {
481
- options.headers.Authorization = basicAuthHeader(transportCredentials.username, transportCredentials.password);
482
- }
483
- else if (target) {
484
- // Bearer-token auth, for remote targets ONLY. A local operation goes over the domain
485
- // socket, which the server trusts via `bypassLocalAuth` but that bypass is an
486
- // `else if` on "no Authorization header present" (security/auth.ts), so attaching a
487
- // Bearer token to a local request opts out of the trust and gets validated instead,
488
- // 401ing on a token minted for some other cluster. Since these env vars are meant to
489
- // persist across a whole CI job (or a developer's shell), an ungated read here would
490
- // break every local `harper` command run in that environment.
491
- //
492
- // Env-var tokens (for CI/CD — see `harper login --for-ci`) take precedence over the
493
- // stored ~/.harperdb/credentials.json entry: they're an explicit per-invocation override
494
- // that needs no prior `harper login` on the runner. A token refreshed from env vars is
495
- // used in-memory only (there's no file to write back to); a token refreshed from the
496
- // credentials file is persisted as before.
497
- //
498
- // Whichever namespace supplies a token owns both halves. Resolving them independently
499
- // would let `HARPER_CLI_OPERATION_TOKEN` from one user pair with
500
- // `CLI_TARGET_REFRESH_TOKEN` from another: commands would run as the first identity
501
- // until its operation token expired, then silently continue as the second. `login.ts`
502
- // selects its username/password namespace as a unit for exactly this reason.
503
- const tokenPrefix = ['HARPER_CLI', 'CLI_TARGET'].find((prefix) => process.env[`${prefix}_OPERATION_TOKEN`] !== undefined || process.env[`${prefix}_REFRESH_TOKEN`] !== undefined);
504
- const envOperationToken = tokenPrefix ? process.env[`${tokenPrefix}_OPERATION_TOKEN`]?.trim() : undefined;
505
- const envRefreshToken = tokenPrefix ? process.env[`${tokenPrefix}_REFRESH_TOKEN`]?.trim() : undefined;
506
- // A namespace that is set but blank is a broken CI secret, not a request to fall back to
507
- // whatever the developer last logged in as — say so rather than switching identity silently.
508
- if (tokenPrefix && !envOperationToken && !envRefreshToken) {
509
- console.error(`Ignoring empty ${tokenPrefix}_OPERATION_TOKEN/${tokenPrefix}_REFRESH_TOKEN; falling back to saved login credentials.`);
510
- }
511
- let tokens = null;
512
- let persistKey = null; // non-null => persist a refreshed operation token back to the file
513
- if (envOperationToken || envRefreshToken) {
514
- tokens = { operation_token: envOperationToken, refresh_token: envRefreshToken };
515
- }
516
- else if (allCredentials?.targets) {
517
- persistKey = target.resolvedTarget;
518
- tokens = allCredentials.targets[persistKey] ?? null;
519
- }
520
- if (tokens?.operation_token || tokens?.refresh_token) {
521
- await refreshExpiredOperationToken(options, tokens, persistKey);
522
- if (tokens.operation_token) {
523
- options.headers.Authorization = `Bearer ${tokens.operation_token}`;
524
- }
473
+ let options = target ?? {
474
+ protocol: 'http:',
475
+ socketPath: (0, configUtils_ts_1.getConfigPath)(terms.CONFIG_PARAMS.OPERATIONSAPI_NETWORK_DOMAINSOCKET),
476
+ };
477
+ options.method = 'POST';
478
+ options.headers = { 'Content-Type': 'application/json' };
479
+ options.timeout = SSE_OPERATIONS.has(req.operation) ? SSE_OPERATION_TIMEOUT_MS : CLI_OPERATION_TIMEOUT_MS;
480
+ // Authentication precedence: explicitly configured credentials (dedicated args, URL
481
+ // userinfo, env vars) beat everything, then env-var tokens, then the saved `harper login`
482
+ // token, and only then the legacy `username=`/`password=` payload fallback below. The
483
+ // tokens must outrank that fallback: for add_user/alter_user those args are the credentials
484
+ // of the user being created/altered, so treating them as auth would authenticate as a user
485
+ // who doesn't exist yet (or as the wrong identity) instead of using the admin's session.
486
+ const transportCredentials = target ? resolveTransportCredentials(req, urlCredentials) : undefined;
487
+ if (transportCredentials) {
488
+ options.headers.Authorization = basicAuthHeader(transportCredentials.username, transportCredentials.password);
489
+ }
490
+ else if (target) {
491
+ // Bearer-token auth, for remote targets ONLY. A local operation goes over the domain
492
+ // socket, which the server trusts via `bypassLocalAuth` — but that bypass is an
493
+ // `else if` on "no Authorization header present" (security/auth.ts), so attaching a
494
+ // Bearer token to a local request opts out of the trust and gets validated instead,
495
+ // 401ing on a token minted for some other cluster. Since these env vars are meant to
496
+ // persist across a whole CI job (or a developer's shell), an ungated read here would
497
+ // break every local `harper` command run in that environment.
498
+ //
499
+ // Env-var tokens (for CI/CD — see `harper login --for-ci`) take precedence over the
500
+ // stored ~/.harperdb/credentials.json entry: they're an explicit per-invocation override
501
+ // that needs no prior `harper login` on the runner. A token refreshed from env vars is
502
+ // used in-memory only (there's no file to write back to); a token refreshed from the
503
+ // credentials file is persisted as before.
504
+ //
505
+ // Whichever namespace supplies a token owns both halves. Resolving them independently
506
+ // would let `HARPER_CLI_OPERATION_TOKEN` from one user pair with
507
+ // `CLI_TARGET_REFRESH_TOKEN` from another: commands would run as the first identity
508
+ // until its operation token expired, then silently continue as the second. `login.ts`
509
+ // selects its username/password namespace as a unit for exactly this reason.
510
+ const tokenPrefix = ['HARPER_CLI', 'CLI_TARGET'].find((prefix) => process.env[`${prefix}_OPERATION_TOKEN`] !== undefined || process.env[`${prefix}_REFRESH_TOKEN`] !== undefined);
511
+ const envOperationToken = tokenPrefix ? process.env[`${tokenPrefix}_OPERATION_TOKEN`]?.trim() : undefined;
512
+ const envRefreshToken = tokenPrefix ? process.env[`${tokenPrefix}_REFRESH_TOKEN`]?.trim() : undefined;
513
+ // A namespace that is set but blank is a broken CI secret, not a request to fall back to
514
+ // whatever the developer last logged in as — say so rather than switching identity silently.
515
+ if (tokenPrefix && !envOperationToken && !envRefreshToken) {
516
+ console.error(`Ignoring empty ${tokenPrefix}_OPERATION_TOKEN/${tokenPrefix}_REFRESH_TOKEN; falling back to saved login credentials.`);
517
+ }
518
+ let tokens = null;
519
+ let persistKey = null; // non-null => persist a refreshed operation token back to the file
520
+ if (envOperationToken || envRefreshToken) {
521
+ tokens = { operation_token: envOperationToken, refresh_token: envRefreshToken };
522
+ }
523
+ else if (allCredentials?.targets) {
524
+ persistKey = target.resolvedTarget;
525
+ tokens = allCredentials.targets[persistKey] ?? null;
526
+ }
527
+ if (tokens?.operation_token || tokens?.refresh_token) {
528
+ await refreshExpiredOperationToken(options, tokens, persistKey);
529
+ if (tokens.operation_token) {
530
+ options.headers.Authorization = `Bearer ${tokens.operation_token}`;
525
531
  }
526
532
  }
527
- // Legacy fallback for operations where `username=`/`password=` genuinely ARE the caller's
528
- // credentials (e.g. `create_table username= password=`) and nothing else is configured.
529
- // Both are required a lone `username=` (as in `drop_user username=bob`) is payload, not
530
- // a credential.
531
- if (target && !options.headers.Authorization && req.username && req.password) {
532
- options.headers.Authorization = basicAuthHeader(req.username, req.password);
533
- }
533
+ }
534
+ // Legacy fallback for operations where `username=`/`password=` genuinely ARE the caller's
535
+ // credentials (e.g. `create_table username= password=`) and nothing else is configured.
536
+ // Both are required — a lone `username=` (as in `drop_user username=bob`) is payload, not
537
+ // a credential.
538
+ if (target && !options.headers.Authorization && req.username && req.password) {
539
+ options.headers.Authorization = basicAuthHeader(req.username, req.password);
540
+ }
541
+ return { options, target };
542
+ }
543
+ async function cliOperations(req, skipResponseLog = false) {
544
+ require('dotenv').config();
545
+ // Resolve target/auth inside the try so a credential or connection error (e.g. an incomplete
546
+ // `auth_username=`/`auth_password=` pair, which resolveRequestOptions throws on) is mapped to the
547
+ // same console.error + process.exit(1) as every other failure below, rather than escaping as an
548
+ // unhandled rejection. `target` is declared out here so the catch can still reference it.
549
+ let options, target;
550
+ try {
551
+ ({ options, target } = await resolveRequestOptions(req));
552
+ await PREPARE_OPERATION[req.operation]?.(req);
534
553
  // Streaming deploy (multipart upload + SSE progress) only works against >= 5.1 servers.
535
554
  // When deploying to a remote target, probe its version first and downgrade to the
536
555
  // legacy JSON deploy if it predates 5.1. Local (domain-socket) deploys always
@@ -1 +1 @@
1
- {"version":3,"file":"cliOperations.js","sourceRoot":"","sources":["../../bin/cliOperations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cliOperations.js","sourceRoot":"","sources":["../../bin/cliOperations.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,10 @@
1
1
  #!/usr/bin/env node
2
+ /**
3
+ * Format a CLI error for the terminal. Expected, user-facing errors (a `ClientError` from an
4
+ * operation — bad args, not found, a locked backup repo — which carry a numeric `statusCode`) get
5
+ * just their message, not a Node stack trace. A genuinely unexpected error keeps its stack so a bug
6
+ * is still debuggable. Mirrors the clean `error: <message>` output of a forwarded operation.
7
+ */
8
+ export declare function formatCliError(error: any): string;
2
9
  declare function harper(): Promise<any>;
3
10
  export { harper };
@@ -37,6 +37,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
37
37
  return (mod && mod.__esModule) ? mod : { "default": mod };
38
38
  };
39
39
  Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.formatCliError = formatCliError;
40
41
  exports.harper = harper;
41
42
  const fs = __importStar(require("node:fs"));
42
43
  const path = __importStar(require("node:path"));
@@ -45,7 +46,7 @@ const cliOperations = __importStar(require("./cliOperations.js"));
45
46
  const packageUtils_js_1 = require("../utility/packageUtils.js");
46
47
  const checkNodeVersion_js_1 = __importDefault(require("../launchServiceScripts/utility/checkNodeVersion.js"));
47
48
  const hdbTerms = __importStar(require("../utility/hdbTerms.js"));
48
- const { SERVICE_ACTIONS_ENUM } = hdbTerms;
49
+ const { SERVICE_ACTIONS_ENUM, OPERATIONS_ENUM } = hdbTerms;
49
50
  if (typeof process.setSourceMapsEnabled === 'function') {
50
51
  process.setSourceMapsEnabled(true); // this is necessary for source maps to work, at least on the main thread.
51
52
  }
@@ -97,6 +98,18 @@ upgrade - Upgrade harperdb
97
98
  version - Print the version
98
99
  deploy - Deploy the application locally or remotely with target=<remote url>
99
100
  `;
101
+ /**
102
+ * Format a CLI error for the terminal. Expected, user-facing errors (a `ClientError` from an
103
+ * operation — bad args, not found, a locked backup repo — which carry a numeric `statusCode`) get
104
+ * just their message, not a Node stack trace. A genuinely unexpected error keeps its stack so a bug
105
+ * is still debuggable. Mirrors the clean `error: <message>` output of a forwarded operation.
106
+ */
107
+ function formatCliError(error) {
108
+ const message = `error: ${error?.message ?? error}`;
109
+ if (error?.stack && typeof error?.statusCode !== 'number')
110
+ return `${message}\n${error.stack}`;
111
+ return message;
112
+ }
100
113
  async function harper() {
101
114
  let nodeResults = (0, checkNodeVersion_js_1.default)();
102
115
  if (nodeResults) {
@@ -172,6 +185,14 @@ async function harper() {
172
185
  let targetDbPath = process.argv[4];
173
186
  return require('./copyDb').copyDb(sourceDb, targetDbPath);
174
187
  }
188
+ case OPERATIONS_ENUM.CREATE_BACKUP:
189
+ case OPERATIONS_ENUM.LIST_BACKUPS:
190
+ case OPERATIONS_ENUM.VERIFY_BACKUP:
191
+ case OPERATIONS_ENUM.DELETE_BACKUP:
192
+ case OPERATIONS_ENUM.PURGE_BACKUPS:
193
+ case OPERATIONS_ENUM.GET_BACKUP:
194
+ case OPERATIONS_ENUM.RESTORE_BACKUP:
195
+ return require('./backup').runBackupCommand(service);
175
196
  case SERVICE_ACTIONS_ENUM.DEV:
176
197
  process.env.DEV_MODE = 'true';
177
198
  // fall through
@@ -219,18 +240,18 @@ if (require.main === module) {
219
240
  harper()
220
241
  .then((message) => {
221
242
  if (message) {
243
+ // console.log is the canonical terminal output for CLI results; logger.notify would
244
+ // print the same message a second time (its Console transport is stdout in CLI mode),
245
+ // so `harper help` and friends were emitted twice.
222
246
  console.log(message);
223
- harper_logger_ts_1.default.notify(message);
224
247
  }
225
248
  // Intentionally not calling `process.exit(0);` so if a CLI
226
249
  // command resulted in a long running process (aka `run`),
227
250
  // it continues to run.
228
251
  })
229
252
  .catch((error) => {
230
- if (error) {
231
- console.error(error);
232
- harper_logger_ts_1.default.error(error);
233
- }
253
+ if (error)
254
+ console.error(formatCliError(error));
234
255
  process.exit(1);
235
256
  });
236
257
  }