From 03f91cd5bbbf76394efb432ed177ddfc5ab554b4 Mon Sep 17 00:00:00 2001 From: Anso Date: Sun, 26 Apr 2026 15:42:21 -0400 Subject: [PATCH] feat(cloud-backup): mirror fleet snapshots to S3-compatible storage (#782) * feat(cloud-backup): mirror fleet snapshots to S3-compatible storage Add an Admiral-tier Cloud Backup feature that replicates every fleet snapshot to off-site storage, with two provider modes that share the same `@aws-sdk/client-s3` code path: - Sencho Cloud Backup: zero-config, 500 MB allowance backed by Cloudflare R2, provisioned via the sencho.io worker against the user's Lemon Squeezy license. - Custom S3 (BYOB): any S3-compatible bucket (AWS, MinIO, Backblaze B2, Wasabi, R2 with own keys), with credentials encrypted via `CryptoService` before storage. API-triggered snapshots upload fire-and-forget so the UI returns immediately; scheduled snapshots block on the upload so the task's success/failure reflects cloud durability. Object keys include the instance_id segment to prevent collisions when the same Admiral license is activated on multiple Sencho instances. * fix(cloud-backup): drop ES2022-only Error cause arg breaking ES2020 build The backend tsconfig pins lib to ES2020. The two-argument `Error(message, { cause })` form requires ES2022, so tsc rejected it with TS2554. Revert to single-argument throw to match the convention used elsewhere in the backend services. --- backend/package-lock.json | 1409 ++++++++++++----- backend/package.json | 3 + .../src/__tests__/cloud-backup-routes.test.ts | 193 +++ .../__tests__/cloud-backup-service.test.ts | 242 +++ .../src/__tests__/scheduler-service.test.ts | 10 + backend/src/index.ts | 2 + backend/src/routes/cloudBackup.ts | 243 +++ backend/src/routes/fleet.ts | 13 + backend/src/services/CloudBackupService.ts | 400 +++++ backend/src/services/SchedulerService.ts | 21 +- backend/src/utils/audit-summaries.ts | 7 + docs/features/fleet-backups.mdx | 53 + .../cloud-backup/cloud-backup-custom.png | Bin 0 -> 205327 bytes .../cloud-backup/cloud-backup-disabled.png | Bin 0 -> 169957 bytes frontend/src/components/FleetSnapshots.tsx | 72 +- frontend/src/components/SettingsModal.tsx | 2 + .../settings/CloudBackupSection.tsx | 523 ++++++ frontend/src/components/settings/index.ts | 1 + frontend/src/components/settings/registry.ts | 11 + frontend/src/components/settings/types.ts | 1 + 20 files changed, 2805 insertions(+), 401 deletions(-) create mode 100644 backend/src/__tests__/cloud-backup-routes.test.ts create mode 100644 backend/src/__tests__/cloud-backup-service.test.ts create mode 100644 backend/src/routes/cloudBackup.ts create mode 100644 backend/src/services/CloudBackupService.ts create mode 100644 docs/images/cloud-backup/cloud-backup-custom.png create mode 100644 docs/images/cloud-backup/cloud-backup-disabled.png create mode 100644 frontend/src/components/settings/CloudBackupSection.tsx diff --git a/backend/package-lock.json b/backend/package-lock.json index 07641106..adab834d 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -11,6 +11,7 @@ "license": "SEE LICENSE IN LICENSE", "dependencies": { "@aws-sdk/client-ecr": "^3.1019.0", + "@aws-sdk/client-s3": "^3.1037.0", "@types/compression": "^1.8.1", "@types/cors": "^2.8.19", "@types/dockerode": "^4.0.1", @@ -41,6 +42,7 @@ "otplib": "^12.0.1", "semver": "^7.7.4", "systeminformation": "^5.31.1", + "tar-stream": "^3.1.8", "ws": "^8.19.0", "yaml": "^2.8.2", "zod": "^4.3.6" @@ -55,6 +57,7 @@ "@types/multer": "^2.1.0", "@types/node": "^25.3.0", "@types/supertest": "^7.2.0", + "@types/tar-stream": "^3.1.4", "@types/yaml": "^1.9.6", "eslint": "^10.1.0", "nodemon": "^3.1.13", @@ -65,6 +68,83 @@ "vitest": "^4.1.0" } }, + "node_modules/@aws-crypto/crc32": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/crc32/-/crc32-5.2.0.tgz", + "integrity": "sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/util": "^5.2.0", + "@aws-sdk/types": "^3.222.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-crypto/crc32c": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/crc32c/-/crc32c-5.2.0.tgz", + "integrity": "sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/util": "^5.2.0", + "@aws-sdk/types": "^3.222.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-crypto/sha1-browser": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha1-browser/-/sha1-browser-5.2.0.tgz", + "integrity": "sha512-OH6lveCFfcDjX4dbAvCFSYUjJZjDr/3XJ3xHtjn3Oj5b9RjojQo8npoLeA/bNwkOkrSQ0wgrHzXk4tDRxGKJeg==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/supports-web-crypto": "^5.2.0", + "@aws-crypto/util": "^5.2.0", + "@aws-sdk/types": "^3.222.0", + "@aws-sdk/util-locate-window": "^3.0.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-crypto/sha1-browser/node_modules/@smithy/is-array-buffer": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz", + "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-crypto/sha1-browser/node_modules/@smithy/util-buffer-from": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz", + "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/is-array-buffer": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-crypto/sha1-browser/node_modules/@smithy/util-utf8": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", + "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/util-buffer-from": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/@aws-crypto/sha256-browser": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-5.2.0.tgz", @@ -241,23 +321,90 @@ "node": ">=20.0.0" } }, - "node_modules/@aws-sdk/core": { - "version": "3.973.27", - "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.973.27.tgz", - "integrity": "sha512-CUZ5m8hwMCH6OYI4Li/WgMfIEx10Q2PLI9Y3XOUTPGZJ53aZ0007jCv+X/ywsaERyKPdw5MRZWk877roQksQ4A==", + "node_modules/@aws-sdk/client-s3": { + "version": "3.1037.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.1037.0.tgz", + "integrity": "sha512-DBmA1jAW8ST6C4srBxeL1/RLIir/d8WOm4s4mi59mGp6mBktHM59Kwb7GuURaCO60cotuce5zr0sKpMLPcBQyA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "^3.973.7", - "@aws-sdk/xml-builder": "^3.972.17", - "@smithy/core": "^3.23.14", - "@smithy/node-config-provider": "^4.3.13", - "@smithy/property-provider": "^4.2.13", - "@smithy/protocol-http": "^5.3.13", - "@smithy/signature-v4": "^5.3.13", - "@smithy/smithy-client": "^4.12.9", - "@smithy/types": "^4.14.0", + "@aws-crypto/sha1-browser": "5.2.0", + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/core": "^3.974.5", + "@aws-sdk/credential-provider-node": "^3.972.36", + "@aws-sdk/middleware-bucket-endpoint": "^3.972.10", + "@aws-sdk/middleware-expect-continue": "^3.972.10", + "@aws-sdk/middleware-flexible-checksums": "^3.974.13", + "@aws-sdk/middleware-host-header": "^3.972.10", + "@aws-sdk/middleware-location-constraint": "^3.972.10", + "@aws-sdk/middleware-logger": "^3.972.10", + "@aws-sdk/middleware-recursion-detection": "^3.972.11", + "@aws-sdk/middleware-sdk-s3": "^3.972.34", + "@aws-sdk/middleware-ssec": "^3.972.10", + "@aws-sdk/middleware-user-agent": "^3.972.35", + "@aws-sdk/region-config-resolver": "^3.972.13", + "@aws-sdk/signature-v4-multi-region": "^3.996.22", + "@aws-sdk/types": "^3.973.8", + "@aws-sdk/util-endpoints": "^3.996.8", + "@aws-sdk/util-user-agent-browser": "^3.972.10", + "@aws-sdk/util-user-agent-node": "^3.973.21", + "@smithy/config-resolver": "^4.4.17", + "@smithy/core": "^3.23.17", + "@smithy/eventstream-serde-browser": "^4.2.14", + "@smithy/eventstream-serde-config-resolver": "^4.3.14", + "@smithy/eventstream-serde-node": "^4.2.14", + "@smithy/fetch-http-handler": "^5.3.17", + "@smithy/hash-blob-browser": "^4.2.15", + "@smithy/hash-node": "^4.2.14", + "@smithy/hash-stream-node": "^4.2.14", + "@smithy/invalid-dependency": "^4.2.14", + "@smithy/md5-js": "^4.2.14", + "@smithy/middleware-content-length": "^4.2.14", + "@smithy/middleware-endpoint": "^4.4.32", + "@smithy/middleware-retry": "^4.5.5", + "@smithy/middleware-serde": "^4.2.20", + "@smithy/middleware-stack": "^4.2.14", + "@smithy/node-config-provider": "^4.3.14", + "@smithy/node-http-handler": "^4.6.1", + "@smithy/protocol-http": "^5.3.14", + "@smithy/smithy-client": "^4.12.13", + "@smithy/types": "^4.14.1", + "@smithy/url-parser": "^4.2.14", "@smithy/util-base64": "^4.3.2", - "@smithy/util-middleware": "^4.2.13", + "@smithy/util-body-length-browser": "^4.2.2", + "@smithy/util-body-length-node": "^4.2.3", + "@smithy/util-defaults-mode-browser": "^4.3.49", + "@smithy/util-defaults-mode-node": "^4.2.54", + "@smithy/util-endpoints": "^3.4.2", + "@smithy/util-middleware": "^4.2.14", + "@smithy/util-retry": "^4.3.4", + "@smithy/util-stream": "^4.5.25", + "@smithy/util-utf8": "^4.2.2", + "@smithy/util-waiter": "^4.2.16", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/core": { + "version": "3.974.5", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.974.5.tgz", + "integrity": "sha512-lMPlYlYfQdNZhlkJgnkmESwrY+hNh3PljmZ+37oAqLNdJ6rnILAwFSyc6B3bJeDOtMORNnMQIej0aTRuOlDyhQ==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.973.8", + "@aws-sdk/xml-builder": "^3.972.19", + "@smithy/core": "^3.23.17", + "@smithy/node-config-provider": "^4.3.14", + "@smithy/property-provider": "^4.2.14", + "@smithy/protocol-http": "^5.3.14", + "@smithy/signature-v4": "^5.3.14", + "@smithy/smithy-client": "^4.12.13", + "@smithy/types": "^4.14.1", + "@smithy/util-base64": "^4.3.2", + "@smithy/util-middleware": "^4.2.14", + "@smithy/util-retry": "^4.3.4", "@smithy/util-utf8": "^4.2.2", "tslib": "^2.6.2" }, @@ -265,16 +412,29 @@ "node": ">=20.0.0" } }, - "node_modules/@aws-sdk/credential-provider-env": { - "version": "3.972.25", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.25.tgz", - "integrity": "sha512-6QfI0wv4jpG5CrdO/AO0JfZ2ux+tKwJPrUwmvxXF50vI5KIypKVGNF6b4vlkYEnKumDTI1NX2zUBi8JoU5QU3A==", + "node_modules/@aws-sdk/crc64-nvme": { + "version": "3.972.7", + "resolved": "https://registry.npmjs.org/@aws-sdk/crc64-nvme/-/crc64-nvme-3.972.7.tgz", + "integrity": "sha512-QUagVVBbC8gODCF6e1aV0mE2TXWB9Opz4k8EJFdNrujUVQm5R4AjJa1mpOqzwOuROBzqJU9zawzig7M96L8Ejg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.27", - "@aws-sdk/types": "^3.973.7", - "@smithy/property-provider": "^4.2.13", - "@smithy/types": "^4.14.0", + "@smithy/types": "^4.14.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-env": { + "version": "3.972.31", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.31.tgz", + "integrity": "sha512-X/yGB73LmDW/6MdDJGCDzZBUXnM3ys4vs9l+5ZTJmiEswDdP1OjeoAFlFjVGS9o4KB2wZWQ9KOfdVNSSK6Ep3w==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.974.5", + "@aws-sdk/types": "^3.973.8", + "@smithy/property-provider": "^4.2.14", + "@smithy/types": "^4.14.1", "tslib": "^2.6.2" }, "engines": { @@ -282,20 +442,20 @@ } }, "node_modules/@aws-sdk/credential-provider-http": { - "version": "3.972.27", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.27.tgz", - "integrity": "sha512-3V3Usj9Gs93h865DqN4M2NWJhC5kXU9BvZskfN3+69omuYlE3TZxOEcVQtBGLOloJB7BVfJKXVLqeNhOzHqSlQ==", + "version": "3.972.33", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.33.tgz", + "integrity": "sha512-c0ZF+lwoWVvX5iCaGKL5T/4DnIw88CGqxA0BcBs3U86mIp5EZYPVg+KSPkMXOyokmADvNewiMUfSG2uFwjRp0g==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.27", - "@aws-sdk/types": "^3.973.7", - "@smithy/fetch-http-handler": "^5.3.16", - "@smithy/node-http-handler": "^4.5.2", - "@smithy/property-provider": "^4.2.13", - "@smithy/protocol-http": "^5.3.13", - "@smithy/smithy-client": "^4.12.9", - "@smithy/types": "^4.14.0", - "@smithy/util-stream": "^4.5.22", + "@aws-sdk/core": "^3.974.5", + "@aws-sdk/types": "^3.973.8", + "@smithy/fetch-http-handler": "^5.3.17", + "@smithy/node-http-handler": "^4.6.1", + "@smithy/property-provider": "^4.2.14", + "@smithy/protocol-http": "^5.3.14", + "@smithy/smithy-client": "^4.12.13", + "@smithy/types": "^4.14.1", + "@smithy/util-stream": "^4.5.25", "tslib": "^2.6.2" }, "engines": { @@ -303,24 +463,24 @@ } }, "node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.972.29", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.972.29.tgz", - "integrity": "sha512-SiBuAnXecCbT/OpAf3vqyI/AVE3mTaYr9ShXLybxZiPLBiPCCOIWSGAtYYGQWMRvobBTiqOewaB+wcgMMZI2Aw==", + "version": "3.972.35", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.972.35.tgz", + "integrity": "sha512-jsU4u/cRkKFLKQS0k918FQ27fzXLG5ENiLWQMYE6581zLeI2hWh04ptlrvZMB3wJT/5d+vSzJk74X1CMFr4y8Q==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.27", - "@aws-sdk/credential-provider-env": "^3.972.25", - "@aws-sdk/credential-provider-http": "^3.972.27", - "@aws-sdk/credential-provider-login": "^3.972.29", - "@aws-sdk/credential-provider-process": "^3.972.25", - "@aws-sdk/credential-provider-sso": "^3.972.29", - "@aws-sdk/credential-provider-web-identity": "^3.972.29", - "@aws-sdk/nested-clients": "^3.996.19", - "@aws-sdk/types": "^3.973.7", - "@smithy/credential-provider-imds": "^4.2.13", - "@smithy/property-provider": "^4.2.13", - "@smithy/shared-ini-file-loader": "^4.4.8", - "@smithy/types": "^4.14.0", + "@aws-sdk/core": "^3.974.5", + "@aws-sdk/credential-provider-env": "^3.972.31", + "@aws-sdk/credential-provider-http": "^3.972.33", + "@aws-sdk/credential-provider-login": "^3.972.35", + "@aws-sdk/credential-provider-process": "^3.972.31", + "@aws-sdk/credential-provider-sso": "^3.972.35", + "@aws-sdk/credential-provider-web-identity": "^3.972.35", + "@aws-sdk/nested-clients": "^3.997.3", + "@aws-sdk/types": "^3.973.8", + "@smithy/credential-provider-imds": "^4.2.14", + "@smithy/property-provider": "^4.2.14", + "@smithy/shared-ini-file-loader": "^4.4.9", + "@smithy/types": "^4.14.1", "tslib": "^2.6.2" }, "engines": { @@ -328,18 +488,18 @@ } }, "node_modules/@aws-sdk/credential-provider-login": { - "version": "3.972.29", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.29.tgz", - "integrity": "sha512-OGOslTbOlxXexKMqhxCEbBQbUIfuhGxU5UXw3Fm56ypXHvrXH4aTt/xb5Y884LOoteP1QST1lVZzHfcTnWhiPQ==", + "version": "3.972.35", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.35.tgz", + "integrity": "sha512-5oa3j0cA50jPqgNhZ9XdJVopuzUf1klRb28/2MfLYWWiPi9DRVvbrBWT+DidbHTT36520VuXZJahQwR+YgSjrg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.27", - "@aws-sdk/nested-clients": "^3.996.19", - "@aws-sdk/types": "^3.973.7", - "@smithy/property-provider": "^4.2.13", - "@smithy/protocol-http": "^5.3.13", - "@smithy/shared-ini-file-loader": "^4.4.8", - "@smithy/types": "^4.14.0", + "@aws-sdk/core": "^3.974.5", + "@aws-sdk/nested-clients": "^3.997.3", + "@aws-sdk/types": "^3.973.8", + "@smithy/property-provider": "^4.2.14", + "@smithy/protocol-http": "^5.3.14", + "@smithy/shared-ini-file-loader": "^4.4.9", + "@smithy/types": "^4.14.1", "tslib": "^2.6.2" }, "engines": { @@ -347,22 +507,22 @@ } }, "node_modules/@aws-sdk/credential-provider-node": { - "version": "3.972.30", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.30.tgz", - "integrity": "sha512-FMnAnWxc8PG+ZrZ2OBKzY4luCUJhe9CG0B9YwYr4pzrYGLXBS2rl+UoUvjGbAwiptxRL6hyA3lFn03Bv1TLqTw==", + "version": "3.972.36", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.36.tgz", + "integrity": "sha512-4nT2T8Z7vH8KE9EdjEsuIlHpZSlcaK2PrKbQBjuUGU46BCCzF3WvP0u0Uiosni3Ykmmn4rWLVawoOCLotUtCbg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/credential-provider-env": "^3.972.25", - "@aws-sdk/credential-provider-http": "^3.972.27", - "@aws-sdk/credential-provider-ini": "^3.972.29", - "@aws-sdk/credential-provider-process": "^3.972.25", - "@aws-sdk/credential-provider-sso": "^3.972.29", - "@aws-sdk/credential-provider-web-identity": "^3.972.29", - "@aws-sdk/types": "^3.973.7", - "@smithy/credential-provider-imds": "^4.2.13", - "@smithy/property-provider": "^4.2.13", - "@smithy/shared-ini-file-loader": "^4.4.8", - "@smithy/types": "^4.14.0", + "@aws-sdk/credential-provider-env": "^3.972.31", + "@aws-sdk/credential-provider-http": "^3.972.33", + "@aws-sdk/credential-provider-ini": "^3.972.35", + "@aws-sdk/credential-provider-process": "^3.972.31", + "@aws-sdk/credential-provider-sso": "^3.972.35", + "@aws-sdk/credential-provider-web-identity": "^3.972.35", + "@aws-sdk/types": "^3.973.8", + "@smithy/credential-provider-imds": "^4.2.14", + "@smithy/property-provider": "^4.2.14", + "@smithy/shared-ini-file-loader": "^4.4.9", + "@smithy/types": "^4.14.1", "tslib": "^2.6.2" }, "engines": { @@ -370,16 +530,16 @@ } }, "node_modules/@aws-sdk/credential-provider-process": { - "version": "3.972.25", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.25.tgz", - "integrity": "sha512-HR7ynNRdNhNsdVCOCegy1HsfsRzozCOPtD3RzzT1JouuaHobWyRfJzCBue/3jP7gECHt+kQyZUvwg/cYLWurNQ==", + "version": "3.972.31", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.31.tgz", + "integrity": "sha512-eKeT4MXumpBJsrDLCYcSzIkFPVTFn/es7It2oogp2OhU/ic7P/+xzFpQx9ZhwtXS57Mc5S42BPWi7lHmvs/nYg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.27", - "@aws-sdk/types": "^3.973.7", - "@smithy/property-provider": "^4.2.13", - "@smithy/shared-ini-file-loader": "^4.4.8", - "@smithy/types": "^4.14.0", + "@aws-sdk/core": "^3.974.5", + "@aws-sdk/types": "^3.973.8", + "@smithy/property-provider": "^4.2.14", + "@smithy/shared-ini-file-loader": "^4.4.9", + "@smithy/types": "^4.14.1", "tslib": "^2.6.2" }, "engines": { @@ -387,18 +547,18 @@ } }, "node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.972.29", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.972.29.tgz", - "integrity": "sha512-HWv4SEq3jZDYPlwryZVef97+U8CxxRos5mK8sgGO1dQaFZpV5giZLzqGE5hkDmh2csYcBO2uf5XHjPTpZcJlig==", + "version": "3.972.35", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.972.35.tgz", + "integrity": "sha512-bCuBdfnj0KGDMdLp6utMTLiJcFN2ek9EgZinxQZZSc3FxjJ/HSqeqab2cjbnoNfy8RM6suDCsRkmVY1izp9I+A==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.27", - "@aws-sdk/nested-clients": "^3.996.19", - "@aws-sdk/token-providers": "3.1026.0", - "@aws-sdk/types": "^3.973.7", - "@smithy/property-provider": "^4.2.13", - "@smithy/shared-ini-file-loader": "^4.4.8", - "@smithy/types": "^4.14.0", + "@aws-sdk/core": "^3.974.5", + "@aws-sdk/nested-clients": "^3.997.3", + "@aws-sdk/token-providers": "3.1036.0", + "@aws-sdk/types": "^3.973.8", + "@smithy/property-provider": "^4.2.14", + "@smithy/shared-ini-file-loader": "^4.4.9", + "@smithy/types": "^4.14.1", "tslib": "^2.6.2" }, "engines": { @@ -406,17 +566,75 @@ } }, "node_modules/@aws-sdk/credential-provider-web-identity": { - "version": "3.972.29", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.29.tgz", - "integrity": "sha512-PdMBza1WEKEUPFEmMGCfnU2RYCz9MskU2e8JxjyUOsMKku7j9YaDKvbDi2dzC0ihFoM6ods2SbhfAAro+Gwlew==", + "version": "3.972.35", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.35.tgz", + "integrity": "sha512-swW6Bwvl8lanyEMtZOWE/oR6yqcRQH4HTQZUVsnDVgoXvRjRywpYpLv2BWwjUFyjPrqsdX6FeTkf4tMSe/qFTQ==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.27", - "@aws-sdk/nested-clients": "^3.996.19", - "@aws-sdk/types": "^3.973.7", - "@smithy/property-provider": "^4.2.13", - "@smithy/shared-ini-file-loader": "^4.4.8", - "@smithy/types": "^4.14.0", + "@aws-sdk/core": "^3.974.5", + "@aws-sdk/nested-clients": "^3.997.3", + "@aws-sdk/types": "^3.973.8", + "@smithy/property-provider": "^4.2.14", + "@smithy/shared-ini-file-loader": "^4.4.9", + "@smithy/types": "^4.14.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/middleware-bucket-endpoint": { + "version": "3.972.10", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.972.10.tgz", + "integrity": "sha512-Vbc2frZH7wXlMNd+ZZSXUEs/l1Sv8Jj4zUnIfwrYF5lwaLdXHZ9xx4U3rjUcaye3HRhFVc+E5DbBxpRAbB16BA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.973.8", + "@aws-sdk/util-arn-parser": "^3.972.3", + "@smithy/node-config-provider": "^4.3.14", + "@smithy/protocol-http": "^5.3.14", + "@smithy/types": "^4.14.1", + "@smithy/util-config-provider": "^4.2.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/middleware-expect-continue": { + "version": "3.972.10", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.972.10.tgz", + "integrity": "sha512-2Yn0f1Qiq/DjxYR3wfI3LokXnjOhFM7Ssn4LTdFDIxRMCE6I32MAsVnhPX1cUZsuVA9tiZtwwhlSLAtFGxAZlQ==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.973.8", + "@smithy/protocol-http": "^5.3.14", + "@smithy/types": "^4.14.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/middleware-flexible-checksums": { + "version": "3.974.13", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.974.13.tgz", + "integrity": "sha512-b6QUe2hQX9XsnCzp6mtzVaERhganDKeb8lmGL6pVhr7rRVH9S9keDFW7uKytuuqmcY5943FixoGqn/QL+sbUBA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/crc32": "5.2.0", + "@aws-crypto/crc32c": "5.2.0", + "@aws-crypto/util": "5.2.0", + "@aws-sdk/core": "^3.974.5", + "@aws-sdk/crc64-nvme": "^3.972.7", + "@aws-sdk/types": "^3.973.8", + "@smithy/is-array-buffer": "^4.2.2", + "@smithy/node-config-provider": "^4.3.14", + "@smithy/protocol-http": "^5.3.14", + "@smithy/types": "^4.14.1", + "@smithy/util-middleware": "^4.2.14", + "@smithy/util-stream": "^4.5.25", + "@smithy/util-utf8": "^4.2.2", "tslib": "^2.6.2" }, "engines": { @@ -424,14 +642,28 @@ } }, "node_modules/@aws-sdk/middleware-host-header": { - "version": "3.972.9", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.972.9.tgz", - "integrity": "sha512-je5vRdNw4SkuTnmRbFZLdye4sQ0faLt8kwka5wnnSU30q1mHO4X+idGEJOOE+Tn1ME7Oryn05xxkDvIb3UaLaQ==", + "version": "3.972.10", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.972.10.tgz", + "integrity": "sha512-IJSsIMeVQ8MMCPbuh1AbltkFhLBLXn7aejzfX5YKT/VLDHn++Dcz8886tXckE+wQssyPUhaXrJhdakO2VilRhg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "^3.973.7", - "@smithy/protocol-http": "^5.3.13", - "@smithy/types": "^4.14.0", + "@aws-sdk/types": "^3.973.8", + "@smithy/protocol-http": "^5.3.14", + "@smithy/types": "^4.14.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/middleware-location-constraint": { + "version": "3.972.10", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.972.10.tgz", + "integrity": "sha512-rI3NZvJcEvjoD0+0PI0iUAwlPw2IlSlhyvgBK/3WkKJQE/YiKFedd9dMN2lVacdNxPNhxL/jzQaKQdrGtQagjQ==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.973.8", + "@smithy/types": "^4.14.1", "tslib": "^2.6.2" }, "engines": { @@ -439,13 +671,13 @@ } }, "node_modules/@aws-sdk/middleware-logger": { - "version": "3.972.9", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.972.9.tgz", - "integrity": "sha512-HsVgDrruhqI28RkaXALm8grJ7Agc1wF6Et0xh6pom8NdO2VdO/SD9U/tPwUjewwK/pVoka+EShBxyCvgsPCtog==", + "version": "3.972.10", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.972.10.tgz", + "integrity": "sha512-OOuGvvz1Dm20SjZo5oEBePFqxt5nf8AwkNDSyUHvD9/bfNASmstcYxFAHUowy4n6Io7mWUZ04JURZwSBvyQanQ==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "^3.973.7", - "@smithy/types": "^4.14.0", + "@aws-sdk/types": "^3.973.8", + "@smithy/types": "^4.14.1", "tslib": "^2.6.2" }, "engines": { @@ -453,15 +685,54 @@ } }, "node_modules/@aws-sdk/middleware-recursion-detection": { - "version": "3.972.10", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.972.10.tgz", - "integrity": "sha512-RVQQbq5orQ/GHUnXvqEOj2HHPBJm+mM+ySwZKS5UaLBwra5ugRtiH09PLUoOZRl7a1YzaOzXSuGbn9iD5j60WQ==", + "version": "3.972.11", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.972.11.tgz", + "integrity": "sha512-+zz6f79Kj9V5qFK2P+D8Ehjnw4AhphAlCAsPjUqEcInA9umtSSKMrHbSagEeOIsDNuvVrH98bjRHcyQukTrhaQ==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "^3.973.7", + "@aws-sdk/types": "^3.973.8", "@aws/lambda-invoke-store": "^0.2.2", - "@smithy/protocol-http": "^5.3.13", - "@smithy/types": "^4.14.0", + "@smithy/protocol-http": "^5.3.14", + "@smithy/types": "^4.14.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/middleware-sdk-s3": { + "version": "3.972.34", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.972.34.tgz", + "integrity": "sha512-/UL96JKjsjdodcRRMKl99tLQvK6Oi9ptLC9iU1yiTF/ruaDX0mtBBtnLNZDxIZRJOCVOtB49ed1YaTadqygk8Q==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.974.5", + "@aws-sdk/types": "^3.973.8", + "@aws-sdk/util-arn-parser": "^3.972.3", + "@smithy/core": "^3.23.17", + "@smithy/node-config-provider": "^4.3.14", + "@smithy/protocol-http": "^5.3.14", + "@smithy/signature-v4": "^5.3.14", + "@smithy/smithy-client": "^4.12.13", + "@smithy/types": "^4.14.1", + "@smithy/util-config-provider": "^4.2.2", + "@smithy/util-middleware": "^4.2.14", + "@smithy/util-stream": "^4.5.25", + "@smithy/util-utf8": "^4.2.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/middleware-ssec": { + "version": "3.972.10", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.972.10.tgz", + "integrity": "sha512-Gli9A0u8EVVb+5bFDGS/QbSVg28w/wpEidg1ggVcSj65BDTdGR6punsOcVjqdiu1i42WHWo51MCvARPIIz9juw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.973.8", + "@smithy/types": "^4.14.1", "tslib": "^2.6.2" }, "engines": { @@ -469,18 +740,18 @@ } }, "node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.972.29", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.972.29.tgz", - "integrity": "sha512-f/sIRzuTfEjg6NsbMYvye2VsmnQoNgntntleQyx5uGacUYzszbfIlO3GcI6G6daWUmTm0IDZc11qMHWwF0o0mQ==", + "version": "3.972.35", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.972.35.tgz", + "integrity": "sha512-hOFWNOjVmOocpRlrU04nYxjMOeoe0Obu5AXEuhB8zblMCPl3cG1hdluQCZERRKFyhMQjwZnDbhSHjoMUjetFGw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.27", - "@aws-sdk/types": "^3.973.7", - "@aws-sdk/util-endpoints": "^3.996.6", - "@smithy/core": "^3.23.14", - "@smithy/protocol-http": "^5.3.13", - "@smithy/types": "^4.14.0", - "@smithy/util-retry": "^4.3.0", + "@aws-sdk/core": "^3.974.5", + "@aws-sdk/types": "^3.973.8", + "@aws-sdk/util-endpoints": "^3.996.8", + "@smithy/core": "^3.23.17", + "@smithy/protocol-http": "^5.3.14", + "@smithy/types": "^4.14.1", + "@smithy/util-retry": "^4.3.4", "tslib": "^2.6.2" }, "engines": { @@ -488,47 +759,48 @@ } }, "node_modules/@aws-sdk/nested-clients": { - "version": "3.996.19", - "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.996.19.tgz", - "integrity": "sha512-uFkmCDXvmQYLanlYdOFS0+MQWkrj9wPMt/ZCc/0J0fjPim6F5jBVBmEomvGY/j77ILW6GTPwN22Jc174Mhkw6Q==", + "version": "3.997.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.997.3.tgz", + "integrity": "sha512-SivE6GP228IVgfsrr2c/vqTg95X0Qj39Yw4uIrcddpkUzIltNMoNOR62leHOLhODfjv9K8X2mPTwS69A5kT0nQ==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "^3.973.27", - "@aws-sdk/middleware-host-header": "^3.972.9", - "@aws-sdk/middleware-logger": "^3.972.9", - "@aws-sdk/middleware-recursion-detection": "^3.972.10", - "@aws-sdk/middleware-user-agent": "^3.972.29", - "@aws-sdk/region-config-resolver": "^3.972.11", - "@aws-sdk/types": "^3.973.7", - "@aws-sdk/util-endpoints": "^3.996.6", - "@aws-sdk/util-user-agent-browser": "^3.972.9", - "@aws-sdk/util-user-agent-node": "^3.973.15", - "@smithy/config-resolver": "^4.4.14", - "@smithy/core": "^3.23.14", - "@smithy/fetch-http-handler": "^5.3.16", - "@smithy/hash-node": "^4.2.13", - "@smithy/invalid-dependency": "^4.2.13", - "@smithy/middleware-content-length": "^4.2.13", - "@smithy/middleware-endpoint": "^4.4.29", - "@smithy/middleware-retry": "^4.5.0", - "@smithy/middleware-serde": "^4.2.17", - "@smithy/middleware-stack": "^4.2.13", - "@smithy/node-config-provider": "^4.3.13", - "@smithy/node-http-handler": "^4.5.2", - "@smithy/protocol-http": "^5.3.13", - "@smithy/smithy-client": "^4.12.9", - "@smithy/types": "^4.14.0", - "@smithy/url-parser": "^4.2.13", + "@aws-sdk/core": "^3.974.5", + "@aws-sdk/middleware-host-header": "^3.972.10", + "@aws-sdk/middleware-logger": "^3.972.10", + "@aws-sdk/middleware-recursion-detection": "^3.972.11", + "@aws-sdk/middleware-user-agent": "^3.972.35", + "@aws-sdk/region-config-resolver": "^3.972.13", + "@aws-sdk/signature-v4-multi-region": "^3.996.22", + "@aws-sdk/types": "^3.973.8", + "@aws-sdk/util-endpoints": "^3.996.8", + "@aws-sdk/util-user-agent-browser": "^3.972.10", + "@aws-sdk/util-user-agent-node": "^3.973.21", + "@smithy/config-resolver": "^4.4.17", + "@smithy/core": "^3.23.17", + "@smithy/fetch-http-handler": "^5.3.17", + "@smithy/hash-node": "^4.2.14", + "@smithy/invalid-dependency": "^4.2.14", + "@smithy/middleware-content-length": "^4.2.14", + "@smithy/middleware-endpoint": "^4.4.32", + "@smithy/middleware-retry": "^4.5.5", + "@smithy/middleware-serde": "^4.2.20", + "@smithy/middleware-stack": "^4.2.14", + "@smithy/node-config-provider": "^4.3.14", + "@smithy/node-http-handler": "^4.6.1", + "@smithy/protocol-http": "^5.3.14", + "@smithy/smithy-client": "^4.12.13", + "@smithy/types": "^4.14.1", + "@smithy/url-parser": "^4.2.14", "@smithy/util-base64": "^4.3.2", "@smithy/util-body-length-browser": "^4.2.2", "@smithy/util-body-length-node": "^4.2.3", - "@smithy/util-defaults-mode-browser": "^4.3.45", - "@smithy/util-defaults-mode-node": "^4.2.49", - "@smithy/util-endpoints": "^3.3.4", - "@smithy/util-middleware": "^4.2.13", - "@smithy/util-retry": "^4.3.0", + "@smithy/util-defaults-mode-browser": "^4.3.49", + "@smithy/util-defaults-mode-node": "^4.2.54", + "@smithy/util-endpoints": "^3.4.2", + "@smithy/util-middleware": "^4.2.14", + "@smithy/util-retry": "^4.3.4", "@smithy/util-utf8": "^4.2.2", "tslib": "^2.6.2" }, @@ -537,15 +809,32 @@ } }, "node_modules/@aws-sdk/region-config-resolver": { - "version": "3.972.11", - "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.972.11.tgz", - "integrity": "sha512-6Q8B1dcx6BBqUTY1Mc/eROKA0FImEEY5VPSd6AGPEUf0ErjExz4snVqa9kNJSoVDV1rKaNf3qrWojgcKW+SdDg==", + "version": "3.972.13", + "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.972.13.tgz", + "integrity": "sha512-CvJ2ZIjK/jVD/lbOpowBVElJyC1YxLTIJ13yM0AEo0t2v7swOzGjSA6lJGH+DwZXQhcjUjoYwc8bVYCX5MDr1A==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "^3.973.7", - "@smithy/config-resolver": "^4.4.14", - "@smithy/node-config-provider": "^4.3.13", - "@smithy/types": "^4.14.0", + "@aws-sdk/types": "^3.973.8", + "@smithy/config-resolver": "^4.4.17", + "@smithy/node-config-provider": "^4.3.14", + "@smithy/types": "^4.14.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/signature-v4-multi-region": { + "version": "3.996.22", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.996.22.tgz", + "integrity": "sha512-/rXhMXteD+BqhFd0nYprAgcZ/KtU+963uftPqd3tiFcFfooHZINXUGtOmo2SQjRVauCTNqIEzkwuSETdZFqTTA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/middleware-sdk-s3": "^3.972.34", + "@aws-sdk/types": "^3.973.8", + "@smithy/protocol-http": "^5.3.14", + "@smithy/signature-v4": "^5.3.14", + "@smithy/types": "^4.14.1", "tslib": "^2.6.2" }, "engines": { @@ -553,17 +842,17 @@ } }, "node_modules/@aws-sdk/token-providers": { - "version": "3.1026.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.1026.0.tgz", - "integrity": "sha512-Ieq/HiRrbEtrYP387Nes0XlR7H1pJiJOZKv+QyQzMYpvTiDs0VKy2ZB3E2Zf+aFovWmeE7lRE4lXyF7dYM6GgA==", + "version": "3.1036.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.1036.0.tgz", + "integrity": "sha512-aNSJ6jjDYayxN9ZA1JpycVScX93Lx03kKZ1EXt3DGOTahcWVLJj3oLAlop0xKP+vP2Ga2t49p1tEaMkTbCCaZA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.27", - "@aws-sdk/nested-clients": "^3.996.19", - "@aws-sdk/types": "^3.973.7", - "@smithy/property-provider": "^4.2.13", - "@smithy/shared-ini-file-loader": "^4.4.8", - "@smithy/types": "^4.14.0", + "@aws-sdk/core": "^3.974.5", + "@aws-sdk/nested-clients": "^3.997.3", + "@aws-sdk/types": "^3.973.8", + "@smithy/property-provider": "^4.2.14", + "@smithy/shared-ini-file-loader": "^4.4.9", + "@smithy/types": "^4.14.1", "tslib": "^2.6.2" }, "engines": { @@ -571,12 +860,24 @@ } }, "node_modules/@aws-sdk/types": { - "version": "3.973.7", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.973.7.tgz", - "integrity": "sha512-reXRwoJ6CfChoqAsBszUYajAF8Z2LRE+CRcKocvFSMpIiLOtYU3aJ9trmn6VVPAzbbY5LXF+FfmUslbXk1SYFg==", + "version": "3.973.8", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.973.8.tgz", + "integrity": "sha512-gjlAdtHMbtR9X5iIhVUvbVcy55KnznpC6bkDUWW9z915bi0ckdUr5cjf16Kp6xq0bP5HBD2xzgbL9F9Quv5vUw==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.14.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@aws-sdk/util-arn-parser": { + "version": "3.972.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.972.3.tgz", + "integrity": "sha512-HzSD8PMFrvgi2Kserxuff5VitNq2sgf3w9qxmskKDiDTThWfVteJxuCS9JXiPIPtmCrp+7N9asfIaVhBFORllA==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.14.0", "tslib": "^2.6.2" }, "engines": { @@ -584,15 +885,15 @@ } }, "node_modules/@aws-sdk/util-endpoints": { - "version": "3.996.6", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.996.6.tgz", - "integrity": "sha512-2nUQ+2ih7CShuKHpGSIYvvAIOHy52dOZguYG36zptBukhw6iFwcvGfG0tes0oZFWQqEWvgZe9HLWaNlvXGdOrg==", + "version": "3.996.8", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.996.8.tgz", + "integrity": "sha512-oOZHcRDihk5iEe5V25NVWg45b3qEA8OpHWVdU/XQh8Zj4heVPAJqWvMphQnU7LkufmUo10EpvFPZuQMiFLJK3g==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "^3.973.7", - "@smithy/types": "^4.14.0", - "@smithy/url-parser": "^4.2.13", - "@smithy/util-endpoints": "^3.3.4", + "@aws-sdk/types": "^3.973.8", + "@smithy/types": "^4.14.1", + "@smithy/url-parser": "^4.2.14", + "@smithy/util-endpoints": "^3.4.2", "tslib": "^2.6.2" }, "engines": { @@ -612,27 +913,27 @@ } }, "node_modules/@aws-sdk/util-user-agent-browser": { - "version": "3.972.9", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.972.9.tgz", - "integrity": "sha512-sn/LMzTbGjYqCCF24390WxPd6hkpoSptiUn5DzVp4cD71yqw+yGEGm1YCxyEoPXyc8qciM8UzLJcZBFslxo5Uw==", + "version": "3.972.10", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.972.10.tgz", + "integrity": "sha512-FAzqXvfEssGdSIz8ejatan0bOdx1qefBWKF/gWmVBXIP1HkS7v/wjjaqrAGGKvyihrXTXW00/2/1nTJtxpXz7g==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "^3.973.7", - "@smithy/types": "^4.14.0", + "@aws-sdk/types": "^3.973.8", + "@smithy/types": "^4.14.1", "bowser": "^2.11.0", "tslib": "^2.6.2" } }, "node_modules/@aws-sdk/util-user-agent-node": { - "version": "3.973.15", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.973.15.tgz", - "integrity": "sha512-fYn3s9PtKdgQkczGZCFMgkNEe8aq1JCVbnRqjqN9RSVW43xn2RV9xdcZ3z01a48Jpkuh/xCmBKJxdLOo4Ozg7w==", + "version": "3.973.21", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.973.21.tgz", + "integrity": "sha512-Av4UHTcAWgdvbN0IP9pbtf4Qa1+6LtJqQdZWj5pLn5J67w0pnJJAZZ+7JPPcj2KN3378zD2JDM9DwJKEyvyMTQ==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/middleware-user-agent": "^3.972.29", - "@aws-sdk/types": "^3.973.7", - "@smithy/node-config-provider": "^4.3.13", - "@smithy/types": "^4.14.0", + "@aws-sdk/middleware-user-agent": "^3.972.35", + "@aws-sdk/types": "^3.973.8", + "@smithy/node-config-provider": "^4.3.14", + "@smithy/types": "^4.14.1", "@smithy/util-config-provider": "^4.2.2", "tslib": "^2.6.2" }, @@ -649,13 +950,13 @@ } }, "node_modules/@aws-sdk/xml-builder": { - "version": "3.972.17", - "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.972.17.tgz", - "integrity": "sha512-Ra7hjqAZf1OXRRMueB13qex7mFJRDK/pgCvdSFemXBT8KCGnQDPoKzHY1SjN+TjJVmnpSF14W5tJ1vDamFu+Gg==", + "version": "3.972.19", + "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.972.19.tgz", + "integrity": "sha512-Cw8IOMdBUEIl8ZlhRC3Dc/E64D5B5/8JhV6vhPLiPfJwcRC84S6F8aBOIi/N4vR9ZyA4I5Cc0Ateb/9EHaJXeQ==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.14.0", - "fast-xml-parser": "5.5.8", + "@smithy/types": "^4.14.1", + "fast-xml-parser": "5.7.1", "tslib": "^2.6.2" }, "engines": { @@ -989,6 +1290,18 @@ "url": "https://paulmillr.com/funding/" } }, + "node_modules/@nodable/entities": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@nodable/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-nyT7T3nbMyBI/lvr6L5TyWbFJAI9FTgVRakNoBqCD+PmID8DzFrrNdLLtHMwMszOtqZa8PAOV24ZqDnQrhQINA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/nodable" + } + ], + "license": "MIT" + }, "node_modules/@otplib/core": { "version": "12.0.1", "resolved": "https://registry.npmjs.org/@otplib/core/-/core-12.0.1.tgz", @@ -1385,17 +1698,42 @@ "dev": true, "license": "MIT" }, - "node_modules/@smithy/config-resolver": { - "version": "4.4.14", - "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-4.4.14.tgz", - "integrity": "sha512-N55f8mPEccpzKetUagdvmAy8oohf0J5cuj9jLI1TaSceRlq0pJsIZepY3kmAXAhyxqXPV6hDerDQhqQPKWgAoQ==", + "node_modules/@smithy/chunked-blob-reader": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader/-/chunked-blob-reader-5.2.2.tgz", + "integrity": "sha512-St+kVicSyayWQca+I1rGitaOEH6uKgE8IUWoYnnEX26SWdWQcL6LvMSD19Lg+vYHKdT9B2Zuu7rd3i6Wnyb/iw==", "license": "Apache-2.0", "dependencies": { - "@smithy/node-config-provider": "^4.3.13", - "@smithy/types": "^4.14.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/chunked-blob-reader-native": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-4.2.3.tgz", + "integrity": "sha512-jA5k5Udn7Y5717L86h4EIv06wIr3xn8GM1qHRi/Nf31annXcXHJjBKvgztnbn2TxH3xWrPBfgwHsOwZf0UmQWw==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/util-base64": "^4.3.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/config-resolver": { + "version": "4.4.17", + "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-4.4.17.tgz", + "integrity": "sha512-TzDZcAnhTyAHbXVxWZo7/tEcrIeFq20IBk8So3OLOetWpR8EwY/yEqBMBFaJMeyEiREDq4NfEl+qO3OAUD+vbQ==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/node-config-provider": "^4.3.14", + "@smithy/types": "^4.14.1", "@smithy/util-config-provider": "^4.2.2", - "@smithy/util-endpoints": "^3.3.4", - "@smithy/util-middleware": "^4.2.13", + "@smithy/util-endpoints": "^3.4.2", + "@smithy/util-middleware": "^4.2.14", "tslib": "^2.6.2" }, "engines": { @@ -1403,18 +1741,18 @@ } }, "node_modules/@smithy/core": { - "version": "3.23.14", - "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.23.14.tgz", - "integrity": "sha512-vJ0IhpZxZAkFYOegMKSrxw7ujhhT2pass/1UEcZ4kfl5srTAqtPU5I7MdYQoreVas3204ykCiNhY1o7Xlz6Yyg==", + "version": "3.23.17", + "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.23.17.tgz", + "integrity": "sha512-x7BlLbUFL8NWCGjMF9C+1N5cVCxcPa7g6Tv9B4A2luWx3be3oU8hQ96wIwxe/s7OhIzvoJH73HAUSg5JXVlEtQ==", "license": "Apache-2.0", "dependencies": { - "@smithy/protocol-http": "^5.3.13", - "@smithy/types": "^4.14.0", - "@smithy/url-parser": "^4.2.13", + "@smithy/protocol-http": "^5.3.14", + "@smithy/types": "^4.14.1", + "@smithy/url-parser": "^4.2.14", "@smithy/util-base64": "^4.3.2", "@smithy/util-body-length-browser": "^4.2.2", - "@smithy/util-middleware": "^4.2.13", - "@smithy/util-stream": "^4.5.22", + "@smithy/util-middleware": "^4.2.14", + "@smithy/util-stream": "^4.5.25", "@smithy/util-utf8": "^4.2.2", "@smithy/uuid": "^1.1.2", "tslib": "^2.6.2" @@ -1424,15 +1762,85 @@ } }, "node_modules/@smithy/credential-provider-imds": { - "version": "4.2.13", - "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.2.13.tgz", - "integrity": "sha512-wboCPijzf6RJKLOvnjDAiBxGSmSnGXj35o5ZAWKDaHa/cvQ5U3ZJ13D4tMCE8JG4dxVAZFy/P0x/V9CwwdfULQ==", + "version": "4.2.14", + "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.2.14.tgz", + "integrity": "sha512-Au28zBN48ZAoXdooGUHemuVBrkE+Ie6RPmGNIAJsFqj33Vhb6xAgRifUydZ2aY+M+KaMAETAlKk5NC5h1G7wpg==", "license": "Apache-2.0", "dependencies": { - "@smithy/node-config-provider": "^4.3.13", - "@smithy/property-provider": "^4.2.13", - "@smithy/types": "^4.14.0", - "@smithy/url-parser": "^4.2.13", + "@smithy/node-config-provider": "^4.3.14", + "@smithy/property-provider": "^4.2.14", + "@smithy/types": "^4.14.1", + "@smithy/url-parser": "^4.2.14", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/eventstream-codec": { + "version": "4.2.14", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-4.2.14.tgz", + "integrity": "sha512-erZq0nOIpzfeZdCyzZjdJb4nVSKLUmSkaQUVkRGQTXs30gyUGeKnrYEg+Xe1W5gE3aReS7IgsvANwVPxSzY6Pw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/crc32": "5.2.0", + "@smithy/types": "^4.14.1", + "@smithy/util-hex-encoding": "^4.2.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/eventstream-serde-browser": { + "version": "4.2.14", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-4.2.14.tgz", + "integrity": "sha512-8IelTCtTctWRbb+0Dcy+C0aICh1qa0qWXqgjcXDmMuCvPJRnv26hiDZoAau2ILOniki65mCPKqOQs/BaWvO4CQ==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/eventstream-serde-universal": "^4.2.14", + "@smithy/types": "^4.14.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/eventstream-serde-config-resolver": { + "version": "4.3.14", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-4.3.14.tgz", + "integrity": "sha512-sqHiHpYRYo3FJlaIxD1J8PhbcmJAm7IuM16mVnwSkCToD7g00IBZzKuiLNMGmftULmEUX6/UAz8/NN5uMP8bVA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.14.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/eventstream-serde-node": { + "version": "4.2.14", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-4.2.14.tgz", + "integrity": "sha512-Ht/8BuGlKfFTy0H3+8eEu0vdpwGztCnaLLXtpXNdQqiR7Hj4vFScU3T436vRAjATglOIPjJXronY+1WxxNLSiw==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/eventstream-serde-universal": "^4.2.14", + "@smithy/types": "^4.14.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/eventstream-serde-universal": { + "version": "4.2.14", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-4.2.14.tgz", + "integrity": "sha512-lWyt4T2XQZUZgK3tQ3Wn0w3XBvZsK/vjTuJl6bXbnGZBHH0ZUSONTYiK9TgjTTzU54xQr3DRFwpjmhp0oLm3gg==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/eventstream-codec": "^4.2.14", + "@smithy/types": "^4.14.1", "tslib": "^2.6.2" }, "engines": { @@ -1440,14 +1848,14 @@ } }, "node_modules/@smithy/fetch-http-handler": { - "version": "5.3.16", - "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-5.3.16.tgz", - "integrity": "sha512-nYDRUIvNd4mFmuXraRWt6w5UsZTNqtj4hXJA/iiOD4tuseIdLP9Lq38teH/SZTcIFCa2f+27o7hYpIsWktJKEQ==", + "version": "5.3.17", + "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-5.3.17.tgz", + "integrity": "sha512-bXOvQzaSm6MnmLaWA1elgfQcAtN4UP3vXqV97bHuoOrHQOJiLT3ds6o9eo5bqd0TJfRFpzdGnDQdW3FACiAVdw==", "license": "Apache-2.0", "dependencies": { - "@smithy/protocol-http": "^5.3.13", - "@smithy/querystring-builder": "^4.2.13", - "@smithy/types": "^4.14.0", + "@smithy/protocol-http": "^5.3.14", + "@smithy/querystring-builder": "^4.2.14", + "@smithy/types": "^4.14.1", "@smithy/util-base64": "^4.3.2", "tslib": "^2.6.2" }, @@ -1455,13 +1863,28 @@ "node": ">=18.0.0" } }, - "node_modules/@smithy/hash-node": { - "version": "4.2.13", - "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-4.2.13.tgz", - "integrity": "sha512-4/oy9h0jjmY80a2gOIo75iLl8TOPhmtx4E2Hz+PfMjvx/vLtGY4TMU/35WRyH2JHPfT5CVB38u4JRow7gnmzJA==", + "node_modules/@smithy/hash-blob-browser": { + "version": "4.2.15", + "resolved": "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-4.2.15.tgz", + "integrity": "sha512-0PJ4Al3fg2nM4qKrAIxyNcApgqHAXcBkN8FeizOz69z0rb26uZ6lMESYtxegaTlXB5Hj84JfwMPavMrwDMjucA==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.14.0", + "@smithy/chunked-blob-reader": "^5.2.2", + "@smithy/chunked-blob-reader-native": "^4.2.3", + "@smithy/types": "^4.14.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/hash-node": { + "version": "4.2.14", + "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-4.2.14.tgz", + "integrity": "sha512-8ZBDY2DD4wr+GGjTpPtiglEsqr0lUP+KHqgZcWczFf6qeZ/YRjMIOoQWVQlmwu7EtxKTd8YXD8lblmYcpBIA1g==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.14.1", "@smithy/util-buffer-from": "^4.2.2", "@smithy/util-utf8": "^4.2.2", "tslib": "^2.6.2" @@ -1470,13 +1893,27 @@ "node": ">=18.0.0" } }, - "node_modules/@smithy/invalid-dependency": { - "version": "4.2.13", - "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-4.2.13.tgz", - "integrity": "sha512-jvC0RB/8BLj2SMIkY0Npl425IdnxZJxInpZJbu563zIRnVjpDMXevU3VMCRSabaLB0kf/eFIOusdGstrLJ8IDg==", + "node_modules/@smithy/hash-stream-node": { + "version": "4.2.14", + "resolved": "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-4.2.14.tgz", + "integrity": "sha512-tw4GANWkZPb6+BdD4Fgucqzey2+r73Z/GRo9zklsCdwrnxxumUV83ZIaBDdudV4Ylazw3EPTiJZhpX42105ruQ==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.14.0", + "@smithy/types": "^4.14.1", + "@smithy/util-utf8": "^4.2.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/invalid-dependency": { + "version": "4.2.14", + "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-4.2.14.tgz", + "integrity": "sha512-c21qJiTSb25xvvOp+H2TNZzPCngrvl5vIPqPB8zQ/DmJF4QWXO19x1dWfMJZ6wZuuWUPPm0gV8C0cU3+ifcWuw==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.14.1", "tslib": "^2.6.2" }, "engines": { @@ -1495,14 +1932,28 @@ "node": ">=18.0.0" } }, - "node_modules/@smithy/middleware-content-length": { - "version": "4.2.13", - "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-4.2.13.tgz", - "integrity": "sha512-IPMLm/LE4AZwu6qiE8Rr8vJsWhs9AtOdySRXrOM7xnvclp77Tyh7hMs/FRrMf26kgIe67vFJXXOSmVxS7oKeig==", + "node_modules/@smithy/md5-js": { + "version": "4.2.14", + "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-4.2.14.tgz", + "integrity": "sha512-V2v0vx+h0iUSNG1Alt+GNBMSLGCrl9iVsdd+Ap67HPM9PN479x12V8LkuMoKImNZxn3MXeuyUjls+/7ZACZghA==", "license": "Apache-2.0", "dependencies": { - "@smithy/protocol-http": "^5.3.13", - "@smithy/types": "^4.14.0", + "@smithy/types": "^4.14.1", + "@smithy/util-utf8": "^4.2.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/middleware-content-length": { + "version": "4.2.14", + "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-4.2.14.tgz", + "integrity": "sha512-xhHq7fX4/3lv5NHxLUk3OeEvl0xZ+Ek3qIbWaCL4f9JwgDZEclPBElljaZCAItdGPQl/kSM4LPMOpy1MYgprpw==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/protocol-http": "^5.3.14", + "@smithy/types": "^4.14.1", "tslib": "^2.6.2" }, "engines": { @@ -1510,18 +1961,18 @@ } }, "node_modules/@smithy/middleware-endpoint": { - "version": "4.4.29", - "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-4.4.29.tgz", - "integrity": "sha512-R9Q/58U+qBiSARGWbAbFLczECg/RmysRksX6Q8BaQEpt75I7LI6WGDZnjuC9GXSGKljEbA7N118LhGaMbfrTXw==", + "version": "4.4.32", + "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-4.4.32.tgz", + "integrity": "sha512-ZZkgyjnJppiZbIm6Qbx92pbXYi1uzenIvGhBSCDlc7NwuAkiqSgS75j1czAD25ZLs2FjMjYy1q7gyRVWG6JA0Q==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.23.14", - "@smithy/middleware-serde": "^4.2.17", - "@smithy/node-config-provider": "^4.3.13", - "@smithy/shared-ini-file-loader": "^4.4.8", - "@smithy/types": "^4.14.0", - "@smithy/url-parser": "^4.2.13", - "@smithy/util-middleware": "^4.2.13", + "@smithy/core": "^3.23.17", + "@smithy/middleware-serde": "^4.2.20", + "@smithy/node-config-provider": "^4.3.14", + "@smithy/shared-ini-file-loader": "^4.4.9", + "@smithy/types": "^4.14.1", + "@smithy/url-parser": "^4.2.14", + "@smithy/util-middleware": "^4.2.14", "tslib": "^2.6.2" }, "engines": { @@ -1529,19 +1980,19 @@ } }, "node_modules/@smithy/middleware-retry": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-4.5.0.tgz", - "integrity": "sha512-/NzISn4grj/BRFVua/xnQwF+7fakYZgimpw2dfmlPgcqecBMKxpB9g5mLYRrmBD5OrPoODokw4Vi1hrSR4zRyw==", + "version": "4.5.5", + "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-4.5.5.tgz", + "integrity": "sha512-wnYOpB5vATFKWrY2Z9Alb0KhjZI6AbzU6Fbz3Hq2GnURdRYWB4q+qWivQtSTwXcmWUA3MZ6krfwL6Cq5MAbxsA==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.23.14", - "@smithy/node-config-provider": "^4.3.13", - "@smithy/protocol-http": "^5.3.13", - "@smithy/service-error-classification": "^4.2.13", - "@smithy/smithy-client": "^4.12.9", - "@smithy/types": "^4.14.0", - "@smithy/util-middleware": "^4.2.13", - "@smithy/util-retry": "^4.3.0", + "@smithy/core": "^3.23.17", + "@smithy/node-config-provider": "^4.3.14", + "@smithy/protocol-http": "^5.3.14", + "@smithy/service-error-classification": "^4.3.0", + "@smithy/smithy-client": "^4.12.13", + "@smithy/types": "^4.14.1", + "@smithy/util-middleware": "^4.2.14", + "@smithy/util-retry": "^4.3.4", "@smithy/uuid": "^1.1.2", "tslib": "^2.6.2" }, @@ -1550,14 +2001,14 @@ } }, "node_modules/@smithy/middleware-serde": { - "version": "4.2.17", - "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-4.2.17.tgz", - "integrity": "sha512-0T2mcaM6v9W1xku86Dk0bEW7aEseG6KenFkPK98XNw0ZhOqOiD1MrMsdnQw9QsL3/Oa85T53iSMlm0SZdSuIEQ==", + "version": "4.2.20", + "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-4.2.20.tgz", + "integrity": "sha512-Lx9JMO9vArPtiChE3wbEZ5akMIDQpWQtlu90lhACQmNOXcGXRbaDywMHDzuDZ2OkZzP+9wQfZi3YJT9F67zTQQ==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.23.14", - "@smithy/protocol-http": "^5.3.13", - "@smithy/types": "^4.14.0", + "@smithy/core": "^3.23.17", + "@smithy/protocol-http": "^5.3.14", + "@smithy/types": "^4.14.1", "tslib": "^2.6.2" }, "engines": { @@ -1565,12 +2016,12 @@ } }, "node_modules/@smithy/middleware-stack": { - "version": "4.2.13", - "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-4.2.13.tgz", - "integrity": "sha512-g72jN/sGDLyTanrCLH9fhg3oysO3f7tQa6eWWsMyn2BiYNCgjF24n4/I9wff/5XidFvjj9ilipAoQrurTUrLvw==", + "version": "4.2.14", + "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-4.2.14.tgz", + "integrity": "sha512-2dvkUKLuFdKsCRmOE4Mn63co0Djtsm+JMh0bYZQupN1pJwMeE8FmQmRLLzzEMN0dnNi7CDCYYH8F0EVwWiPBeA==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.14.0", + "@smithy/types": "^4.14.1", "tslib": "^2.6.2" }, "engines": { @@ -1578,14 +2029,14 @@ } }, "node_modules/@smithy/node-config-provider": { - "version": "4.3.13", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-4.3.13.tgz", - "integrity": "sha512-iGxQ04DsKXLckbgnX4ipElrOTk+IHgTyu0q0WssZfYhDm9CQWHmu6cOeI5wmWRxpXbBDhIIfXMWz5tPEtcVqbw==", + "version": "4.3.14", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-4.3.14.tgz", + "integrity": "sha512-S+gFjyo/weSVL0P1b9Ts8C/CwIfNCgUPikk3sl6QVsfE/uUuO+QsF+NsE/JkpvWqqyz1wg7HFdiaZuj5CoBMRg==", "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^4.2.13", - "@smithy/shared-ini-file-loader": "^4.4.8", - "@smithy/types": "^4.14.0", + "@smithy/property-provider": "^4.2.14", + "@smithy/shared-ini-file-loader": "^4.4.9", + "@smithy/types": "^4.14.1", "tslib": "^2.6.2" }, "engines": { @@ -1593,14 +2044,14 @@ } }, "node_modules/@smithy/node-http-handler": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.5.2.tgz", - "integrity": "sha512-/oD7u8M0oj2ZTFw7GkuuHWpIxtWdLlnyNkbrWcyVYhd5RJNDuczdkb0wfnQICyNFrVPlr8YHOhamjNy3zidhmA==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.6.1.tgz", + "integrity": "sha512-iB+orM4x3xrr57X3YaXazfKnntl0LHlZB1kcXSGzMV1Tt0+YwEjGlbjk/44qEGtBzXAz6yFDzkYTKSV6Pj2HUg==", "license": "Apache-2.0", "dependencies": { - "@smithy/protocol-http": "^5.3.13", - "@smithy/querystring-builder": "^4.2.13", - "@smithy/types": "^4.14.0", + "@smithy/protocol-http": "^5.3.14", + "@smithy/querystring-builder": "^4.2.14", + "@smithy/types": "^4.14.1", "tslib": "^2.6.2" }, "engines": { @@ -1608,12 +2059,12 @@ } }, "node_modules/@smithy/property-provider": { - "version": "4.2.13", - "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-4.2.13.tgz", - "integrity": "sha512-bGzUCthxRmezuxkbu9wD33wWg9KX3hJpCXpQ93vVkPrHn9ZW6KNNdY5xAUWNuRCwQ+VyboFuWirG1lZhhkcyRQ==", + "version": "4.2.14", + "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-4.2.14.tgz", + "integrity": "sha512-WuM31CgfsnQ/10i7NYr0PyxqknD72Y5uMfUMVSniPjbEPceiTErb4eIqJQ+pdxNEAUEWrewrGjIRjVbVHsxZiQ==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.14.0", + "@smithy/types": "^4.14.1", "tslib": "^2.6.2" }, "engines": { @@ -1621,12 +2072,12 @@ } }, "node_modules/@smithy/protocol-http": { - "version": "5.3.13", - "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-5.3.13.tgz", - "integrity": "sha512-+HsmuJUF4u8POo6s8/a2Yb/AQ5t/YgLovCuHF9oxbocqv+SZ6gd8lC2duBFiCA/vFHoHQhoq7QjqJqZC6xOxxg==", + "version": "5.3.14", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-5.3.14.tgz", + "integrity": "sha512-dN5F8kHx8RNU0r+pCwNmFZyz6ChjMkzShy/zup6MtkRmmix4vZzJdW+di7x//b1LiynIev88FM18ie+wwPcQtQ==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.14.0", + "@smithy/types": "^4.14.1", "tslib": "^2.6.2" }, "engines": { @@ -1634,12 +2085,12 @@ } }, "node_modules/@smithy/querystring-builder": { - "version": "4.2.13", - "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-4.2.13.tgz", - "integrity": "sha512-tG4aOYFCZdPMjbgfhnIQ322H//ojujldp1SrHPHpBSb3NqgUp3dwiUGRJzie87hS1DYwWGqDuPaowoDF+rYCbQ==", + "version": "4.2.14", + "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-4.2.14.tgz", + "integrity": "sha512-XYA5Z0IqTeF+5XDdh4BBmSA0HvbgVZIyv4cmOoUheDNR57K1HgBp9ukUMx3Cr3XpDHHpLBnexPE3LAtDsZkj2A==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.14.0", + "@smithy/types": "^4.14.1", "@smithy/util-uri-escape": "^4.2.2", "tslib": "^2.6.2" }, @@ -1648,12 +2099,12 @@ } }, "node_modules/@smithy/querystring-parser": { - "version": "4.2.13", - "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-4.2.13.tgz", - "integrity": "sha512-hqW3Q4P+CDzUyQ87GrboGMeD7XYNMOF+CuTwu936UQRB/zeYn3jys8C3w+wMkDfY7CyyyVwZQ5cNFoG0x1pYmA==", + "version": "4.2.14", + "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-4.2.14.tgz", + "integrity": "sha512-hr+YyqBD23GVvRxGGrcc/oOeNlK3PzT5Fu4dzrDXxzS1LpFiuL2PQQqKPs87M79aW7ziMs+nvB3qdw77SqE7Lw==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.14.0", + "@smithy/types": "^4.14.1", "tslib": "^2.6.2" }, "engines": { @@ -1661,24 +2112,24 @@ } }, "node_modules/@smithy/service-error-classification": { - "version": "4.2.13", - "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-4.2.13.tgz", - "integrity": "sha512-a0s8XZMfOC/qpqq7RCPvJlk93rWFrElH6O++8WJKz0FqnA4Y7fkNi/0mnGgSH1C4x6MFsuBA8VKu4zxFrMe5Vw==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-4.3.0.tgz", + "integrity": "sha512-9jKsBYQRPR0xBLgc2415RsA5PIcP2sis4oBdN9s0D13cg1B1284mNTjx9Yc+BEERXzuPm5ObktI96OxsKh8E9A==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.14.0" + "@smithy/types": "^4.14.1" }, "engines": { "node": ">=18.0.0" } }, "node_modules/@smithy/shared-ini-file-loader": { - "version": "4.4.8", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.4.8.tgz", - "integrity": "sha512-VZCZx2bZasxdqxVgEAhREvDSlkatTPnkdWy1+Kiy8w7kYPBosW0V5IeDwzDUMvWBt56zpK658rx1cOBFOYaPaw==", + "version": "4.4.9", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.4.9.tgz", + "integrity": "sha512-495/V2I15SHgedSJoDPD23JuSfKAp726ZI1V0wtjB07Wh7q/0tri/0e0DLefZCHgxZonrGKt/OCTpAtP1wE1kQ==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.14.0", + "@smithy/types": "^4.14.1", "tslib": "^2.6.2" }, "engines": { @@ -1686,16 +2137,16 @@ } }, "node_modules/@smithy/signature-v4": { - "version": "5.3.13", - "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.3.13.tgz", - "integrity": "sha512-YpYSyM0vMDwKbHD/JA7bVOF6kToVRpa+FM5ateEVRpsTNu564g1muBlkTubXhSKKYXInhpADF46FPyrZcTLpXg==", + "version": "5.3.14", + "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.3.14.tgz", + "integrity": "sha512-1D9Y/nmlVjCeSivCbhZ7hgEpmHyY1h0GvpSZt3l0xcD9JjmjVC1CHOozS6+Gh+/ldMH8JuJ6cujObQqfayAVFA==", "license": "Apache-2.0", "dependencies": { "@smithy/is-array-buffer": "^4.2.2", - "@smithy/protocol-http": "^5.3.13", - "@smithy/types": "^4.14.0", + "@smithy/protocol-http": "^5.3.14", + "@smithy/types": "^4.14.1", "@smithy/util-hex-encoding": "^4.2.2", - "@smithy/util-middleware": "^4.2.13", + "@smithy/util-middleware": "^4.2.14", "@smithy/util-uri-escape": "^4.2.2", "@smithy/util-utf8": "^4.2.2", "tslib": "^2.6.2" @@ -1705,17 +2156,17 @@ } }, "node_modules/@smithy/smithy-client": { - "version": "4.12.9", - "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.12.9.tgz", - "integrity": "sha512-ovaLEcTU5olSeHcRXcxV6viaKtpkHZumn6Ps0yn7dRf2rRSfy794vpjOtrWDO0d1auDSvAqxO+lyhERSXQ03EQ==", + "version": "4.12.13", + "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.12.13.tgz", + "integrity": "sha512-y/Pcj1V9+qG98gyu1gvftHB7rDpdh+7kIBIggs55yGm3JdtBV8GT8IFF3a1qxZ79QnaJHX9GXzvBG6tAd+czJA==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.23.14", - "@smithy/middleware-endpoint": "^4.4.29", - "@smithy/middleware-stack": "^4.2.13", - "@smithy/protocol-http": "^5.3.13", - "@smithy/types": "^4.14.0", - "@smithy/util-stream": "^4.5.22", + "@smithy/core": "^3.23.17", + "@smithy/middleware-endpoint": "^4.4.32", + "@smithy/middleware-stack": "^4.2.14", + "@smithy/protocol-http": "^5.3.14", + "@smithy/types": "^4.14.1", + "@smithy/util-stream": "^4.5.25", "tslib": "^2.6.2" }, "engines": { @@ -1723,9 +2174,9 @@ } }, "node_modules/@smithy/types": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/@smithy/types/-/types-4.14.0.tgz", - "integrity": "sha512-OWgntFLW88kx2qvf/c/67Vno1yuXm/f9M7QFAtVkkO29IJXGBIg0ycEaBTH0kvCtwmvZxRujrgP5a86RvsXJAQ==", + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-4.14.1.tgz", + "integrity": "sha512-59b5HtSVrVR/eYNei3BUj3DCPKD/G7EtDDe7OEJE7i7FtQFugYo6MxbotS8mVJkLNVf8gYaAlEBwwtJ9HzhWSg==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" @@ -1735,13 +2186,13 @@ } }, "node_modules/@smithy/url-parser": { - "version": "4.2.13", - "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-4.2.13.tgz", - "integrity": "sha512-2G03yoboIRZlZze2+PT4GZEjgwQsJjUgn6iTsvxA02bVceHR6vp4Cuk7TUnPFWKF+ffNUk3kj4COwkENS2K3vw==", + "version": "4.2.14", + "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-4.2.14.tgz", + "integrity": "sha512-p06BiBigJ8bTA3MgnOfCtDUWnAMY0YfedO/GRpmc7p+wg3KW8vbXy1xwSu5ASy0wV7rRYtlfZOIKH4XqfhjSQQ==", "license": "Apache-2.0", "dependencies": { - "@smithy/querystring-parser": "^4.2.13", - "@smithy/types": "^4.14.0", + "@smithy/querystring-parser": "^4.2.14", + "@smithy/types": "^4.14.1", "tslib": "^2.6.2" }, "engines": { @@ -1812,14 +2263,14 @@ } }, "node_modules/@smithy/util-defaults-mode-browser": { - "version": "4.3.45", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.3.45.tgz", - "integrity": "sha512-ag9sWc6/nWZAuK3Wm9KlFJUnRkXLrXn33RFjIAmCTFThqLHY+7wCst10BGq56FxslsDrjhSie46c8OULS+BiIw==", + "version": "4.3.49", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.3.49.tgz", + "integrity": "sha512-a5bNrdiONYB/qE2BuKegvUMd/+ZDwdg4vsNuuSzYE8qs2EYAdK9CynL+Rzn29PbPiUqoz/cbpRbcLzD5lEevHw==", "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^4.2.13", - "@smithy/smithy-client": "^4.12.9", - "@smithy/types": "^4.14.0", + "@smithy/property-provider": "^4.2.14", + "@smithy/smithy-client": "^4.12.13", + "@smithy/types": "^4.14.1", "tslib": "^2.6.2" }, "engines": { @@ -1827,17 +2278,17 @@ } }, "node_modules/@smithy/util-defaults-mode-node": { - "version": "4.2.49", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.49.tgz", - "integrity": "sha512-jlN6vHwE8gY5AfiFBavtD3QtCX2f7lM3BKkz7nFKSNfFR5nXLXLg6sqXTJEEyDwtxbztIDBQCfjsGVXlIru2lQ==", + "version": "4.2.54", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.54.tgz", + "integrity": "sha512-g1cvrJvOnzeJgEdf7AE4luI7gp6L8weE0y9a9wQUSGtjb8QRHDbCJYuE4Sy0SD9N8RrnNPFsPltAz/OSoBR9Zw==", "license": "Apache-2.0", "dependencies": { - "@smithy/config-resolver": "^4.4.14", - "@smithy/credential-provider-imds": "^4.2.13", - "@smithy/node-config-provider": "^4.3.13", - "@smithy/property-provider": "^4.2.13", - "@smithy/smithy-client": "^4.12.9", - "@smithy/types": "^4.14.0", + "@smithy/config-resolver": "^4.4.17", + "@smithy/credential-provider-imds": "^4.2.14", + "@smithy/node-config-provider": "^4.3.14", + "@smithy/property-provider": "^4.2.14", + "@smithy/smithy-client": "^4.12.13", + "@smithy/types": "^4.14.1", "tslib": "^2.6.2" }, "engines": { @@ -1845,13 +2296,13 @@ } }, "node_modules/@smithy/util-endpoints": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-3.3.4.tgz", - "integrity": "sha512-BKoR/ubPp9KNKFxPpg1J28N1+bgu8NGAtJblBP7yHy8yQPBWhIAv9+l92SlQLpolGm71CVO+btB60gTgzT0wog==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-3.4.2.tgz", + "integrity": "sha512-a55Tr+3OKld4TTtnT+RhKOQHyPxm3j/xL4OR83WBUhLJaKDS9dnJ7arRMOp3t31dcLhApwG9bgvrRXBHlLdIkg==", "license": "Apache-2.0", "dependencies": { - "@smithy/node-config-provider": "^4.3.13", - "@smithy/types": "^4.14.0", + "@smithy/node-config-provider": "^4.3.14", + "@smithy/types": "^4.14.1", "tslib": "^2.6.2" }, "engines": { @@ -1871,12 +2322,12 @@ } }, "node_modules/@smithy/util-middleware": { - "version": "4.2.13", - "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-4.2.13.tgz", - "integrity": "sha512-GTooyrlmRTqvUen4eK7/K1p6kryF7bnDfq6XsAbIsf2mo51B/utaH+XThY6dKgNCWzMAaH/+OLmqaBuLhLWRow==", + "version": "4.2.14", + "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-4.2.14.tgz", + "integrity": "sha512-1Su2vj9RYNDEv/V+2E+jXkkwGsgR7dc4sfHn9Z7ruzQHJIEni9zzw5CauvRXlFJfmgcqYP8fWa0dkh2Q2YaQyw==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.14.0", + "@smithy/types": "^4.14.1", "tslib": "^2.6.2" }, "engines": { @@ -1884,13 +2335,13 @@ } }, "node_modules/@smithy/util-retry": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-4.3.0.tgz", - "integrity": "sha512-tSOPQNT/4KfbvqeMovWC3g23KSYy8czHd3tlN+tOYVNIDLSfxIsrPJihYi5TpNcoV789KWtgChUVedh2y6dDPg==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-4.3.4.tgz", + "integrity": "sha512-FY1UQQ1VFmMwiYp1GVS4MeaGD5O0blLNYK0xCRHU+mJgeoH/hSY8Ld8sJWKQ6uznkh14HveRGQJncgPyNl9J+A==", "license": "Apache-2.0", "dependencies": { - "@smithy/service-error-classification": "^4.2.13", - "@smithy/types": "^4.14.0", + "@smithy/service-error-classification": "^4.3.0", + "@smithy/types": "^4.14.1", "tslib": "^2.6.2" }, "engines": { @@ -1898,14 +2349,14 @@ } }, "node_modules/@smithy/util-stream": { - "version": "4.5.22", - "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-4.5.22.tgz", - "integrity": "sha512-3H8iq/0BfQjUs2/4fbHZ9aG9yNzcuZs24LPkcX1Q7Z+qpqaGM8+qbGmE8zo9m2nCRgamyvS98cHdcWvR6YUsew==", + "version": "4.5.25", + "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-4.5.25.tgz", + "integrity": "sha512-/PFpG4k8Ze8Ei+mMKj3oiPICYekthuzePZMgZbCqMiXIHHf4n2aZ4Ps0aSRShycFTGuj/J6XldmC0x0DwednIA==", "license": "Apache-2.0", "dependencies": { - "@smithy/fetch-http-handler": "^5.3.16", - "@smithy/node-http-handler": "^4.5.2", - "@smithy/types": "^4.14.0", + "@smithy/fetch-http-handler": "^5.3.17", + "@smithy/node-http-handler": "^4.6.1", + "@smithy/types": "^4.14.1", "@smithy/util-base64": "^4.3.2", "@smithy/util-buffer-from": "^4.2.2", "@smithy/util-hex-encoding": "^4.2.2", @@ -1942,12 +2393,12 @@ } }, "node_modules/@smithy/util-waiter": { - "version": "4.2.15", - "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-4.2.15.tgz", - "integrity": "sha512-oUt9o7n8hBv3BL56sLSneL0XeigZSuem0Hr78JaoK33D9oKieyCvVP8eTSe3j7g2mm/S1DvzxKieG7JEWNJUNg==", + "version": "4.2.16", + "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-4.2.16.tgz", + "integrity": "sha512-GtclrKoZ3Lt7jPQ7aTIYKfjY92OgceScftVnkTsG8e1KV8rkvZgN+ny6YSRhd9hxB8rZtwVbmln7NTvE5O3GmQ==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.14.0", + "@smithy/types": "^4.14.1", "tslib": "^2.6.2" }, "engines": { @@ -2325,6 +2776,16 @@ "@types/superagent": "^8.1.0" } }, + "node_modules/@types/tar-stream": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@types/tar-stream/-/tar-stream-3.1.4.tgz", + "integrity": "sha512-921gW0+g29mCJX0fRvqeHzBlE/XclDaAG0Ousy1LCghsOhvaKacDeRGEVzQP9IPfKn8Vysy7FEXAIxycpc/CMg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/ws": { "version": "8.18.1", "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", @@ -2889,6 +3350,20 @@ "proxy-from-env": "^2.1.0" } }, + "node_modules/b4a": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.8.0.tgz", + "integrity": "sha512-qRuSmNSkGQaHwNbM7J78Wwy+ghLEYF1zNrSeMxj4Kgw6y33O3mXcQ6Ie9fRvfU/YnxWkOchPXbaLb73TkIsfdg==", + "license": "Apache-2.0", + "peerDependencies": { + "react-native-b4a": "*" + }, + "peerDependenciesMeta": { + "react-native-b4a": { + "optional": true + } + } + }, "node_modules/balanced-match": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.3.tgz", @@ -2899,6 +3374,97 @@ "node": "20 || >=22" } }, + "node_modules/bare-events": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.8.2.tgz", + "integrity": "sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==", + "license": "Apache-2.0", + "peerDependencies": { + "bare-abort-controller": "*" + }, + "peerDependenciesMeta": { + "bare-abort-controller": { + "optional": true + } + } + }, + "node_modules/bare-fs": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.7.1.tgz", + "integrity": "sha512-WDRsyVN52eAx/lBamKD6uyw8H4228h/x0sGGGegOamM2cd7Pag88GfMQalobXI+HaEUxpCkbKQUDOQqt9wawRw==", + "license": "Apache-2.0", + "dependencies": { + "bare-events": "^2.5.4", + "bare-path": "^3.0.0", + "bare-stream": "^2.6.4", + "bare-url": "^2.2.2", + "fast-fifo": "^1.3.2" + }, + "engines": { + "bare": ">=1.16.0" + }, + "peerDependencies": { + "bare-buffer": "*" + }, + "peerDependenciesMeta": { + "bare-buffer": { + "optional": true + } + } + }, + "node_modules/bare-os": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.9.0.tgz", + "integrity": "sha512-JTjuZyNIDpw+GytMO4a6TK1VXdVKKJr6DRxEHasyuYyShV2deuiHJK/ahGZlebc+SG0/wJCB9XK8gprBGDFi/Q==", + "license": "Apache-2.0", + "engines": { + "bare": ">=1.14.0" + } + }, + "node_modules/bare-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz", + "integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==", + "license": "Apache-2.0", + "dependencies": { + "bare-os": "^3.0.1" + } + }, + "node_modules/bare-stream": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.13.0.tgz", + "integrity": "sha512-3zAJRZMDFGjdn+RVnNpF9kuELw+0Fl3lpndM4NcEOhb9zwtSo/deETfuIwMSE5BXanA0FrN1qVjffGwAg2Y7EA==", + "license": "Apache-2.0", + "dependencies": { + "streamx": "^2.25.0", + "teex": "^1.0.1" + }, + "peerDependencies": { + "bare-abort-controller": "*", + "bare-buffer": "*", + "bare-events": "*" + }, + "peerDependenciesMeta": { + "bare-abort-controller": { + "optional": true + }, + "bare-buffer": { + "optional": true + }, + "bare-events": { + "optional": true + } + } + }, + "node_modules/bare-url": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.4.2.tgz", + "integrity": "sha512-/9a2j4ac6ckpmAHvod/ob7x439OAHst/drc2Clnq+reRYd/ovddwcF4LfoxHyNk5AuGBnPg+HqFjmE/Zpq6v0A==", + "license": "Apache-2.0", + "dependencies": { + "bare-path": "^3.0.0" + } + }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -4066,6 +4632,15 @@ "node": ">=0.8.x" } }, + "node_modules/events-universal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/events-universal/-/events-universal-1.0.1.tgz", + "integrity": "sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==", + "license": "Apache-2.0", + "dependencies": { + "bare-events": "^2.7.0" + } + }, "node_modules/expand-template": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", @@ -4152,6 +4727,12 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "license": "MIT" }, + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "license": "MIT" + }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -4190,9 +4771,9 @@ "license": "BSD-3-Clause" }, "node_modules/fast-xml-builder": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/fast-xml-builder/-/fast-xml-builder-1.1.4.tgz", - "integrity": "sha512-f2jhpN4Eccy0/Uz9csxh3Nu6q4ErKxf0XIsasomfOihuSUa3/xw6w8dnOtCDgEItQFJG8KyXPzQXzcODDrrbOg==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/fast-xml-builder/-/fast-xml-builder-1.1.5.tgz", + "integrity": "sha512-4TJn/8FKLeslLAH3dnohXqE3QSoxkhvaMzepOIZytwJXZO69Bfz0HBdDHzOTOon6G59Zrk6VQ2bEiv1t61rfkA==", "funding": [ { "type": "github", @@ -4205,9 +4786,9 @@ } }, "node_modules/fast-xml-parser": { - "version": "5.5.8", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.5.8.tgz", - "integrity": "sha512-Z7Fh2nVQSb2d+poDViM063ix2ZGt9jmY1nWhPfHBOK2Hgnb/OW3P4Et3P/81SEej0J7QbWtJqxO05h8QYfK7LQ==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.7.1.tgz", + "integrity": "sha512-8Cc3f8GUGUULg34pBch/KGyPLglS+OFs05deyOlY7fL2MTagYPKrVQNmR1fLF/yJ9PH5ZSTd3YDF6pnmeZU+zA==", "funding": [ { "type": "github", @@ -4216,9 +4797,10 @@ ], "license": "MIT", "dependencies": { - "fast-xml-builder": "^1.1.4", - "path-expression-matcher": "^1.2.0", - "strnum": "^2.2.0" + "@nodable/entities": "^2.1.0", + "fast-xml-builder": "^1.1.5", + "path-expression-matcher": "^1.5.0", + "strnum": "^2.2.3" }, "bin": { "fxparser": "src/cli/cli.js" @@ -5923,9 +6505,9 @@ } }, "node_modules/path-expression-matcher": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/path-expression-matcher/-/path-expression-matcher-1.4.0.tgz", - "integrity": "sha512-s4DQMxIdhj3jLFWd9LxHOplj4p9yQ4ffMGowFf3cpEgrrJjEhN0V5nxw4Ye1EViAGDoL4/1AeO6qHpqYPOzE4Q==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/path-expression-matcher/-/path-expression-matcher-1.5.0.tgz", + "integrity": "sha512-cbrerZV+6rvdQrrD+iGMcZFEiiSrbv9Tfdkvnusy6y0x0GKBXREFg/Y65GhIfm0tnLntThhzCnfKwp1WRjeCyQ==", "funding": [ { "type": "github", @@ -6654,6 +7236,17 @@ "node": ">=10.0.0" } }, + "node_modules/streamx": { + "version": "2.25.0", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.25.0.tgz", + "integrity": "sha512-0nQuG6jf1w+wddNEEXCF4nTg3LtufWINB5eFEN+5TNZW7KWJp6x87+JFL43vaAUPyCfH1wID+mNVyW6OHtFamg==", + "license": "MIT", + "dependencies": { + "events-universal": "^1.0.0", + "fast-fifo": "^1.3.2", + "text-decoder": "^1.1.0" + } + }, "node_modules/strict-event-emitter-types": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strict-event-emitter-types/-/strict-event-emitter-types-2.0.0.tgz", @@ -6803,7 +7396,7 @@ "tar-stream": "^2.1.4" } }, - "node_modules/tar-stream": { + "node_modules/tar-fs/node_modules/tar-stream": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", @@ -6819,6 +7412,36 @@ "node": ">=6" } }, + "node_modules/tar-stream": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.8.tgz", + "integrity": "sha512-U6QpVRyCGHva435KoNWy9PRoi2IFYCgtEhq9nmrPPpbRacPs9IH4aJ3gbrFC8dPcXvdSZ4XXfXT5Fshbp2MtlQ==", + "license": "MIT", + "dependencies": { + "b4a": "^1.6.4", + "bare-fs": "^4.5.5", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, + "node_modules/teex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/teex/-/teex-1.0.1.tgz", + "integrity": "sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==", + "license": "MIT", + "dependencies": { + "streamx": "^2.12.5" + } + }, + "node_modules/text-decoder": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.7.tgz", + "integrity": "sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ==", + "license": "Apache-2.0", + "dependencies": { + "b4a": "^1.6.4" + } + }, "node_modules/thirty-two": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/thirty-two/-/thirty-two-1.0.2.tgz", diff --git a/backend/package.json b/backend/package.json index 2ddfea26..ab55045f 100644 --- a/backend/package.json +++ b/backend/package.json @@ -28,6 +28,7 @@ "@types/multer": "^2.1.0", "@types/node": "^25.3.0", "@types/supertest": "^7.2.0", + "@types/tar-stream": "^3.1.4", "@types/yaml": "^1.9.6", "eslint": "^10.1.0", "nodemon": "^3.1.13", @@ -39,6 +40,7 @@ }, "dependencies": { "@aws-sdk/client-ecr": "^3.1019.0", + "@aws-sdk/client-s3": "^3.1037.0", "@types/compression": "^1.8.1", "@types/cors": "^2.8.19", "@types/dockerode": "^4.0.1", @@ -69,6 +71,7 @@ "otplib": "^12.0.1", "semver": "^7.7.4", "systeminformation": "^5.31.1", + "tar-stream": "^3.1.8", "ws": "^8.19.0", "yaml": "^2.8.2", "zod": "^4.3.6" diff --git a/backend/src/__tests__/cloud-backup-routes.test.ts b/backend/src/__tests__/cloud-backup-routes.test.ts new file mode 100644 index 00000000..fd8686f7 --- /dev/null +++ b/backend/src/__tests__/cloud-backup-routes.test.ts @@ -0,0 +1,193 @@ +/** + * Tests for /api/cloud-backup routes — tier gating (community/skipper/admiral), + * admin gating, config CRUD round-trip with secret encryption, audit logging. + * The S3 SDK is mocked at the module level so no network calls happen. + */ +import { describe, it, expect, beforeAll, afterAll, beforeEach, vi } from 'vitest'; +import request from 'supertest'; +import { setupTestDb, cleanupTestDb, loginAsTestAdmin } from './helpers/setupTestDb'; + +const sentSpy = vi.fn(); + +vi.mock('@aws-sdk/client-s3', () => { + class S3Client { async send(cmd: { name: string; input: Record }) { return sentSpy(cmd); } } + class PutObjectCommand { name = 'PutObjectCommand'; constructor(public input: Record) {} } + class GetObjectCommand { name = 'GetObjectCommand'; constructor(public input: Record) {} } + class ListObjectsV2Command { name = 'ListObjectsV2Command'; constructor(public input: Record) {} } + class DeleteObjectCommand { name = 'DeleteObjectCommand'; constructor(public input: Record) {} } + class HeadBucketCommand { name = 'HeadBucketCommand'; constructor(public input: Record) {} } + return { S3Client, PutObjectCommand, GetObjectCommand, ListObjectsV2Command, DeleteObjectCommand, HeadBucketCommand }; +}); + +let tmpDir: string; +let app: import('express').Express; +let DatabaseService: typeof import('../services/DatabaseService').DatabaseService; +let LicenseService: typeof import('../services/LicenseService').LicenseService; +let authCookie: string; + +beforeAll(async () => { + tmpDir = await setupTestDb(); + ({ DatabaseService } = await import('../services/DatabaseService')); + ({ LicenseService } = await import('../services/LicenseService')); + + vi.spyOn(LicenseService.getInstance(), 'getTier').mockReturnValue('paid'); + vi.spyOn(LicenseService.getInstance(), 'getVariant').mockReturnValue('admiral'); + + ({ app } = await import('../index')); + authCookie = await loginAsTestAdmin(app); +}); + +afterAll(() => { + cleanupTestDb(tmpDir); +}); + +beforeEach(() => { + sentSpy.mockReset(); + const db = DatabaseService.getInstance(); + for (const k of [ + 'cloud_backup_provider', + 'cloud_backup_endpoint', + 'cloud_backup_region', + 'cloud_backup_bucket', + 'cloud_backup_access_key', + 'cloud_backup_secret_key', + 'cloud_backup_path_prefix', + 'cloud_backup_auto_upload', + ]) { + db.updateGlobalSetting(k, ''); + } +}); + +describe('Cloud backup tier gating', () => { + it('rejects community tier with PAID_REQUIRED', async () => { + vi.spyOn(LicenseService.getInstance(), 'getTier').mockReturnValueOnce('community'); + const res = await request(app).get('/api/cloud-backup/config').set('Cookie', authCookie); + expect(res.status).toBe(403); + expect(res.body.code).toBe('PAID_REQUIRED'); + }); + + it('rejects skipper tier with ADMIRAL_REQUIRED', async () => { + vi.spyOn(LicenseService.getInstance(), 'getTier').mockReturnValueOnce('paid'); + vi.spyOn(LicenseService.getInstance(), 'getVariant').mockReturnValueOnce('skipper'); + const res = await request(app).get('/api/cloud-backup/config').set('Cookie', authCookie); + expect(res.status).toBe(403); + expect(res.body.code).toBe('ADMIRAL_REQUIRED'); + }); + + it('admiral tier reaches the handler', async () => { + const res = await request(app).get('/api/cloud-backup/config').set('Cookie', authCookie); + expect(res.status).toBe(200); + expect(res.body).toHaveProperty('provider', 'disabled'); + }); +}); + +describe('Cloud backup config CRUD', () => { + it('redacts secret_key on read; persists encrypted ciphertext', async () => { + const putRes = await request(app) + .put('/api/cloud-backup/config') + .set('Cookie', authCookie) + .send({ + provider: 'custom', + custom: { + endpoint: 'https://s3.example.com', + region: 'us-east-1', + bucket: 'b', + access_key: 'AKIA1234', + secret_key: 'super-secret', + path_prefix: 'sencho/', + auto_upload: true, + }, + }); + expect(putRes.status).toBe(204); + + const stored = DatabaseService.getInstance().getGlobalSettings().cloud_backup_secret_key; + expect(stored.startsWith('enc:')).toBe(true); + expect(stored.includes('super-secret')).toBe(false); + + const getRes = await request(app).get('/api/cloud-backup/config').set('Cookie', authCookie); + expect(getRes.status).toBe(200); + expect(getRes.body.provider).toBe('custom'); + expect(getRes.body.custom.secret_key).toBe('***'); + expect(getRes.body.custom.bucket).toBe('b'); + }); + + it('preserves saved secret when client sends "***"', async () => { + const db = DatabaseService.getInstance(); + await request(app) + .put('/api/cloud-backup/config') + .set('Cookie', authCookie) + .send({ + provider: 'custom', + custom: { endpoint: 'https://e', region: 'r', bucket: 'b', access_key: 'a', secret_key: 'first-secret', path_prefix: 's/', auto_upload: false }, + }); + const firstStored = db.getGlobalSettings().cloud_backup_secret_key; + + await request(app) + .put('/api/cloud-backup/config') + .set('Cookie', authCookie) + .send({ + provider: 'custom', + custom: { endpoint: 'https://e', region: 'r2', bucket: 'b', access_key: 'a', secret_key: '***', path_prefix: 's/', auto_upload: true }, + }); + const secondStored = db.getGlobalSettings().cloud_backup_secret_key; + expect(secondStored).toBe(firstStored); + expect(db.getGlobalSettings().cloud_backup_region).toBe('r2'); + expect(db.getGlobalSettings().cloud_backup_auto_upload).toBe('1'); + }); + + it('rejects invalid provider value', async () => { + const res = await request(app) + .put('/api/cloud-backup/config') + .set('Cookie', authCookie) + .send({ provider: 'bogus' }); + expect(res.status).toBe(400); + }); + + it('rejects custom config missing required fields', async () => { + const res = await request(app) + .put('/api/cloud-backup/config') + .set('Cookie', authCookie) + .send({ provider: 'custom', custom: { endpoint: '', bucket: '', access_key: '' } }); + expect(res.status).toBe(400); + }); +}); + +describe('Cloud backup audit log', () => { + it('writes audit row with the cloud-backup summary on PUT /config', async () => { + await request(app) + .put('/api/cloud-backup/config') + .set('Cookie', authCookie) + .send({ + provider: 'custom', + custom: { endpoint: 'https://s3.example.com', region: 'r', bucket: 'b', access_key: 'a', secret_key: 's', path_prefix: 'p/', auto_upload: false }, + }); + const { entries } = DatabaseService.getInstance().getAuditLogs({ limit: 50 }); + const cloudEntry = entries.find(e => e.path.includes('/cloud-backup/config') && e.method === 'PUT'); + expect(cloudEntry).toBeDefined(); + expect(cloudEntry!.summary).toBe('Updated cloud backup config'); + }); +}); + +describe('Cloud backup test endpoint', () => { + it('reports failure when no provider is configured', async () => { + const res = await request(app).post('/api/cloud-backup/test').set('Cookie', authCookie).send({}); + expect(res.status).toBe(200); + expect(res.body.success).toBe(false); + }); + + it('reports success when HeadBucketCommand resolves', async () => { + const db = DatabaseService.getInstance(); + const { CryptoService } = await import('../services/CryptoService'); + db.updateGlobalSetting('cloud_backup_provider', 'custom'); + db.updateGlobalSetting('cloud_backup_endpoint', 'https://s3.example.com'); + db.updateGlobalSetting('cloud_backup_region', 'us-east-1'); + db.updateGlobalSetting('cloud_backup_bucket', 'b'); + db.updateGlobalSetting('cloud_backup_access_key', 'a'); + db.updateGlobalSetting('cloud_backup_secret_key', CryptoService.getInstance().encrypt('s')); + + sentSpy.mockResolvedValueOnce({}); + const res = await request(app).post('/api/cloud-backup/test').set('Cookie', authCookie).send({}); + expect(res.status).toBe(200); + expect(res.body.success).toBe(true); + }); +}); diff --git a/backend/src/__tests__/cloud-backup-service.test.ts b/backend/src/__tests__/cloud-backup-service.test.ts new file mode 100644 index 00000000..6b74c299 --- /dev/null +++ b/backend/src/__tests__/cloud-backup-service.test.ts @@ -0,0 +1,242 @@ +/** + * Tests for CloudBackupService — provider resolution, encryption round-trip, + * archive format, and S3 client invocation. The S3 SDK is mocked at the + * module level so no network calls happen. + */ +import { describe, it, expect, beforeAll, afterAll, beforeEach, vi } from 'vitest'; +import * as zlib from 'zlib'; +import * as tar from 'tar-stream'; +import { Readable } from 'stream'; +import { setupTestDb, cleanupTestDb } from './helpers/setupTestDb'; + +const sentSpy = vi.fn(); +const s3ClientCtorSpy = vi.fn(); + +vi.mock('@aws-sdk/client-s3', () => { + class S3Client { + constructor(opts: unknown) { s3ClientCtorSpy(opts); } + async send(cmd: { name: string; input: Record }) { return sentSpy(cmd); } + } + class PutObjectCommand { name = 'PutObjectCommand'; constructor(public input: Record) {} } + class GetObjectCommand { name = 'GetObjectCommand'; constructor(public input: Record) {} } + class ListObjectsV2Command { name = 'ListObjectsV2Command'; constructor(public input: Record) {} } + class DeleteObjectCommand { name = 'DeleteObjectCommand'; constructor(public input: Record) {} } + class HeadBucketCommand { name = 'HeadBucketCommand'; constructor(public input: Record) {} } + return { S3Client, PutObjectCommand, GetObjectCommand, ListObjectsV2Command, DeleteObjectCommand, HeadBucketCommand }; +}); + +let tmpDir: string; +let DatabaseService: typeof import('../services/DatabaseService').DatabaseService; +let CryptoService: typeof import('../services/CryptoService').CryptoService; +let CloudBackupService: typeof import('../services/CloudBackupService').CloudBackupService; + +beforeAll(async () => { + tmpDir = await setupTestDb(); + ({ DatabaseService } = await import('../services/DatabaseService')); + ({ CryptoService } = await import('../services/CryptoService')); + ({ CloudBackupService } = await import('../services/CloudBackupService')); +}); + +afterAll(() => { + CloudBackupService.getInstance().stop(); + cleanupTestDb(tmpDir); +}); + +beforeEach(() => { + sentSpy.mockReset(); + s3ClientCtorSpy.mockReset(); + const db = DatabaseService.getInstance(); + // Reset all cloud-backup-related settings between tests. + for (const k of [ + 'cloud_backup_provider', + 'cloud_backup_endpoint', + 'cloud_backup_region', + 'cloud_backup_bucket', + 'cloud_backup_access_key', + 'cloud_backup_secret_key', + 'cloud_backup_path_prefix', + 'cloud_backup_auto_upload', + ]) { + db.updateGlobalSetting(k, ''); + } + for (const k of [ + 'sencho_cloud_backup_endpoint', + 'sencho_cloud_backup_bucket', + 'sencho_cloud_backup_access_key', + 'sencho_cloud_backup_secret_key', + 'sencho_cloud_backup_path_prefix', + 'sencho_cloud_backup_quota_bytes', + 'sencho_cloud_backup_provisioned_at', + ]) { + db.setSystemState(k, ''); + } + db.setSystemState('instance_id', 'test-instance-id'); +}); + +describe('CloudBackupService — provider resolution', () => { + it('returns "disabled" when no provider is set', () => { + expect(CloudBackupService.getInstance().getProvider()).toBe('disabled'); + expect(CloudBackupService.getInstance().isEnabled()).toBe(false); + expect(CloudBackupService.getInstance().getResolvedConfig()).toBeNull(); + }); + + it('returns null config for custom provider when fields are missing', () => { + const db = DatabaseService.getInstance(); + db.updateGlobalSetting('cloud_backup_provider', 'custom'); + db.updateGlobalSetting('cloud_backup_endpoint', 'https://s3.example.com'); + // bucket, access_key, secret_key still missing + expect(CloudBackupService.getInstance().getResolvedConfig()).toBeNull(); + }); + + it('decrypts custom secret_key on read', () => { + const db = DatabaseService.getInstance(); + const crypto = CryptoService.getInstance(); + db.updateGlobalSetting('cloud_backup_provider', 'custom'); + db.updateGlobalSetting('cloud_backup_endpoint', 'https://s3.example.com'); + db.updateGlobalSetting('cloud_backup_region', 'us-east-1'); + db.updateGlobalSetting('cloud_backup_bucket', 'my-bucket'); + db.updateGlobalSetting('cloud_backup_access_key', 'AKIA1234'); + db.updateGlobalSetting('cloud_backup_secret_key', crypto.encrypt('plaintext-secret')); + db.updateGlobalSetting('cloud_backup_auto_upload', '1'); + + const cfg = CloudBackupService.getInstance().getResolvedConfig(); + expect(cfg).not.toBeNull(); + expect(cfg!.provider).toBe('custom'); + expect(cfg!.secretKey).toBe('plaintext-secret'); + expect(cfg!.autoUpload).toBe(true); + }); + + it('resolves sencho provider from system_state and forces auto_upload on', () => { + const db = DatabaseService.getInstance(); + const crypto = CryptoService.getInstance(); + db.updateGlobalSetting('cloud_backup_provider', 'sencho'); + db.setSystemState('sencho_cloud_backup_endpoint', 'https://r2.example.com'); + db.setSystemState('sencho_cloud_backup_bucket', 'sencho-cloud-backups'); + db.setSystemState('sencho_cloud_backup_access_key', 'R2-ACCESS'); + db.setSystemState('sencho_cloud_backup_secret_key', crypto.encrypt('R2-SECRET')); + db.setSystemState('sencho_cloud_backup_path_prefix', 'tenants/123/'); + db.setSystemState('sencho_cloud_backup_quota_bytes', '524288000'); + + const cfg = CloudBackupService.getInstance().getResolvedConfig(); + expect(cfg!.provider).toBe('sencho'); + expect(cfg!.region).toBe('auto'); + expect(cfg!.secretKey).toBe('R2-SECRET'); + expect(cfg!.autoUpload).toBe(true); + expect(cfg!.quotaBytes).toBe(524_288_000); + }); +}); + +describe('CloudBackupService — uploadSnapshot', () => { + function seedCustomProvider() { + const db = DatabaseService.getInstance(); + const crypto = CryptoService.getInstance(); + db.updateGlobalSetting('cloud_backup_provider', 'custom'); + db.updateGlobalSetting('cloud_backup_endpoint', 'https://s3.example.com'); + db.updateGlobalSetting('cloud_backup_region', 'us-east-1'); + db.updateGlobalSetting('cloud_backup_bucket', 'my-bucket'); + db.updateGlobalSetting('cloud_backup_access_key', 'AKIA1234'); + db.updateGlobalSetting('cloud_backup_secret_key', crypto.encrypt('test-secret')); + db.updateGlobalSetting('cloud_backup_path_prefix', 'sencho/'); + db.updateGlobalSetting('cloud_backup_auto_upload', '1'); + } + + it('uploads a snapshot with correct object key and gzipped tar archive', async () => { + seedCustomProvider(); + const db = DatabaseService.getInstance(); + + const snapshotId = db.createSnapshot('Test backup', 'admin', 1, 1, '[]'); + db.insertSnapshotFiles(snapshotId, [ + { nodeId: 1, nodeName: 'gateway', stackName: 'web', filename: 'compose.yaml', content: 'services: {}\n' }, + { nodeId: 1, nodeName: 'gateway', stackName: 'web', filename: '.env', content: 'KEY=value\n' }, + ]); + + sentSpy.mockResolvedValue({}); + await CloudBackupService.getInstance().uploadSnapshot(snapshotId); + + expect(s3ClientCtorSpy).toHaveBeenCalledWith(expect.objectContaining({ + endpoint: 'https://s3.example.com', + region: 'us-east-1', + forcePathStyle: true, + credentials: { accessKeyId: 'AKIA1234', secretAccessKey: 'test-secret' }, + })); + + const putCall = sentSpy.mock.calls.find(c => c[0].name === 'PutObjectCommand'); + expect(putCall).toBeDefined(); + const input = putCall![0].input as { Bucket: string; Key: string; Body: Buffer; ContentType: string }; + expect(input.Bucket).toBe('my-bucket'); + expect(input.Key).toContain('sencho/instances/test-instance-id/snapshots/'); + expect(input.Key).toMatch(/\.tar\.gz$/); + expect(input.ContentType).toBe('application/gzip'); + expect(Buffer.isBuffer(input.Body)).toBe(true); + expect(input.Body.byteLength).toBeGreaterThan(0); + + const decompressed = zlib.gunzipSync(input.Body); + const entries: Array<{ name: string; content: string }> = await new Promise((resolve, reject) => { + const extract = tar.extract(); + const list: Array<{ name: string; content: string }> = []; + extract.on('entry', (header, stream, next) => { + const chunks: Buffer[] = []; + stream.on('data', (c: Buffer) => chunks.push(c)); + stream.on('end', () => { list.push({ name: header.name, content: Buffer.concat(chunks).toString('utf-8') }); next(); }); + stream.resume(); + }); + extract.on('finish', () => resolve(list)); + extract.on('error', reject); + Readable.from(decompressed).pipe(extract); + }); + + const meta = entries.find(e => e.name === 'metadata.json'); + expect(meta).toBeDefined(); + const parsed = JSON.parse(meta!.content); + expect(parsed.id).toBe(snapshotId); + expect(parsed.instance_id).toBe('test-instance-id'); + expect(parsed.archive_version).toBe(1); + + expect(entries.find(e => e.name === 'nodes/1_gateway/web/compose.yaml')).toBeDefined(); + expect(entries.find(e => e.name === 'nodes/1_gateway/web/.env')).toBeDefined(); + + expect(CloudBackupService.getInstance().getUploadStatus(snapshotId).status).toBe('success'); + }); + + it('records failure status when upload throws', async () => { + seedCustomProvider(); + const db = DatabaseService.getInstance(); + const snapshotId = db.createSnapshot('Failing', 'admin', 0, 0, '[]'); + + sentSpy.mockRejectedValueOnce(new Error('AccessDenied: bad creds')); + await expect(CloudBackupService.getInstance().uploadSnapshot(snapshotId)).rejects.toThrow(/bad creds/); + + const status = CloudBackupService.getInstance().getUploadStatus(snapshotId); + expect(status.status).toBe('failed'); + expect(status.error).toContain('bad creds'); + }); + + it('throws when no provider is configured', async () => { + await expect(CloudBackupService.getInstance().uploadSnapshot(999)).rejects.toThrow(/not configured/i); + }); +}); + +describe('CloudBackupService — listCloudSnapshots', () => { + it('parses snapshot ID from object key and sorts by lastModified desc', async () => { + const db = DatabaseService.getInstance(); + const crypto = CryptoService.getInstance(); + db.updateGlobalSetting('cloud_backup_provider', 'custom'); + db.updateGlobalSetting('cloud_backup_endpoint', 'https://s3.example.com'); + db.updateGlobalSetting('cloud_backup_region', 'us-east-1'); + db.updateGlobalSetting('cloud_backup_bucket', 'b'); + db.updateGlobalSetting('cloud_backup_access_key', 'a'); + db.updateGlobalSetting('cloud_backup_secret_key', crypto.encrypt('s')); + db.updateGlobalSetting('cloud_backup_path_prefix', 'sencho/'); + + sentSpy.mockResolvedValueOnce({ + Contents: [ + { Key: 'sencho/instances/test-instance-id/snapshots/3_2026-01-01_a.tar.gz', Size: 100, LastModified: new Date('2026-01-01T00:00:00Z') }, + { Key: 'sencho/instances/test-instance-id/snapshots/7_2026-04-01_b.tar.gz', Size: 200, LastModified: new Date('2026-04-01T00:00:00Z') }, + ], + }); + const list = await CloudBackupService.getInstance().listCloudSnapshots(); + expect(list).toHaveLength(2); + expect(list[0].snapshotId).toBe(7); + expect(list[1].snapshotId).toBe(3); + }); +}); diff --git a/backend/src/__tests__/scheduler-service.test.ts b/backend/src/__tests__/scheduler-service.test.ts index 93d6966e..ad6105f9 100644 --- a/backend/src/__tests__/scheduler-service.test.ts +++ b/backend/src/__tests__/scheduler-service.test.ts @@ -145,6 +145,16 @@ vi.mock('../services/NotificationService', () => ({ }, })); +vi.mock('../services/CloudBackupService', () => ({ + CloudBackupService: { + getInstance: () => ({ + isEnabled: () => false, + isAutoUploadOn: () => false, + uploadSnapshot: vi.fn().mockResolvedValue(undefined), + }), + }, +})); + vi.mock('../services/NodeRegistry', () => ({ NodeRegistry: { getInstance: () => ({ diff --git a/backend/src/index.ts b/backend/src/index.ts index 131bbb7c..cf2d4e40 100644 --- a/backend/src/index.ts +++ b/backend/src/index.ts @@ -18,6 +18,7 @@ import { webhooksRouter } from './routes/webhooks'; import { usersRouter } from './routes/users'; import { gitSourcesRouter, stackGitSourceRouter } from './routes/gitSources'; import { fleetRouter } from './routes/fleet'; +import { cloudBackupRouter } from './routes/cloudBackup'; import { permissionsRouter } from './routes/permissions'; import { convertRouter } from './routes/convert'; import { alertsRouter } from './routes/alerts'; @@ -91,6 +92,7 @@ app.use('/api/stacks', stackLabelsRouter); app.use('/api/api-tokens', apiTokensRouter); app.use('/api/audit-log', auditLogRouter); app.use('/api/fleet', fleetRouter); +app.use('/api/cloud-backup', cloudBackupRouter); app.use('/api/webhooks', webhooksRouter); app.use('/api/users', usersRouter); app.use('/api/git-sources', gitSourcesRouter); diff --git a/backend/src/routes/cloudBackup.ts b/backend/src/routes/cloudBackup.ts new file mode 100644 index 00000000..78225403 --- /dev/null +++ b/backend/src/routes/cloudBackup.ts @@ -0,0 +1,243 @@ +import { Router, type Request, type Response } from 'express'; +import { CloudBackupService } from '../services/CloudBackupService'; +import { DatabaseService } from '../services/DatabaseService'; +import { CryptoService } from '../services/CryptoService'; +import { requireAdmin, requireAdmiral } from '../middleware/tierGates'; +import { rejectApiTokenScope } from '../middleware/apiTokenScope'; +import { getErrorMessage } from '../utils/errors'; + +const SCOPE_MESSAGE = 'API tokens cannot manage cloud backup configuration.'; +const SECRET_REDACTED = '***'; +const VALID_PROVIDERS = new Set(['disabled', 'sencho', 'custom']); + +function parseSnapshotIdParam(req: Request, res: Response): number | null { + const raw = req.params.id as string | undefined; + const parsed = parseInt(raw ?? '', 10); + if (isNaN(parsed) || parsed <= 0) { + res.status(400).json({ error: 'Invalid snapshot ID' }); + return null; + } + return parsed; +} + +function decodeObjectKey(req: Request, res: Response): string | null { + const raw = req.params.keyB64 as string | undefined; + if (!raw) { + res.status(400).json({ error: 'Missing object key' }); + return null; + } + try { + const decoded = Buffer.from(raw, 'base64url').toString('utf-8'); + if (!decoded || decoded.includes('..') || decoded.startsWith('/')) { + res.status(400).json({ error: 'Invalid object key' }); + return null; + } + return decoded; + } catch { + res.status(400).json({ error: 'Invalid object key encoding' }); + return null; + } +} + +export const cloudBackupRouter = Router(); + +cloudBackupRouter.get('/config', (req: Request, res: Response): void => { + if (rejectApiTokenScope(req, res, SCOPE_MESSAGE)) return; + if (!requireAdmiral(req, res)) return; + try { + const db = DatabaseService.getInstance(); + const settings = db.getGlobalSettings(); + const provider = CloudBackupService.getInstance().getProvider(); + const senchoProvisioned = !!db.getSystemState('sencho_cloud_backup_provisioned_at'); + res.json({ + provider, + sencho_provisioned: senchoProvisioned, + sencho_provisioned_at: db.getSystemState('sencho_cloud_backup_provisioned_at'), + custom: { + endpoint: settings.cloud_backup_endpoint || '', + region: settings.cloud_backup_region || '', + bucket: settings.cloud_backup_bucket || '', + access_key: settings.cloud_backup_access_key || '', + secret_key: settings.cloud_backup_secret_key ? SECRET_REDACTED : '', + path_prefix: settings.cloud_backup_path_prefix || 'sencho/', + auto_upload: settings.cloud_backup_auto_upload === '1', + }, + }); + } catch (error) { + console.error('[CloudBackup] config get error:', error); + res.status(500).json({ error: 'Failed to load cloud backup config' }); + } +}); + +cloudBackupRouter.put('/config', (req: Request, res: Response): void => { + if (rejectApiTokenScope(req, res, SCOPE_MESSAGE)) return; + if (!requireAdmin(req, res)) return; + if (!requireAdmiral(req, res)) return; + try { + const body = req.body ?? {}; + const provider = body.provider as string | undefined; + if (!provider || !VALID_PROVIDERS.has(provider)) { + res.status(400).json({ error: 'provider must be one of: disabled, sencho, custom' }); + return; + } + const db = DatabaseService.getInstance(); + const crypto = CryptoService.getInstance(); + db.updateGlobalSetting('cloud_backup_provider', provider); + + if (provider === 'custom') { + const c = body.custom ?? {}; + const endpoint = typeof c.endpoint === 'string' ? c.endpoint.trim() : ''; + const region = typeof c.region === 'string' ? c.region.trim() : ''; + const bucket = typeof c.bucket === 'string' ? c.bucket.trim() : ''; + const accessKey = typeof c.access_key === 'string' ? c.access_key.trim() : ''; + const pathPrefix = typeof c.path_prefix === 'string' ? c.path_prefix.trim() : 'sencho/'; + const autoUpload = c.auto_upload === true || c.auto_upload === '1' ? '1' : '0'; + + if (!endpoint || !bucket || !accessKey) { + res.status(400).json({ error: 'endpoint, bucket, and access_key are required for custom S3.' }); + return; + } + if (!/^https?:\/\//i.test(endpoint)) { + res.status(400).json({ error: 'endpoint must start with http:// or https://' }); + return; + } + + db.updateGlobalSetting('cloud_backup_endpoint', endpoint); + db.updateGlobalSetting('cloud_backup_region', region); + db.updateGlobalSetting('cloud_backup_bucket', bucket); + db.updateGlobalSetting('cloud_backup_access_key', accessKey); + db.updateGlobalSetting('cloud_backup_path_prefix', pathPrefix); + db.updateGlobalSetting('cloud_backup_auto_upload', autoUpload); + + const incomingSecret = typeof c.secret_key === 'string' ? c.secret_key : ''; + if (incomingSecret && incomingSecret !== SECRET_REDACTED) { + db.updateGlobalSetting('cloud_backup_secret_key', crypto.encrypt(incomingSecret)); + } + } + + res.status(204).send(); + } catch (error) { + console.error('[CloudBackup] config update error:', error); + res.status(500).json({ error: 'Failed to save cloud backup config' }); + } +}); + +cloudBackupRouter.post('/test', async (req: Request, res: Response): Promise => { + if (rejectApiTokenScope(req, res, SCOPE_MESSAGE)) return; + if (!requireAdmin(req, res)) return; + if (!requireAdmiral(req, res)) return; + try { + const result = await CloudBackupService.getInstance().testConnection(); + res.json(result); + } catch (error) { + console.error('[CloudBackup] test error:', error); + res.status(500).json({ success: false, error: getErrorMessage(error, 'Connection test failed') }); + } +}); + +cloudBackupRouter.post('/provision', async (req: Request, res: Response): Promise => { + if (rejectApiTokenScope(req, res, SCOPE_MESSAGE)) return; + if (!requireAdmin(req, res)) return; + if (!requireAdmiral(req, res)) return; + try { + const result = await CloudBackupService.getInstance().provisionSenchoCloudBackup(); + if (!result.success) { + res.status(400).json({ error: result.error || 'Provisioning failed' }); + return; + } + res.json({ success: true, quota_bytes: result.quotaBytes }); + } catch (error) { + console.error('[CloudBackup] provision error:', error); + res.status(500).json({ error: 'Failed to provision Sencho Cloud Backup' }); + } +}); + +cloudBackupRouter.get('/usage', async (req: Request, res: Response): Promise => { + if (rejectApiTokenScope(req, res, SCOPE_MESSAGE)) return; + if (!requireAdmiral(req, res)) return; + try { + const svc = CloudBackupService.getInstance(); + if (svc.getProvider() !== 'sencho') { + res.status(400).json({ error: 'Usage is only available for Sencho Cloud Backup' }); + return; + } + const usage = await svc.getSenchoCloudBackupUsage(); + res.json(usage); + } catch (error) { + console.error('[CloudBackup] usage error:', error); + res.status(502).json({ error: getErrorMessage(error, 'Failed to fetch usage') }); + } +}); + +cloudBackupRouter.get('/snapshots', async (req: Request, res: Response): Promise => { + if (rejectApiTokenScope(req, res, SCOPE_MESSAGE)) return; + if (!requireAdmiral(req, res)) return; + try { + const entries = await CloudBackupService.getInstance().listCloudSnapshots(); + res.json(entries); + } catch (error) { + console.error('[CloudBackup] list error:', error); + res.status(502).json({ error: getErrorMessage(error, 'Failed to list cloud snapshots') }); + } +}); + +cloudBackupRouter.post('/upload/:id', async (req: Request, res: Response): Promise => { + if (rejectApiTokenScope(req, res, SCOPE_MESSAGE)) return; + if (!requireAdmin(req, res)) return; + if (!requireAdmiral(req, res)) return; + const id = parseSnapshotIdParam(req, res); + if (id == null) return; + try { + const db = DatabaseService.getInstance(); + if (!db.getSnapshot(id)) { + res.status(404).json({ error: 'Snapshot not found' }); + return; + } + await CloudBackupService.getInstance().uploadSnapshot(id); + res.status(202).json({ status: 'success', snapshot_id: id }); + } catch (error) { + console.error('[CloudBackup] upload error:', error); + res.status(502).json({ error: getErrorMessage(error, 'Cloud upload failed') }); + } +}); + +cloudBackupRouter.get('/status/:id', (req: Request, res: Response): void => { + if (rejectApiTokenScope(req, res, SCOPE_MESSAGE)) return; + if (!requireAdmiral(req, res)) return; + const id = parseSnapshotIdParam(req, res); + if (id == null) return; + res.json(CloudBackupService.getInstance().getUploadStatus(id)); +}); + +cloudBackupRouter.get('/object/:keyB64/download', async (req: Request, res: Response): Promise => { + if (rejectApiTokenScope(req, res, SCOPE_MESSAGE)) return; + if (!requireAdmiral(req, res)) return; + const objectKey = decodeObjectKey(req, res); + if (!objectKey) return; + try { + const buffer = await CloudBackupService.getInstance().downloadSnapshot(objectKey); + const filename = objectKey.split('/').pop() || 'snapshot.tar.gz'; + res.setHeader('Content-Type', 'application/gzip'); + res.setHeader('Content-Disposition', `attachment; filename="${filename}"`); + res.setHeader('Content-Length', String(buffer.byteLength)); + res.end(buffer); + } catch (error) { + console.error('[CloudBackup] download error:', error); + res.status(502).json({ error: getErrorMessage(error, 'Failed to download cloud snapshot') }); + } +}); + +cloudBackupRouter.delete('/object/:keyB64', async (req: Request, res: Response): Promise => { + if (rejectApiTokenScope(req, res, SCOPE_MESSAGE)) return; + if (!requireAdmin(req, res)) return; + if (!requireAdmiral(req, res)) return; + const objectKey = decodeObjectKey(req, res); + if (!objectKey) return; + try { + await CloudBackupService.getInstance().deleteCloudSnapshot(objectKey); + res.status(204).send(); + } catch (error) { + console.error('[CloudBackup] delete error:', error); + res.status(502).json({ error: getErrorMessage(error, 'Failed to delete cloud snapshot') }); + } +}); diff --git a/backend/src/routes/fleet.ts b/backend/src/routes/fleet.ts index 88e308ef..3b97510d 100644 --- a/backend/src/routes/fleet.ts +++ b/backend/src/routes/fleet.ts @@ -20,6 +20,8 @@ import { getLatestVersion } from '../utils/version-check'; import { isValidStackName } from '../utils/validation'; import { isDebugEnabled } from '../utils/debug'; import { getErrorMessage } from '../utils/errors'; +import { CloudBackupService } from '../services/CloudBackupService'; +import { NotificationService } from '../services/NotificationService'; const updateTracker = FleetUpdateTrackerService.getInstance(); const UPDATE_TIMEOUT_MS = 5 * 60 * 1000; // 5 minutes @@ -819,6 +821,17 @@ fleetRouter.post('/snapshots', authMiddleware, async (req: Request, res: Respons db.insertSnapshotFiles(snapshotId, allFiles); } + const cloudSvc = CloudBackupService.getInstance(); + if (cloudSvc.isEnabled() && cloudSvc.isAutoUploadOn()) { + void cloudSvc.uploadSnapshot(snapshotId).catch(uploadErr => { + const message = uploadErr instanceof Error ? uploadErr.message : String(uploadErr); + console.error('[Fleet Snapshot] Cloud upload failed:', message); + void NotificationService.getInstance() + .dispatchAlert('error', 'system', `Cloud backup upload failed for snapshot ${snapshotId}: ${message}`) + .catch(() => { /* notification dispatch is best-effort */ }); + }); + } + console.log('[Fleet] Snapshot created:', capturedNodes.length, 'nodes,', totalStacks, 'stacks'); if (isDebugEnabled()) { console.debug(`[Fleet:debug] Snapshot ${snapshotId} capture completed in ${Date.now() - captureStart}ms, ${allFiles.length} file(s) stored`); diff --git a/backend/src/services/CloudBackupService.ts b/backend/src/services/CloudBackupService.ts new file mode 100644 index 00000000..662366ac --- /dev/null +++ b/backend/src/services/CloudBackupService.ts @@ -0,0 +1,400 @@ +/** + * CloudBackupService — off-site replication for fleet snapshots. + * + * Two providers share the same S3-compatible code path: + * - 'sencho' : managed Sencho Cloud Backup. Credentials provisioned by + * sencho.io/api/cloud-backup/provision and stored in system_state. + * - 'custom' : bring-your-own-bucket. Credentials user-configured in global_settings. + * + * Routes call this service after a snapshot is persisted to SQLite. The service + * reads snapshot rows from DatabaseService, packs them into a tar.gz archive, + * and uploads via @aws-sdk/client-s3. + */ + +import { + S3Client, + PutObjectCommand, + GetObjectCommand, + ListObjectsV2Command, + DeleteObjectCommand, + HeadBucketCommand, +} from '@aws-sdk/client-s3'; +import { Readable } from 'stream'; +import * as zlib from 'zlib'; +import * as tar from 'tar-stream'; +import axios from 'axios'; +import { DatabaseService, type FleetSnapshotFile } from './DatabaseService'; +import { CryptoService } from './CryptoService'; +import { LicenseService } from './LicenseService'; +import { getErrorMessage } from '../utils/errors'; +import { isDebugEnabled } from '../utils/debug'; + +export type CloudProvider = 'disabled' | 'sencho' | 'custom'; +export type UploadStatus = 'idle' | 'uploading' | 'success' | 'failed'; + +export interface ResolvedCloudConfig { + provider: 'sencho' | 'custom'; + endpoint: string; + region: string; + bucket: string; + accessKey: string; + secretKey: string; + pathPrefix: string; + autoUpload: boolean; + quotaBytes?: number; +} + +export interface CloudSnapshotEntry { + objectKey: string; + sizeBytes: number; + lastModified: string | null; + snapshotId: number | null; +} + +export interface ProvisionResult { + success: boolean; + quotaBytes?: number; + error?: string; +} + +export interface UploadStatusEntry { + status: UploadStatus; + objectKey?: string; + error?: string; + updatedAt: number; +} + +const SENCHO_CLOUD_BACKUP_API_DEFAULT = 'https://sencho.io'; +const PROVIDER_KEY = 'cloud_backup_provider'; +const SUCCESS_STATUS_TTL_MS = 5 * 60 * 1000; + +export class CloudBackupService { + private static instance: CloudBackupService; + private uploadStatus = new Map(); + private statusGcTimer: ReturnType | null = null; + + private constructor() { + this.statusGcTimer = setInterval(() => this.gcUploadStatus(), 60 * 1000); + if (typeof this.statusGcTimer.unref === 'function') this.statusGcTimer.unref(); + } + + public static getInstance(): CloudBackupService { + if (!CloudBackupService.instance) { + CloudBackupService.instance = new CloudBackupService(); + } + return CloudBackupService.instance; + } + + public stop(): void { + if (this.statusGcTimer) { + clearInterval(this.statusGcTimer); + this.statusGcTimer = null; + } + } + + // ─── Configuration ───────────────────────────────────────────────────────── + + public getProvider(): CloudProvider { + const value = DatabaseService.getInstance().getGlobalSettings()[PROVIDER_KEY]; + if (value === 'sencho' || value === 'custom') return value; + return 'disabled'; + } + + public isEnabled(): boolean { + return this.getResolvedConfig() !== null; + } + + public isAutoUploadOn(): boolean { + const cfg = this.getResolvedConfig(); + return cfg?.autoUpload === true; + } + + public getResolvedConfig(): ResolvedCloudConfig | null { + const provider = this.getProvider(); + if (provider === 'disabled') return null; + const db = DatabaseService.getInstance(); + const crypto = CryptoService.getInstance(); + + if (provider === 'sencho') { + const endpoint = db.getSystemState('sencho_cloud_backup_endpoint'); + const bucket = db.getSystemState('sencho_cloud_backup_bucket'); + const accessKey = db.getSystemState('sencho_cloud_backup_access_key'); + const secretRaw = db.getSystemState('sencho_cloud_backup_secret_key'); + const pathPrefix = db.getSystemState('sencho_cloud_backup_path_prefix') || ''; + const quotaRaw = db.getSystemState('sencho_cloud_backup_quota_bytes'); + if (!endpoint || !bucket || !accessKey || !secretRaw) return null; + return { + provider: 'sencho', + endpoint, + region: 'auto', + bucket, + accessKey, + secretKey: crypto.decrypt(secretRaw), + pathPrefix, + autoUpload: true, + quotaBytes: quotaRaw ? parseInt(quotaRaw, 10) : undefined, + }; + } + + const settings = db.getGlobalSettings(); + const endpoint = settings.cloud_backup_endpoint; + const region = settings.cloud_backup_region; + const bucket = settings.cloud_backup_bucket; + const accessKey = settings.cloud_backup_access_key; + const secretRaw = settings.cloud_backup_secret_key; + const pathPrefix = settings.cloud_backup_path_prefix || 'sencho/'; + if (!endpoint || !bucket || !accessKey || !secretRaw) return null; + return { + provider: 'custom', + endpoint, + region: region || 'us-east-1', + bucket, + accessKey, + secretKey: crypto.decrypt(secretRaw), + pathPrefix, + autoUpload: settings.cloud_backup_auto_upload === '1', + }; + } + + // ─── Sencho Cloud Backup lifecycle ───────────────────────────────────────── + + public async provisionSenchoCloudBackup(): Promise { + const db = DatabaseService.getInstance(); + const crypto = CryptoService.getInstance(); + const licenseKey = db.getSystemState('license_key'); + if (!licenseKey) return { success: false, error: 'No license key found. Activate an Admiral license first.' }; + + const variant = LicenseService.getInstance().getVariant(); + if (variant !== 'admiral') return { success: false, error: 'Sencho Cloud Backup requires the Admiral tier.' }; + + const apiBase = process.env.SENCHO_CLOUD_BACKUP_API || SENCHO_CLOUD_BACKUP_API_DEFAULT; + try { + const res = await axios.post(`${apiBase}/api/cloud-backup/provision`, { license_key: licenseKey }, { timeout: 15000 }); + const data = res.data as { + endpoint: string; + region?: string; + bucket: string; + access_key: string; + secret_key: string; + path_prefix: string; + quota_bytes: number; + }; + db.setSystemState('sencho_cloud_backup_endpoint', data.endpoint); + db.setSystemState('sencho_cloud_backup_bucket', data.bucket); + db.setSystemState('sencho_cloud_backup_access_key', data.access_key); + db.setSystemState('sencho_cloud_backup_secret_key', crypto.encrypt(data.secret_key)); + db.setSystemState('sencho_cloud_backup_path_prefix', data.path_prefix); + db.setSystemState('sencho_cloud_backup_quota_bytes', String(data.quota_bytes)); + db.setSystemState('sencho_cloud_backup_provisioned_at', new Date().toISOString()); + db.updateGlobalSetting(PROVIDER_KEY, 'sencho'); + return { success: true, quotaBytes: data.quota_bytes }; + } catch (err) { + const responseError = (err as { response?: { data?: { error?: string } } }).response?.data?.error; + return { success: false, error: responseError || getErrorMessage(err, 'Failed to provision Sencho Cloud Backup.') }; + } + } + + public async refreshSenchoCloudBackupCredentials(): Promise { + const result = await this.provisionSenchoCloudBackup(); + if (!result.success) throw new Error(result.error || 'Failed to refresh Sencho Cloud Backup credentials.'); + } + + public async getSenchoCloudBackupUsage(): Promise<{ used_bytes: number; quota_bytes: number; object_count: number }> { + const db = DatabaseService.getInstance(); + const licenseKey = db.getSystemState('license_key'); + if (!licenseKey) throw new Error('No license key found.'); + const apiBase = process.env.SENCHO_CLOUD_BACKUP_API || SENCHO_CLOUD_BACKUP_API_DEFAULT; + const res = await axios.post(`${apiBase}/api/cloud-backup/usage`, { license_key: licenseKey }, { timeout: 15000 }); + const data = res.data as { used_bytes: number; quota_bytes: number; object_count: number }; + return data; + } + + // ─── S3 operations ───────────────────────────────────────────────────────── + + public async testConnection(): Promise<{ success: boolean; error?: string }> { + const cfg = this.getResolvedConfig(); + if (!cfg) return { success: false, error: 'No cloud backup configuration is active.' }; + try { + const client = this.buildS3Client(cfg); + await client.send(new HeadBucketCommand({ Bucket: cfg.bucket })); + return { success: true }; + } catch (err) { + return { success: false, error: getErrorMessage(err, 'Connection test failed.') }; + } + } + + public async uploadSnapshot(snapshotId: number): Promise { + const cfg = this.getResolvedConfig(); + if (!cfg) throw new Error('Cloud backup is not configured.'); + const db = DatabaseService.getInstance(); + const snapshot = db.getSnapshot(snapshotId); + if (!snapshot) throw new Error(`Snapshot ${snapshotId} not found.`); + const files = db.getSnapshotFiles(snapshotId); + const objectKey = this.buildObjectKey(cfg, snapshot.id, snapshot.description, snapshot.created_at); + + this.setStatus(snapshotId, { status: 'uploading', objectKey, updatedAt: Date.now() }); + try { + const archive = await this.buildArchive(snapshot, files); + const client = this.buildS3Client(cfg); + await client.send(new PutObjectCommand({ + Bucket: cfg.bucket, + Key: objectKey, + Body: archive, + ContentType: 'application/gzip', + })); + this.setStatus(snapshotId, { status: 'success', objectKey, updatedAt: Date.now() }); + if (isDebugEnabled()) { + console.log(`[CloudBackup:debug] Uploaded snapshot ${snapshotId} (${archive.byteLength} bytes) to ${cfg.bucket}/${objectKey}`); + } + } catch (err) { + const message = getErrorMessage(err, 'Cloud upload failed.'); + this.setStatus(snapshotId, { status: 'failed', objectKey, error: message, updatedAt: Date.now() }); + throw new Error(message); + } + } + + public async downloadSnapshot(objectKey: string): Promise { + const cfg = this.getResolvedConfig(); + if (!cfg) throw new Error('Cloud backup is not configured.'); + const client = this.buildS3Client(cfg); + const result = await client.send(new GetObjectCommand({ Bucket: cfg.bucket, Key: objectKey })); + const body = result.Body as Readable | undefined; + if (!body) throw new Error('Empty response body.'); + return await streamToBuffer(body); + } + + public async listCloudSnapshots(): Promise { + const cfg = this.getResolvedConfig(); + if (!cfg) return []; + const client = this.buildS3Client(cfg); + const prefix = `${cfg.pathPrefix}instances/${this.getInstanceId()}/snapshots/`; + const result = await client.send(new ListObjectsV2Command({ + Bucket: cfg.bucket, + Prefix: prefix, + MaxKeys: 1000, + })); + const objects = result.Contents || []; + return objects + .filter(o => !!o.Key) + .map(o => { + const key = o.Key as string; + const basename = key.split('/').pop() || key; + const idMatch = basename.match(/^(\d+)_/); + return { + objectKey: key, + sizeBytes: o.Size ?? 0, + lastModified: o.LastModified ? o.LastModified.toISOString() : null, + snapshotId: idMatch ? parseInt(idMatch[1], 10) : null, + }; + }) + .sort((a, b) => (b.lastModified || '').localeCompare(a.lastModified || '')); + } + + public async deleteCloudSnapshot(objectKey: string): Promise { + const cfg = this.getResolvedConfig(); + if (!cfg) throw new Error('Cloud backup is not configured.'); + const client = this.buildS3Client(cfg); + await client.send(new DeleteObjectCommand({ Bucket: cfg.bucket, Key: objectKey })); + } + + // ─── Status tracking ─────────────────────────────────────────────────────── + + public getUploadStatus(snapshotId: number): UploadStatusEntry { + return this.uploadStatus.get(snapshotId) || { status: 'idle', updatedAt: 0 }; + } + + private setStatus(snapshotId: number, entry: UploadStatusEntry): void { + this.uploadStatus.set(snapshotId, entry); + } + + private gcUploadStatus(): void { + const now = Date.now(); + for (const [id, entry] of this.uploadStatus.entries()) { + if (entry.status === 'success' && now - entry.updatedAt > SUCCESS_STATUS_TTL_MS) { + this.uploadStatus.delete(id); + } + } + } + + // ─── Internals ───────────────────────────────────────────────────────────── + + private buildS3Client(cfg: ResolvedCloudConfig): S3Client { + return new S3Client({ + endpoint: cfg.endpoint, + region: cfg.region, + credentials: { accessKeyId: cfg.accessKey, secretAccessKey: cfg.secretKey }, + forcePathStyle: true, + }); + } + + private getInstanceId(): string { + return DatabaseService.getInstance().getSystemState('instance_id') || 'unknown'; + } + + private buildObjectKey(cfg: ResolvedCloudConfig, snapshotId: number, description: string, createdAt: number): string { + const ts = new Date(createdAt).toISOString().replace(/[:.]/g, '-'); + const slug = description.slice(0, 40).replace(/[^a-z0-9]+/gi, '-').replace(/^-+|-+$/g, '').toLowerCase() || 'snapshot'; + return `${cfg.pathPrefix}instances/${this.getInstanceId()}/snapshots/${snapshotId}_${ts}_${slug}.tar.gz`; + } + + private async buildArchive( + snapshot: { id: number; description: string; created_by: string; node_count: number; stack_count: number; skipped_nodes: string; created_at: number }, + files: FleetSnapshotFile[], + ): Promise { + const pack = tar.pack(); + const metadata = { + id: snapshot.id, + description: snapshot.description, + created_by: snapshot.created_by, + created_at: snapshot.created_at, + node_count: snapshot.node_count, + stack_count: snapshot.stack_count, + skipped_nodes: safeParseJson(snapshot.skipped_nodes, []), + instance_id: this.getInstanceId(), + archive_version: 1, + }; + pack.entry({ name: 'metadata.json' }, JSON.stringify(metadata, null, 2)); + + for (const file of files) { + const safeNodeName = sanitizePathSegment(file.node_name); + const safeStackName = sanitizePathSegment(file.stack_name); + const safeFilename = sanitizePathSegment(file.filename); + const entryPath = `nodes/${file.node_id}_${safeNodeName}/${safeStackName}/${safeFilename}`; + pack.entry({ name: entryPath }, file.content); + } + pack.finalize(); + + const gzip = zlib.createGzip(); + const chunks: Buffer[] = []; + return await new Promise((resolve, reject) => { + gzip.on('data', (chunk: Buffer) => chunks.push(chunk)); + gzip.on('end', () => resolve(Buffer.concat(chunks))); + gzip.on('error', reject); + pack.on('error', reject); + pack.pipe(gzip); + }); + } +} + +// ─── Helpers ─────────────────────────────────────────────────────────────────── + +function streamToBuffer(stream: Readable): Promise { + return new Promise((resolve, reject) => { + const chunks: Buffer[] = []; + stream.on('data', (chunk: Buffer) => chunks.push(chunk)); + stream.on('end', () => resolve(Buffer.concat(chunks))); + stream.on('error', reject); + }); +} + +function sanitizePathSegment(input: string): string { + // Preserve dotfiles like `.env` while neutralising traversal (`..`) and path separators. + const cleaned = input.replace(/\.\./g, '_').replace(/[\\/]/g, '_'); + if (/^\.+$/.test(cleaned)) return '_'; + return cleaned; +} + +function safeParseJson(value: string | null | undefined, fallback: T): T { + if (!value) return fallback; + try { return JSON.parse(value) as T; } catch { return fallback; } +} diff --git a/backend/src/services/SchedulerService.ts b/backend/src/services/SchedulerService.ts index 4a427ffc..33b33195 100644 --- a/backend/src/services/SchedulerService.ts +++ b/backend/src/services/SchedulerService.ts @@ -15,6 +15,7 @@ import { NotificationService } from './NotificationService'; import TrivyService from './TrivyService'; import type { ScanAllNodeImagesResult } from './TrivyService'; import TrivyInstaller from './TrivyInstaller'; +import { CloudBackupService } from './CloudBackupService'; const TRIVY_UPDATE_CHECK_INTERVAL_MS = 24 * 60 * 60 * 1000; const TRIVY_UPDATE_CHECK_STARTUP_DELAY_MS = 5 * 60 * 1000; @@ -501,11 +502,25 @@ export class SchedulerService { db.insertSnapshotFiles(snapshotId, allFiles); } - if (isDebugEnabled()) { - console.debug(`[SchedulerService:debug] Snapshot task ${task.id}: captured ${capturedNodes.length} node(s), ${totalStacks} stack(s), ${allFiles.length} file(s), skipped ${skippedNodes.length}`); + let cloudUploadNote = ''; + const cloudSvc = CloudBackupService.getInstance(); + if (cloudSvc.isEnabled() && cloudSvc.isAutoUploadOn()) { + try { + await cloudSvc.uploadSnapshot(snapshotId); + cloudUploadNote = ', cloud upload OK'; + } catch (err) { + const message = getErrorMessage(err, 'Cloud upload failed'); + console.error('[SchedulerService] Cloud upload failed:', message); + this.safeDispatch('warning', 'system', `Cloud backup failed for scheduled snapshot ${snapshotId}: ${message}`); + cloudUploadNote = ', cloud upload FAILED'; + } } - return `Fleet snapshot created (id=${snapshotId}, ${capturedNodes.length} node(s), ${totalStacks} stack(s)${skippedNodes.length > 0 ? `, ${skippedNodes.length} skipped` : ''})`; + if (isDebugEnabled()) { + console.debug(`[SchedulerService:debug] Snapshot task ${task.id}: captured ${capturedNodes.length} node(s), ${totalStacks} stack(s), ${allFiles.length} file(s), skipped ${skippedNodes.length}${cloudUploadNote}`); + } + + return `Fleet snapshot created (id=${snapshotId}, ${capturedNodes.length} node(s), ${totalStacks} stack(s)${skippedNodes.length > 0 ? `, ${skippedNodes.length} skipped` : ''}${cloudUploadNote})`; } private async executePrune(task: ScheduledTask): Promise { diff --git a/backend/src/utils/audit-summaries.ts b/backend/src/utils/audit-summaries.ts index 74b0e5dd..4602d997 100644 --- a/backend/src/utils/audit-summaries.ts +++ b/backend/src/utils/audit-summaries.ts @@ -86,6 +86,13 @@ export const AUDIT_ROUTE_SUMMARIES: Record = { 'POST /fleet/nodes/*/update': 'Triggered fleet node update', 'POST /fleet/update-all': 'Triggered fleet-wide update', + // Cloud backup + 'PUT /cloud-backup/config': 'Updated cloud backup config', + 'POST /cloud-backup/test': 'Tested cloud backup connection', + 'POST /cloud-backup/provision': 'Provisioned Sencho Cloud Backup', + 'POST /cloud-backup/upload': 'Uploaded snapshot to cloud', + 'DELETE /cloud-backup/object': 'Deleted cloud snapshot', + // SSO 'PUT /sso/config': 'Updated SSO configuration', 'DELETE /sso/config': 'Deleted SSO configuration', diff --git a/docs/features/fleet-backups.mdx b/docs/features/fleet-backups.mdx index e2c990a1..38b13075 100644 --- a/docs/features/fleet-backups.mdx +++ b/docs/features/fleet-backups.mdx @@ -82,6 +82,59 @@ Sencho writes the snapshot's files back to the target node: Admins can delete snapshots from the list view by clicking the trash icon on the right side of each row. A confirmation dialog asks you to confirm before the snapshot is permanently removed. Deleting a snapshot removes all captured file data from the database. This action cannot be undone. +## Cloud Backup + + + Cloud Backup requires an Admiral license. Configure it in **Settings → Cloud Backup**. + + +Cloud Backup mirrors every fleet snapshot to off-site storage so your snapshots survive local disk failure. Two storage modes are supported. + +### Sencho Cloud Backup (included) + +A managed 500 MB allowance backed by Cloudflare R2, included with every Admiral license. Open **Settings → Cloud Backup**, choose **Sencho Cloud Backup**, and click **Activate**. Sencho exchanges your license key for scoped storage credentials and starts replicating new snapshots automatically. The settings panel shows your storage usage and lets you reprovision credentials if needed. + +### Custom S3 (BYOB) + +Bring any S3-compatible bucket: AWS S3, MinIO, Backblaze B2, Wasabi, or your own Cloudflare R2 token. Choose **Custom S3** in the storage-mode dropdown and fill in: + +- **Endpoint URL** (e.g. `https://s3.us-east-1.amazonaws.com`, `https://my-minio.example.com:9000`) +- **Region** (e.g. `us-east-1`, or `auto` for R2) +- **Bucket** name +- **Path Prefix** (default `sencho/`) +- **Access Key ID** and **Secret Access Key** +- **Auto-upload** toggle + +Click **Test** to verify connectivity, then **Save**. Secret keys are encrypted at rest. Sencho only sends them to your configured endpoint. + +### Manual upload vs auto-upload + +When auto-upload is on, every fleet snapshot is replicated as soon as it is created. Manual snapshots from the **Fleet → Snapshots** view upload asynchronously so the UI returns immediately; scheduled snapshots block on the upload so the task's success status reflects cloud durability. + +To upload a single snapshot on demand, open the **Snapshots** tab in Fleet View. Each row that hasn't been mirrored yet shows a cloud-upload action next to the **View** button. Once a snapshot is in the cloud, a small cloud icon appears next to its description. + +### Browsing and downloading cloud snapshots + +The **Cloud Snapshots** panel in **Settings → Cloud Backup** lists every archive currently in your bucket, with size and last-modified timestamp. Click the download icon to save a `.tar.gz` archive locally for off-host disaster recovery. Each archive contains a `metadata.json` describing the snapshot and a `nodes/` tree with the captured compose and environment files, organised by node and stack. + +### Restoring from a cloud snapshot + +For in-place rollback, use the **Restore** action on the snapshot detail view as described above; the local copy is the source of truth for live restore. Cloud snapshots cover the disaster-recovery case where the local disk is gone: download the archive, extract it, and bring up a fresh Sencho instance pointed at the recovered files. + +### Cloud Backup troubleshooting + +#### Bad credentials + +If **Test** reports an authentication error, double-check the Access Key ID, Secret Access Key, and bucket. Some providers require you to enable S3-compatible API access on the bucket separately. For MinIO, verify the user has read/write permission on the target bucket. + +#### Over quota (Sencho Cloud Backup) + +Sencho Cloud Backup has a 500 MB allowance per license. When you hit the cap, new uploads fail with a quota error. Delete older cloud snapshots from the **Cloud Snapshots** panel to free space. The local copies are unaffected. + +#### Network timeout or 5xx error + +Transient errors surface as a notification. Retry by clicking the cloud-upload action on the snapshot row, or wait for the next scheduled snapshot which will retry on its own. Persistent failures usually indicate an endpoint outage; verify the storage provider is reachable from your Sencho host. + ## Access control | Action | Admin | Node Admin | Deployer | Auditor | Viewer | diff --git a/docs/images/cloud-backup/cloud-backup-custom.png b/docs/images/cloud-backup/cloud-backup-custom.png new file mode 100644 index 0000000000000000000000000000000000000000..5a007d779894679acfd082b8a441be158987867e GIT binary patch literal 205327 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�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 BsyzSz literal 0 HcmV?d00001 diff --git a/docs/images/cloud-backup/cloud-backup-disabled.png b/docs/images/cloud-backup/cloud-backup-disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..f751d88034b9572d111b83d31fcbb8d9797e512a GIT binary patch literal 169957 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

r z4FHNdBRQ0TpV;kFqD=$#?*QuOMm*`Q_*o&|B#$InjIjUh!qx2>XE`<<+i2#66W14j zAd@c&Sio(`K#Fqm@&JY<4~4EU;#4ilashB-=L?)SimM9=1&h%QO-@dUoc)yMcUq|(IQS$45c7bS>K@r~ztC~7e2r)mUnB4+8Tk7f$hc6<{elPG?@1#-^)$@I_ zWWHSPO#?1MA7{I=uB90&)TiQ-pLaanF3)5-*Tp6)zspqmp9bTYbIyTHX9~%FZoc16 ziFiSCq-(p+=ATVkZ!c)pkMqWn@^J0?ot^JMeWAS3bg~mA&uV8o-Hz(P?eyZ zio1kp`vd2ly3b=JJRe>?#e9bV=X-$jZK55j?E|q6H>_xdj?9>T$@`>MHiQnwh_nt0 z>eHImMxDZtyjiT4bsBoES(Xwq0*JW8>XQZg6NmM@Tw)8e4Ou5ro0C*D+EvfWiFVW7 zAVAw7I1Dlqv;0xP&r^#DdD!>^dYa$-N(2jI_-XyKEyD55#*u0E{OsN*nR%k73@uFt z=9*PPB(l&DSJg$$r7^x#8GZl0lQrfY^HwYya}PSl*JLXD;~ix`S_4y)tgOAO2+X*v z`P{u$o%B6_J}=HCTej@%d-Jq;ABm!P=j4RDbT;*^X+Tq;`+WXFtseip7mN)-uwKygb#Q6p#^?egr|SIfWoMrL7s_z9Zb zG|x(=Wiu_RlJXD{c-b7KkVS*Jj9TLFNr6K0_MQGd&tc8Lnaloib7bI;h1F&*@1rq` zUCJ#pRuGcG2Dgekc?`-aY)5&{Bjf?uCG|q1g}0XVG}K6bk4$5NsnH*QDp`Qk;nDZL zz>vfdO8jHc9VtI=*6T9R^m3f&W7~_sOB$EmeOr=tFw0--e18BqkOxK=E=Bc!tRp8S zHUkYQrSwg8s@OOeX(R327~vC??NGW)*&qX%1-Ws=U`5Nu6_fA9KQuoi-3+=z$jDz> zzfYO0UEN-k#-%N6L8$-0l%kLS?(NJ)xoROvNi63yu&iA}8_kZ!q!ji2MNfOm8~wA+ zd>~aqaRwzK*n3usYlTg2j4j+x1IJ$Ymx0=f1H{y08NNimyL_o^@sx>CLC$}jHs4;I zi-d&4+ta&1#5F8PH=>Qctcy*Cu3M~Pn{H$*N5z`_`ObhpXP)kZR@!JSvCYM34Ihmu z`FjGOwRr&KE!-FO_O74fVCkYv&0&5ms~X$ZD-5jC%t%nybrgfu9tq@c!2%(3n~7_% z$IrQLKi9IRHZ@z?w1ro%CLELHZkhM4Go$$-8gQB=8gY+a;v26Q<;Gzv>3pQ}cVTv) zK5taPP7c$pe~k{8e5KrRGta{ciLy>u9U^!d>$o8Ig(eqd(%_aomtVrxXcZXTWyWYk znN){w<6!c=zRt2eVa{eEsgk>+n8H>x^qMGGTc8*Hw2k)xS|haO0=8xt5YgohOPEuW zAVdKPFS&)6aOvDb+2X$Mx=(RZ@~LIH+rHVFoTAd2q5Y`b3tn68q34yFY_Kpl0he8} zmx0F}gr!nLo23P%%~b5`rJqatGKGjDK`0W`O-FcJQfF~!QD1+`s^;T--jVWgf*!N~ znzfDjLhP%(8_{5gxzykhi8{im+ME;s@f%KHmmT#lLhkGD?^f`gR4Z6D8+d1@`D6R@ ze6U9IpZuNXNua<}E-K+D#_Ha@C;F@72A|fm1T8IT%JU)R&KV5{wN5>FR5k?bS9Q*$ zUCLlQi}yZsjInK*>Dw4WVJ0?szHtk6nUkQE;mKW=(04w5k}b#FTw?VMZctQn8iJP>gsS!Ny%APc*aEmFiPZUX!7x3`FMi zqh+7}R|^R86=Di7`L+CeOu9&{%kT0n!MHuF_tUMk%M_245Pg4*nJxQ!`o=5X%irBY z(1yKKmmsZnlGexNl(!lVhts{(`6_A+_a*$b3g+TcJD(;d0t`EiY52X)Ot*_H3a5JCF~wKRCs0k$*zcW@STbF>Hb*IhwbEn9GdJ

hG6SyJV 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[]); const [loading, setLoading] = useState(true); @@ -81,6 +85,8 @@ export default function FleetSnapshots() { const [restoringStack, setRestoringStack] = useState(null); const [deletingId, setDeletingId] = useState(null); const [page, setPage] = useState(0); + const [cloudSnapshotIds, setCloudSnapshotIds] = useState>(new Set()); + const [uploadingId, setUploadingId] = useState(null); const totalPages = Math.max(1, Math.ceil(snapshots.length / PAGE_SIZE)); const safePage = Math.min(page, totalPages - 1); @@ -111,6 +117,37 @@ export default function FleetSnapshots() { fetchSnapshots(); }, [fetchSnapshots]); + const fetchCloudSnapshots = useCallback(async () => { + if (!isAdmiral) return; + try { + const res = await apiFetch('/cloud-backup/snapshots', { localOnly: true }); + if (!res.ok) return; + const data = await res.json() as Array<{ snapshotId: number | null }>; + setCloudSnapshotIds(new Set(data.map(d => d.snapshotId).filter((id): id is number => id != null))); + } catch { + // best-effort; cloud indicators stay hidden on failure + } + }, [isAdmiral]); + + useEffect(() => { + fetchCloudSnapshots(); + }, [fetchCloudSnapshots]); + + const handleCloudUpload = async (id: number) => { + setUploadingId(id); + try { + const res = await apiFetch(`/cloud-backup/upload/${id}`, { method: 'POST', localOnly: true }); + const data = await res.json().catch(() => ({})); + if (!res.ok) throw new Error((data as { error?: string }).error || `Upload failed (${res.status})`); + toast.success('Snapshot uploaded to cloud.'); + await fetchCloudSnapshots(); + } catch (err) { + toast.error((err as Error)?.message || 'Cloud upload failed.'); + } finally { + setUploadingId(null); + } + }; + const handleCreate = async () => { setCreating(true); const loadingId = toast.loading('Creating fleet snapshot...'); @@ -533,11 +570,20 @@ export default function FleetSnapshots() { {new Date(snapshot.created_at).toLocaleString()} - {snapshot.description ? ( - snapshot.description - ) : ( - No description - )} +

+ {snapshot.description ? ( + {snapshot.description} + ) : ( + No description + )} + {cloudSnapshotIds.has(snapshot.id) && ( + + )} +
{snapshot.node_count} node{snapshot.node_count !== 1 ? 's' : ''} @@ -568,6 +614,22 @@ export default function FleetSnapshots() { View + {isAdmin && isAdmiral && !cloudSnapshotIds.has(snapshot.id) && ( + + )} {isAdmin && ( diff --git a/frontend/src/components/SettingsModal.tsx b/frontend/src/components/SettingsModal.tsx index 855bfa98..255f9ed4 100644 --- a/frontend/src/components/SettingsModal.tsx +++ b/frontend/src/components/SettingsModal.tsx @@ -39,6 +39,7 @@ import { NotificationRoutingSection, WebhooksSection, SecuritySection, + CloudBackupSection, DeveloperSection, AppStoreSection, SupportSection, @@ -318,6 +319,7 @@ export function SettingsModal({ isOpen, onClose, initialSection, onLabelsChanged case 'notification-routing': return ; case 'webhooks': return ; case 'security': return ; + case 'cloud-backup': return ; case 'developer': return ( ('disabled'); + const [senchoProvisioned, setSenchoProvisioned] = useState(false); + const [custom, setCustom] = useState(EMPTY_CUSTOM); + const [originalSecretSaved, setOriginalSecretSaved] = useState(false); + const [usage, setUsage] = useState(null); + const [snapshots, setSnapshots] = useState([]); + const [testing, setTesting] = useState(false); + const [provisioning, setProvisioning] = useState(false); + const [deleteKey, setDeleteKey] = useState(null); + + const loadConfig = useCallback(async () => { + try { + const res = await apiFetch('/cloud-backup/config'); + if (!res.ok) throw new Error(`Failed to load config (${res.status})`); + const data: ConfigResponse = await res.json(); + setProvider(data.provider); + setSenchoProvisioned(data.sencho_provisioned); + setCustom({ ...data.custom, secret_key: '' }); + setOriginalSecretSaved(!!data.custom.secret_key); + } catch (err) { + toast.error((err as Error)?.message || 'Failed to load cloud backup config.'); + } finally { + setLoading(false); + } + }, []); + + const loadUsage = useCallback(async () => { + try { + const res = await apiFetch('/cloud-backup/usage'); + if (res.ok) setUsage(await res.json()); + } catch { + // Usage is informational; failures shouldn't surface as toasts. + } + }, []); + + const loadSnapshots = useCallback(async () => { + try { + const res = await apiFetch('/cloud-backup/snapshots'); + if (res.ok) setSnapshots(await res.json()); + } catch { + // Best-effort; the panel renders empty when listing fails. + } + }, []); + + useEffect(() => { + loadConfig(); + }, [loadConfig]); + + useEffect(() => { + if (provider === 'sencho' && senchoProvisioned) loadUsage(); + }, [provider, senchoProvisioned, loadUsage]); + + useEffect(() => { + if (provider !== 'disabled') loadSnapshots(); + else setSnapshots([]); + }, [provider, loadSnapshots]); + + const handleProviderChange = async (next: string) => { + const nextProvider = next as Provider; + setProvider(nextProvider); + if (nextProvider === 'sencho' && !senchoProvisioned) return; + setSaving(true); + try { + const body = nextProvider === 'custom' ? { provider: nextProvider, custom: { ...custom, secret_key: '' } } : { provider: nextProvider }; + const res = await apiFetch('/cloud-backup/config', { + method: 'PUT', + body: JSON.stringify(body), + }); + if (!res.ok) { + const err = await res.json().catch(() => ({})); + throw new Error(err?.error || 'Failed to save provider'); + } + toast.success('Cloud backup provider updated.'); + } catch (err) { + toast.error((err as Error)?.message || 'Failed to update provider.'); + } finally { + setSaving(false); + } + }; + + const handleSaveCustom = async () => { + setSaving(true); + try { + const payload = { + provider: 'custom', + custom: { + endpoint: custom.endpoint, + region: custom.region, + bucket: custom.bucket, + access_key: custom.access_key, + secret_key: custom.secret_key || (originalSecretSaved ? '***' : ''), + path_prefix: custom.path_prefix, + auto_upload: custom.auto_upload, + }, + }; + const res = await apiFetch('/cloud-backup/config', { + method: 'PUT', + body: JSON.stringify(payload), + }); + if (!res.ok) { + const err = await res.json().catch(() => ({})); + throw new Error(err?.error || 'Failed to save configuration'); + } + toast.success('Custom S3 configuration saved.'); + setCustom(c => ({ ...c, secret_key: '' })); + setOriginalSecretSaved(true); + loadSnapshots(); + } catch (err) { + toast.error((err as Error)?.message || 'Failed to save configuration.'); + } finally { + setSaving(false); + } + }; + + const handleTest = async () => { + setTesting(true); + try { + const res = await apiFetch('/cloud-backup/test', { method: 'POST' }); + const data = await res.json().catch(() => ({})); + if (data.success) toast.success('Connection successful.'); + else toast.error(data.error || 'Connection test failed.'); + } catch (err) { + toast.error((err as Error)?.message || 'Connection test failed.'); + } finally { + setTesting(false); + } + }; + + const handleProvision = async () => { + setProvisioning(true); + try { + const res = await apiFetch('/cloud-backup/provision', { method: 'POST' }); + const data = await res.json().catch(() => ({})); + if (!res.ok || data?.error) throw new Error(data?.error || 'Provisioning failed.'); + toast.success('Sencho Cloud Backup activated.'); + setSenchoProvisioned(true); + await Promise.all([loadConfig(), loadUsage(), loadSnapshots()]); + } catch (err) { + toast.error((err as Error)?.message || 'Provisioning failed.'); + } finally { + setProvisioning(false); + } + }; + + const handleAutoUploadToggle = async (next: boolean) => { + setCustom(c => ({ ...c, auto_upload: next })); + try { + const res = await apiFetch('/cloud-backup/config', { + method: 'PUT', + body: JSON.stringify({ + provider: 'custom', + custom: { ...custom, auto_upload: next, secret_key: originalSecretSaved ? '***' : '' }, + }), + }); + if (!res.ok) { + const err = await res.json().catch(() => ({})); + throw new Error(err?.error || 'Failed to update auto-upload'); + } + } catch (err) { + toast.error((err as Error)?.message || 'Failed to update auto-upload.'); + setCustom(c => ({ ...c, auto_upload: !next })); + } + }; + + const confirmDelete = async () => { + if (!deleteKey) return; + try { + const encoded = btoa(deleteKey).replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, ''); + const res = await apiFetch(`/cloud-backup/object/${encoded}`, { method: 'DELETE' }); + if (!res.ok) { + const err = await res.json().catch(() => ({})); + throw new Error(err?.error || 'Failed to delete cloud snapshot'); + } + toast.success('Cloud snapshot deleted.'); + loadSnapshots(); + if (provider === 'sencho') loadUsage(); + } catch (err) { + toast.error((err as Error)?.message || 'Failed to delete cloud snapshot.'); + } finally { + setDeleteKey(null); + } + }; + + if (loading) { + return ( +
+ + +
+ ); + } + + const usagePercent = usage && usage.quota_bytes > 0 ? Math.min(100, Math.round((usage.used_bytes / usage.quota_bytes) * 100)) : 0; + const usageColor = usagePercent >= 90 ? 'var(--destructive)' : usagePercent >= 80 ? 'var(--warning)' : 'var(--brand)'; + + return ( + +
+
+ + +

+ Choose where fleet snapshots are replicated. Sencho Cloud Backup is included with the Admiral tier. +

+
+ + {provider === 'sencho' && !senchoProvisioned && ( +
+
+ + Activate Sencho Cloud Backup +
+

+ Activates a 500 MB allowance backed by Cloudflare R2, scoped to this Admiral license. +

+ +
+ )} + + {provider === 'sencho' && senchoProvisioned && ( +
+
+
+ + Sencho Cloud Backup +
+
+ + +
+
+ + {usage && ( +
+
+ Storage used + + {formatBytes(usage.used_bytes)} / {formatBytes(usage.quota_bytes)} ({usage.object_count} objects) + +
+
+
+
+
+ )} + +
+ +

+ Auto-upload is on for Sencho Cloud Backup. Every fleet snapshot is replicated within seconds. +

+
+
+ )} + + {provider === 'custom' && ( +
+
+
+ + Custom S3 Configuration +
+
+ + +
+
+ +
+
+ + setCustom({ ...custom, endpoint: e.target.value })} + /> +
+
+ + setCustom({ ...custom, region: e.target.value })} + /> +
+
+ + setCustom({ ...custom, bucket: e.target.value })} + /> +
+
+ + setCustom({ ...custom, path_prefix: e.target.value })} + /> +
+
+ + setCustom({ ...custom, access_key: e.target.value })} + /> +
+
+ + setCustom({ ...custom, secret_key: e.target.value })} + /> +
+
+ +
+
+ +

Automatically upload every fleet snapshot to this bucket.

+
+ +
+
+ )} + + {provider !== 'disabled' && ( +
+
+ Cloud Snapshots + +
+ {snapshots.length === 0 ? ( +
+ + No cloud snapshots yet. The next fleet snapshot will appear here. +
+ ) : ( +
    + {snapshots.map(s => ( +
  • +
    +
    {s.objectKey.split('/').pop()}
    +
    + {formatBytes(s.sizeBytes)} {s.lastModified ? `· ${new Date(s.lastModified).toLocaleString()}` : ''} +
    +
    +
    + + +
    +
  • + ))} +
+ )} +
+ )} + + !open && setDeleteKey(null)}> + + + + + Delete cloud snapshot? + + + This permanently removes the archive from your bucket. The local SQLite copy is unaffected. + + + + Cancel + + Delete + + + + +
+ + ); +} diff --git a/frontend/src/components/settings/index.ts b/frontend/src/components/settings/index.ts index d6a2d2b6..ca3ce66e 100644 --- a/frontend/src/components/settings/index.ts +++ b/frontend/src/components/settings/index.ts @@ -6,6 +6,7 @@ export { SystemSection } from './SystemSection'; export { NotificationsSection } from './NotificationsSection'; export { WebhooksSection } from './WebhooksSection'; export { SecuritySection } from './SecuritySection'; +export { CloudBackupSection } from './CloudBackupSection'; export { DeveloperSection } from './DeveloperSection'; export { AppStoreSection } from './AppStoreSection'; export { SupportSection } from './SupportSection'; diff --git a/frontend/src/components/settings/registry.ts b/frontend/src/components/settings/registry.ts index 5c73fc1f..d02a3b50 100644 --- a/frontend/src/components/settings/registry.ts +++ b/frontend/src/components/settings/registry.ts @@ -114,6 +114,17 @@ export const SETTINGS_ITEMS: readonly SettingsItemMeta[] = [ adminOnly: true, hiddenOnRemote: true, }, + { + id: 'cloud-backup', + group: 'system', + label: 'Cloud Backup', + description: 'Mirror fleet snapshots to Sencho Cloud Backup or any S3-compatible storage.', + keywords: ['cloud', 'backup', 'snapshot', 's3', 'r2', 'minio', 'storage', 'offsite'], + tier: 'admiral', + scope: 'global', + adminOnly: true, + hiddenOnRemote: true, + }, { id: 'nodes', group: 'system', diff --git a/frontend/src/components/settings/types.ts b/frontend/src/components/settings/types.ts index 6fb95bae..15a2411d 100644 --- a/frontend/src/components/settings/types.ts +++ b/frontend/src/components/settings/types.ts @@ -37,6 +37,7 @@ export type SectionId = | 'notifications' | 'webhooks' | 'security' + | 'cloud-backup' | 'developer' | 'nodes' | 'appstore'