@marinoscar/platform-contract 0.1.0-next.3 → 0.1.0-next.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +173 -0
- package/README.md +23 -1
- package/dist/cjs/ai/capabilities.d.ts +85 -0
- package/dist/cjs/ai/capabilities.d.ts.map +1 -0
- package/dist/cjs/ai/capabilities.js +93 -0
- package/dist/cjs/ai/capabilities.js.map +1 -0
- package/dist/cjs/ai/constants.d.ts +239 -0
- package/dist/cjs/ai/constants.d.ts.map +1 -0
- package/dist/cjs/ai/constants.js +233 -0
- package/dist/cjs/ai/constants.js.map +1 -0
- package/dist/cjs/ai/features.d.ts +24 -0
- package/dist/cjs/ai/features.d.ts.map +1 -0
- package/dist/cjs/ai/features.js +33 -0
- package/dist/cjs/ai/features.js.map +1 -0
- package/dist/cjs/ai/index.d.ts +11 -0
- package/dist/cjs/ai/index.d.ts.map +1 -0
- package/dist/cjs/ai/index.js +81 -0
- package/dist/cjs/ai/index.js.map +1 -0
- package/dist/cjs/ai/org-keys.d.ts +50 -0
- package/dist/cjs/ai/org-keys.d.ts.map +1 -0
- package/dist/cjs/ai/org-keys.js +43 -0
- package/dist/cjs/ai/org-keys.js.map +1 -0
- package/dist/cjs/ai/schemas.d.ts +642 -0
- package/dist/cjs/ai/schemas.d.ts.map +1 -0
- package/dist/cjs/ai/schemas.js +894 -0
- package/dist/cjs/ai/schemas.js.map +1 -0
- package/dist/cjs/android-app/constants.d.ts +337 -0
- package/dist/cjs/android-app/constants.d.ts.map +1 -0
- package/dist/cjs/android-app/constants.js +312 -0
- package/dist/cjs/android-app/constants.js.map +1 -0
- package/dist/cjs/android-app/index.d.ts +5 -0
- package/dist/cjs/android-app/index.d.ts.map +1 -0
- package/dist/cjs/android-app/index.js +57 -0
- package/dist/cjs/android-app/index.js.map +1 -0
- package/dist/cjs/android-app/schemas.d.ts +358 -0
- package/dist/cjs/android-app/schemas.d.ts.map +1 -0
- package/dist/cjs/android-app/schemas.js +310 -0
- package/dist/cjs/android-app/schemas.js.map +1 -0
- package/dist/cjs/credentials/constants.d.ts +35 -0
- package/dist/cjs/credentials/constants.d.ts.map +1 -0
- package/dist/cjs/credentials/constants.js +39 -0
- package/dist/cjs/credentials/constants.js.map +1 -0
- package/dist/cjs/credentials/index.d.ts +5 -0
- package/dist/cjs/credentials/index.d.ts.map +1 -0
- package/dist/cjs/credentials/index.js +17 -0
- package/dist/cjs/credentials/index.js.map +1 -0
- package/dist/cjs/credentials/schemas.d.ts +64 -0
- package/dist/cjs/credentials/schemas.d.ts.map +1 -0
- package/dist/cjs/credentials/schemas.js +82 -0
- package/dist/cjs/credentials/schemas.js.map +1 -0
- package/dist/cjs/db-backup/config.d.ts +76 -0
- package/dist/cjs/db-backup/config.d.ts.map +1 -0
- package/dist/cjs/db-backup/config.js +115 -0
- package/dist/cjs/db-backup/config.js.map +1 -0
- package/dist/cjs/db-backup/constants.d.ts +314 -0
- package/dist/cjs/db-backup/constants.d.ts.map +1 -0
- package/dist/cjs/db-backup/constants.js +243 -0
- package/dist/cjs/db-backup/constants.js.map +1 -0
- package/dist/cjs/db-backup/index.d.ts +19 -0
- package/dist/cjs/db-backup/index.d.ts.map +1 -0
- package/dist/cjs/db-backup/index.js +81 -0
- package/dist/cjs/db-backup/index.js.map +1 -0
- package/dist/cjs/db-backup/node-credential.d.ts +37 -0
- package/dist/cjs/db-backup/node-credential.d.ts.map +1 -0
- package/dist/cjs/db-backup/node-credential.js +107 -0
- package/dist/cjs/db-backup/node-credential.js.map +1 -0
- package/dist/cjs/db-backup/node-result.d.ts +34 -0
- package/dist/cjs/db-backup/node-result.d.ts.map +1 -0
- package/dist/cjs/db-backup/node-result.js +168 -0
- package/dist/cjs/db-backup/node-result.js.map +1 -0
- package/dist/cjs/db-backup/restore.d.ts +405 -0
- package/dist/cjs/db-backup/restore.d.ts.map +1 -0
- package/dist/cjs/db-backup/restore.js +497 -0
- package/dist/cjs/db-backup/restore.js.map +1 -0
- package/dist/cjs/db-backup/run-actions.d.ts +49 -0
- package/dist/cjs/db-backup/run-actions.d.ts.map +1 -0
- package/dist/cjs/db-backup/run-actions.js +121 -0
- package/dist/cjs/db-backup/run-actions.js.map +1 -0
- package/dist/cjs/db-backup/runs-list-query.d.ts +20 -0
- package/dist/cjs/db-backup/runs-list-query.d.ts.map +1 -0
- package/dist/cjs/db-backup/runs-list-query.js +53 -0
- package/dist/cjs/db-backup/runs-list-query.js.map +1 -0
- package/dist/cjs/db-backup/runs.d.ts +46 -0
- package/dist/cjs/db-backup/runs.d.ts.map +1 -0
- package/dist/cjs/db-backup/runs.js +232 -0
- package/dist/cjs/db-backup/runs.js.map +1 -0
- package/dist/cjs/db-backup/schemas.d.ts +9 -0
- package/dist/cjs/db-backup/schemas.d.ts.map +1 -0
- package/dist/cjs/db-backup/schemas.js +31 -0
- package/dist/cjs/db-backup/schemas.js.map +1 -0
- package/dist/cjs/db-backup/settings-schemas.d.ts +217 -0
- package/dist/cjs/db-backup/settings-schemas.d.ts.map +1 -0
- package/dist/cjs/db-backup/settings-schemas.js +319 -0
- package/dist/cjs/db-backup/settings-schemas.js.map +1 -0
- package/dist/cjs/email/constants.d.ts +82 -0
- package/dist/cjs/email/constants.d.ts.map +1 -0
- package/dist/cjs/email/constants.js +82 -0
- package/dist/cjs/email/constants.js.map +1 -0
- package/dist/cjs/email/index.d.ts +5 -0
- package/dist/cjs/email/index.d.ts.map +1 -0
- package/dist/cjs/email/index.js +30 -0
- package/dist/cjs/email/index.js.map +1 -0
- package/dist/cjs/email/schemas.d.ts +276 -0
- package/dist/cjs/email/schemas.d.ts.map +1 -0
- package/dist/cjs/email/schemas.js +280 -0
- package/dist/cjs/email/schemas.js.map +1 -0
- package/dist/cjs/exports/constants.d.ts +123 -0
- package/dist/cjs/exports/constants.d.ts.map +1 -0
- package/dist/cjs/exports/constants.js +109 -0
- package/dist/cjs/exports/constants.js.map +1 -0
- package/dist/cjs/exports/index.d.ts +5 -0
- package/dist/cjs/exports/index.d.ts.map +1 -0
- package/dist/cjs/exports/index.js +42 -0
- package/dist/cjs/exports/index.js.map +1 -0
- package/dist/cjs/exports/schemas.d.ts +386 -0
- package/dist/cjs/exports/schemas.d.ts.map +1 -0
- package/dist/cjs/exports/schemas.js +288 -0
- package/dist/cjs/exports/schemas.js.map +1 -0
- package/dist/cjs/identity/constants.d.ts +273 -0
- package/dist/cjs/identity/constants.d.ts.map +1 -0
- package/dist/cjs/identity/constants.js +248 -0
- package/dist/cjs/identity/constants.js.map +1 -0
- package/dist/cjs/identity/index.d.ts +5 -0
- package/dist/cjs/identity/index.d.ts.map +1 -0
- package/dist/cjs/identity/index.js +73 -0
- package/dist/cjs/identity/index.js.map +1 -0
- package/dist/cjs/identity/schemas.d.ts +784 -0
- package/dist/cjs/identity/schemas.d.ts.map +1 -0
- package/dist/cjs/identity/schemas.js +684 -0
- package/dist/cjs/identity/schemas.js.map +1 -0
- package/dist/cjs/jobs/constants.d.ts +135 -0
- package/dist/cjs/jobs/constants.d.ts.map +1 -0
- package/dist/cjs/jobs/constants.js +130 -0
- package/dist/cjs/jobs/constants.js.map +1 -0
- package/dist/cjs/jobs/index.d.ts +9 -0
- package/dist/cjs/jobs/index.d.ts.map +1 -0
- package/dist/cjs/jobs/index.js +59 -0
- package/dist/cjs/jobs/index.js.map +1 -0
- package/dist/cjs/jobs/retention-schemas.d.ts +252 -0
- package/dist/cjs/jobs/retention-schemas.d.ts.map +1 -0
- package/dist/cjs/jobs/retention-schemas.js +233 -0
- package/dist/cjs/jobs/retention-schemas.js.map +1 -0
- package/dist/cjs/jobs/schemas.d.ts +361 -0
- package/dist/cjs/jobs/schemas.d.ts.map +1 -0
- package/dist/cjs/jobs/schemas.js +706 -0
- package/dist/cjs/jobs/schemas.js.map +1 -0
- package/dist/cjs/jobs/settings-schemas.d.ts +84 -0
- package/dist/cjs/jobs/settings-schemas.d.ts.map +1 -0
- package/dist/cjs/jobs/settings-schemas.js +116 -0
- package/dist/cjs/jobs/settings-schemas.js.map +1 -0
- package/dist/cjs/nodes/admin-schemas.d.ts +204 -0
- package/dist/cjs/nodes/admin-schemas.d.ts.map +1 -0
- package/dist/cjs/nodes/admin-schemas.js +153 -0
- package/dist/cjs/nodes/admin-schemas.js.map +1 -0
- package/dist/cjs/nodes/constants.d.ts +86 -0
- package/dist/cjs/nodes/constants.d.ts.map +1 -0
- package/dist/cjs/nodes/constants.js +102 -0
- package/dist/cjs/nodes/constants.js.map +1 -0
- package/dist/cjs/nodes/index.d.ts +8 -0
- package/dist/cjs/nodes/index.d.ts.map +1 -0
- package/dist/cjs/nodes/index.js +50 -0
- package/dist/cjs/nodes/index.js.map +1 -0
- package/dist/cjs/nodes/schemas.d.ts +332 -0
- package/dist/cjs/nodes/schemas.d.ts.map +1 -0
- package/dist/cjs/nodes/schemas.js +937 -0
- package/dist/cjs/nodes/schemas.js.map +1 -0
- package/dist/cjs/nodes/settings-schemas.d.ts +82 -0
- package/dist/cjs/nodes/settings-schemas.d.ts.map +1 -0
- package/dist/cjs/nodes/settings-schemas.js +106 -0
- package/dist/cjs/nodes/settings-schemas.js.map +1 -0
- package/dist/cjs/notifications/constants.d.ts +197 -0
- package/dist/cjs/notifications/constants.d.ts.map +1 -0
- package/dist/cjs/notifications/constants.js +181 -0
- package/dist/cjs/notifications/constants.js.map +1 -0
- package/dist/cjs/notifications/index.d.ts +5 -0
- package/dist/cjs/notifications/index.d.ts.map +1 -0
- package/dist/cjs/notifications/index.js +86 -0
- package/dist/cjs/notifications/index.js.map +1 -0
- package/dist/cjs/notifications/schemas.d.ts +1016 -0
- package/dist/cjs/notifications/schemas.d.ts.map +1 -0
- package/dist/cjs/notifications/schemas.js +851 -0
- package/dist/cjs/notifications/schemas.js.map +1 -0
- package/dist/cjs/onboarding/constants.d.ts +138 -0
- package/dist/cjs/onboarding/constants.d.ts.map +1 -0
- package/dist/cjs/onboarding/constants.js +123 -0
- package/dist/cjs/onboarding/constants.js.map +1 -0
- package/dist/cjs/onboarding/index.d.ts +5 -0
- package/dist/cjs/onboarding/index.d.ts.map +1 -0
- package/dist/cjs/onboarding/index.js +42 -0
- package/dist/cjs/onboarding/index.js.map +1 -0
- package/dist/cjs/onboarding/schemas.d.ts +360 -0
- package/dist/cjs/onboarding/schemas.d.ts.map +1 -0
- package/dist/cjs/onboarding/schemas.js +260 -0
- package/dist/cjs/onboarding/schemas.js.map +1 -0
- package/dist/cjs/settings/constants.d.ts +206 -0
- package/dist/cjs/settings/constants.d.ts.map +1 -0
- package/dist/cjs/settings/constants.js +200 -0
- package/dist/cjs/settings/constants.js.map +1 -0
- package/dist/cjs/settings/index.d.ts +6 -0
- package/dist/cjs/settings/index.d.ts.map +1 -0
- package/dist/cjs/settings/index.js +62 -0
- package/dist/cjs/settings/index.js.map +1 -0
- package/dist/cjs/settings/schemas.d.ts +574 -0
- package/dist/cjs/settings/schemas.d.ts.map +1 -0
- package/dist/cjs/settings/schemas.js +437 -0
- package/dist/cjs/settings/schemas.js.map +1 -0
- package/dist/cjs/settings/types.d.ts +79 -0
- package/dist/cjs/settings/types.d.ts.map +1 -0
- package/dist/cjs/settings/types.js +6 -0
- package/dist/cjs/settings/types.js.map +1 -0
- package/dist/cjs/sharing/constants.d.ts +216 -0
- package/dist/cjs/sharing/constants.d.ts.map +1 -0
- package/dist/cjs/sharing/constants.js +163 -0
- package/dist/cjs/sharing/constants.js.map +1 -0
- package/dist/cjs/sharing/enum.d.ts +5 -0
- package/dist/cjs/sharing/enum.d.ts.map +1 -0
- package/dist/cjs/sharing/enum.js +9 -0
- package/dist/cjs/sharing/enum.js.map +1 -0
- package/dist/cjs/sharing/grants.d.ts +490 -0
- package/dist/cjs/sharing/grants.d.ts.map +1 -0
- package/dist/cjs/sharing/grants.js +447 -0
- package/dist/cjs/sharing/grants.js.map +1 -0
- package/dist/cjs/sharing/groups.d.ts +410 -0
- package/dist/cjs/sharing/groups.d.ts.map +1 -0
- package/dist/cjs/sharing/groups.js +375 -0
- package/dist/cjs/sharing/groups.js.map +1 -0
- package/dist/cjs/sharing/index.d.ts +5 -0
- package/dist/cjs/sharing/index.d.ts.map +1 -0
- package/dist/cjs/sharing/index.js +77 -0
- package/dist/cjs/sharing/index.js.map +1 -0
- package/dist/cjs/sharing/schemas.d.ts +3 -0
- package/dist/cjs/sharing/schemas.d.ts.map +1 -0
- package/dist/cjs/sharing/schemas.js +21 -0
- package/dist/cjs/sharing/schemas.js.map +1 -0
- package/dist/cjs/storage/constants.d.ts +111 -0
- package/dist/cjs/storage/constants.d.ts.map +1 -0
- package/dist/cjs/storage/constants.js +107 -0
- package/dist/cjs/storage/constants.js.map +1 -0
- package/dist/cjs/storage/index.d.ts +27 -0
- package/dist/cjs/storage/index.d.ts.map +1 -0
- package/dist/cjs/storage/index.js +69 -0
- package/dist/cjs/storage/index.js.map +1 -0
- package/dist/cjs/storage/objects-complete-upload.d.ts +19 -0
- package/dist/cjs/storage/objects-complete-upload.d.ts.map +1 -0
- package/dist/cjs/storage/objects-complete-upload.js +19 -0
- package/dist/cjs/storage/objects-complete-upload.js.map +1 -0
- package/dist/cjs/storage/objects-download-url.d.ts +17 -0
- package/dist/cjs/storage/objects-download-url.d.ts.map +1 -0
- package/dist/cjs/storage/objects-download-url.js +16 -0
- package/dist/cjs/storage/objects-download-url.js.map +1 -0
- package/dist/cjs/storage/objects-init-upload.d.ts +39 -0
- package/dist/cjs/storage/objects-init-upload.d.ts.map +1 -0
- package/dist/cjs/storage/objects-init-upload.js +40 -0
- package/dist/cjs/storage/objects-init-upload.js.map +1 -0
- package/dist/cjs/storage/objects-list-query.d.ts +50 -0
- package/dist/cjs/storage/objects-list-query.d.ts.map +1 -0
- package/dist/cjs/storage/objects-list-query.js +23 -0
- package/dist/cjs/storage/objects-list-query.js.map +1 -0
- package/dist/cjs/storage/objects-object-response.d.ts +49 -0
- package/dist/cjs/storage/objects-object-response.d.ts.map +1 -0
- package/dist/cjs/storage/objects-object-response.js +54 -0
- package/dist/cjs/storage/objects-object-response.js.map +1 -0
- package/dist/cjs/storage/objects-update-metadata.d.ts +16 -0
- package/dist/cjs/storage/objects-update-metadata.d.ts.map +1 -0
- package/dist/cjs/storage/objects-update-metadata.js +14 -0
- package/dist/cjs/storage/objects-update-metadata.js.map +1 -0
- package/dist/cjs/storage/schemas.d.ts +13 -0
- package/dist/cjs/storage/schemas.d.ts.map +1 -0
- package/dist/cjs/storage/schemas.js +35 -0
- package/dist/cjs/storage/schemas.js.map +1 -0
- package/dist/cjs/storage/settings-schemas.d.ts +188 -0
- package/dist/cjs/storage/settings-schemas.d.ts.map +1 -0
- package/dist/cjs/storage/settings-schemas.js +223 -0
- package/dist/cjs/storage/settings-schemas.js.map +1 -0
- package/dist/cjs/storage/storage-bucket-provision.d.ts +152 -0
- package/dist/cjs/storage/storage-bucket-provision.d.ts.map +1 -0
- package/dist/cjs/storage/storage-bucket-provision.js +216 -0
- package/dist/cjs/storage/storage-bucket-provision.js.map +1 -0
- package/dist/cjs/storage/storage-config-response.d.ts +99 -0
- package/dist/cjs/storage/storage-config-response.d.ts.map +1 -0
- package/dist/cjs/storage/storage-config-response.js +173 -0
- package/dist/cjs/storage/storage-config-response.js.map +1 -0
- package/dist/cjs/storage/storage-config-update.d.ts +46 -0
- package/dist/cjs/storage/storage-config-update.d.ts.map +1 -0
- package/dist/cjs/storage/storage-config-update.js +133 -0
- package/dist/cjs/storage/storage-config-update.js.map +1 -0
- package/dist/cjs/storage/storage-connection-test.d.ts +129 -0
- package/dist/cjs/storage/storage-connection-test.d.ts.map +1 -0
- package/dist/cjs/storage/storage-connection-test.js +244 -0
- package/dist/cjs/storage/storage-connection-test.js.map +1 -0
- package/dist/cjs/storage/storage-status.d.ts +16 -0
- package/dist/cjs/storage/storage-status.d.ts.map +1 -0
- package/dist/cjs/storage/storage-status.js +23 -0
- package/dist/cjs/storage/storage-status.js.map +1 -0
- package/dist/cjs/telemetry/config.d.ts +4 -0
- package/dist/cjs/telemetry/config.d.ts.map +1 -1
- package/dist/cjs/telemetry/config.js +16 -2
- package/dist/cjs/telemetry/config.js.map +1 -1
- package/dist/cjs/telemetry/connection.d.ts +1 -1
- package/dist/cjs/telemetry/constants.d.ts +378 -6
- package/dist/cjs/telemetry/constants.d.ts.map +1 -1
- package/dist/cjs/telemetry/constants.js +290 -5
- package/dist/cjs/telemetry/constants.js.map +1 -1
- package/dist/cjs/telemetry/dashboard.d.ts +188 -17
- package/dist/cjs/telemetry/dashboard.d.ts.map +1 -1
- package/dist/cjs/telemetry/dashboard.js +61 -3
- package/dist/cjs/telemetry/dashboard.js.map +1 -1
- package/dist/cjs/telemetry/index.d.ts +4 -4
- package/dist/cjs/telemetry/index.d.ts.map +1 -1
- package/dist/cjs/telemetry/index.js +35 -3
- package/dist/cjs/telemetry/index.js.map +1 -1
- package/dist/cjs/telemetry/presentation.d.ts +243 -0
- package/dist/cjs/telemetry/presentation.d.ts.map +1 -0
- package/dist/cjs/telemetry/presentation.js +300 -0
- package/dist/cjs/telemetry/presentation.js.map +1 -0
- package/dist/cjs/telemetry/query.d.ts +2 -2
- package/dist/cjs/telemetry/schemas.d.ts +5 -2
- package/dist/cjs/telemetry/schemas.d.ts.map +1 -1
- package/dist/cjs/telemetry/schemas.js +21 -1
- package/dist/cjs/telemetry/schemas.js.map +1 -1
- package/dist/cjs/telemetry/stack.d.ts +5 -5
- package/dist/cjs/telemetry/store.d.ts +111 -0
- package/dist/cjs/telemetry/store.d.ts.map +1 -0
- package/dist/cjs/telemetry/store.js +83 -0
- package/dist/cjs/telemetry/store.js.map +1 -0
- package/dist/cjs/user-data/constants.d.ts +157 -0
- package/dist/cjs/user-data/constants.d.ts.map +1 -0
- package/dist/cjs/user-data/constants.js +137 -0
- package/dist/cjs/user-data/constants.js.map +1 -0
- package/dist/cjs/user-data/index.d.ts +5 -0
- package/dist/cjs/user-data/index.d.ts.map +1 -0
- package/dist/cjs/user-data/index.js +46 -0
- package/dist/cjs/user-data/index.js.map +1 -0
- package/dist/cjs/user-data/schemas.d.ts +306 -0
- package/dist/cjs/user-data/schemas.d.ts.map +1 -0
- package/dist/cjs/user-data/schemas.js +333 -0
- package/dist/cjs/user-data/schemas.js.map +1 -0
- package/dist/esm/ai/capabilities.d.ts +85 -0
- package/dist/esm/ai/capabilities.d.ts.map +1 -0
- package/dist/esm/ai/capabilities.js +90 -0
- package/dist/esm/ai/capabilities.js.map +1 -0
- package/dist/esm/ai/constants.d.ts +239 -0
- package/dist/esm/ai/constants.d.ts.map +1 -0
- package/dist/esm/ai/constants.js +229 -0
- package/dist/esm/ai/constants.js.map +1 -0
- package/dist/esm/ai/features.d.ts +24 -0
- package/dist/esm/ai/features.d.ts.map +1 -0
- package/dist/esm/ai/features.js +30 -0
- package/dist/esm/ai/features.js.map +1 -0
- package/dist/esm/ai/index.d.ts +11 -0
- package/dist/esm/ai/index.d.ts.map +1 -0
- package/dist/esm/ai/index.js +16 -0
- package/dist/esm/ai/index.js.map +1 -0
- package/dist/esm/ai/org-keys.d.ts +50 -0
- package/dist/esm/ai/org-keys.d.ts.map +1 -0
- package/dist/esm/ai/org-keys.js +40 -0
- package/dist/esm/ai/org-keys.js.map +1 -0
- package/dist/esm/ai/schemas.d.ts +642 -0
- package/dist/esm/ai/schemas.d.ts.map +1 -0
- package/dist/esm/ai/schemas.js +889 -0
- package/dist/esm/ai/schemas.js.map +1 -0
- package/dist/esm/android-app/constants.d.ts +337 -0
- package/dist/esm/android-app/constants.d.ts.map +1 -0
- package/dist/esm/android-app/constants.js +306 -0
- package/dist/esm/android-app/constants.js.map +1 -0
- package/dist/esm/android-app/index.d.ts +5 -0
- package/dist/esm/android-app/index.d.ts.map +1 -0
- package/dist/esm/android-app/index.js +8 -0
- package/dist/esm/android-app/index.js.map +1 -0
- package/dist/esm/android-app/schemas.d.ts +358 -0
- package/dist/esm/android-app/schemas.d.ts.map +1 -0
- package/dist/esm/android-app/schemas.js +306 -0
- package/dist/esm/android-app/schemas.js.map +1 -0
- package/dist/esm/credentials/constants.d.ts +35 -0
- package/dist/esm/credentials/constants.d.ts.map +1 -0
- package/dist/esm/credentials/constants.js +36 -0
- package/dist/esm/credentials/constants.js.map +1 -0
- package/dist/esm/credentials/index.d.ts +5 -0
- package/dist/esm/credentials/index.d.ts.map +1 -0
- package/dist/esm/credentials/index.js +8 -0
- package/dist/esm/credentials/index.js.map +1 -0
- package/dist/esm/credentials/schemas.d.ts +64 -0
- package/dist/esm/credentials/schemas.d.ts.map +1 -0
- package/dist/esm/credentials/schemas.js +79 -0
- package/dist/esm/credentials/schemas.js.map +1 -0
- package/dist/esm/db-backup/config.d.ts +76 -0
- package/dist/esm/db-backup/config.d.ts.map +1 -0
- package/dist/esm/db-backup/config.js +112 -0
- package/dist/esm/db-backup/config.js.map +1 -0
- package/dist/esm/db-backup/constants.d.ts +314 -0
- package/dist/esm/db-backup/constants.d.ts.map +1 -0
- package/dist/esm/db-backup/constants.js +240 -0
- package/dist/esm/db-backup/constants.js.map +1 -0
- package/dist/esm/db-backup/index.d.ts +19 -0
- package/dist/esm/db-backup/index.d.ts.map +1 -0
- package/dist/esm/db-backup/index.js +25 -0
- package/dist/esm/db-backup/index.js.map +1 -0
- package/dist/esm/db-backup/node-credential.d.ts +37 -0
- package/dist/esm/db-backup/node-credential.d.ts.map +1 -0
- package/dist/esm/db-backup/node-credential.js +104 -0
- package/dist/esm/db-backup/node-credential.js.map +1 -0
- package/dist/esm/db-backup/node-result.d.ts +34 -0
- package/dist/esm/db-backup/node-result.d.ts.map +1 -0
- package/dist/esm/db-backup/node-result.js +165 -0
- package/dist/esm/db-backup/node-result.js.map +1 -0
- package/dist/esm/db-backup/restore.d.ts +405 -0
- package/dist/esm/db-backup/restore.d.ts.map +1 -0
- package/dist/esm/db-backup/restore.js +494 -0
- package/dist/esm/db-backup/restore.js.map +1 -0
- package/dist/esm/db-backup/run-actions.d.ts +49 -0
- package/dist/esm/db-backup/run-actions.d.ts.map +1 -0
- package/dist/esm/db-backup/run-actions.js +118 -0
- package/dist/esm/db-backup/run-actions.js.map +1 -0
- package/dist/esm/db-backup/runs-list-query.d.ts +20 -0
- package/dist/esm/db-backup/runs-list-query.d.ts.map +1 -0
- package/dist/esm/db-backup/runs-list-query.js +50 -0
- package/dist/esm/db-backup/runs-list-query.js.map +1 -0
- package/dist/esm/db-backup/runs.d.ts +46 -0
- package/dist/esm/db-backup/runs.d.ts.map +1 -0
- package/dist/esm/db-backup/runs.js +229 -0
- package/dist/esm/db-backup/runs.js.map +1 -0
- package/dist/esm/db-backup/schemas.d.ts +9 -0
- package/dist/esm/db-backup/schemas.d.ts.map +1 -0
- package/dist/esm/db-backup/schemas.js +15 -0
- package/dist/esm/db-backup/schemas.js.map +1 -0
- package/dist/esm/db-backup/settings-schemas.d.ts +217 -0
- package/dist/esm/db-backup/settings-schemas.d.ts.map +1 -0
- package/dist/esm/db-backup/settings-schemas.js +316 -0
- package/dist/esm/db-backup/settings-schemas.js.map +1 -0
- package/dist/esm/email/constants.d.ts +82 -0
- package/dist/esm/email/constants.d.ts.map +1 -0
- package/dist/esm/email/constants.js +79 -0
- package/dist/esm/email/constants.js.map +1 -0
- package/dist/esm/email/index.d.ts +5 -0
- package/dist/esm/email/index.d.ts.map +1 -0
- package/dist/esm/email/index.js +8 -0
- package/dist/esm/email/index.js.map +1 -0
- package/dist/esm/email/schemas.d.ts +276 -0
- package/dist/esm/email/schemas.d.ts.map +1 -0
- package/dist/esm/email/schemas.js +277 -0
- package/dist/esm/email/schemas.js.map +1 -0
- package/dist/esm/exports/constants.d.ts +123 -0
- package/dist/esm/exports/constants.d.ts.map +1 -0
- package/dist/esm/exports/constants.js +106 -0
- package/dist/esm/exports/constants.js.map +1 -0
- package/dist/esm/exports/index.d.ts +5 -0
- package/dist/esm/exports/index.d.ts.map +1 -0
- package/dist/esm/exports/index.js +7 -0
- package/dist/esm/exports/index.js.map +1 -0
- package/dist/esm/exports/schemas.d.ts +386 -0
- package/dist/esm/exports/schemas.d.ts.map +1 -0
- package/dist/esm/exports/schemas.js +285 -0
- package/dist/esm/exports/schemas.js.map +1 -0
- package/dist/esm/identity/constants.d.ts +273 -0
- package/dist/esm/identity/constants.d.ts.map +1 -0
- package/dist/esm/identity/constants.js +244 -0
- package/dist/esm/identity/constants.js.map +1 -0
- package/dist/esm/identity/index.d.ts +5 -0
- package/dist/esm/identity/index.d.ts.map +1 -0
- package/dist/esm/identity/index.js +10 -0
- package/dist/esm/identity/index.js.map +1 -0
- package/dist/esm/identity/schemas.d.ts +784 -0
- package/dist/esm/identity/schemas.d.ts.map +1 -0
- package/dist/esm/identity/schemas.js +681 -0
- package/dist/esm/identity/schemas.js.map +1 -0
- package/dist/esm/jobs/constants.d.ts +135 -0
- package/dist/esm/jobs/constants.d.ts.map +1 -0
- package/dist/esm/jobs/constants.js +127 -0
- package/dist/esm/jobs/constants.js.map +1 -0
- package/dist/esm/jobs/index.d.ts +9 -0
- package/dist/esm/jobs/index.d.ts.map +1 -0
- package/dist/esm/jobs/index.js +11 -0
- package/dist/esm/jobs/index.js.map +1 -0
- package/dist/esm/jobs/retention-schemas.d.ts +252 -0
- package/dist/esm/jobs/retention-schemas.d.ts.map +1 -0
- package/dist/esm/jobs/retention-schemas.js +229 -0
- package/dist/esm/jobs/retention-schemas.js.map +1 -0
- package/dist/esm/jobs/schemas.d.ts +361 -0
- package/dist/esm/jobs/schemas.d.ts.map +1 -0
- package/dist/esm/jobs/schemas.js +703 -0
- package/dist/esm/jobs/schemas.js.map +1 -0
- package/dist/esm/jobs/settings-schemas.d.ts +84 -0
- package/dist/esm/jobs/settings-schemas.d.ts.map +1 -0
- package/dist/esm/jobs/settings-schemas.js +113 -0
- package/dist/esm/jobs/settings-schemas.js.map +1 -0
- package/dist/esm/nodes/admin-schemas.d.ts +204 -0
- package/dist/esm/nodes/admin-schemas.d.ts.map +1 -0
- package/dist/esm/nodes/admin-schemas.js +150 -0
- package/dist/esm/nodes/admin-schemas.js.map +1 -0
- package/dist/esm/nodes/constants.d.ts +86 -0
- package/dist/esm/nodes/constants.d.ts.map +1 -0
- package/dist/esm/nodes/constants.js +99 -0
- package/dist/esm/nodes/constants.js.map +1 -0
- package/dist/esm/nodes/index.d.ts +8 -0
- package/dist/esm/nodes/index.d.ts.map +1 -0
- package/dist/esm/nodes/index.js +11 -0
- package/dist/esm/nodes/index.js.map +1 -0
- package/dist/esm/nodes/schemas.d.ts +332 -0
- package/dist/esm/nodes/schemas.d.ts.map +1 -0
- package/dist/esm/nodes/schemas.js +934 -0
- package/dist/esm/nodes/schemas.js.map +1 -0
- package/dist/esm/nodes/settings-schemas.d.ts +82 -0
- package/dist/esm/nodes/settings-schemas.d.ts.map +1 -0
- package/dist/esm/nodes/settings-schemas.js +103 -0
- package/dist/esm/nodes/settings-schemas.js.map +1 -0
- package/dist/esm/notifications/constants.d.ts +197 -0
- package/dist/esm/notifications/constants.d.ts.map +1 -0
- package/dist/esm/notifications/constants.js +178 -0
- package/dist/esm/notifications/constants.js.map +1 -0
- package/dist/esm/notifications/index.d.ts +5 -0
- package/dist/esm/notifications/index.d.ts.map +1 -0
- package/dist/esm/notifications/index.js +9 -0
- package/dist/esm/notifications/index.js.map +1 -0
- package/dist/esm/notifications/schemas.d.ts +1016 -0
- package/dist/esm/notifications/schemas.d.ts.map +1 -0
- package/dist/esm/notifications/schemas.js +848 -0
- package/dist/esm/notifications/schemas.js.map +1 -0
- package/dist/esm/onboarding/constants.d.ts +138 -0
- package/dist/esm/onboarding/constants.d.ts.map +1 -0
- package/dist/esm/onboarding/constants.js +120 -0
- package/dist/esm/onboarding/constants.js.map +1 -0
- package/dist/esm/onboarding/index.d.ts +5 -0
- package/dist/esm/onboarding/index.d.ts.map +1 -0
- package/dist/esm/onboarding/index.js +7 -0
- package/dist/esm/onboarding/index.js.map +1 -0
- package/dist/esm/onboarding/schemas.d.ts +360 -0
- package/dist/esm/onboarding/schemas.d.ts.map +1 -0
- package/dist/esm/onboarding/schemas.js +257 -0
- package/dist/esm/onboarding/schemas.js.map +1 -0
- package/dist/esm/settings/constants.d.ts +206 -0
- package/dist/esm/settings/constants.d.ts.map +1 -0
- package/dist/esm/settings/constants.js +197 -0
- package/dist/esm/settings/constants.js.map +1 -0
- package/dist/esm/settings/index.d.ts +6 -0
- package/dist/esm/settings/index.d.ts.map +1 -0
- package/dist/esm/settings/index.js +11 -0
- package/dist/esm/settings/index.js.map +1 -0
- package/dist/esm/settings/schemas.d.ts +574 -0
- package/dist/esm/settings/schemas.d.ts.map +1 -0
- package/dist/esm/settings/schemas.js +434 -0
- package/dist/esm/settings/schemas.js.map +1 -0
- package/dist/esm/settings/types.d.ts +79 -0
- package/dist/esm/settings/types.d.ts.map +1 -0
- package/dist/esm/settings/types.js +5 -0
- package/dist/esm/settings/types.js.map +1 -0
- package/dist/esm/sharing/constants.d.ts +216 -0
- package/dist/esm/sharing/constants.d.ts.map +1 -0
- package/dist/esm/sharing/constants.js +159 -0
- package/dist/esm/sharing/constants.js.map +1 -0
- package/dist/esm/sharing/enum.d.ts +5 -0
- package/dist/esm/sharing/enum.d.ts.map +1 -0
- package/dist/esm/sharing/enum.js +6 -0
- package/dist/esm/sharing/enum.js.map +1 -0
- package/dist/esm/sharing/grants.d.ts +490 -0
- package/dist/esm/sharing/grants.d.ts.map +1 -0
- package/dist/esm/sharing/grants.js +444 -0
- package/dist/esm/sharing/grants.js.map +1 -0
- package/dist/esm/sharing/groups.d.ts +410 -0
- package/dist/esm/sharing/groups.d.ts.map +1 -0
- package/dist/esm/sharing/groups.js +372 -0
- package/dist/esm/sharing/groups.js.map +1 -0
- package/dist/esm/sharing/index.d.ts +5 -0
- package/dist/esm/sharing/index.d.ts.map +1 -0
- package/dist/esm/sharing/index.js +11 -0
- package/dist/esm/sharing/index.js.map +1 -0
- package/dist/esm/sharing/schemas.d.ts +3 -0
- package/dist/esm/sharing/schemas.d.ts.map +1 -0
- package/dist/esm/sharing/schemas.js +5 -0
- package/dist/esm/sharing/schemas.js.map +1 -0
- package/dist/esm/storage/constants.d.ts +111 -0
- package/dist/esm/storage/constants.d.ts.map +1 -0
- package/dist/esm/storage/constants.js +104 -0
- package/dist/esm/storage/constants.js.map +1 -0
- package/dist/esm/storage/index.d.ts +27 -0
- package/dist/esm/storage/index.d.ts.map +1 -0
- package/dist/esm/storage/index.js +23 -0
- package/dist/esm/storage/index.js.map +1 -0
- package/dist/esm/storage/objects-complete-upload.d.ts +19 -0
- package/dist/esm/storage/objects-complete-upload.d.ts.map +1 -0
- package/dist/esm/storage/objects-complete-upload.js +16 -0
- package/dist/esm/storage/objects-complete-upload.js.map +1 -0
- package/dist/esm/storage/objects-download-url.d.ts +17 -0
- package/dist/esm/storage/objects-download-url.d.ts.map +1 -0
- package/dist/esm/storage/objects-download-url.js +13 -0
- package/dist/esm/storage/objects-download-url.js.map +1 -0
- package/dist/esm/storage/objects-init-upload.d.ts +39 -0
- package/dist/esm/storage/objects-init-upload.d.ts.map +1 -0
- package/dist/esm/storage/objects-init-upload.js +37 -0
- package/dist/esm/storage/objects-init-upload.js.map +1 -0
- package/dist/esm/storage/objects-list-query.d.ts +50 -0
- package/dist/esm/storage/objects-list-query.d.ts.map +1 -0
- package/dist/esm/storage/objects-list-query.js +20 -0
- package/dist/esm/storage/objects-list-query.js.map +1 -0
- package/dist/esm/storage/objects-object-response.d.ts +49 -0
- package/dist/esm/storage/objects-object-response.d.ts.map +1 -0
- package/dist/esm/storage/objects-object-response.js +51 -0
- package/dist/esm/storage/objects-object-response.js.map +1 -0
- package/dist/esm/storage/objects-update-metadata.d.ts +16 -0
- package/dist/esm/storage/objects-update-metadata.d.ts.map +1 -0
- package/dist/esm/storage/objects-update-metadata.js +11 -0
- package/dist/esm/storage/objects-update-metadata.js.map +1 -0
- package/dist/esm/storage/schemas.d.ts +13 -0
- package/dist/esm/storage/schemas.d.ts.map +1 -0
- package/dist/esm/storage/schemas.js +19 -0
- package/dist/esm/storage/schemas.js.map +1 -0
- package/dist/esm/storage/settings-schemas.d.ts +188 -0
- package/dist/esm/storage/settings-schemas.d.ts.map +1 -0
- package/dist/esm/storage/settings-schemas.js +220 -0
- package/dist/esm/storage/settings-schemas.js.map +1 -0
- package/dist/esm/storage/storage-bucket-provision.d.ts +152 -0
- package/dist/esm/storage/storage-bucket-provision.d.ts.map +1 -0
- package/dist/esm/storage/storage-bucket-provision.js +213 -0
- package/dist/esm/storage/storage-bucket-provision.js.map +1 -0
- package/dist/esm/storage/storage-config-response.d.ts +99 -0
- package/dist/esm/storage/storage-config-response.d.ts.map +1 -0
- package/dist/esm/storage/storage-config-response.js +170 -0
- package/dist/esm/storage/storage-config-response.js.map +1 -0
- package/dist/esm/storage/storage-config-update.d.ts +46 -0
- package/dist/esm/storage/storage-config-update.d.ts.map +1 -0
- package/dist/esm/storage/storage-config-update.js +130 -0
- package/dist/esm/storage/storage-config-update.js.map +1 -0
- package/dist/esm/storage/storage-connection-test.d.ts +129 -0
- package/dist/esm/storage/storage-connection-test.d.ts.map +1 -0
- package/dist/esm/storage/storage-connection-test.js +241 -0
- package/dist/esm/storage/storage-connection-test.js.map +1 -0
- package/dist/esm/storage/storage-status.d.ts +16 -0
- package/dist/esm/storage/storage-status.d.ts.map +1 -0
- package/dist/esm/storage/storage-status.js +20 -0
- package/dist/esm/storage/storage-status.js.map +1 -0
- package/dist/esm/telemetry/config.d.ts +4 -0
- package/dist/esm/telemetry/config.d.ts.map +1 -1
- package/dist/esm/telemetry/config.js +16 -2
- package/dist/esm/telemetry/config.js.map +1 -1
- package/dist/esm/telemetry/connection.d.ts +1 -1
- package/dist/esm/telemetry/constants.d.ts +378 -6
- package/dist/esm/telemetry/constants.d.ts.map +1 -1
- package/dist/esm/telemetry/constants.js +288 -4
- package/dist/esm/telemetry/constants.js.map +1 -1
- package/dist/esm/telemetry/dashboard.d.ts +188 -17
- package/dist/esm/telemetry/dashboard.d.ts.map +1 -1
- package/dist/esm/telemetry/dashboard.js +61 -3
- package/dist/esm/telemetry/dashboard.js.map +1 -1
- package/dist/esm/telemetry/index.d.ts +4 -4
- package/dist/esm/telemetry/index.d.ts.map +1 -1
- package/dist/esm/telemetry/index.js +2 -2
- package/dist/esm/telemetry/index.js.map +1 -1
- package/dist/esm/telemetry/presentation.d.ts +243 -0
- package/dist/esm/telemetry/presentation.d.ts.map +1 -0
- package/dist/esm/telemetry/presentation.js +297 -0
- package/dist/esm/telemetry/presentation.js.map +1 -0
- package/dist/esm/telemetry/query.d.ts +2 -2
- package/dist/esm/telemetry/schemas.d.ts +5 -2
- package/dist/esm/telemetry/schemas.d.ts.map +1 -1
- package/dist/esm/telemetry/schemas.js +3 -1
- package/dist/esm/telemetry/schemas.js.map +1 -1
- package/dist/esm/telemetry/stack.d.ts +5 -5
- package/dist/esm/telemetry/store.d.ts +111 -0
- package/dist/esm/telemetry/store.d.ts.map +1 -0
- package/dist/esm/telemetry/store.js +80 -0
- package/dist/esm/telemetry/store.js.map +1 -0
- package/dist/esm/user-data/constants.d.ts +157 -0
- package/dist/esm/user-data/constants.d.ts.map +1 -0
- package/dist/esm/user-data/constants.js +134 -0
- package/dist/esm/user-data/constants.js.map +1 -0
- package/dist/esm/user-data/index.d.ts +5 -0
- package/dist/esm/user-data/index.d.ts.map +1 -0
- package/dist/esm/user-data/index.js +7 -0
- package/dist/esm/user-data/index.js.map +1 -0
- package/dist/esm/user-data/schemas.d.ts +306 -0
- package/dist/esm/user-data/schemas.d.ts.map +1 -0
- package/dist/esm/user-data/schemas.js +330 -0
- package/dist/esm/user-data/schemas.js.map +1 -0
- package/package.json +151 -1
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// PUT /api/admin/storage-config - request body (issue #375, epic #372; drivers: PP-14.7)
|
|
3
|
+
// =============================================================================
|
|
4
|
+
//
|
|
5
|
+
// The active driver, its settings, its write-only secrets and the typed
|
|
6
|
+
// confirmation. A save names the active driver (`provider`) and then supplies
|
|
7
|
+
// settings in either of two spellings:
|
|
8
|
+
//
|
|
9
|
+
// * `drivers` - `{ <driverId>: { ...that driver's settings } }`. The shape
|
|
10
|
+
// every driver, built-in or registered by an app, uses. Each
|
|
11
|
+
// entry is merged over the driver's stored settings (a setting
|
|
12
|
+
// it omits keeps its stored value), then validated by the
|
|
13
|
+
// driver; `null` resets a driver to its defaults.
|
|
14
|
+
// * the flat fields (`bucket`, `region`, `endpoint`, `accountId`,
|
|
15
|
+
// `accessKeyId`, `forcePathStyle`) - the shape this route had before drivers
|
|
16
|
+
// were pluggable. They are the settings of the built-in driver
|
|
17
|
+
// named by `provider`, so a client written against the old
|
|
18
|
+
// contract keeps working. A flat field present in the body
|
|
19
|
+
// replaces that setting; one omitted keeps the stored value.
|
|
20
|
+
// `drivers.<provider>` wins over a flat field for the same
|
|
21
|
+
// setting.
|
|
22
|
+
//
|
|
23
|
+
// An empty string still CLEARS a text field (that is how an operator drops an
|
|
24
|
+
// endpoint override, or un-configures storage by clearing `bucket`), and
|
|
25
|
+
// `forcePathStyle` is still TRI-STATE (`null` is "use this vendor's
|
|
26
|
+
// convention").
|
|
27
|
+
//
|
|
28
|
+
// -----------------------------------------------------------------------------
|
|
29
|
+
// SECRETS ARE WRITE-ONLY, AND BLANK PRESERVES
|
|
30
|
+
// -----------------------------------------------------------------------------
|
|
31
|
+
//
|
|
32
|
+
// `secretAccessKey` is the built-in drivers' secret. A driver an app registers
|
|
33
|
+
// declares its own (`secrets: [{ name: 'connectionString' }]`) and the admin
|
|
34
|
+
// form sends them in `secrets`, keyed by driver id and secret name. Omitted,
|
|
35
|
+
// `null` or `''` means "the admin did not retype it" and the stored value stays.
|
|
36
|
+
// There is deliberately no way to erase a stored secret through this endpoint;
|
|
37
|
+
// an admin who wants storage off empties the driver's location (`bucket`).
|
|
38
|
+
//
|
|
39
|
+
// WHY THE SECRET IS ON THIS BODY AT ALL, rather than its own endpoint: the key
|
|
40
|
+
// id and the secret are one credential, pasted from one screen at one moment.
|
|
41
|
+
// Splitting them across two requests means every rotation has a window in which
|
|
42
|
+
// the saved key id and the saved secret are from different key pairs.
|
|
43
|
+
// `EmailSettingsController` makes the same call for `smtpPassword`.
|
|
44
|
+
// =============================================================================
|
|
45
|
+
import { z } from 'zod';
|
|
46
|
+
import { storageDriverIdSchema, storageDriversPatchSchema } from './settings-schemas.js';
|
|
47
|
+
/**
|
|
48
|
+
* The word `PUT /api/admin/storage-config` requires when the save would point
|
|
49
|
+
* a deployment that already holds objects at a different location.
|
|
50
|
+
*
|
|
51
|
+
* ⚠ EXPORTED, AND THE ONLY DEFINITION. The service raising the 409 and the DTO
|
|
52
|
+
* validating the body both read this constant, and #376's UI sends it back.
|
|
53
|
+
* A second string literal that differs by a character is a confirmation dialog
|
|
54
|
+
* whose "yes" the API rejects.
|
|
55
|
+
*
|
|
56
|
+
* Deliberately a different word from `RESTORE`, `ROLLBACK`, `ROTATE` and
|
|
57
|
+
* `REMOVE` for the reason those four differ from each other: a body copied from
|
|
58
|
+
* one confirming route to another must be refused, not silently accepted. The
|
|
59
|
+
* same argument against `{ "confirm": true }` applies here and is set out in
|
|
60
|
+
* full in `db-backup/dto/db-backup-restore.dto.ts` — in short, a boolean is
|
|
61
|
+
* reproduced by a replayed POST, a retried client and a double-clicked button,
|
|
62
|
+
* and this word is reproduced by none of them accidentally.
|
|
63
|
+
*
|
|
64
|
+
* @stability experimental
|
|
65
|
+
*/
|
|
66
|
+
export const STORAGE_SWITCH_CONFIRMATION = 'SWITCH';
|
|
67
|
+
/**
|
|
68
|
+
* The `PUT /api/admin/storage-config` body: the active driver, its settings (`drivers`, or the legacy flat fields for the built-ins), the write-only secrets and the optional confirmation.
|
|
69
|
+
*
|
|
70
|
+
* @stability experimental
|
|
71
|
+
*/
|
|
72
|
+
export const updateStorageConfigSchema = z.object({
|
|
73
|
+
/** The id of the storage driver to make active (a built-in, or one an app registered). */
|
|
74
|
+
provider: storageDriverIdSchema,
|
|
75
|
+
/**
|
|
76
|
+
* Driver settings, per driver id, merged over the stored ones and validated
|
|
77
|
+
* by each driver. `null` resets a driver to its defaults. See the header.
|
|
78
|
+
*/
|
|
79
|
+
drivers: storageDriversPatchSchema.optional(),
|
|
80
|
+
/**
|
|
81
|
+
* Alias of `drivers.<provider>.bucket` (built-in drivers). No `.min(1)`:
|
|
82
|
+
* `''` is the legal, persisted "not configured" state and is how an operator
|
|
83
|
+
* un-configures storage entirely. Completeness is decided by the driver.
|
|
84
|
+
*/
|
|
85
|
+
bucket: z.string().trim().max(255).optional(),
|
|
86
|
+
/** Alias of `drivers.<provider>.region`. `''` is "not stated"; R2 wants the literal `auto`. */
|
|
87
|
+
region: z.string().trim().max(255).optional(),
|
|
88
|
+
/** Alias of `drivers.<provider>.endpoint`. Explicit origin, or `''` to derive it (R2) or use the SDK's host (S3). */
|
|
89
|
+
endpoint: z.string().trim().max(512).optional(),
|
|
90
|
+
/** Alias of `drivers.<provider>.accountId`. R2 account id, from which its endpoint is derived. */
|
|
91
|
+
accountId: z.string().trim().max(255).optional(),
|
|
92
|
+
/**
|
|
93
|
+
* Alias of `drivers.<provider>.accessKeyId`. The identifier half of the
|
|
94
|
+
* credential: NOT A SECRET, in both the request and the response on purpose
|
|
95
|
+
* (it travels in the clear in every SigV4 `Authorization` header).
|
|
96
|
+
*/
|
|
97
|
+
accessKeyId: z.string().trim().max(255).optional(),
|
|
98
|
+
/**
|
|
99
|
+
* WRITE-ONLY, AND BLANK PRESERVES. The built-in drivers' secret access key.
|
|
100
|
+
* Omitted, `null` or `''` means "the admin did not retype the secret" and the
|
|
101
|
+
* stored one is left exactly as it is. NEVER ECHOED BACK: no response schema
|
|
102
|
+
* has a field capable of carrying it.
|
|
103
|
+
*/
|
|
104
|
+
secretAccessKey: z.string().max(512).nullish(),
|
|
105
|
+
/**
|
|
106
|
+
* WRITE-ONLY secrets of any driver: `{ <driverId>: { <secretName>: value } }`,
|
|
107
|
+
* the names the driver declares (`descriptors[].fields` of kind `secret`).
|
|
108
|
+
* A blank value keeps the stored one. Never echoed back.
|
|
109
|
+
*/
|
|
110
|
+
secrets: z.record(storageDriverIdSchema, z.record(z.string(), z.string().max(4096).nullish())).optional(),
|
|
111
|
+
/**
|
|
112
|
+
* Alias of `drivers.<provider>.forcePathStyle`: `https://host/bucket/key`
|
|
113
|
+
* (true) over `https://bucket.host/key` (false), or `null` for "use this
|
|
114
|
+
* vendor's convention".
|
|
115
|
+
*/
|
|
116
|
+
forcePathStyle: z.boolean().nullable().optional(),
|
|
117
|
+
/**
|
|
118
|
+
* The literal string `SWITCH`, required only when this save would repoint a
|
|
119
|
+
* deployment that still has objects at the old location.
|
|
120
|
+
*
|
|
121
|
+
* Optional because the ordinary save needs no acknowledgement at all. The
|
|
122
|
+
* service decides whether it was needed and answers `409` with the row counts
|
|
123
|
+
* when it was missing.
|
|
124
|
+
*
|
|
125
|
+
* IT ACKNOWLEDGES, IT DOES NOT MIGRATE. Saving a new location does not copy a
|
|
126
|
+
* single object.
|
|
127
|
+
*/
|
|
128
|
+
confirmation: z.literal(STORAGE_SWITCH_CONFIRMATION).optional(),
|
|
129
|
+
});
|
|
130
|
+
//# sourceMappingURL=storage-config-update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage-config-update.js","sourceRoot":"","sources":["../../../src/storage/storage-config-update.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,yFAAyF;AACzF,gFAAgF;AAChF,EAAE;AACF,wEAAwE;AACxE,8EAA8E;AAC9E,uCAAuC;AACvC,EAAE;AACF,8EAA8E;AAC9E,8EAA8E;AAC9E,gFAAgF;AAChF,2EAA2E;AAC3E,mEAAmE;AACnE,oEAAoE;AACpE,iFAAiF;AACjF,gFAAgF;AAChF,4EAA4E;AAC5E,4EAA4E;AAC5E,8EAA8E;AAC9E,4EAA4E;AAC5E,4BAA4B;AAC5B,EAAE;AACF,8EAA8E;AAC9E,yEAAyE;AACzE,oEAAoE;AACpE,gBAAgB;AAChB,EAAE;AACF,gFAAgF;AAChF,8CAA8C;AAC9C,gFAAgF;AAChF,EAAE;AACF,+EAA+E;AAC/E,6EAA6E;AAC7E,6EAA6E;AAC7E,iFAAiF;AACjF,+EAA+E;AAC/E,2EAA2E;AAC3E,EAAE;AACF,+EAA+E;AAC/E,8EAA8E;AAC9E,gFAAgF;AAChF,sEAAsE;AACtE,oEAAoE;AACpE,gFAAgF;AAEhF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAEzF;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,QAAQ,CAAC;AAEpD;;;;GAIG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,0FAA0F;IAC1F,QAAQ,EAAE,qBAAqB;IAE/B;;;OAGG;IACH,OAAO,EAAE,yBAAyB,CAAC,QAAQ,EAAE;IAE7C;;;;OAIG;IACH,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IAE7C,+FAA+F;IAC/F,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IAE7C,qHAAqH;IACrH,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IAE/C,kGAAkG;IAClG,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IAEhD;;;;OAIG;IACH,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IAElD;;;;;OAKG;IACH,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE;IAE9C;;;;OAIG;IACH,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;IAEzG;;;;OAIG;IACH,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAEjD;;;;;;;;;;OAUG;IACH,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC,QAAQ,EAAE;CAChE,CAAC,CAAC"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { type StorageEnum } from './constants.js';
|
|
3
|
+
/**
|
|
4
|
+
* The configuration to test: the SUBMITTED, UNSAVED one.
|
|
5
|
+
*
|
|
6
|
+
* ⚠ IT TESTS THE BODY, NOT THE STORED ROW, AND THAT IS THE POINT. An operator
|
|
7
|
+
* changing buckets should be able to prove a configuration BEFORE committing
|
|
8
|
+
* the deployment to it — a test that could only exercise what had already been
|
|
9
|
+
* saved would mean the only way to try a new bucket is to break the running
|
|
10
|
+
* one first. Nothing here writes: no settings row, no credential, no audit of a
|
|
11
|
+
* configuration change (the attempt itself is audited).
|
|
12
|
+
*
|
|
13
|
+
* Structurally identical to the `PUT` body minus `confirmation`, and derived
|
|
14
|
+
* from it with `.omit()` rather than restated: a field added to the save form
|
|
15
|
+
* is then testable without a second edit, and the two can never disagree about
|
|
16
|
+
* what a configuration is. `confirmation` is absent because nothing is being
|
|
17
|
+
* switched — there is no old location to strand.
|
|
18
|
+
*
|
|
19
|
+
* `secretAccessKey` keeps the same blank-preserves meaning it has on `PUT`:
|
|
20
|
+
* empty means "test with the secret already stored", which is what makes
|
|
21
|
+
* "I changed only the region, does it still work?" a single click rather than a
|
|
22
|
+
* re-paste of a credential the admin may not have to hand.
|
|
23
|
+
*
|
|
24
|
+
* @stability experimental
|
|
25
|
+
*/
|
|
26
|
+
export declare const testStorageConfigSchema: z.ZodObject<{
|
|
27
|
+
secretAccessKey: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
28
|
+
provider: z.ZodString;
|
|
29
|
+
bucket: z.ZodOptional<z.ZodString>;
|
|
30
|
+
region: z.ZodOptional<z.ZodString>;
|
|
31
|
+
accessKeyId: z.ZodOptional<z.ZodString>;
|
|
32
|
+
secrets: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodNullable<z.ZodString>>>>>;
|
|
33
|
+
endpoint: z.ZodOptional<z.ZodString>;
|
|
34
|
+
accountId: z.ZodOptional<z.ZodString>;
|
|
35
|
+
forcePathStyle: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
36
|
+
drivers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>>;
|
|
37
|
+
}, z.core.$strip>;
|
|
38
|
+
/**
|
|
39
|
+
* The connection-test body, parsed.
|
|
40
|
+
*
|
|
41
|
+
* @stability experimental
|
|
42
|
+
*/
|
|
43
|
+
export type TestStorageConfigInput = z.output<typeof testStorageConfigSchema>;
|
|
44
|
+
/**
|
|
45
|
+
* The four checks, in the order they are attempted. See this file's header.
|
|
46
|
+
*
|
|
47
|
+
* @stability experimental
|
|
48
|
+
*/
|
|
49
|
+
export declare const STORAGE_TEST_CHECK_IDS: readonly ["credentials", "bucket", "roundTrip", "presignedUrl"];
|
|
50
|
+
/**
|
|
51
|
+
* One connection-test check id.
|
|
52
|
+
*
|
|
53
|
+
* @stability experimental
|
|
54
|
+
*/
|
|
55
|
+
export type StorageTestCheckId = (typeof STORAGE_TEST_CHECK_IDS)[number];
|
|
56
|
+
/**
|
|
57
|
+
* `skipped` is NOT a failure and NOT a pass: the check could not be attempted
|
|
58
|
+
* because an earlier one failed, so this run knows nothing about it either way.
|
|
59
|
+
*
|
|
60
|
+
* @stability experimental
|
|
61
|
+
*/
|
|
62
|
+
export declare const STORAGE_TEST_CHECK_STATUSES: readonly ["passed", "failed", "skipped"];
|
|
63
|
+
/**
|
|
64
|
+
* Machine-readable causes, so a UI can offer the RIGHT next action rather than
|
|
65
|
+
* a generic error toast.
|
|
66
|
+
*
|
|
67
|
+
* ⚠ `bucket_missing` AND `bucket_forbidden` ARE THE REASON THIS ENUM EXISTS.
|
|
68
|
+
* `HeadBucket` answers `404` when there is no such bucket at this endpoint and
|
|
69
|
+
* `403` when there is one and this key may not inspect it. The two need
|
|
70
|
+
* OPPOSITE fixes — create the bucket (which `POST /bucket` will do) versus
|
|
71
|
+
* widen the key's policy, and creating a bucket that already exists under
|
|
72
|
+
* somebody else's account is not a recoverable mistake — so collapsing them
|
|
73
|
+
* into "bucket check failed" sends half of all operators to the wrong remedy.
|
|
74
|
+
* S3 is explicit that `HeadBucket` returns `403` for a bucket that exists and
|
|
75
|
+
* is not yours, which is exactly the case a name typo lands in.
|
|
76
|
+
*
|
|
77
|
+
* @stability experimental
|
|
78
|
+
*/
|
|
79
|
+
export declare const STORAGE_TEST_CHECK_CODES: readonly ["ok", "not_configured", "credentials_rejected", "endpoint_unreachable", "bucket_missing", "bucket_forbidden", "bucket_region_mismatch", "write_denied", "read_denied", "read_mismatch", "delete_denied", "presign_unreachable", "presign_rejected", "presign_mismatch", "not_attempted", "unknown_error"];
|
|
80
|
+
/**
|
|
81
|
+
* One connection-test check: id, label, status, code, detail and the redacted provider error.
|
|
82
|
+
*
|
|
83
|
+
* @stability experimental
|
|
84
|
+
*/
|
|
85
|
+
export declare const storageConnectionCheckSchema: z.ZodObject<{
|
|
86
|
+
id: z.ZodEnum<StorageEnum<readonly ["credentials", "bucket", "roundTrip", "presignedUrl"]>>;
|
|
87
|
+
label: z.ZodString;
|
|
88
|
+
status: z.ZodEnum<StorageEnum<readonly ["passed", "failed", "skipped"]>>;
|
|
89
|
+
code: z.ZodEnum<StorageEnum<readonly ["ok", "not_configured", "credentials_rejected", "endpoint_unreachable", "bucket_missing", "bucket_forbidden", "bucket_region_mismatch", "write_denied", "read_denied", "read_mismatch", "delete_denied", "presign_unreachable", "presign_rejected", "presign_mismatch", "not_attempted", "unknown_error"]>>;
|
|
90
|
+
detail: z.ZodString;
|
|
91
|
+
error: z.ZodNullable<z.ZodString>;
|
|
92
|
+
}, z.core.$strip>;
|
|
93
|
+
/**
|
|
94
|
+
* The `POST /api/admin/storage-config/test` payload, always HTTP 200: read `success`.
|
|
95
|
+
*
|
|
96
|
+
* @stability experimental
|
|
97
|
+
*/
|
|
98
|
+
export declare const storageConnectionTestResultSchema: z.ZodObject<{
|
|
99
|
+
success: z.ZodBoolean;
|
|
100
|
+
provider: z.ZodString;
|
|
101
|
+
bucket: z.ZodString;
|
|
102
|
+
region: z.ZodString;
|
|
103
|
+
effectiveEndpoint: z.ZodNullable<z.ZodString>;
|
|
104
|
+
usedStoredSecret: z.ZodBoolean;
|
|
105
|
+
checks: z.ZodArray<z.ZodObject<{
|
|
106
|
+
id: z.ZodEnum<StorageEnum<readonly ["credentials", "bucket", "roundTrip", "presignedUrl"]>>;
|
|
107
|
+
label: z.ZodString;
|
|
108
|
+
status: z.ZodEnum<StorageEnum<readonly ["passed", "failed", "skipped"]>>;
|
|
109
|
+
code: z.ZodEnum<StorageEnum<readonly ["ok", "not_configured", "credentials_rejected", "endpoint_unreachable", "bucket_missing", "bucket_forbidden", "bucket_region_mismatch", "write_denied", "read_denied", "read_mismatch", "delete_denied", "presign_unreachable", "presign_rejected", "presign_mismatch", "not_attempted", "unknown_error"]>>;
|
|
110
|
+
detail: z.ZodString;
|
|
111
|
+
error: z.ZodNullable<z.ZodString>;
|
|
112
|
+
}, z.core.$strip>>;
|
|
113
|
+
message: z.ZodOptional<z.ZodString>;
|
|
114
|
+
details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
|
|
115
|
+
attemptedAt: z.ZodISODateTime;
|
|
116
|
+
}, z.core.$strip>;
|
|
117
|
+
/**
|
|
118
|
+
* One connection-test check, inferred.
|
|
119
|
+
*
|
|
120
|
+
* @stability experimental
|
|
121
|
+
*/
|
|
122
|
+
export type StorageConnectionCheck = z.infer<typeof storageConnectionCheckSchema>;
|
|
123
|
+
/**
|
|
124
|
+
* The connection-test payload, inferred.
|
|
125
|
+
*
|
|
126
|
+
* @stability experimental
|
|
127
|
+
*/
|
|
128
|
+
export type StorageConnectionTestResult = z.infer<typeof storageConnectionTestResultSchema>;
|
|
129
|
+
//# sourceMappingURL=storage-connection-test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage-connection-test.d.ts","sourceRoot":"","sources":["../../../src/storage/storage-connection-test.ts"],"names":[],"mappings":"AAyDA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAQlD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;iBAElC,CAAC;AAEH;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAM9E;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,iEAKzB,CAAC;AAEX;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzE;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,0CAA2C,CAAC;AAEpF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,wBAAwB,qTAiC3B,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,4BAA4B;;;;;;;iBAmCvC,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;iBAgD5C,CAAC;AAEH;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAClF;;;;GAIG;AACH,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAC/C,OAAO,iCAAiC,CACzC,CAAC"}
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// POST /api/admin/storage-config/test — request and response (issue #375)
|
|
3
|
+
// =============================================================================
|
|
4
|
+
//
|
|
5
|
+
// ⚠ THIS ENDPOINT ANSWERS 200 EVEN WHEN THE CONFIGURATION IS BROKEN. That is
|
|
6
|
+
// the design, and it is the single most important thing in this file.
|
|
7
|
+
//
|
|
8
|
+
// It is the same contract `POST /api/email-settings/test` states, in the same
|
|
9
|
+
// words, for the same reason: diagnosing a misconfiguration is this page's
|
|
10
|
+
// entire job, so a refused request is a SUCCESSFUL DIAGNOSIS. Returning 4xx/5xx
|
|
11
|
+
// for that answer loses it — this app's error envelope is `{ code, message,
|
|
12
|
+
// details }` produced by `HttpExceptionFilter`, which suppresses detail in
|
|
13
|
+
// production and which the web client funnels into generic failure handling, so
|
|
14
|
+
// "the bucket exists but this key may not see it" would arrive as "Request
|
|
15
|
+
// failed". The outcome therefore travels as a normal payload.
|
|
16
|
+
//
|
|
17
|
+
// A real 4xx/5xx still means what it always means: not authenticated, not
|
|
18
|
+
// permitted, a malformed body, or a bug in this API. Those are transport
|
|
19
|
+
// failures of the endpoint. A refused `HeadBucket` is a result.
|
|
20
|
+
//
|
|
21
|
+
// `success` IS THE ONLY SUCCESS SIGNAL, and it is true only when EVERY check
|
|
22
|
+
// passed.
|
|
23
|
+
//
|
|
24
|
+
// -----------------------------------------------------------------------------
|
|
25
|
+
// FOUR CHECKS, REPORTED SEPARATELY, NEVER COLLAPSED INTO ONE BOOLEAN
|
|
26
|
+
// -----------------------------------------------------------------------------
|
|
27
|
+
//
|
|
28
|
+
// "Storage does not work" is not an actionable sentence, and the four ways it
|
|
29
|
+
// can be untrue need four different fixes:
|
|
30
|
+
//
|
|
31
|
+
// 1. `credentials` — was the signature accepted at all? A rejected key is
|
|
32
|
+
// fixed in the credential fields; nothing else can help.
|
|
33
|
+
// 2. `bucket` — does the bucket exist, and may this key see it?
|
|
34
|
+
// ⚠ 404 AND 403 ARE NOT THE SAME ANSWER — see
|
|
35
|
+
// {@link STORAGE_TEST_CHECK_CODES}.
|
|
36
|
+
// 3. `roundTrip` — write, read back, delete, on a throwaway key. This is
|
|
37
|
+
// the only check that proves the key has the PERMISSIONS
|
|
38
|
+
// an upload needs; `HeadBucket` passing proves nothing
|
|
39
|
+
// about `s3:PutObject`.
|
|
40
|
+
// 4. `presignedUrl` — is the signed URL this API hands to a browser valid,
|
|
41
|
+
// and does the object store actually serve it?
|
|
42
|
+
// ⚠ IT IS FETCHED FROM THIS PROCESS, so it cannot and
|
|
43
|
+
// does not prove the host is reachable from a user's
|
|
44
|
+
// BROWSER — no server-side check can, and claiming
|
|
45
|
+
// otherwise would be worse than not checking. What it
|
|
46
|
+
// does catch is the class of failure the three checks
|
|
47
|
+
// above hide by construction: presigning is a different
|
|
48
|
+
// code path from a signed API call, so a wrong region or
|
|
49
|
+
// a wrong path-style setting can be tolerated on the
|
|
50
|
+
// direct call and produce a `SignatureDoesNotMatch` or a
|
|
51
|
+
// 404 on the URL every download in the product uses.
|
|
52
|
+
//
|
|
53
|
+
// A check that could not be attempted because an earlier one failed is
|
|
54
|
+
// `skipped`, not `failed`: reporting four failures for one cause sends an
|
|
55
|
+
// operator looking for four problems.
|
|
56
|
+
// =============================================================================
|
|
57
|
+
import { z } from 'zod';
|
|
58
|
+
import { storageDriverIdSchema } from './settings-schemas.js';
|
|
59
|
+
import { updateStorageConfigSchema } from './storage-config-update.js';
|
|
60
|
+
// ---------------------------------------------------------------------------
|
|
61
|
+
// Request
|
|
62
|
+
// ---------------------------------------------------------------------------
|
|
63
|
+
/**
|
|
64
|
+
* The configuration to test: the SUBMITTED, UNSAVED one.
|
|
65
|
+
*
|
|
66
|
+
* ⚠ IT TESTS THE BODY, NOT THE STORED ROW, AND THAT IS THE POINT. An operator
|
|
67
|
+
* changing buckets should be able to prove a configuration BEFORE committing
|
|
68
|
+
* the deployment to it — a test that could only exercise what had already been
|
|
69
|
+
* saved would mean the only way to try a new bucket is to break the running
|
|
70
|
+
* one first. Nothing here writes: no settings row, no credential, no audit of a
|
|
71
|
+
* configuration change (the attempt itself is audited).
|
|
72
|
+
*
|
|
73
|
+
* Structurally identical to the `PUT` body minus `confirmation`, and derived
|
|
74
|
+
* from it with `.omit()` rather than restated: a field added to the save form
|
|
75
|
+
* is then testable without a second edit, and the two can never disagree about
|
|
76
|
+
* what a configuration is. `confirmation` is absent because nothing is being
|
|
77
|
+
* switched — there is no old location to strand.
|
|
78
|
+
*
|
|
79
|
+
* `secretAccessKey` keeps the same blank-preserves meaning it has on `PUT`:
|
|
80
|
+
* empty means "test with the secret already stored", which is what makes
|
|
81
|
+
* "I changed only the region, does it still work?" a single click rather than a
|
|
82
|
+
* re-paste of a credential the admin may not have to hand.
|
|
83
|
+
*
|
|
84
|
+
* @stability experimental
|
|
85
|
+
*/
|
|
86
|
+
export const testStorageConfigSchema = updateStorageConfigSchema.omit({
|
|
87
|
+
confirmation: true,
|
|
88
|
+
});
|
|
89
|
+
// ---------------------------------------------------------------------------
|
|
90
|
+
// Response
|
|
91
|
+
// ---------------------------------------------------------------------------
|
|
92
|
+
/**
|
|
93
|
+
* The four checks, in the order they are attempted. See this file's header.
|
|
94
|
+
*
|
|
95
|
+
* @stability experimental
|
|
96
|
+
*/
|
|
97
|
+
export const STORAGE_TEST_CHECK_IDS = [
|
|
98
|
+
'credentials',
|
|
99
|
+
'bucket',
|
|
100
|
+
'roundTrip',
|
|
101
|
+
'presignedUrl',
|
|
102
|
+
];
|
|
103
|
+
/**
|
|
104
|
+
* `skipped` is NOT a failure and NOT a pass: the check could not be attempted
|
|
105
|
+
* because an earlier one failed, so this run knows nothing about it either way.
|
|
106
|
+
*
|
|
107
|
+
* @stability experimental
|
|
108
|
+
*/
|
|
109
|
+
export const STORAGE_TEST_CHECK_STATUSES = ['passed', 'failed', 'skipped'];
|
|
110
|
+
/**
|
|
111
|
+
* Machine-readable causes, so a UI can offer the RIGHT next action rather than
|
|
112
|
+
* a generic error toast.
|
|
113
|
+
*
|
|
114
|
+
* ⚠ `bucket_missing` AND `bucket_forbidden` ARE THE REASON THIS ENUM EXISTS.
|
|
115
|
+
* `HeadBucket` answers `404` when there is no such bucket at this endpoint and
|
|
116
|
+
* `403` when there is one and this key may not inspect it. The two need
|
|
117
|
+
* OPPOSITE fixes — create the bucket (which `POST /bucket` will do) versus
|
|
118
|
+
* widen the key's policy, and creating a bucket that already exists under
|
|
119
|
+
* somebody else's account is not a recoverable mistake — so collapsing them
|
|
120
|
+
* into "bucket check failed" sends half of all operators to the wrong remedy.
|
|
121
|
+
* S3 is explicit that `HeadBucket` returns `403` for a bucket that exists and
|
|
122
|
+
* is not yours, which is exactly the case a name typo lands in.
|
|
123
|
+
*
|
|
124
|
+
* @stability experimental
|
|
125
|
+
*/
|
|
126
|
+
export const STORAGE_TEST_CHECK_CODES = [
|
|
127
|
+
/** The check passed. */
|
|
128
|
+
'ok',
|
|
129
|
+
/** Nothing was attempted: the configuration is incomplete. */
|
|
130
|
+
'not_configured',
|
|
131
|
+
/** The signature itself was refused — a wrong key id or secret. */
|
|
132
|
+
'credentials_rejected',
|
|
133
|
+
/** No response at all: DNS, TLS, a refused connection, a timeout. */
|
|
134
|
+
'endpoint_unreachable',
|
|
135
|
+
/** `HeadBucket` 404 — no bucket by that name at this endpoint. */
|
|
136
|
+
'bucket_missing',
|
|
137
|
+
/** `HeadBucket` 403 — it exists (possibly not yours); the key cannot see it. */
|
|
138
|
+
'bucket_forbidden',
|
|
139
|
+
/** The bucket lives in a different region from the one configured. */
|
|
140
|
+
'bucket_region_mismatch',
|
|
141
|
+
/** `PutObject` refused. */
|
|
142
|
+
'write_denied',
|
|
143
|
+
/** `GetObject` refused. */
|
|
144
|
+
'read_denied',
|
|
145
|
+
/** The object read back did not match the bytes written. */
|
|
146
|
+
'read_mismatch',
|
|
147
|
+
/** `DeleteObject` refused — the probe object may have been left behind. */
|
|
148
|
+
'delete_denied',
|
|
149
|
+
/** The presigned URL could not be fetched from this process at all. */
|
|
150
|
+
'presign_unreachable',
|
|
151
|
+
/** The presigned URL answered, but not with a success status. */
|
|
152
|
+
'presign_rejected',
|
|
153
|
+
/** It answered 200 with bytes that are not the ones that were written. */
|
|
154
|
+
'presign_mismatch',
|
|
155
|
+
/** An earlier check failed, so this one was not attempted. */
|
|
156
|
+
'not_attempted',
|
|
157
|
+
/** Something else. `error` carries the provider's own words. */
|
|
158
|
+
'unknown_error',
|
|
159
|
+
];
|
|
160
|
+
/**
|
|
161
|
+
* One connection-test check: id, label, status, code, detail and the redacted provider error.
|
|
162
|
+
*
|
|
163
|
+
* @stability experimental
|
|
164
|
+
*/
|
|
165
|
+
export const storageConnectionCheckSchema = z.object({
|
|
166
|
+
/** The id. */
|
|
167
|
+
id: z.enum(STORAGE_TEST_CHECK_IDS),
|
|
168
|
+
/** Short human label, so a client need not carry its own copy of the four. */
|
|
169
|
+
label: z.string(),
|
|
170
|
+
/** The status. */
|
|
171
|
+
status: z.enum(STORAGE_TEST_CHECK_STATUSES),
|
|
172
|
+
/** The machine-readable cause. See {@link STORAGE_TEST_CHECK_CODES}. */
|
|
173
|
+
code: z.enum(STORAGE_TEST_CHECK_CODES),
|
|
174
|
+
/**
|
|
175
|
+
* One or two sentences an operator can act on, authored here — never the
|
|
176
|
+
* provider's raw text. It says what to change, not only what went wrong.
|
|
177
|
+
*/
|
|
178
|
+
detail: z.string(),
|
|
179
|
+
/**
|
|
180
|
+
* THE PROVIDER'S OWN MESSAGE, verbatim, or null.
|
|
181
|
+
*
|
|
182
|
+
* `NoSuchBucket`, `SignatureDoesNotMatch`, `ECONNREFUSED 10.0.0.4:9000`,
|
|
183
|
+
* `PermanentRedirect: the bucket is in a different region`. Not a category and
|
|
184
|
+
* not a rewritten sentence — each of those discards the one thing the
|
|
185
|
+
* operator came here for, and a wrong region, a bad secret and a firewalled
|
|
186
|
+
* port all collapse into the same useless toast.
|
|
187
|
+
*
|
|
188
|
+
* SAFE TO SURFACE: the reader already holds `storage_config:write`, so every
|
|
189
|
+
* value this text could reveal about the storage configuration is one they can
|
|
190
|
+
* read and change on the same page. The SECRET is a different matter, and the
|
|
191
|
+
* service redacts it out of this string before it is ever set — see
|
|
192
|
+
* `StorageConnectionTestService.describeError`.
|
|
193
|
+
*/
|
|
194
|
+
error: z.string().nullable(),
|
|
195
|
+
});
|
|
196
|
+
/**
|
|
197
|
+
* The `POST /api/admin/storage-config/test` payload, always HTTP 200: read `success`.
|
|
198
|
+
*
|
|
199
|
+
* @stability experimental
|
|
200
|
+
*/
|
|
201
|
+
export const storageConnectionTestResultSchema = z.object({
|
|
202
|
+
/**
|
|
203
|
+
* True only when all four checks passed.
|
|
204
|
+
*
|
|
205
|
+
* ⚠ A CALLER THAT TREATS HTTP 200 AS "STORAGE WORKS" REPORTS SUCCESS FOR
|
|
206
|
+
* EVERY MISCONFIGURATION THERE IS. Read this field.
|
|
207
|
+
*/
|
|
208
|
+
success: z.boolean(),
|
|
209
|
+
/** Which driver was tested - the SUBMITTED one, not necessarily the saved one. */
|
|
210
|
+
provider: storageDriverIdSchema,
|
|
211
|
+
/** The bucket that was tested. */
|
|
212
|
+
bucket: z.string(),
|
|
213
|
+
/** The signing region that was used. */
|
|
214
|
+
region: z.string(),
|
|
215
|
+
/** The origin actually talked to, or null for the SDK's own AWS host. */
|
|
216
|
+
effectiveEndpoint: z.string().nullable(),
|
|
217
|
+
/**
|
|
218
|
+
* Whether the stored secret was used because the body left it blank.
|
|
219
|
+
*
|
|
220
|
+
* Worth echoing: "I pasted a new key and it still fails" and "I left the key
|
|
221
|
+
* alone and it still fails" are different situations, and an admin cannot tell
|
|
222
|
+
* which one they are in from the result alone.
|
|
223
|
+
*/
|
|
224
|
+
usedStoredSecret: z.boolean(),
|
|
225
|
+
/**
|
|
226
|
+
* The checks, in attempt order. The built-in (S3 family) drivers report all
|
|
227
|
+
* four; a driver an app registers reports whatever it can, possibly none
|
|
228
|
+
* (read `message` then).
|
|
229
|
+
*/
|
|
230
|
+
checks: z.array(storageConnectionCheckSchema),
|
|
231
|
+
/**
|
|
232
|
+
* One sentence for the whole run, authored by the driver: what worked or what
|
|
233
|
+
* to fix. Present for every driver; the built-ins summarise their checks.
|
|
234
|
+
*/
|
|
235
|
+
message: z.string().optional(),
|
|
236
|
+
/** Small non-secret facts the driver wants shown (a directory, a container). Never a secret. */
|
|
237
|
+
details: z.record(z.string(), z.union([z.string(), z.number(), z.boolean()])).optional(),
|
|
238
|
+
/** When it ran (ISO). */
|
|
239
|
+
attemptedAt: z.iso.datetime(),
|
|
240
|
+
});
|
|
241
|
+
//# sourceMappingURL=storage-connection-test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage-connection-test.js","sourceRoot":"","sources":["../../../src/storage/storage-connection-test.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,0EAA0E;AAC1E,gFAAgF;AAChF,EAAE;AACF,6EAA6E;AAC7E,sEAAsE;AACtE,EAAE;AACF,8EAA8E;AAC9E,2EAA2E;AAC3E,gFAAgF;AAChF,4EAA4E;AAC5E,2EAA2E;AAC3E,gFAAgF;AAChF,2EAA2E;AAC3E,8DAA8D;AAC9D,EAAE;AACF,0EAA0E;AAC1E,yEAAyE;AACzE,gEAAgE;AAChE,EAAE;AACF,6EAA6E;AAC7E,UAAU;AACV,EAAE;AACF,gFAAgF;AAChF,qEAAqE;AACrE,gFAAgF;AAChF,EAAE;AACF,8EAA8E;AAC9E,2CAA2C;AAC3C,EAAE;AACF,8EAA8E;AAC9E,gFAAgF;AAChF,yEAAyE;AACzE,qEAAqE;AACrE,2DAA2D;AAC3D,+EAA+E;AAC/E,gFAAgF;AAChF,8EAA8E;AAC9E,+CAA+C;AAC/C,8EAA8E;AAC9E,sEAAsE;AACtE,6EAA6E;AAC7E,4EAA4E;AAC5E,0EAA0E;AAC1E,6EAA6E;AAC7E,6EAA6E;AAC7E,+EAA+E;AAC/E,gFAAgF;AAChF,4EAA4E;AAC5E,gFAAgF;AAChF,4EAA4E;AAC5E,EAAE;AACF,uEAAuE;AACvE,0EAA0E;AAC1E,sCAAsC;AACtC,gFAAgF;AAEhF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAEvE,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,yBAAyB,CAAC,IAAI,CAAC;IACpE,YAAY,EAAE,IAAI;CACnB,CAAC,CAAC;AASH,8EAA8E;AAC9E,WAAW;AACX,8EAA8E;AAE9E;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,aAAa;IACb,QAAQ;IACR,WAAW;IACX,cAAc;CACN,CAAC;AASX;;;;;GAKG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAU,CAAC;AAEpF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,wBAAwB;IACxB,IAAI;IACJ,8DAA8D;IAC9D,gBAAgB;IAChB,mEAAmE;IACnE,sBAAsB;IACtB,qEAAqE;IACrE,sBAAsB;IACtB,kEAAkE;IAClE,gBAAgB;IAChB,gFAAgF;IAChF,kBAAkB;IAClB,sEAAsE;IACtE,wBAAwB;IACxB,2BAA2B;IAC3B,cAAc;IACd,2BAA2B;IAC3B,aAAa;IACb,4DAA4D;IAC5D,eAAe;IACf,2EAA2E;IAC3E,eAAe;IACf,uEAAuE;IACvE,qBAAqB;IACrB,iEAAiE;IACjE,kBAAkB;IAClB,0EAA0E;IAC1E,kBAAkB;IAClB,8DAA8D;IAC9D,eAAe;IACf,gEAAgE;IAChE,eAAe;CACP,CAAC;AAEX;;;;GAIG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACnD,cAAc;IACd,EAAE,EAAG,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAA2D;IAE7F,8EAA8E;IAC9E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IAEjB,kBAAkB;IAClB,MAAM,EAAG,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAgE;IAE3G,wEAAwE;IACxE,IAAI,EAAG,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAA6D;IAEnG;;;OAGG;IACH,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAElB;;;;;;;;;;;;;;OAcG;IACH,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,CAAC,MAAM,CAAC;IACxD;;;;;OAKG;IACH,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IAEpB,kFAAkF;IAClF,QAAQ,EAAE,qBAAqB;IAE/B,kCAAkC;IAClC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAElB,wCAAwC;IACxC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAElB,yEAAyE;IACzE,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAExC;;;;;;OAMG;IACH,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE;IAE7B;;;;OAIG;IACH,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,4BAA4B,CAAC;IAE7C;;;OAGG;IACH,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAE9B,gGAAgG;IAChG,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAExF,yBAAyB;IACzB,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* The `GET /api/storage/status` payload: whether object storage is configured.
|
|
4
|
+
*
|
|
5
|
+
* @stability experimental
|
|
6
|
+
*/
|
|
7
|
+
export declare const storageStatusResponseSchema: z.ZodObject<{
|
|
8
|
+
configured: z.ZodBoolean;
|
|
9
|
+
}, z.core.$strip>;
|
|
10
|
+
/**
|
|
11
|
+
* The status payload, inferred.
|
|
12
|
+
*
|
|
13
|
+
* @stability experimental
|
|
14
|
+
*/
|
|
15
|
+
export type StorageStatusResponse = z.infer<typeof storageStatusResponseSchema>;
|
|
16
|
+
//# sourceMappingURL=storage-status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage-status.d.ts","sourceRoot":"","sources":["../../../src/storage/storage-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAYxB;;;;GAIG;AACH,eAAO,MAAM,2BAA2B;;iBAGtC,CAAC;AAEH;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
// =============================================================================
|
|
3
|
+
// GET /api/storage/status — response
|
|
4
|
+
// =============================================================================
|
|
5
|
+
//
|
|
6
|
+
// One boolean and nothing else. The provider, bucket, region and credentials
|
|
7
|
+
// are an administrator's business (`storage_config:read`); this answer goes to
|
|
8
|
+
// every `storage:read` holder so the web app can show "not enabled yet"
|
|
9
|
+
// instead of an upload control that would fail.
|
|
10
|
+
// =============================================================================
|
|
11
|
+
/**
|
|
12
|
+
* The `GET /api/storage/status` payload: whether object storage is configured.
|
|
13
|
+
*
|
|
14
|
+
* @stability experimental
|
|
15
|
+
*/
|
|
16
|
+
export const storageStatusResponseSchema = z.object({
|
|
17
|
+
/** The object-storage configuration is complete (the Doctor's `storage.config` would pass). */
|
|
18
|
+
configured: z.boolean(),
|
|
19
|
+
});
|
|
20
|
+
//# sourceMappingURL=storage-status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage-status.js","sourceRoot":"","sources":["../../../src/storage/storage-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,gFAAgF;AAChF,qCAAqC;AACrC,gFAAgF;AAChF,EAAE;AACF,6EAA6E;AAC7E,+EAA+E;AAC/E,wEAAwE;AACxE,gDAAgD;AAChD,gFAAgF;AAEhF;;;;GAIG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,+FAA+F;IAC/F,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE;CACxB,CAAC,CAAC"}
|
|
@@ -58,6 +58,10 @@ export declare const telemetryConfigResponseSchema: z.ZodObject<{
|
|
|
58
58
|
retentionApplicable: z.ZodBoolean;
|
|
59
59
|
instanceIdDefault: z.ZodString;
|
|
60
60
|
instanceIdEffective: z.ZodString;
|
|
61
|
+
store: z.ZodOptional<z.ZodObject<{
|
|
62
|
+
id: z.ZodString;
|
|
63
|
+
label: z.ZodString;
|
|
64
|
+
}, z.core.$strip>>;
|
|
61
65
|
version: z.ZodNumber;
|
|
62
66
|
updatedAt: z.ZodNullable<z.ZodISODateTime>;
|
|
63
67
|
updatedBy: z.ZodNullable<z.ZodObject<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/telemetry/config.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;iBAGtC,CAAC;AAEH;;;;GAIG;AACH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAErF;;;;;;;;GAQG;AACH,eAAO,MAAM,6BAA6B
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/telemetry/config.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;iBAGtC,CAAC;AAEH;;;;GAIG;AACH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAErF;;;;;;;;GAQG;AACH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmDxC,CAAC;AAEH;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B;;;;iBAUtC,CAAC;AAEH;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC"}
|
|
@@ -47,8 +47,8 @@ export const telemetryConfigResponseSchema = telemetrySettingsSchema.extend({
|
|
|
47
47
|
*/
|
|
48
48
|
available: z.boolean(),
|
|
49
49
|
/**
|
|
50
|
-
* Whether the
|
|
51
|
-
*
|
|
50
|
+
* Whether the store can change retention now (for GreptimeDB: the admin login
|
|
51
|
+
* is configured, in the admin UI or as the deployment default). While false, `retentionDays` is stored
|
|
52
52
|
* but not applied.
|
|
53
53
|
*/
|
|
54
54
|
retentionApplicable: z.boolean(),
|
|
@@ -63,6 +63,20 @@ export const telemetryConfigResponseSchema = telemetrySettingsSchema.extend({
|
|
|
63
63
|
* `instanceIdDefault`. Read-only.
|
|
64
64
|
*/
|
|
65
65
|
instanceIdEffective: z.string(),
|
|
66
|
+
/**
|
|
67
|
+
* The telemetry store this deployment uses (`TelemetryModule.forRoot({ store })`):
|
|
68
|
+
* its id and label. The settings page shows the GreptimeDB connection form for
|
|
69
|
+
* `greptime` and a generated form for any other store. Absent from a server
|
|
70
|
+
* that predates pluggable stores, which always used GreptimeDB.
|
|
71
|
+
*/
|
|
72
|
+
store: z
|
|
73
|
+
.object({
|
|
74
|
+
/** The store id (`greptime`). */
|
|
75
|
+
id: z.string(),
|
|
76
|
+
/** The store's human label (`GreptimeDB`). */
|
|
77
|
+
label: z.string(),
|
|
78
|
+
})
|
|
79
|
+
.optional(),
|
|
66
80
|
/** The system-settings row version — send it back as `If-Match` on `PUT`. `0` when nothing is stored yet. */
|
|
67
81
|
version: z.number().int(),
|
|
68
82
|
/** When the namespace was last saved, or `null` when nothing is stored yet. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/telemetry/config.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,2EAA2E;AAC3E,uEAAuE;AACvE,gFAAgF;AAChF,EAAE;AACF,4EAA4E;AAC5E,0EAA0E;AAC1E,0EAA0E;AAC1E,wBAAwB;AACxB,EAAE;AACF,4EAA4E;AAC5E,wEAAwE;AACxE,8EAA8E;AAC9E,4EAA4E;AAC5E,8EAA8E;AAC9E,wEAAwE;AACxE,EAAE;AACF,sEAAsE;AACtE,gFAAgF;AAEhF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAExD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,uBAAuB,CAAC,MAAM,CAAC;IACxE,0GAA0G;IAC1G,UAAU,EAAE,uBAAuB,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE;CAChE,CAAC,CAAC;AASH;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,uBAAuB,CAAC,MAAM,CAAC;IAC1E;;;;OAIG;IACH,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;IACtB;;;;OAIG;IACH,mBAAmB,EAAE,CAAC,CAAC,OAAO,EAAE;IAChC;;;OAGG;IACH,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC7B;;;;OAIG;IACH,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC/B,6GAA6G;IAC7G,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACzB,+EAA+E;IAC/E,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACtC,oCAAoC;IACpC,SAAS,EAAE,CAAC;SACT,MAAM,CAAC;QACN,qBAAqB;QACrB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;QACd,wBAAwB;QACxB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;KAClB,CAAC;SACD,QAAQ,EAAE;CACd,CAAC,CAAC;AASH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,6GAA6G;IAC7G,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;IACtB,uFAAuF;IACvF,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB;;;OAGG;IACH,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE;CAC9B,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/telemetry/config.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,2EAA2E;AAC3E,uEAAuE;AACvE,gFAAgF;AAChF,EAAE;AACF,4EAA4E;AAC5E,0EAA0E;AAC1E,0EAA0E;AAC1E,wBAAwB;AACxB,EAAE;AACF,4EAA4E;AAC5E,wEAAwE;AACxE,8EAA8E;AAC9E,4EAA4E;AAC5E,8EAA8E;AAC9E,wEAAwE;AACxE,EAAE;AACF,sEAAsE;AACtE,gFAAgF;AAEhF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAExD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,uBAAuB,CAAC,MAAM,CAAC;IACxE,0GAA0G;IAC1G,UAAU,EAAE,uBAAuB,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE;CAChE,CAAC,CAAC;AASH;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,uBAAuB,CAAC,MAAM,CAAC;IAC1E;;;;OAIG;IACH,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;IACtB;;;;OAIG;IACH,mBAAmB,EAAE,CAAC,CAAC,OAAO,EAAE;IAChC;;;OAGG;IACH,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC7B;;;;OAIG;IACH,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC/B;;;;;OAKG;IACH,KAAK,EAAE,CAAC;SACL,MAAM,CAAC;QACN,iCAAiC;QACjC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;QACd,8CAA8C;QAC9C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;KAClB,CAAC;SACD,QAAQ,EAAE;IACb,6GAA6G;IAC7G,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACzB,+EAA+E;IAC/E,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACtC,oCAAoC;IACpC,SAAS,EAAE,CAAC;SACT,MAAM,CAAC;QACN,qBAAqB;QACrB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;QACd,wBAAwB;QACxB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;KAClB,CAAC;SACD,QAAQ,EAAE;CACd,CAAC,CAAC;AASH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,6GAA6G;IAC7G,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;IACtB,uFAAuF;IACvF,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB;;;OAGG;IACH,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE;CAC9B,CAAC,CAAC"}
|
|
@@ -237,7 +237,7 @@ export type TelemetryDeploymentConnection = z.infer<typeof telemetryDeploymentCo
|
|
|
237
237
|
* @stability stable
|
|
238
238
|
*/
|
|
239
239
|
export declare const telemetryConnectionResponseSchema: z.ZodObject<{
|
|
240
|
-
source: z.ZodEnum<import("./constants.js").TelemetryEnumEntries<"
|
|
240
|
+
source: z.ZodEnum<import("./constants.js").TelemetryEnumEntries<"none" | "stored" | "environment">>;
|
|
241
241
|
host: z.ZodNullable<z.ZodString>;
|
|
242
242
|
effectiveHost: z.ZodString;
|
|
243
243
|
hostMode: z.ZodEnum<import("./constants.js").TelemetryEnumEntries<"custom" | "auto">>;
|