@harperfast/harper 5.2.0-beta.4 → 5.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/backup.ts +169 -0
- package/bin/cliOperations.ts +92 -73
- package/bin/copyDb.ts +21 -4
- package/bin/harper.ts +43 -55
- package/bin/help.ts +216 -0
- package/components/Application.ts +236 -46
- package/components/ApplicationScope.ts +26 -0
- package/components/EntryHandler.ts +410 -105
- package/components/RuntimeModuleTracker.ts +189 -0
- package/components/Scope.ts +120 -30
- package/components/componentLoader.ts +177 -25
- package/components/deployLifecycle.ts +119 -33
- package/components/mcp/toolRegistry.ts +10 -0
- package/components/mcp/tools/application.ts +12 -5
- package/components/mcp/tools/operations.ts +9 -0
- package/components/mcp/tools/schemas/operationDescriptions.ts +3 -0
- package/components/mcp/tools/schemas/operations.ts +9 -0
- package/components/operations.js +5 -6
- package/components/operationsValidation.js +32 -2
- package/components/scopeMount.ts +150 -0
- package/config/configUtils.ts +12 -9
- package/config-root.schema.json +14 -0
- package/dataLayer/backupManifest.ts +102 -0
- package/dataLayer/blobBackup.ts +286 -0
- package/dataLayer/harperBridge/ResourceBridge.ts +69 -5
- package/dataLayer/hdbInfoController.ts +8 -0
- package/dataLayer/restoreMarker.ts +276 -0
- package/dataLayer/rocksdbBackup.ts +1100 -0
- package/dataLayer/schemaDescribe.ts +2 -1
- package/dist/bin/backup.d.ts +9 -0
- package/dist/bin/backup.js +192 -0
- package/dist/bin/backup.js.map +1 -0
- package/dist/bin/cliOperations.d.ts +13 -0
- package/dist/bin/cliOperations.js +89 -70
- package/dist/bin/cliOperations.js.map +1 -1
- package/dist/bin/copyDb.js +13 -2
- package/dist/bin/copyDb.js.map +1 -1
- package/dist/bin/harper.d.ts +13 -0
- package/dist/bin/harper.js +45 -56
- package/dist/bin/harper.js.map +1 -1
- package/dist/bin/help.d.ts +8 -0
- package/dist/bin/help.js +192 -0
- package/dist/bin/help.js.map +1 -0
- package/dist/components/Application.d.ts +16 -1
- package/dist/components/Application.js +210 -38
- package/dist/components/Application.js.map +1 -1
- package/dist/components/ApplicationScope.d.ts +7 -0
- package/dist/components/ApplicationScope.js +22 -0
- package/dist/components/ApplicationScope.js.map +1 -1
- package/dist/components/EntryHandler.d.ts +4 -4
- package/dist/components/EntryHandler.js +386 -95
- package/dist/components/EntryHandler.js.map +1 -1
- package/dist/components/RuntimeModuleTracker.d.ts +11 -0
- package/dist/components/RuntimeModuleTracker.js +189 -0
- package/dist/components/RuntimeModuleTracker.js.map +1 -0
- package/dist/components/Scope.d.ts +38 -1
- package/dist/components/Scope.js +117 -28
- package/dist/components/Scope.js.map +1 -1
- package/dist/components/componentLoader.d.ts +2 -6
- package/dist/components/componentLoader.js +160 -18
- package/dist/components/componentLoader.js.map +1 -1
- package/dist/components/deployLifecycle.d.ts +6 -2
- package/dist/components/deployLifecycle.js +109 -31
- package/dist/components/deployLifecycle.js.map +1 -1
- package/dist/components/mcp/toolRegistry.d.ts +7 -0
- package/dist/components/mcp/toolRegistry.js +10 -0
- package/dist/components/mcp/toolRegistry.js.map +1 -1
- package/dist/components/mcp/tools/application.js +11 -5
- package/dist/components/mcp/tools/application.js.map +1 -1
- package/dist/components/mcp/tools/operations.js +9 -0
- package/dist/components/mcp/tools/operations.js.map +1 -1
- package/dist/components/mcp/tools/schemas/operationDescriptions.js +2 -0
- package/dist/components/mcp/tools/schemas/operationDescriptions.js.map +1 -1
- package/dist/components/mcp/tools/schemas/operations.js +9 -0
- package/dist/components/mcp/tools/schemas/operations.js.map +1 -1
- package/dist/components/operations.js +6 -6
- package/dist/components/operations.js.map +1 -1
- package/dist/components/operationsValidation.js +34 -2
- package/dist/components/operationsValidation.js.map +1 -1
- package/dist/components/scopeMount.d.ts +86 -0
- package/dist/components/scopeMount.js +131 -0
- package/dist/components/scopeMount.js.map +1 -0
- package/dist/config/configUtils.js +13 -9
- package/dist/config/configUtils.js.map +1 -1
- package/dist/dataLayer/backupManifest.d.ts +26 -0
- package/dist/dataLayer/backupManifest.js +97 -0
- package/dist/dataLayer/backupManifest.js.map +1 -0
- package/dist/dataLayer/blobBackup.d.ts +87 -0
- package/dist/dataLayer/blobBackup.js +282 -0
- package/dist/dataLayer/blobBackup.js.map +1 -0
- package/dist/dataLayer/harperBridge/ResourceBridge.d.ts +3 -0
- package/dist/dataLayer/harperBridge/ResourceBridge.js +45 -5
- package/dist/dataLayer/harperBridge/ResourceBridge.js.map +1 -1
- package/dist/dataLayer/hdbInfoController.js +4 -0
- package/dist/dataLayer/hdbInfoController.js.map +1 -1
- package/dist/dataLayer/restoreMarker.d.ts +122 -0
- package/dist/dataLayer/restoreMarker.js +261 -0
- package/dist/dataLayer/restoreMarker.js.map +1 -0
- package/dist/dataLayer/rocksdbBackup.d.ts +127 -0
- package/dist/dataLayer/rocksdbBackup.js +1039 -0
- package/dist/dataLayer/rocksdbBackup.js.map +1 -0
- package/dist/dataLayer/schemaDescribe.js +2 -1
- package/dist/dataLayer/schemaDescribe.js.map +1 -1
- package/dist/resources/DatabaseTransaction.d.ts +55 -0
- package/dist/resources/DatabaseTransaction.js +282 -109
- package/dist/resources/DatabaseTransaction.js.map +1 -1
- package/dist/resources/ResourceInterface.d.ts +8 -5
- package/dist/resources/ResourceInterface.js.map +1 -1
- package/dist/resources/Resources.js +22 -4
- package/dist/resources/Resources.js.map +1 -1
- package/dist/resources/Table.d.ts +6 -5
- package/dist/resources/Table.js +114 -37
- package/dist/resources/Table.js.map +1 -1
- package/dist/resources/analytics/write.js +6 -6
- package/dist/resources/analytics/write.js.map +1 -1
- package/dist/resources/blob.d.ts +8 -1
- package/dist/resources/blob.js +31 -14
- package/dist/resources/blob.js.map +1 -1
- package/dist/resources/databases.d.ts +59 -1
- package/dist/resources/databases.js +386 -41
- package/dist/resources/databases.js.map +1 -1
- package/dist/resources/jsResource.d.ts +4 -26
- package/dist/resources/jsResource.js +5 -59
- package/dist/resources/jsResource.js.map +1 -1
- package/dist/resources/models/Models.d.ts +11 -1
- package/dist/resources/models/Models.js +10 -1
- package/dist/resources/models/Models.js.map +1 -1
- package/dist/resources/models/backendRegistry.d.ts +9 -0
- package/dist/resources/models/backendRegistry.js +10 -0
- package/dist/resources/models/backendRegistry.js.map +1 -1
- package/dist/resources/models/openaiStream.d.ts +16 -1
- package/dist/resources/models/openaiStream.js +113 -21
- package/dist/resources/models/openaiStream.js.map +1 -1
- package/dist/resources/models/v1/chatCompletions.d.ts +54 -0
- package/dist/resources/models/v1/chatCompletions.js +115 -0
- package/dist/resources/models/v1/chatCompletions.js.map +1 -0
- package/dist/resources/models/v1/embeddings.d.ts +11 -0
- package/dist/resources/models/v1/embeddings.js +71 -0
- package/dist/resources/models/v1/embeddings.js.map +1 -0
- package/dist/resources/models/v1/errors.d.ts +54 -0
- package/dist/resources/models/v1/errors.js +130 -0
- package/dist/resources/models/v1/errors.js.map +1 -0
- package/dist/resources/models/v1/index.d.ts +36 -0
- package/dist/resources/models/v1/index.js +75 -0
- package/dist/resources/models/v1/index.js.map +1 -0
- package/dist/resources/models/v1/models.d.ts +26 -0
- package/dist/resources/models/v1/models.js +44 -0
- package/dist/resources/models/v1/models.js.map +1 -0
- package/dist/resources/models/v1/translation.d.ts +133 -0
- package/dist/resources/models/v1/translation.js +298 -0
- package/dist/resources/models/v1/translation.js.map +1 -0
- package/dist/resources/roles.d.ts +1 -1
- package/dist/resources/roles.js +54 -7
- package/dist/resources/roles.js.map +1 -1
- package/dist/resources/transaction.js +0 -3
- package/dist/resources/transaction.js.map +1 -1
- package/dist/security/jsLoader.js +84 -33
- package/dist/security/jsLoader.js.map +1 -1
- package/dist/security/role.js +4 -0
- package/dist/security/role.js.map +1 -1
- package/dist/security/superUserGuard.d.ts +7 -0
- package/dist/security/superUserGuard.js +23 -0
- package/dist/security/superUserGuard.js.map +1 -0
- package/dist/security/tokenAuthentication.d.ts +0 -1
- package/dist/security/tokenAuthentication.js +6 -2
- package/dist/security/tokenAuthentication.js.map +1 -1
- package/dist/security/user.d.ts +6 -1
- package/dist/security/user.js +23 -1
- package/dist/security/user.js.map +1 -1
- package/dist/server/REST.js +25 -9
- package/dist/server/REST.js.map +1 -1
- package/dist/server/fastifyRoutes.js +15 -1
- package/dist/server/fastifyRoutes.js.map +1 -1
- package/dist/server/http.d.ts +23 -2
- package/dist/server/http.js +99 -12
- package/dist/server/http.js.map +1 -1
- package/dist/server/itc/serverHandlers.js +7 -1
- package/dist/server/itc/serverHandlers.js.map +1 -1
- package/dist/server/jobs/jobProcess.js +20 -1
- package/dist/server/jobs/jobProcess.js.map +1 -1
- package/dist/server/jobs/jobRunner.js +10 -0
- package/dist/server/jobs/jobRunner.js.map +1 -1
- package/dist/server/jobs/jobs.js +11 -0
- package/dist/server/jobs/jobs.js.map +1 -1
- package/dist/server/middlewareChain.d.ts +10 -1
- package/dist/server/middlewareChain.js +81 -21
- package/dist/server/middlewareChain.js.map +1 -1
- package/dist/server/operationsServer.d.ts +0 -2
- package/dist/server/operationsServer.js.map +1 -1
- package/dist/server/serverHelpers/multipartParser.js +9 -0
- package/dist/server/serverHelpers/multipartParser.js.map +1 -1
- package/dist/server/serverHelpers/operationAuthorizationState.d.ts +2 -0
- package/dist/server/serverHelpers/operationAuthorizationState.js +13 -0
- package/dist/server/serverHelpers/operationAuthorizationState.js.map +1 -0
- package/dist/server/serverHelpers/registeredOperations.d.ts +3 -2
- package/dist/server/serverHelpers/registeredOperations.js +14 -13
- package/dist/server/serverHelpers/registeredOperations.js.map +1 -1
- package/dist/server/serverHelpers/serverHandlers.js +27 -7
- package/dist/server/serverHelpers/serverHandlers.js.map +1 -1
- package/dist/server/serverHelpers/serverUtilities.d.ts +1 -1
- package/dist/server/serverHelpers/serverUtilities.js +21 -7
- package/dist/server/serverHelpers/serverUtilities.js.map +1 -1
- package/dist/server/static.js +68 -21
- package/dist/server/static.js.map +1 -1
- package/dist/server/storageReclamation.d.ts +17 -0
- package/dist/server/storageReclamation.js +90 -6
- package/dist/server/storageReclamation.js.map +1 -1
- package/dist/server/threads/socketRouter.js +20 -0
- package/dist/server/threads/socketRouter.js.map +1 -1
- package/dist/server/threads/threadServer.js +12 -0
- package/dist/server/threads/threadServer.js.map +1 -1
- package/dist/sqlEngine/diff/differential.js +7 -3
- package/dist/sqlEngine/diff/differential.js.map +1 -1
- package/dist/sqlTranslator/index.js +6 -1
- package/dist/sqlTranslator/index.js.map +1 -1
- package/dist/upgrade/upgradePrompt.d.ts +2 -2
- package/dist/upgrade/upgradePrompt.js +22 -3
- package/dist/upgrade/upgradePrompt.js.map +1 -1
- package/dist/utility/OperationFunctionCaller.js +25 -6
- package/dist/utility/OperationFunctionCaller.js.map +1 -1
- package/dist/utility/errors/commonErrors.d.ts +1 -0
- package/dist/utility/errors/commonErrors.js +1 -0
- package/dist/utility/errors/commonErrors.js.map +1 -1
- package/dist/utility/hdbTerms.d.ts +13 -1
- package/dist/utility/hdbTerms.js +13 -1
- package/dist/utility/hdbTerms.js.map +1 -1
- package/dist/utility/install/installer.js +32 -0
- package/dist/utility/install/installer.js.map +1 -1
- package/dist/utility/logging/harper_logger.d.ts +47 -0
- package/dist/utility/logging/harper_logger.js +803 -38
- package/dist/utility/logging/harper_logger.js.map +1 -1
- package/dist/utility/operation_authorization.js +13 -3
- package/dist/utility/operation_authorization.js.map +1 -1
- package/npm-shrinkwrap.json +198 -193
- package/package.json +12 -7
- package/resources/DESIGN.md +2 -0
- package/resources/DatabaseTransaction.ts +310 -104
- package/resources/ResourceInterface.ts +8 -5
- package/resources/Resources.ts +22 -4
- package/resources/Table.ts +341 -263
- package/resources/analytics/write.ts +22 -20
- package/resources/blob.ts +31 -14
- package/resources/databases.ts +387 -46
- package/resources/jsResource.ts +5 -62
- package/resources/models/Models.ts +14 -1
- package/resources/models/backendRegistry.ts +10 -0
- package/resources/models/openaiStream.ts +131 -19
- package/resources/models/v1/chatCompletions.ts +128 -0
- package/resources/models/v1/embeddings.ts +70 -0
- package/resources/models/v1/errors.ts +141 -0
- package/resources/models/v1/index.ts +72 -0
- package/resources/models/v1/models.ts +53 -0
- package/resources/models/v1/translation.ts +362 -0
- package/resources/roles.ts +67 -7
- package/resources/transaction.ts +0 -3
- package/security/jsLoader.ts +84 -30
- package/security/role.ts +7 -0
- package/security/superUserGuard.ts +20 -0
- package/security/tokenAuthentication.ts +6 -3
- package/security/user.ts +26 -1
- package/server/DESIGN.md +61 -34
- package/server/REST.ts +25 -9
- package/server/fastifyRoutes.ts +20 -1
- package/server/http.ts +100 -13
- package/server/itc/serverHandlers.js +7 -1
- package/server/jobs/jobProcess.ts +18 -1
- package/server/jobs/jobRunner.ts +10 -0
- package/server/jobs/jobs.ts +11 -0
- package/server/middlewareChain.ts +79 -20
- package/server/operationsServer.ts +0 -2
- package/server/serverHelpers/multipartParser.ts +9 -0
- package/server/serverHelpers/operationAuthorizationState.ts +11 -0
- package/server/serverHelpers/registeredOperations.ts +19 -15
- package/server/serverHelpers/serverHandlers.js +28 -7
- package/server/serverHelpers/serverUtilities.ts +29 -7
- package/server/static.ts +87 -23
- package/server/storageReclamation.ts +104 -8
- package/server/threads/socketRouter.ts +20 -0
- package/server/threads/threadServer.js +11 -0
- package/sqlTranslator/index.ts +6 -1
- package/static/defaultConfig.yaml +3 -0
- package/studio/web/assets/{Chat-DK3GlWEb.js → Chat-aApwhRmz.js} +2 -2
- package/studio/web/assets/{Chat-DK3GlWEb.js.map → Chat-aApwhRmz.js.map} +1 -1
- package/studio/web/assets/{FloatingChat-fBcC1Ew_.js → FloatingChat-sC0H91n9.js} +4 -4
- package/studio/web/assets/{FloatingChat-fBcC1Ew_.js.map → FloatingChat-sC0H91n9.js.map} +1 -1
- package/studio/web/assets/{apiToken-DJo1nakA.js → apiToken-DZ8JhHOI.js} +2 -2
- package/studio/web/assets/{apiToken-DJo1nakA.js.map → apiToken-DZ8JhHOI.js.map} +1 -1
- package/studio/web/assets/{applications-BDfH8urd.js → applications-9SEVLIO5.js} +2 -2
- package/studio/web/assets/{applications-BDfH8urd.js.map → applications-9SEVLIO5.js.map} +1 -1
- package/studio/web/assets/{index-BHo3c2Gk.js → index-Dy3uDGXb.js} +6 -6
- package/studio/web/assets/index-Dy3uDGXb.js.map +1 -0
- package/studio/web/assets/{index.lazy-BTo0y6UM.js → index.lazy-CN1zq4I4.js} +4 -4
- package/studio/web/assets/{index.lazy-BTo0y6UM.js.map → index.lazy-CN1zq4I4.js.map} +1 -1
- package/studio/web/assets/{notifications-CMxvWNnz.js → notifications-BFAF07xr.js} +2 -2
- package/studio/web/assets/{notifications-CMxvWNnz.js.map → notifications-BFAF07xr.js.map} +1 -1
- package/studio/web/assets/{notifications-D3GoB26g.js → notifications-CKlYVvVN.js} +2 -2
- package/studio/web/assets/{notifications-D3GoB26g.js.map → notifications-CKlYVvVN.js.map} +1 -1
- package/studio/web/assets/{profile-Doj5FVDE.js → profile-A1zhEdFG.js} +2 -2
- package/studio/web/assets/{profile-Doj5FVDE.js.map → profile-A1zhEdFG.js.map} +1 -1
- package/studio/web/assets/{setComponentFile-yinsqJy0.js → setComponentFile-SEtBt_GV.js} +2 -2
- package/studio/web/assets/{setComponentFile-yinsqJy0.js.map → setComponentFile-SEtBt_GV.js.map} +1 -1
- package/studio/web/assets/{setup-DJwR0BHd.js → setup-BisINqdH.js} +2 -2
- package/studio/web/assets/{setup-DJwR0BHd.js.map → setup-BisINqdH.js.map} +1 -1
- package/studio/web/assets/{status-Br_AbsJs.js → status-BuQoCc7l.js} +2 -2
- package/studio/web/assets/{status-Br_AbsJs.js.map → status-BuQoCc7l.js.map} +1 -1
- package/studio/web/assets/{swagger-ui-react-02XH5sVf.js → swagger-ui-react-CAi_s1PC.js} +2 -2
- package/studio/web/assets/{swagger-ui-react-02XH5sVf.js.map → swagger-ui-react-CAi_s1PC.js.map} +1 -1
- package/studio/web/assets/{tsMode-D1DMKY7h.js → tsMode-DT74tlkM.js} +2 -2
- package/studio/web/assets/{tsMode-D1DMKY7h.js.map → tsMode-DT74tlkM.js.map} +1 -1
- package/studio/web/assets/{useEntityRestURL-DtRblRgw.js → useEntityRestURL-CGRGc1n7.js} +2 -2
- package/studio/web/assets/{useEntityRestURL-DtRblRgw.js.map → useEntityRestURL-CGRGc1n7.js.map} +1 -1
- package/studio/web/index.html +1 -1
- package/upgrade/upgradePrompt.ts +22 -3
- package/utility/OperationFunctionCaller.ts +24 -3
- package/utility/errors/commonErrors.ts +2 -0
- package/utility/hdbTerms.ts +13 -1
- package/utility/install/installer.ts +37 -0
- package/utility/logging/harper_logger.ts +786 -41
- package/utility/operation_authorization.ts +31 -3
- package/studio/web/assets/index-BHo3c2Gk.js.map +0 -1
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.blobsRootDir = blobsRootDir;
|
|
7
|
+
exports.blobSnapshotDir = blobSnapshotDir;
|
|
8
|
+
exports.snapshotBlobs = snapshotBlobs;
|
|
9
|
+
exports.blobsReadmeContent = blobsReadmeContent;
|
|
10
|
+
exports.writeBlobsReadme = writeBlobsReadme;
|
|
11
|
+
exports.assertBlobSnapshotRestorable = assertBlobSnapshotRestorable;
|
|
12
|
+
exports.restoreBlobSnapshot = restoreBlobSnapshot;
|
|
13
|
+
exports.deleteBlobSnapshot = deleteBlobSnapshot;
|
|
14
|
+
exports.purgeBlobSnapshots = purgeBlobSnapshots;
|
|
15
|
+
const node_fs_1 = require("node:fs");
|
|
16
|
+
const promises_1 = require("node:fs/promises");
|
|
17
|
+
const node_path_1 = require("node:path");
|
|
18
|
+
const hdbError_ts_1 = require("../utility/errors/hdbError.js");
|
|
19
|
+
const harper_logger_ts_1 = __importDefault(require("../utility/logging/harper_logger.js"));
|
|
20
|
+
/**
|
|
21
|
+
* Managed-backup snapshotting of a database's file-backed blobs.
|
|
22
|
+
*
|
|
23
|
+
* A database's blobs live in one or more root directories *outside* the RocksDB directory (see
|
|
24
|
+
* `resources/blob.ts` `getBlobPathsForDatabaseName`), so the engine's own backup does not capture
|
|
25
|
+
* them. These helpers snapshot the blob roots alongside a RocksDB managed backup and restore them
|
|
26
|
+
* with it, so a restored database's records still resolve their file-backed blobs.
|
|
27
|
+
*
|
|
28
|
+
* Layout mirrors the binding's transaction-log snapshots (`<backupDir>/transaction_logs/<id>/`): a
|
|
29
|
+
* full, non-incremental copy per backup at `<backupDir>/blobs/<backupId>/<rootIndex>/<relpath>`,
|
|
30
|
+
* where `rootIndex` is the position of the source root in the database's blob-root list (preserved
|
|
31
|
+
* so a multi-root database restores each root back to its original slot). Files are hard-linked when
|
|
32
|
+
* possible (cheap, no extra space on the same filesystem) and copied otherwise (never symlinked, so
|
|
33
|
+
* a snapshot is a standalone set of files that survives independent of the live blob).
|
|
34
|
+
*
|
|
35
|
+
* Consistency is best-effort and point-in-time-ish, matching how the engine treats the transaction
|
|
36
|
+
* log: the walk captures whatever files exist at snapshot time. A blob deleted mid-walk is skipped;
|
|
37
|
+
* a blob being written mid-walk is captured as-is (a hard link shares the inode, so it reflects the
|
|
38
|
+
* writer's final bytes; a cross-filesystem copy captures the bytes present at copy time). Harper
|
|
39
|
+
* does not freeze blob writes for the duration of a backup.
|
|
40
|
+
*
|
|
41
|
+
* Hard-linking is safe against later mutation because Harper blobs are content-addressed and
|
|
42
|
+
* write-once: each write allocates a fresh monotonic file id (a new path), and an update or delete
|
|
43
|
+
* unlinks the old path rather than rewriting it in place — so a snapshot's hard link keeps the exact
|
|
44
|
+
* bytes alive even after the live blob is deleted, and no in-place overwrite can retroactively alter
|
|
45
|
+
* a snapshot.
|
|
46
|
+
*/
|
|
47
|
+
/** Directory holding all blob snapshots for a backup repository. */
|
|
48
|
+
function blobsRootDir(backupDir) {
|
|
49
|
+
return (0, node_path_1.join)(backupDir, 'blobs');
|
|
50
|
+
}
|
|
51
|
+
/** Directory holding a single backup id's blob snapshot. */
|
|
52
|
+
function blobSnapshotDir(backupDir, backupId) {
|
|
53
|
+
return (0, node_path_1.join)(blobsRootDir(backupDir), String(backupId));
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Hard-link `src` to `dest`, falling back to a copy when the two are on different filesystems (or
|
|
57
|
+
* the filesystem does not support additional hard links). Never creates a symlink. A source that
|
|
58
|
+
* vanished mid-walk (a concurrent blob delete) is skipped rather than failing the whole snapshot.
|
|
59
|
+
*/
|
|
60
|
+
async function linkOrCopy(src, dest) {
|
|
61
|
+
await (0, promises_1.mkdir)((0, node_path_1.dirname)(dest), { recursive: true });
|
|
62
|
+
try {
|
|
63
|
+
await (0, promises_1.link)(src, dest);
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
if (error.code === 'ENOENT') {
|
|
67
|
+
// src disappeared (concurrent delete) — nothing to snapshot
|
|
68
|
+
if (!(0, node_fs_1.existsSync)(src))
|
|
69
|
+
return;
|
|
70
|
+
throw error;
|
|
71
|
+
}
|
|
72
|
+
if (error.code === 'EXDEV' || // cross-device link
|
|
73
|
+
error.code === 'EMLINK' || // link count exhausted
|
|
74
|
+
error.code === 'EPERM' || // filesystem forbids hard links
|
|
75
|
+
error.code === 'ENOTSUP' ||
|
|
76
|
+
error.code === 'EOPNOTSUPP') {
|
|
77
|
+
await (0, promises_1.copyFile)(src, dest);
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
if (error.code === 'EEXIST') {
|
|
81
|
+
await (0, promises_1.unlink)(dest);
|
|
82
|
+
await linkOrCopy(src, dest);
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
throw error;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Recursively copy every file under `srcRoot` into `destRoot` (hard-link-else-copy), preserving the
|
|
90
|
+
* relative directory structure. Missing `srcRoot` is a no-op (a database with no blobs yet).
|
|
91
|
+
*/
|
|
92
|
+
async function copyTree(srcRoot, destRoot) {
|
|
93
|
+
if (!(0, node_fs_1.existsSync)(srcRoot))
|
|
94
|
+
return;
|
|
95
|
+
const stack = [srcRoot];
|
|
96
|
+
while (stack.length > 0) {
|
|
97
|
+
const dir = stack.pop();
|
|
98
|
+
let entries;
|
|
99
|
+
try {
|
|
100
|
+
entries = await (0, promises_1.readdir)(dir, { withFileTypes: true });
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
if (error.code === 'ENOENT')
|
|
104
|
+
continue; // directory removed mid-walk
|
|
105
|
+
throw error;
|
|
106
|
+
}
|
|
107
|
+
for (const entry of entries) {
|
|
108
|
+
const srcPath = (0, node_path_1.join)(dir, entry.name);
|
|
109
|
+
if (entry.isDirectory()) {
|
|
110
|
+
stack.push(srcPath);
|
|
111
|
+
}
|
|
112
|
+
else if (entry.isFile()) {
|
|
113
|
+
await linkOrCopy(srcPath, (0, node_path_1.join)(destRoot, (0, node_path_1.relative)(srcRoot, srcPath)));
|
|
114
|
+
}
|
|
115
|
+
// symlinks/other node types in a blob root are not expected and are intentionally skipped
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Snapshot a database's blob roots into a backup's blob directory. Writes to a temporary sibling
|
|
121
|
+
* and atomically renames into place so a create_backup that fails mid-copy never leaves a partial
|
|
122
|
+
* `blobs/<backupId>/` that a later restore would trust. Overwrites any pre-existing snapshot for the
|
|
123
|
+
* same id (create_backup always produces a fresh id, so this only matters on a retried offline run).
|
|
124
|
+
*/
|
|
125
|
+
async function snapshotBlobs(backupDir, backupId, blobRoots) {
|
|
126
|
+
const finalDir = blobSnapshotDir(backupDir, backupId);
|
|
127
|
+
const tempDir = (0, node_path_1.join)(blobsRootDir(backupDir), `.tmp-${backupId}`);
|
|
128
|
+
await (0, promises_1.rm)(tempDir, { recursive: true, force: true });
|
|
129
|
+
await (0, promises_1.mkdir)(tempDir, { recursive: true });
|
|
130
|
+
try {
|
|
131
|
+
for (let index = 0; index < blobRoots.length; index++) {
|
|
132
|
+
await copyTree(blobRoots[index], (0, node_path_1.join)(tempDir, String(index)));
|
|
133
|
+
}
|
|
134
|
+
await (0, promises_1.rm)(finalDir, { recursive: true, force: true });
|
|
135
|
+
await (0, promises_1.rename)(tempDir, finalDir);
|
|
136
|
+
}
|
|
137
|
+
catch (error) {
|
|
138
|
+
await (0, promises_1.rm)(tempDir, { recursive: true, force: true }).catch(() => { });
|
|
139
|
+
throw error;
|
|
140
|
+
}
|
|
141
|
+
await writeBlobsReadme(backupDir, blobRoots);
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Build the `blobs/README.md` documenting the blob snapshot layout, so an operator inspecting or
|
|
145
|
+
* hand-recovering a backup can decode the numeric directories. Two variants:
|
|
146
|
+
* - managed (default): a create_backup repository, where snapshots are keyed by backup id
|
|
147
|
+
* (`<backupId>/<rootIndex>/…`) and restore is automatic via `restore_backup`.
|
|
148
|
+
* - archive (`archive: true`): a downloaded `get_backup` tar, which holds a single snapshot with no
|
|
149
|
+
* backup-id level (`<rootIndex>/…`) and is restored by extracting the files back into the roots.
|
|
150
|
+
*/
|
|
151
|
+
function blobsReadmeContent(blobRoots, { archive = false } = {}) {
|
|
152
|
+
const rootMapping = blobRoots.length > 0 ? blobRoots.map((root, index) => ` ${index} -> ${root}`).join('\n') : ' (none)';
|
|
153
|
+
const layout = archive
|
|
154
|
+
? '<rootIndex>/<shard1>/<shard2>/<fileId>'
|
|
155
|
+
: '<backupId>/<rootIndex>/<shard1>/<shard2>/<fileId>';
|
|
156
|
+
const intro = archive
|
|
157
|
+
? `This directory holds this database's file-backed blobs within a downloaded \`get_backup\` archive.
|
|
158
|
+
To restore them, extract each \`<rootIndex>/\` tree back into the matching blob root (see the mapping
|
|
159
|
+
below and ../README.md).`
|
|
160
|
+
: `This directory holds point-in-time snapshots of this database's file-backed blobs, captured
|
|
161
|
+
alongside each RocksDB managed backup. You do not restore these by hand — \`restore_backup\` puts
|
|
162
|
+
them back automatically (see ../README.md); this file just documents the layout.`;
|
|
163
|
+
const backupIdBullet = archive
|
|
164
|
+
? ''
|
|
165
|
+
: `- **<backupId>** matches the RocksDB backup id (\`harper list_backups\`). Each id is a full,
|
|
166
|
+
independent snapshot (not incremental).
|
|
167
|
+
`;
|
|
168
|
+
return `# Harper blob snapshots
|
|
169
|
+
|
|
170
|
+
${intro}
|
|
171
|
+
|
|
172
|
+
## Directory layout
|
|
173
|
+
|
|
174
|
+
${layout}
|
|
175
|
+
|
|
176
|
+
${backupIdBullet}- **<rootIndex>** is which of the database's blob roots the file came from — the index into
|
|
177
|
+
\`storage.blobPaths[n]\`. When \`storage.blobPaths\` is not configured there is a single default root
|
|
178
|
+
(\`<rootPath>/blobs/<db>\`) at index 0. Current mapping for this backup:
|
|
179
|
+
|
|
180
|
+
${rootMapping}
|
|
181
|
+
|
|
182
|
+
- **<shard1>/<shard2>/<fileId>** is Harper's on-disk blob layout, copied verbatim from the live
|
|
183
|
+
root: the hex blob file id split into two directory levels plus the file itself (keeping roughly
|
|
184
|
+
4096 entries per directory). E.g. a blob with id \`0x12345678\` lives at \`12/345/678\`; a short id
|
|
185
|
+
like \`0xc1a\` lives at \`0/0/c1a\`.
|
|
186
|
+
|
|
187
|
+
Files are hard links to the live blobs when the backup is on the same filesystem, and copies
|
|
188
|
+
otherwise.
|
|
189
|
+
`;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Write the `blobs/README.md` into a managed backup's `blobs/` directory. Best-effort: a failure to
|
|
193
|
+
* write the doc must not fail an otherwise-successful backup.
|
|
194
|
+
*/
|
|
195
|
+
async function writeBlobsReadme(backupDir, blobRoots) {
|
|
196
|
+
try {
|
|
197
|
+
await (0, promises_1.writeFile)((0, node_path_1.join)(blobsRootDir(backupDir), 'README.md'), blobsReadmeContent(blobRoots));
|
|
198
|
+
}
|
|
199
|
+
catch (error) {
|
|
200
|
+
harper_logger_ts_1.default.warn(`Failed to write blob snapshot README in ${backupDir}: ${error.message}`);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
/** The blob-root indices present in a snapshot (sorted); [] when the backup has no blob snapshot. */
|
|
204
|
+
async function snapshotRootIndices(snapshotDir) {
|
|
205
|
+
if (!(0, node_fs_1.existsSync)(snapshotDir))
|
|
206
|
+
return [];
|
|
207
|
+
return (await (0, promises_1.readdir)(snapshotDir, { withFileTypes: true }))
|
|
208
|
+
.filter((entry) => entry.isDirectory() && /^\d+$/.test(entry.name))
|
|
209
|
+
.map((entry) => Number(entry.name))
|
|
210
|
+
.sort((a, b) => a - b);
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Reject (before any destructive step) a restore whose snapshot has more blob roots than the
|
|
214
|
+
* database is currently configured with. File-backed blob references persist their `storageIndex`,
|
|
215
|
+
* so a record written under root index 1 keeps resolving through `blobRoots[1]`; collapsing the
|
|
216
|
+
* out-of-range index onto another root would preserve the bytes at the wrong address and the restore
|
|
217
|
+
* would "succeed" while reads of those blobs fail. The operator must reconcile `storage.blobPaths`
|
|
218
|
+
* to at least as many roots as the backup before restoring. Callers invoke this ahead of the engine
|
|
219
|
+
* restore so a mismatch never purges the database.
|
|
220
|
+
*/
|
|
221
|
+
async function assertBlobSnapshotRestorable(backupDir, backupId, blobRoots) {
|
|
222
|
+
const indices = await snapshotRootIndices(blobSnapshotDir(backupDir, backupId));
|
|
223
|
+
const maxIndex = indices.length > 0 ? indices[indices.length - 1] : -1;
|
|
224
|
+
if (maxIndex >= blobRoots.length) {
|
|
225
|
+
throw new hdbError_ts_1.ClientError(`Cannot restore backup ${backupId}: it captured ${maxIndex + 1} blob root(s) but the database is now configured with ${blobRoots.length}. ` +
|
|
226
|
+
`Blob references persist their root index, so restoring would mis-address blobs — set 'storage.blobPaths' to at least ${maxIndex + 1} root(s) before restoring.`);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Restore a backup's blob snapshot back into the database's blob roots. Each root is purged and
|
|
231
|
+
* rewritten from `blobs/<backupId>/<rootIndex>/` so the restored blob set matches the backup exactly
|
|
232
|
+
* (a newer blob written after the backup is removed, mirroring the engine's `purgeAllFiles` restore).
|
|
233
|
+
*
|
|
234
|
+
* A backup created with blobs excluded (or an older backup that predates blob snapshots) has no
|
|
235
|
+
* snapshot directory: in that case the live blob roots are left untouched and a warning is logged,
|
|
236
|
+
* since purging them would strip blobs the restored records may still reference. Roots are restored
|
|
237
|
+
* by index into the *same* configured root; an incompatible root count is rejected up front (see
|
|
238
|
+
* `assertBlobSnapshotRestorable`) rather than collapsed, so blobs are never mis-addressed.
|
|
239
|
+
*/
|
|
240
|
+
async function restoreBlobSnapshot(backupDir, backupId, databaseName, blobRoots) {
|
|
241
|
+
const snapshotDir = blobSnapshotDir(backupDir, backupId);
|
|
242
|
+
if (!(0, node_fs_1.existsSync)(snapshotDir)) {
|
|
243
|
+
harper_logger_ts_1.default.warn(`Backup ${backupId} of database '${databaseName}' has no blob snapshot; leaving existing blob files in place (this backup did not include blobs)`);
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
// defense in depth: the restore flow pre-checks before the engine restore, but re-validate here
|
|
247
|
+
// so this function never mis-addresses blobs regardless of caller
|
|
248
|
+
await assertBlobSnapshotRestorable(backupDir, backupId, blobRoots);
|
|
249
|
+
const indexDirs = await snapshotRootIndices(snapshotDir);
|
|
250
|
+
// purge every current blob root first so nothing newer than the backup survives the restore
|
|
251
|
+
for (const root of blobRoots) {
|
|
252
|
+
await (0, promises_1.rm)(root, { recursive: true, force: true });
|
|
253
|
+
}
|
|
254
|
+
for (const index of indexDirs) {
|
|
255
|
+
await copyTree((0, node_path_1.join)(snapshotDir, String(index)), blobRoots[index]);
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Remove the blob snapshot for a single backup id (paired with `backups.delete`). Best-effort:
|
|
260
|
+
* a missing snapshot directory is fine.
|
|
261
|
+
*/
|
|
262
|
+
async function deleteBlobSnapshot(backupDir, backupId) {
|
|
263
|
+
await (0, promises_1.rm)(blobSnapshotDir(backupDir, backupId), { recursive: true, force: true });
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Remove blob snapshots for every backup id not in `keepIds` (paired with `backups.purge`, which
|
|
267
|
+
* reference-counts and removes the engine files; blob snapshots are full per-id copies, so they are
|
|
268
|
+
* simply deleted). Given the ids that survive the purge, this deletes the rest.
|
|
269
|
+
*/
|
|
270
|
+
async function purgeBlobSnapshots(backupDir, keepIds) {
|
|
271
|
+
const root = blobsRootDir(backupDir);
|
|
272
|
+
if (!(0, node_fs_1.existsSync)(root))
|
|
273
|
+
return;
|
|
274
|
+
for (const entry of await (0, promises_1.readdir)(root, { withFileTypes: true })) {
|
|
275
|
+
if (!entry.isDirectory() || !/^\d+$/.test(entry.name))
|
|
276
|
+
continue;
|
|
277
|
+
if (keepIds.has(Number(entry.name)))
|
|
278
|
+
continue;
|
|
279
|
+
await (0, promises_1.rm)((0, node_path_1.join)(root, entry.name), { recursive: true, force: true });
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
//# sourceMappingURL=blobBackup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blobBackup.js","sourceRoot":"","sources":["../../dataLayer/blobBackup.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;AAqCb,oCAEC;AAGD,0CAEC;AAsED,sCAgBC;AAUD,gDAwCC;AAMD,4CAMC;AAoBD,oEAaC;AAaD,kDAwBC;AAMD,gDAEC;AAOD,gDAQC;AA3RD,qCAAqC;AACrC,+CAAiG;AACjG,yCAAoD;AACpD,+DAA4D;AAC5D,2FAAyD;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,oEAAoE;AACpE,SAAgB,YAAY,CAAC,SAAiB;IAC7C,OAAO,IAAA,gBAAI,EAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACjC,CAAC;AAED,4DAA4D;AAC5D,SAAgB,eAAe,CAAC,SAAiB,EAAE,QAAgB;IAClE,OAAO,IAAA,gBAAI,EAAC,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AACxD,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,UAAU,CAAC,GAAW,EAAE,IAAY;IAClD,MAAM,IAAA,gBAAK,EAAC,IAAA,mBAAO,EAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,IAAI,CAAC;QACJ,MAAM,IAAA,eAAI,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACvB,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACrB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,4DAA4D;YAC5D,IAAI,CAAC,IAAA,oBAAU,EAAC,GAAG,CAAC;gBAAE,OAAO;YAC7B,MAAM,KAAK,CAAC;QACb,CAAC;QACD,IACC,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,oBAAoB;YAC9C,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,uBAAuB;YAClD,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,gCAAgC;YAC1D,KAAK,CAAC,IAAI,KAAK,SAAS;YACxB,KAAK,CAAC,IAAI,KAAK,YAAY,EAC1B,CAAC;YACF,MAAM,IAAA,mBAAQ,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC1B,OAAO;QACR,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,IAAA,iBAAM,EAAC,IAAI,CAAC,CAAC;YACnB,MAAM,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC5B,OAAO;QACR,CAAC;QACD,MAAM,KAAK,CAAC;IACb,CAAC;AACF,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,QAAQ,CAAC,OAAe,EAAE,QAAgB;IACxD,IAAI,CAAC,IAAA,oBAAU,EAAC,OAAO,CAAC;QAAE,OAAO;IACjC,MAAM,KAAK,GAAa,CAAC,OAAO,CAAC,CAAC;IAClC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,EAAY,CAAC;QAClC,IAAI,OAAO,CAAC;QACZ,IAAI,CAAC;YACJ,OAAO,GAAG,MAAM,IAAA,kBAAO,EAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACrB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;gBAAE,SAAS,CAAC,6BAA6B;YACpE,MAAM,KAAK,CAAC;QACb,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,IAAA,gBAAI,EAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACzB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrB,CAAC;iBAAM,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC3B,MAAM,UAAU,CAAC,OAAO,EAAE,IAAA,gBAAI,EAAC,QAAQ,EAAE,IAAA,oBAAQ,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;YACvE,CAAC;YACD,0FAA0F;QAC3F,CAAC;IACF,CAAC;AACF,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,aAAa,CAAC,SAAiB,EAAE,QAAgB,EAAE,SAAmB;IAC3F,MAAM,QAAQ,GAAG,eAAe,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,IAAA,gBAAI,EAAC,YAAY,CAAC,SAAS,CAAC,EAAE,QAAQ,QAAQ,EAAE,CAAC,CAAC;IAClE,MAAM,IAAA,aAAE,EAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,MAAM,IAAA,gBAAK,EAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,IAAI,CAAC;QACJ,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YACvD,MAAM,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,IAAA,gBAAI,EAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChE,CAAC;QACD,MAAM,IAAA,aAAE,EAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACrD,MAAM,IAAA,iBAAM,EAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,IAAA,aAAE,EAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACpE,MAAM,KAAK,CAAC;IACb,CAAC;IACD,MAAM,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,kBAAkB,CAAC,SAAmB,EAAE,EAAE,OAAO,GAAG,KAAK,KAA4B,EAAE;IACtG,MAAM,WAAW,GAChB,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,SAAS,KAAK,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;IAChH,MAAM,MAAM,GAAG,OAAO;QACrB,CAAC,CAAC,wCAAwC;QAC1C,CAAC,CAAC,mDAAmD,CAAC;IACvD,MAAM,KAAK,GAAG,OAAO;QACpB,CAAC,CAAC;;yBAEqB;QACvB,CAAC,CAAC;;iFAE6E,CAAC;IACjF,MAAM,cAAc,GAAG,OAAO;QAC7B,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC;;CAEH,CAAC;IACD,OAAO;;EAEN,KAAK;;;;MAID,MAAM;;EAEV,cAAc;;;;EAId,WAAW;;;;;;;;;CASZ,CAAC;AACF,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,gBAAgB,CAAC,SAAiB,EAAE,SAAmB;IAC5E,IAAI,CAAC;QACJ,MAAM,IAAA,oBAAS,EAAC,IAAA,gBAAI,EAAC,YAAY,CAAC,SAAS,CAAC,EAAE,WAAW,CAAC,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5F,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,0BAAM,CAAC,IAAI,CAAC,2CAA2C,SAAS,KAAM,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;IAClG,CAAC;AACF,CAAC;AAED,qGAAqG;AACrG,KAAK,UAAU,mBAAmB,CAAC,WAAmB;IACrD,IAAI,CAAC,IAAA,oBAAU,EAAC,WAAW,CAAC;QAAE,OAAO,EAAE,CAAC;IACxC,OAAO,CAAC,MAAM,IAAA,kBAAO,EAAC,WAAW,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;SAC1D,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAClE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAClC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACzB,CAAC;AAED;;;;;;;;GAQG;AACI,KAAK,UAAU,4BAA4B,CACjD,SAAiB,EACjB,QAAgB,EAChB,SAAmB;IAEnB,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,eAAe,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;IAChF,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,IAAI,QAAQ,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;QAClC,MAAM,IAAI,yBAAW,CACpB,yBAAyB,QAAQ,iBAAiB,QAAQ,GAAG,CAAC,yDAAyD,SAAS,CAAC,MAAM,IAAI;YAC1I,wHAAwH,QAAQ,GAAG,CAAC,4BAA4B,CACjK,CAAC;IACH,CAAC;AACF,CAAC;AAED;;;;;;;;;;GAUG;AACI,KAAK,UAAU,mBAAmB,CACxC,SAAiB,EACjB,QAAgB,EAChB,YAAoB,EACpB,SAAmB;IAEnB,MAAM,WAAW,GAAG,eAAe,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACzD,IAAI,CAAC,IAAA,oBAAU,EAAC,WAAW,CAAC,EAAE,CAAC;QAC9B,0BAAM,CAAC,IAAI,CACV,UAAU,QAAQ,iBAAiB,YAAY,kGAAkG,CACjJ,CAAC;QACF,OAAO;IACR,CAAC;IACD,gGAAgG;IAChG,kEAAkE;IAClE,MAAM,4BAA4B,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IACnE,MAAM,SAAS,GAAG,MAAM,mBAAmB,CAAC,WAAW,CAAC,CAAC;IACzD,4FAA4F;IAC5F,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC9B,MAAM,IAAA,aAAE,EAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;QAC/B,MAAM,QAAQ,CAAC,IAAA,gBAAI,EAAC,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IACpE,CAAC;AACF,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,kBAAkB,CAAC,SAAiB,EAAE,QAAgB;IAC3E,MAAM,IAAA,aAAE,EAAC,eAAe,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAClF,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,kBAAkB,CAAC,SAAiB,EAAE,OAAoB;IAC/E,MAAM,IAAI,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IACrC,IAAI,CAAC,IAAA,oBAAU,EAAC,IAAI,CAAC;QAAE,OAAO;IAC9B,KAAK,MAAM,KAAK,IAAI,MAAM,IAAA,kBAAO,EAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QAClE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,SAAS;QAChE,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAAE,SAAS;QAC9C,MAAM,IAAA,aAAE,EAAC,IAAA,gBAAI,EAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACpE,CAAC;AACF,CAAC"}
|
|
@@ -51,6 +51,7 @@ const harper_logger_ts_1 = require("../../utility/logging/harper_logger.js");
|
|
|
51
51
|
const rocksdb_js_1 = require("@harperfast/rocksdb-js");
|
|
52
52
|
const BridgeMethods_ts_1 = require("./BridgeMethods.js");
|
|
53
53
|
const lmdbGetBackup_js_1 = __importDefault(require("./lmdbBridge/lmdbMethods/lmdbGetBackup.js"));
|
|
54
|
+
const rocksdbBackup_ts_1 = require("../rocksdbBackup.js");
|
|
54
55
|
const DeleteTransactionLogsBeforeResults_ts_1 = require("./DeleteTransactionLogsBeforeResults.js");
|
|
55
56
|
const { HDB_ERROR_MSGS } = hdbError_ts_1.hdbErrors;
|
|
56
57
|
const DEFAULT_DATABASE = 'data';
|
|
@@ -469,12 +470,18 @@ class ResourceBridge extends BridgeMethods_ts_1.BridgeMethods {
|
|
|
469
470
|
: typeof deleteObj.timestamp === 'string'
|
|
470
471
|
? Number.parseInt(deleteObj.timestamp)
|
|
471
472
|
: deleteObj.timestamp;
|
|
473
|
+
const databaseName = deleteObj.database || deleteObj.schema || DEFAULT_DATABASE;
|
|
472
474
|
const table = getTable(deleteObj);
|
|
475
|
+
// A nonexistent table must not fall through to the no-table branch below — on RocksDB that
|
|
476
|
+
// widens a table-scoped request (e.g. a typo) into a whole-database log purge (#2049).
|
|
477
|
+
// Presence check, not truthiness: a table named "0" addressed numerically is still table-scoped.
|
|
478
|
+
if (deleteObj.table != null && !table)
|
|
479
|
+
throw (0, hdbError_ts_1.handleHDBError)(new Error(), HDB_ERROR_MSGS.TABLE_NOT_FOUND(databaseName, deleteObj.table), 404, undefined, undefined, true);
|
|
473
480
|
if (!table) {
|
|
474
481
|
// no table, check if any of the tables are RocksDB
|
|
475
482
|
// since all tables share the same transaction log store, we break after the first
|
|
476
483
|
// RocksDB table is found
|
|
477
|
-
const tables = (0, databases_ts_1.getDatabases)()[
|
|
484
|
+
const tables = (0, databases_ts_1.getDatabases)()[databaseName];
|
|
478
485
|
if (tables) {
|
|
479
486
|
for (const table of Object.values(tables)) {
|
|
480
487
|
if (table.primaryStore instanceof rocksdb_js_1.RocksDatabase) {
|
|
@@ -487,9 +494,9 @@ class ResourceBridge extends BridgeMethods_ts_1.BridgeMethods {
|
|
|
487
494
|
}
|
|
488
495
|
}
|
|
489
496
|
else if (table.primaryStore instanceof rocksdb_js_1.RocksDatabase) {
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
497
|
+
// All tables in a RocksDB database share one transaction log with no per-table purge
|
|
498
|
+
// granularity; honoring `table` here would silently purge every sibling table's log (#2049).
|
|
499
|
+
throw (0, hdbError_ts_1.handleHDBError)(new Error(), `Table-level transaction log deletion is not supported for RocksDB tables because all tables in a database share one transaction log; to delete the transaction logs for the entire '${databaseName}' database, use delete_transaction_logs_before with only 'database' and 'timestamp'`, 400, undefined, undefined, true);
|
|
493
500
|
}
|
|
494
501
|
else {
|
|
495
502
|
totalResults.entries_deleted += await table.deleteHistory(before, deleteObj.cleanup_deleted_records);
|
|
@@ -535,6 +542,38 @@ class ResourceBridge extends BridgeMethods_ts_1.BridgeMethods {
|
|
|
535
542
|
}
|
|
536
543
|
}
|
|
537
544
|
async getBackup(getBackupObj) {
|
|
545
|
+
const databaseName = getBackupObj.database || getBackupObj.schema || 'data';
|
|
546
|
+
const database = (0, databases_ts_1.getDatabases)()[databaseName];
|
|
547
|
+
if (!database) {
|
|
548
|
+
throw new hdbError_ts_1.ClientError(`Database '${databaseName}' does not exist`, 404);
|
|
549
|
+
}
|
|
550
|
+
const firstTable = database[Object.keys(database)[0]];
|
|
551
|
+
if (!firstTable) {
|
|
552
|
+
throw new hdbError_ts_1.ClientError(`Database '${databaseName}' has no tables to back up`);
|
|
553
|
+
}
|
|
554
|
+
if (firstTable.primaryStore.rootStore instanceof rocksdb_js_1.RocksDatabase) {
|
|
555
|
+
// RocksDB: stream a fresh full-snapshot tar of the database's current state — no
|
|
556
|
+
// scratch disk, nothing to clean up. Per-engine params are validated descriptively.
|
|
557
|
+
if (getBackupObj.tables || getBackupObj.table) {
|
|
558
|
+
throw new hdbError_ts_1.ClientError(`'tables'/'table' are LMDB-only options; RocksDB backups are always whole-database`);
|
|
559
|
+
}
|
|
560
|
+
if (getBackupObj.include_audit !== undefined) {
|
|
561
|
+
throw new hdbError_ts_1.ClientError(`'include_audit' is an LMDB-only option; RocksDB backups always include the transaction log`);
|
|
562
|
+
}
|
|
563
|
+
if (getBackupObj.gzip !== undefined && typeof getBackupObj.gzip !== 'boolean') {
|
|
564
|
+
throw new hdbError_ts_1.ClientError(`'gzip' must be a boolean`);
|
|
565
|
+
}
|
|
566
|
+
if (getBackupObj.exclude_blobs !== undefined && typeof getBackupObj.exclude_blobs !== 'boolean') {
|
|
567
|
+
throw new hdbError_ts_1.ClientError(`'exclude_blobs' must be a boolean`);
|
|
568
|
+
}
|
|
569
|
+
const rootStore = (0, rocksdbBackup_ts_1.resolveSingleRootStore)(databaseName);
|
|
570
|
+
// gzip defaults on (it compresses the snapshot substantially); gzip=false opts out.
|
|
571
|
+
// blobs are included by default; exclude_blobs=true streams an engine-only tar.
|
|
572
|
+
return (0, rocksdbBackup_ts_1.createBackupStream)(rootStore, databaseName, getBackupObj.gzip !== false, getBackupObj.exclude_blobs === true);
|
|
573
|
+
}
|
|
574
|
+
if (getBackupObj.gzip !== undefined) {
|
|
575
|
+
throw new hdbError_ts_1.ClientError(`'gzip' is a RocksDB-only option; LMDB backups are gzipped per the accept-encoding header`);
|
|
576
|
+
}
|
|
538
577
|
return (0, lmdbGetBackup_js_1.default)(getBackupObj);
|
|
539
578
|
}
|
|
540
579
|
}
|
|
@@ -632,7 +671,8 @@ function getTable(operationObject) {
|
|
|
632
671
|
const tables = (0, databases_ts_1.getDatabases)()[databaseName];
|
|
633
672
|
if (!tables)
|
|
634
673
|
throw (0, hdbError_ts_1.handleHDBError)(new Error(), HDB_ERROR_MSGS.SCHEMA_NOT_FOUND(databaseName), 404);
|
|
635
|
-
|
|
674
|
+
// Presence check, not truthiness, so a table named "0" resolves when addressed numerically.
|
|
675
|
+
return operationObject.table != null ? tables[operationObject.table] : undefined;
|
|
636
676
|
}
|
|
637
677
|
/**
|
|
638
678
|
* creates the response object for deletes based on the deleted & skipped hashes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResourceBridge.js","sourceRoot":"","sources":["../../../dataLayer/harperBridge/ResourceBridge.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ResourceBridge.js","sourceRoot":"","sources":["../../../dataLayer/harperBridge/ResourceBridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -178,15 +178,19 @@ async function getVersionUpdateInfo() {
|
|
|
178
178
|
if (!hdbUtils.isCompatibleDataVersion(dataVersion.toString(), upgradeVersion.toString())) {
|
|
179
179
|
console.log(chalk_1.default.yellow(`This instance's data was last run on version ${dataVersion}`));
|
|
180
180
|
console.error(chalk_1.default.red(`You have installed a version lower than the version that your data was created on or was upgraded to. This may cause issues and is currently not supported.${os.EOL}${hdbTerms.SUPPORT_HELP_MSG}`));
|
|
181
|
+
harper_logger_ts_1.default.error(`This instance's data was last run on version ${dataVersion}, which is newer than this installed version ${upgradeVersion}. Downgrading across major versions is not supported.`);
|
|
181
182
|
throw new Error('Trying to downgrade major HDB versions is not supported.');
|
|
182
183
|
}
|
|
183
184
|
if (!hdbUtils.isCompatibleDataVersion(dataVersion.toString(), upgradeVersion.toString(), true)) {
|
|
184
185
|
console.log(chalk_1.default.yellow(`This instance's data was last run on version ${dataVersion}`));
|
|
186
|
+
harper_logger_ts_1.default.warn(`This instance's data was last run on version ${dataVersion}, which is newer than this installed version ${upgradeVersion}. Confirmation is required before running the older version against this data.`);
|
|
185
187
|
if (await (0, upgradePrompt_ts_1.forceDowngradePrompt)(new UpgradeObjects_ts_1.UpgradeObject(dataVersion, upgradeVersion))) {
|
|
186
188
|
await insertHdbUpgradeInfo(upgradeVersion.toString());
|
|
189
|
+
harper_logger_ts_1.default.notify(`Downgrade confirmed; data version recorded as ${upgradeVersion}.`);
|
|
187
190
|
}
|
|
188
191
|
else {
|
|
189
192
|
console.log('Cancelled downgrade, closing Harper');
|
|
193
|
+
harper_logger_ts_1.default.notify('Cancelled downgrade, closing Harper');
|
|
190
194
|
process.exit(0);
|
|
191
195
|
}
|
|
192
196
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hdbInfoController.js","sourceRoot":"","sources":["../../dataLayer/hdbInfoController.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6Cb,oDAaC;AASD,oDA2BC;AAkED,
|
|
1
|
+
{"version":3,"file":"hdbInfoController.js","sourceRoot":"","sources":["../../dataLayer/hdbInfoController.ts"],"names":[],"mappings":"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"}
|