passbolt-browser-extension 4.9.3 → 4.9.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/.github/workflows/release.yaml +4 -2
- package/.github/workflows/release_candidate.yaml +4 -2
- package/CHANGELOG.md +78 -1
- package/RELEASE_NOTES.md +71 -4
- package/doc/error-management-verify-key-server.md +47 -0
- package/doc/folders-find-class.md +77 -0
- package/doc/permissions-find-all-by-aco-foreign-key-class.md +34 -0
- package/doc/resource-find-all-decrypt-metadata-sequence.md +51 -0
- package/doc/resources-find-and-decrypt-metadata-flow.md +49 -0
- package/doc/resources-find-class.md +349 -0
- package/doc/secret-find-by-resource-id-class.md +33 -0
- package/package.json +4 -13
- package/src/all/background_page/controller/InformMenuController/InformMenuController.js +3 -1
- package/src/all/background_page/controller/auth/authVerifyServerKeyController.js +1 -1
- package/src/all/background_page/controller/auth/authVerifyServerKeyController.test.js +45 -13
- package/src/all/background_page/controller/autofill/AutofillController.js +5 -2
- package/src/all/background_page/controller/autofill/AutofillController.test.js +36 -19
- package/src/all/background_page/controller/comment/createCommentController.test.js +5 -6
- package/src/all/background_page/controller/comment/getCommentsByRessourceidController.test.js +9 -6
- package/src/all/background_page/controller/export/exportResourcesFileController.js +10 -7
- package/src/all/background_page/controller/folder/findFolderDetailsController.js +56 -0
- package/src/all/background_page/controller/folder/findFolderDetailsController.test.js +50 -0
- package/src/all/background_page/controller/folder/folderCreateController.js +3 -4
- package/src/all/background_page/controller/folderLocalStorage/updateAllFoldersLocalStorageController.js +55 -0
- package/src/all/background_page/controller/folderLocalStorage/updateAllFoldersLocalStorageController.test.js +47 -0
- package/src/all/background_page/controller/group/groupUpdateController.js +15 -17
- package/src/all/background_page/controller/import/importResourcesFileController.js +2 -2
- package/src/all/background_page/controller/informCallToActionController/informCallToActionController.js +7 -5
- package/src/all/background_page/controller/move/moveFolderController.js +7 -3
- package/src/all/background_page/controller/move/moveResourcesController.js +7 -3
- package/src/all/background_page/controller/move/moveResourcesController.test.js +1 -1
- package/src/all/background_page/controller/passwordPolicies/getOrFindPasswordPoliciesController.test.js +1 -1
- package/src/all/background_page/controller/permission/FindAcoPermissionsForDisplayController.js +76 -0
- package/src/all/background_page/controller/permission/FindAcoPermissionsForDisplayController.test.js +104 -0
- package/src/all/background_page/controller/resource/findAllIdsByIsSharedWithGroupController.js +59 -0
- package/src/all/background_page/controller/resource/findAllIdsByIsSharedWithGroupController.test.js +99 -0
- package/src/all/background_page/controller/resource/findResourceDetailsController.js +3 -7
- package/src/all/background_page/controller/resource/resourceUpdateController.js +22 -99
- package/src/all/background_page/controller/resource/resourceUpdateController.test.js +123 -0
- package/src/all/background_page/controller/resourceLocalStorage/resourceUpdateLocalStorageController.js +58 -0
- package/src/all/background_page/controller/resourceLocalStorage/resourceUpdateLocalStorageController.test.js +56 -0
- package/src/all/background_page/controller/resourceType/getResourceTypesController.js +54 -0
- package/src/all/background_page/controller/resourceType/getResourceTypesController.test.js +43 -0
- package/src/all/background_page/controller/secret/{secretDecryptController.js → findSecretByResourceIdController.js} +11 -8
- package/src/all/background_page/controller/secret/{secretDecryptController.test.js → findSecretByResourceIdController.test.js} +20 -15
- package/src/all/background_page/controller/share/findResourcesForShareController.js +57 -0
- package/src/all/background_page/controller/share/findResourcesForShareController.test.js +57 -0
- package/src/all/background_page/controller/share/shareFoldersController.js +11 -4
- package/src/all/background_page/controller/share/shareResourcesController.js +3 -3
- package/src/all/background_page/controller/share/shareResourcesController.test.data.js +1 -1
- package/src/all/background_page/event/folderEvents.js +25 -33
- package/src/all/background_page/event/groupEvents.js +1 -1
- package/src/all/background_page/event/permissionEvents.js +37 -0
- package/src/all/background_page/event/resourceEvents.js +13 -46
- package/src/all/background_page/event/resourceTypeEvents.js +4 -9
- package/src/all/background_page/event/secretEvents.js +4 -4
- package/src/all/background_page/event/shareEvents.js +6 -12
- package/src/all/background_page/event/userEvents.js +1 -1
- package/src/all/background_page/model/entity/comment/commentEntity.js +5 -44
- package/src/all/background_page/model/entity/comment/commentEntity.test.js +67 -140
- package/src/all/background_page/model/entity/comment/commentsCollection.js +20 -98
- package/src/all/background_page/model/entity/comment/commentsCollection.test.js +70 -61
- package/src/all/background_page/model/entity/export/exportResourcesFileEntity.js +28 -148
- package/src/all/background_page/model/entity/export/exportResourcesFileEntity.test.data.js +8 -8
- package/src/all/background_page/model/entity/export/exportResourcesFileEntity.test.js +124 -3
- package/src/all/background_page/model/entity/folder/external/externalFolderEntity.js +21 -61
- package/src/all/background_page/model/entity/folder/external/externalFolderEntity.test.data.js +27 -0
- package/src/all/background_page/model/entity/folder/external/externalFolderEntity.test.js +367 -129
- package/src/all/background_page/model/entity/folder/external/externalFoldersCollection.js +40 -101
- package/src/all/background_page/model/entity/folder/external/externalFoldersCollection.test.data.js +23 -0
- package/src/all/background_page/model/entity/folder/external/externalFoldersCollection.test.js +494 -65
- package/src/all/background_page/model/entity/folder/folderEntity.js +20 -2
- package/src/all/background_page/model/entity/folder/folderEntity.test.js +17 -28
- package/src/all/background_page/model/entity/folder/foldersCollection.test.js +17 -0
- package/src/all/background_page/model/entity/gpgkey/external/externalGpgKeyEntity.test.data.js +54 -0
- package/src/all/background_page/model/entity/gpgkey/external/externalGpgKeyEntity.test.js +1 -4
- package/src/all/background_page/model/entity/group/transfer/{groupDeleteTransfer.js → groupDeleteTransferEntity.js} +13 -54
- package/src/all/background_page/model/entity/group/transfer/groupDeleteTransferEntity.test.js +42 -0
- package/src/all/background_page/model/entity/group/update/groupUpdateDryRunResultEntity.js +9 -30
- package/src/all/background_page/model/entity/group/update/groupUpdateDryRunResultEntity.test.js +39 -4
- package/src/all/background_page/model/entity/group/update/groupUpdateEntity.js +5 -5
- package/src/all/background_page/model/entity/groupUser/groupsUsersCollection.js +0 -28
- package/src/all/background_page/model/entity/groupUser/groupsUsersCollection.test.js +0 -32
- package/src/all/background_page/model/entity/groupUser/transfer/groupUserTransferEntity.js +2 -57
- package/src/all/background_page/model/entity/groupUser/transfer/groupUserTransferEntity.test.js +46 -0
- package/src/all/background_page/model/entity/groupUser/transfer/groupUserTransfersCollection.js +5 -58
- package/src/all/background_page/model/entity/groupUser/transfer/groupUserTransfersCollection.test.js +32 -32
- package/src/all/background_page/model/entity/import/importResourcesFileEntity.js +31 -101
- package/src/all/background_page/model/entity/import/importResourcesFileEntity.test.data.js +46 -0
- package/src/all/background_page/model/entity/import/importResourcesFileEntity.test.js +293 -24
- package/src/all/background_page/model/entity/permission/transfer/permissionTransferEntity.js +3 -31
- package/src/all/background_page/model/entity/permission/transfer/permissionTransferEntity.test.js +51 -0
- package/src/all/background_page/model/entity/permission/transfer/permissionTransfersCollection.js +5 -57
- package/src/all/background_page/model/entity/permission/transfer/permissionTransfersCollection.test.js +35 -32
- package/src/all/background_page/model/entity/plaintext/plaintextEntity.js +22 -68
- package/src/all/background_page/model/entity/plaintext/plaintextEntity.test.js +141 -0
- package/src/all/background_page/model/entity/resource/external/externalResourceEntity.js +114 -101
- package/src/all/background_page/model/entity/resource/external/externalResourceEntity.test.data.js +7 -0
- package/src/all/background_page/model/entity/resource/external/externalResourceEntity.test.js +300 -99
- package/src/all/background_page/model/entity/resource/external/externalResourcesCollection.js +40 -72
- package/src/all/background_page/model/entity/resource/external/externalResourcesCollection.test.data.js +31 -1
- package/src/all/background_page/model/entity/resource/external/externalResourcesCollection.test.js +243 -74
- package/src/all/background_page/model/entity/resource/metadata/resourceMetadataEntity.test.js +1 -1
- package/src/all/background_page/model/entity/resource/resourcesCollection.js +0 -42
- package/src/all/background_page/model/entity/resource/resourcesCollection.test.js +15 -61
- package/src/all/background_page/model/entity/resourceType/resourceTypeEntity.js +182 -57
- package/src/all/background_page/model/entity/resourceType/resourceTypeEntity.test.js +117 -32
- package/src/all/background_page/model/entity/resourceType/resourceTypesCollection.js +42 -106
- package/src/all/background_page/model/entity/resourceType/resourceTypesCollection.test.js +92 -116
- package/src/all/background_page/model/entity/secret/groupUpdate/groupUpdateSecretsCollection.js +140 -0
- package/src/all/background_page/model/entity/secret/groupUpdate/groupUpdateSecretsCollection.test.data.js +31 -0
- package/src/all/background_page/model/entity/secret/groupUpdate/groupUpdateSecretsCollection.test.js +136 -0
- package/src/all/background_page/model/entity/secret/needed/neededSecretEntity.js +2 -30
- package/src/all/background_page/model/entity/secret/needed/neededSecretEntity.test.js +49 -0
- package/src/all/background_page/model/entity/secret/needed/neededSecretsCollection.js +5 -68
- package/src/all/background_page/model/entity/secret/needed/neededSecretsCollection.test.js +55 -0
- package/src/all/background_page/model/entity/secret/resource/resourceSecretsCollection.test.data.js +1 -1
- package/src/all/background_page/model/entity/secret/resource/resourceSecretsCollection.test.js +1 -1
- package/src/all/background_page/model/entity/secret/secretEntity.js +5 -37
- package/src/all/background_page/model/entity/secret/secretEntity.test.js +71 -16
- package/src/all/background_page/model/entity/totp/totpEntity.js +49 -67
- package/src/all/background_page/model/entity/totp/totpEntity.test.js +130 -72
- package/src/all/background_page/model/entity/user/transfer/{userDeleteTransfer.js → userDeleteTransferEntity.js} +13 -58
- package/src/all/background_page/model/entity/user/transfer/userDeleteTransferEntity.test.js +76 -0
- package/src/all/background_page/model/entity/userAndGroupSearchResultEntity/userAndGroupSearchResultCollection.test.data.js +35 -0
- package/src/all/background_page/model/entity/userAndGroupSearchResultEntity/userAndGroupSearchResultCollestion.test.js +15 -0
- package/src/all/background_page/model/export/resources/csvRowComposer/csvKdbxRowComposer.js +3 -4
- package/src/all/background_page/model/export/resources/resourcesKdbxExporter.js +3 -4
- package/src/all/background_page/model/export/resources/resourcesKdbxExporter.test.js +1 -1
- package/src/all/background_page/model/folder/folderModel.js +8 -39
- package/src/all/background_page/model/folder/folderModel.test.js +4 -1
- package/src/all/background_page/model/group/groupModel.js +1 -1
- package/src/all/background_page/model/import/resources/csvRowParser/csv1PasswordRowParser.test.js +3 -3
- package/src/all/background_page/model/import/resources/csvRowParser/csvBitWardenRowParser.test.js +3 -3
- package/src/all/background_page/model/import/resources/csvRowParser/csvChromiumRowParser.test.js +2 -2
- package/src/all/background_page/model/import/resources/csvRowParser/csvDashlaneRowParser.test.js +3 -3
- package/src/all/background_page/model/import/resources/csvRowParser/csvKdbxRowParser.test.js +5 -5
- package/src/all/background_page/model/import/resources/csvRowParser/csvLastPassRowParser.test.js +3 -3
- package/src/all/background_page/model/import/resources/csvRowParser/csvLogMeOnceRowParser.test.js +3 -3
- package/src/all/background_page/model/import/resources/csvRowParser/csvMozillaPlatformRowParser.test.js +1 -1
- package/src/all/background_page/model/import/resources/csvRowParser/csvNordpassRowParser.test.js +3 -3
- package/src/all/background_page/model/import/resources/csvRowParser/csvSafariRowParser.test.js +3 -3
- package/src/all/background_page/model/resource/resourceModel.js +6 -166
- package/src/all/background_page/model/resourceType/resourceTypeModel.js +8 -22
- package/src/all/background_page/model/resourceType/resourceTypeModel.test.js +99 -0
- package/src/all/background_page/model/user/userModel.js +1 -1
- package/src/all/background_page/pagemod/appPagemod.js +3 -1
- package/src/all/background_page/pagemod/appPagemod.test.js +6 -2
- package/src/all/background_page/service/api/permission/permissionService.js +70 -0
- package/src/all/background_page/service/api/permission/permissionService.test.js +95 -0
- package/src/all/background_page/service/api/resource/resourceService.js +0 -35
- package/src/all/background_page/service/api/secret/secretService.js +54 -0
- package/src/all/background_page/service/api/secret/secretService.test.js +91 -0
- package/src/all/background_page/service/execute/executeConcurrentlyService.js +106 -0
- package/src/all/background_page/service/execute/executeConcurrentlyService.test.data.js +32 -0
- package/src/all/background_page/service/execute/executeConcurrentlyService.test.js +95 -0
- package/src/all/background_page/service/folder/find/findFoldersService.js +110 -0
- package/src/all/background_page/service/folder/find/findFoldersService.test.js +179 -0
- package/src/all/background_page/service/folder/update/findAndUpdateFoldersLocalStorageService.js +78 -0
- package/src/all/background_page/service/folder/update/findAndUpdateFoldersLocalStorageService.test.js +174 -0
- package/src/all/background_page/service/local_storage/folderLocalStorage.js +57 -44
- package/src/all/background_page/service/local_storage/folderLocalStorage.test.js +418 -0
- package/src/all/background_page/service/local_storage/resourceLocalStorage.js +27 -1
- package/src/all/background_page/service/local_storage/resourceLocalStorage.test.js +95 -8
- package/src/all/background_page/service/local_storage/resourceTypeLocalStorage.js +17 -72
- package/src/all/background_page/service/local_storage/rolesLocalStorage.js +0 -18
- package/src/all/background_page/service/permission/findPermissionsService.js +54 -0
- package/src/all/background_page/service/permission/findPermissionsService.test.js +56 -0
- package/src/all/background_page/service/resource/create/resourceCreateService.js +6 -2
- package/src/all/background_page/service/resource/create/resourceCreateService.test.js +179 -41
- package/src/all/background_page/service/resource/findAndUpdateResourcesLocalStorageService.js +94 -0
- package/src/all/background_page/service/resource/findAndUpdateResourcesLocalStorageService.test.data.js +37 -0
- package/src/all/background_page/service/resource/findAndUpdateResourcesLocalStorageService.test.js +271 -0
- package/src/all/background_page/service/resource/findResourcesService.js +187 -0
- package/src/all/background_page/service/resource/findResourcesService.test.data.js +43 -0
- package/src/all/background_page/service/resource/findResourcesService.test.js +493 -0
- package/src/all/background_page/service/resource/getOrFindResourcesService.js +77 -0
- package/src/all/background_page/service/resource/getOrFindResourcesService.test.data.js +43 -0
- package/src/all/background_page/service/resource/getOrFindResourcesService.test.js +182 -0
- package/src/all/background_page/service/resource/update/resourceUpdateService.js +131 -0
- package/src/all/background_page/service/resource/update/resourceUpdateService.test.js +345 -0
- package/src/all/background_page/service/secret/decryptAndParseResourceSecretService.js +3 -2
- package/src/all/background_page/service/secret/findSecretService.js +45 -0
- package/src/all/background_page/service/secret/findSecretService.test.js +56 -0
- package/src/all/background_page/service/toolbar/toolbarService.js +4 -3
- package/src/all/background_page/service/toolbar/toolbarService.test.js +1 -1
- package/src/all/background_page/utils/array/splitBySize.test.js +71 -0
- package/src/all/background_page/utils/assertions.js +23 -0
- package/src/all/background_page/utils/assertions.test.js +55 -1
- package/src/all/locales/it-IT/common.json +7 -7
- package/src/chrome/manifest.json +1 -1
- package/src/chrome-mv3/manifest.json +1 -1
- package/src/firefox/manifest.json +1 -1
- package/src/safari/manifest.json +1 -1
- package/test/jest.setup.js +5 -0
- package/test/mocks/mockNavigatorLocks.js +46 -6
- package/doc/resource-types-retrieval-requirements.md +0 -17
- package/src/all/background_page/model/entity/comment/comments.test.data.js +0 -45
- package/src/all/background_page/model/entity/group/transfer/groupDeleteTransfer.test.js +0 -46
- package/src/all/background_page/model/entity/groupUser/transfer/groupUserTransfer.test.js +0 -86
- package/src/all/background_page/model/entity/permission/transfer/permissionTransfer.test.js +0 -86
- package/src/all/background_page/model/entity/resource/metadata/resourceMetadataEntity.test.data.js +0 -47
- package/src/all/background_page/model/entity/resource/resourcesCollection.test.data.js +0 -81
- package/src/all/background_page/model/entity/secret/secretEntity.test.data.js +0 -29
- package/src/all/background_page/model/entity/secret/secretsCollection.js +0 -162
- package/src/all/background_page/model/entity/user/transfer/userDeleteTransfer.test.js +0 -79
- package/src/all/background_page/service/api/resource/resourceLocalStorageUpdateService.js +0 -120
- package/src/all/background_page/service/api/resource/resourceLocalStorageUpdateService.test.js +0 -124
- /package/doc/{worker-port-lfecycle.md → worker-port-lfecycle-flow.md} +0 -0
- /package/src/all/background_page/controller/resource/{findResourceController.test.js → findResourceDetailsController.test.js} +0 -0
|
@@ -9,9 +9,11 @@ jobs:
|
|
|
9
9
|
build:
|
|
10
10
|
name: Create release
|
|
11
11
|
runs-on: ubuntu-latest
|
|
12
|
+
permissions:
|
|
13
|
+
contents: write
|
|
12
14
|
steps:
|
|
13
|
-
- uses: actions/checkout@
|
|
15
|
+
- uses: actions/checkout@v4
|
|
14
16
|
- env:
|
|
15
|
-
|
|
17
|
+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
16
18
|
name: Create Release
|
|
17
19
|
run: gh release create "${GITHUB_REF#refs/*/}" -t "${GITHUB_REF#refs/*/}" --notes-file RELEASE_NOTES.md
|
|
@@ -9,9 +9,11 @@ jobs:
|
|
|
9
9
|
build:
|
|
10
10
|
name: Create release candidate
|
|
11
11
|
runs-on: ubuntu-latest
|
|
12
|
+
permissions:
|
|
13
|
+
contents: write
|
|
12
14
|
steps:
|
|
13
|
-
- uses: actions/checkout@
|
|
15
|
+
- uses: actions/checkout@v4
|
|
14
16
|
- env:
|
|
15
|
-
|
|
17
|
+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
16
18
|
name: Create Release candidate
|
|
17
19
|
run: gh release create "${GITHUB_REF#refs/*/}" -t "${GITHUB_REF#refs/*/}" -p --notes-file RELEASE_NOTES.md
|
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,81 @@ All notable changes to this project will be documented in this file.
|
|
|
3
3
|
This project adheres to [Semantic Versioning](http://semver.org/).
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
|
+
## [4.9.4] - 2024-09-30
|
|
7
|
+
### Fixed
|
|
8
|
+
- PB-33927: Update the label for password expiry email notification
|
|
9
|
+
- PB-34743: Fix: folder's sidebar information misses the creator and modifier information
|
|
10
|
+
- PB-35351: Fix: Grid columns resizing unexpectedly
|
|
11
|
+
|
|
12
|
+
### Maintenance
|
|
13
|
+
- PB-34313: E2EE WP2 documentation permissions finder class
|
|
14
|
+
- PB-34612: As a desktop app I should see the dotnet error message in of http error
|
|
15
|
+
- PB-34632: WP2-1.1 Migrate ResourceTypeEntity to EntityV2
|
|
16
|
+
- PB-34633: WP2-1.2 Migrate ResourceTypesCollection to EntityV2Collection
|
|
17
|
+
- PB-34634: WP2-1.3 Migrate CommentEntity to EntityV2
|
|
18
|
+
- PB-34635: WP2-1.4 Migrate CommentsCollection to EntityV2Collection
|
|
19
|
+
- PB-34636: WP2-1.5 migrate external resource entity to entity v2
|
|
20
|
+
- PB-34637: WP2-1.6 migrate external resources collection to entity v2 collection
|
|
21
|
+
- PB-34638: WP2-1.7 migrate external folder entity to entity v2
|
|
22
|
+
- PB-34639: WP2-1.8 migrate external folders collection to entity v2 collection
|
|
23
|
+
- PB-34640: WP2-1.9 Migrate ExportResourcesFileEntity to EntityV2
|
|
24
|
+
- PB-34641: WP2-1.10 Migrate PermissionTransferEntity to EntityV2
|
|
25
|
+
- PB-34642: WP2-1.11 Migrate PermissionTransfersCollection to EntityV2Collection
|
|
26
|
+
- PB-34643: WP2-1.12 Migrate GroupDeleteTransferEntity to EntityV2
|
|
27
|
+
- PB-34644: WP2-1.14 Migrate GroupUserTransfersCollection to EntityV2Collection
|
|
28
|
+
- PB-34645: WP2-1.15 Migrate UserDeleteTransferEntity to EntityV2
|
|
29
|
+
- PB-34646: WP2-1.13 Migrate GroupUserTransferEntity to EntityV2
|
|
30
|
+
- PB-34647: WP2-1.16 Migrate NeededSecretEntity to EntityV2
|
|
31
|
+
- PB-34648: WP2-1.17 Migrate NeededSecretsCollection to EntityV2Collection
|
|
32
|
+
- PB-34649: WP2-1.18 Migrate SecretEntity to EntityV2
|
|
33
|
+
- PB-34650: WP2-1.19 Migrate SecretsCollection to EntityV2Collection
|
|
34
|
+
- PB-34651: WP2-1.20 Migrate GroupUpdateDryRunResultEntity to EntityV2
|
|
35
|
+
- PB-34656: WP2-1.25 Migrate ImportResourcesFileEntity to EntityV2
|
|
36
|
+
- PB-34657: WP2-1.26 Migrate PlaintextEntity to EntityV2
|
|
37
|
+
- PB-34658: WP2-1.27 Migrate TotpEntity to EntityV2
|
|
38
|
+
- PB-34747: WP2-1.28 Remove not used sanitizeDto from GroupsUsersCollection
|
|
39
|
+
- PB-35124: Migrate 'gte' and 'lte' props of schemas to 'minimum' and 'maximum'
|
|
40
|
+
- PB-35125: WP2-2.6 Find resource permissions by requesting dedicated API permissions entry point
|
|
41
|
+
- PB-35128: WP2-2.1 unnecessary quick a api call when displaying home page
|
|
42
|
+
- PB-35161: WP2-2.2 unnecessary quick a api call for filtering resources: filter by favourite
|
|
43
|
+
- PB-35170: WP2-2.5 unnecessary quick a api call for filtering resources: filter by tags
|
|
44
|
+
- PB-35172: WP2-2.7 Find folder permissions by requesting dedicated API permissions entry point
|
|
45
|
+
- PB-35174: WP2-4.1 Migrate Webapp resource create form in view model
|
|
46
|
+
- PB-35175: WP2-4.2 Migrate Webapp resource edit form in view model
|
|
47
|
+
- PB-35177: WP2-4.3 Migrate Quickaccess resource create form in view model
|
|
48
|
+
- PB-35178: WP2-4.4 Migrate Quickaccess resource auto-save form in view model
|
|
49
|
+
- PB-35179: WP2-4.5 Migrate Webapp edit description from sidebar form in view model ?
|
|
50
|
+
- PB-35180: WP2-2.8 Copy/preview password/totp should find single secret by requesting dedicated API secrets entry point
|
|
51
|
+
- PB-35182: WP2-3.1 Migrate the resource types event 'passbolt.resource-type.get-all' into a controller
|
|
52
|
+
- PB-35233: WP2-5.1 PlainText entity schema should be provided by the browser extension
|
|
53
|
+
- PB-35253: WP2-3.2 Migrate resource update controller logic into service
|
|
54
|
+
- PB-35255: WP2-3.3 Migrate resource “update-local-storage” event logic to a dedicated controller
|
|
55
|
+
- PB-35256: WP2-5.2 Unit test performance of new collection v2 and ensure no regression is introduced
|
|
56
|
+
- PB-35261: WP2-2.10 Shift resources & folders and update local storage debounce...
|
|
57
|
+
- PB-35261: WP2-2.10 Decouple logic of update local storage, find all and get or find all in order to prepare for resource with encrypted metadata
|
|
58
|
+
- PB-35323: Ensure resource test factory does not contain any metadata at the root of the resource
|
|
59
|
+
- PB-35338: WP2-2.11 Folders update local storage should handle threshold period to limit the number of API request
|
|
60
|
+
- PB-35339: Review resource update service test
|
|
61
|
+
- PB-35340: WP2-2.12 drop resources collection sanitise dto
|
|
62
|
+
- PB-35341: WP2-2.13 Migrate findAll from ResourceModel into FindResourceService
|
|
63
|
+
- PB-35342: WP2-2.14 Leverage local storage when filtering resources by group
|
|
64
|
+
- PB-35344: WP2-2.15 Migrate findSuggestedResources from resource model to...
|
|
65
|
+
- PB-35345: WP2-2.16 Migrate findAllForShare from resource api service to FindResources service
|
|
66
|
+
- PB-35346: WP2-2.17 migrate find all for decrypt from resource api service to find resources service
|
|
67
|
+
- PB-35348: WP2-2.18 Migrate findById to the FindResourcesService
|
|
68
|
+
- PB-35359: WP3 Class diagram of resources types local storage HOC
|
|
69
|
+
- PB-35359: WP3 Update resource class diagram to support resource edit with v5
|
|
70
|
+
- PB-35359: Technical specifications: WP3 support v5 resource types with v4 UI
|
|
71
|
+
- PB-35414: WP2-2.16 Create ExecuteConcurrentlyService to perform query in parallel
|
|
72
|
+
|
|
73
|
+
### Security
|
|
74
|
+
- PB-35129: Upgrade vulnerable library webpack
|
|
75
|
+
- PB-35354: Upgrade vulnerable library path-to-regexp
|
|
76
|
+
|
|
77
|
+
## [4.9.3] - 2024-09-03
|
|
78
|
+
### Fixed
|
|
79
|
+
- PB-35185 Administrator should be able to delete users who are sole owners of resources or sole group manager
|
|
80
|
+
|
|
6
81
|
## [4.9.2] - 2024-08-26
|
|
7
82
|
### Fixed
|
|
8
83
|
- PB-33861: Resources with personal field set to null should be considered as personal resources
|
|
@@ -1764,7 +1839,9 @@ self registration settings option in the left-side bar
|
|
|
1764
1839
|
- AP: User with plugin installed
|
|
1765
1840
|
- LU: Logged in user
|
|
1766
1841
|
|
|
1767
|
-
[Unreleased]: https://github.com/passbolt/passbolt_browser_extension/compare/v4.9.
|
|
1842
|
+
[Unreleased]: https://github.com/passbolt/passbolt_browser_extension/compare/v4.9.4...HEAD
|
|
1843
|
+
[4.9.4]: https://github.com/passbolt/passbolt_browser_extension/compare/v4.9.3...v4.9.4
|
|
1844
|
+
[4.9.3]: https://github.com/passbolt/passbolt_browser_extension/compare/v4.9.2...v4.9.3
|
|
1768
1845
|
[4.9.2]: https://github.com/passbolt/passbolt_browser_extension/compare/v4.9.1...4.9.2
|
|
1769
1846
|
[4.9.1]: https://github.com/passbolt/passbolt_browser_extension/compare/v4.9.0...4.9.1
|
|
1770
1847
|
[4.9.0]: https://github.com/passbolt/passbolt_browser_extension/compare/v4.8.2...4.9.0
|
package/RELEASE_NOTES.md
CHANGED
|
@@ -1,9 +1,76 @@
|
|
|
1
|
-
Song: https://
|
|
1
|
+
Song: https://www.youtube.com/watch?v=tmZ-loZlsyI
|
|
2
2
|
|
|
3
|
-
Passbolt v4.9.
|
|
3
|
+
Passbolt v4.9.4 is a maintenance update of preparatory work for the incoming v5 and addresses reported issues. Specifically, it cleans the codebase to ease the later encryption of the resource metadata. Plus, it fixes the unexpected resource workspace column resizing and some displayed information.
|
|
4
4
|
|
|
5
5
|
Thank you to the community for reporting this issue.
|
|
6
6
|
|
|
7
|
-
## [4.9.
|
|
7
|
+
## [4.9.4] - 2024-09-30
|
|
8
8
|
### Fixed
|
|
9
|
-
- PB-
|
|
9
|
+
- PB-33927: Update the label for password expiry email notification
|
|
10
|
+
- PB-34743: Fix: folder's sidebar information misses the creator and modifier information
|
|
11
|
+
- PB-35351: Fix: Grid columns resizing unexpectedly
|
|
12
|
+
|
|
13
|
+
### Maintenance
|
|
14
|
+
- PB-34313: E2EE WP2 documentation permissions finder class
|
|
15
|
+
- PB-34612: As a desktop app I should see the dotnet error message in of http error
|
|
16
|
+
- PB-34632: WP2-1.1 Migrate ResourceTypeEntity to EntityV2
|
|
17
|
+
- PB-34633: WP2-1.2 Migrate ResourceTypesCollection to EntityV2Collection
|
|
18
|
+
- PB-34634: WP2-1.3 Migrate CommentEntity to EntityV2
|
|
19
|
+
- PB-34635: WP2-1.4 Migrate CommentsCollection to EntityV2Collection
|
|
20
|
+
- PB-34636: WP2-1.5 migrate external resource entity to entity v2
|
|
21
|
+
- PB-34637: WP2-1.6 migrate external resources collection to entity v2 collection
|
|
22
|
+
- PB-34638: WP2-1.7 migrate external folder entity to entity v2
|
|
23
|
+
- PB-34639: WP2-1.8 migrate external folders collection to entity v2 collection
|
|
24
|
+
- PB-34640: WP2-1.9 Migrate ExportResourcesFileEntity to EntityV2
|
|
25
|
+
- PB-34641: WP2-1.10 Migrate PermissionTransferEntity to EntityV2
|
|
26
|
+
- PB-34642: WP2-1.11 Migrate PermissionTransfersCollection to EntityV2Collection
|
|
27
|
+
- PB-34643: WP2-1.12 Migrate GroupDeleteTransferEntity to EntityV2
|
|
28
|
+
- PB-34644: WP2-1.14 Migrate GroupUserTransfersCollection to EntityV2Collection
|
|
29
|
+
- PB-34645: WP2-1.15 Migrate UserDeleteTransferEntity to EntityV2
|
|
30
|
+
- PB-34646: WP2-1.13 Migrate GroupUserTransferEntity to EntityV2
|
|
31
|
+
- PB-34647: WP2-1.16 Migrate NeededSecretEntity to EntityV2
|
|
32
|
+
- PB-34648: WP2-1.17 Migrate NeededSecretsCollection to EntityV2Collection
|
|
33
|
+
- PB-34649: WP2-1.18 Migrate SecretEntity to EntityV2
|
|
34
|
+
- PB-34650: WP2-1.19 Migrate SecretsCollection to EntityV2Collection
|
|
35
|
+
- PB-34651: WP2-1.20 Migrate GroupUpdateDryRunResultEntity to EntityV2
|
|
36
|
+
- PB-34656: WP2-1.25 Migrate ImportResourcesFileEntity to EntityV2
|
|
37
|
+
- PB-34657: WP2-1.26 Migrate PlaintextEntity to EntityV2
|
|
38
|
+
- PB-34658: WP2-1.27 Migrate TotpEntity to EntityV2
|
|
39
|
+
- PB-34747: WP2-1.28 Remove not used sanitizeDto from GroupsUsersCollection
|
|
40
|
+
- PB-35124: Migrate 'gte' and 'lte' props of schemas to 'minimum' and 'maximum'
|
|
41
|
+
- PB-35125: WP2-2.6 Find resource permissions by requesting dedicated API permissions entry point
|
|
42
|
+
- PB-35128: WP2-2.1 unnecessary quick a api call when displaying home page
|
|
43
|
+
- PB-35161: WP2-2.2 unnecessary quick a api call for filtering resources: filter by favourite
|
|
44
|
+
- PB-35170: WP2-2.5 unnecessary quick a api call for filtering resources: filter by tags
|
|
45
|
+
- PB-35172: WP2-2.7 Find folder permissions by requesting dedicated API permissions entry point
|
|
46
|
+
- PB-35174: WP2-4.1 Migrate Webapp resource create form in view model
|
|
47
|
+
- PB-35175: WP2-4.2 Migrate Webapp resource edit form in view model
|
|
48
|
+
- PB-35177: WP2-4.3 Migrate Quickaccess resource create form in view model
|
|
49
|
+
- PB-35178: WP2-4.4 Migrate Quickaccess resource auto-save form in view model
|
|
50
|
+
- PB-35179: WP2-4.5 Migrate Webapp edit description from sidebar form in view model ?
|
|
51
|
+
- PB-35180: WP2-2.8 Copy/preview password/totp should find single secret by requesting dedicated API secrets entry point
|
|
52
|
+
- PB-35182: WP2-3.1 Migrate the resource types event 'passbolt.resource-type.get-all' into a controller
|
|
53
|
+
- PB-35233: WP2-5.1 PlainText entity schema should be provided by the browser extension
|
|
54
|
+
- PB-35253: WP2-3.2 Migrate resource update controller logic into service
|
|
55
|
+
- PB-35255: WP2-3.3 Migrate resource “update-local-storage” event logic to a dedicated controller
|
|
56
|
+
- PB-35256: WP2-5.2 Unit test performance of new collection v2 and ensure no regression is introduced
|
|
57
|
+
- PB-35261: WP2-2.10 Shift resources & folders and update local storage debounce...
|
|
58
|
+
- PB-35261: WP2-2.10 Decouple logic of update local storage, find all and get or find all in order to prepare for resource with encrypted metadata
|
|
59
|
+
- PB-35323: Ensure resource test factory does not contain any metadata at the root of the resource
|
|
60
|
+
- PB-35338: WP2-2.11 Folders update local storage should handle threshold period to limit the number of API request
|
|
61
|
+
- PB-35339: Review resource update service test
|
|
62
|
+
- PB-35340: WP2-2.12 drop resources collection sanitise dto
|
|
63
|
+
- PB-35341: WP2-2.13 Migrate findAll from ResourceModel into FindResourceService
|
|
64
|
+
- PB-35342: WP2-2.14 Leverage local storage when filtering resources by group
|
|
65
|
+
- PB-35344: WP2-2.15 Migrate findSuggestedResources from resource model to...
|
|
66
|
+
- PB-35345: WP2-2.16 Migrate findAllForShare from resource api service to FindResources service
|
|
67
|
+
- PB-35346: WP2-2.17 migrate find all for decrypt from resource api service to find resources service
|
|
68
|
+
- PB-35348: WP2-2.18 Migrate findById to the FindResourcesService
|
|
69
|
+
- PB-35359: WP3 Class diagram of resources types local storage HOC
|
|
70
|
+
- PB-35359: WP3 Update resource class diagram to support resource edit with v5
|
|
71
|
+
- PB-35359: Technical specifications: WP3 support v5 resource types with v4 UI
|
|
72
|
+
- PB-35414: WP2-2.16 Create ExecuteConcurrentlyService to perform query in parallel
|
|
73
|
+
|
|
74
|
+
### Security
|
|
75
|
+
- PB-35129: Upgrade vulnerable library webpack
|
|
76
|
+
- PB-35354: Upgrade vulnerable library path-to-regexp
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
```mermaid
|
|
2
|
+
%%{init: {'theme':'neutral'}}%%
|
|
3
|
+
graph TB
|
|
4
|
+
classDef condition stroke:#f96
|
|
5
|
+
classDef requirement stroke:#b30900
|
|
6
|
+
START(( ))
|
|
7
|
+
|
|
8
|
+
API_VSK[Verify server key<br>from API]
|
|
9
|
+
THROW_ERROR[Raise the original error]
|
|
10
|
+
IS_SK_VALID{{Is the server key valid?}}:::condition
|
|
11
|
+
CHECK_ERROR[Verify the error]
|
|
12
|
+
IS_HTTP_ERROR_500{{Is http error 500 or empty?}}:::condition
|
|
13
|
+
IS_HTTP_ERROR_NO_CONTENT{{Is an http error without content?}}:::condition
|
|
14
|
+
IS_NO_ASSOCIATED_USER{{Is an not associated user error?}}:::condition
|
|
15
|
+
REMOVE_BEXT_IFRAME[Call BEXT to remove the iframe]
|
|
16
|
+
CAN_PARSE_KEY{{Can parse the key?}}:::condition
|
|
17
|
+
IS_KEY_CHANGED{{Is server key changed?}}:::condition
|
|
18
|
+
IS_KEY_EXPIRED{{Is server key expired?}}:::condition
|
|
19
|
+
SET_CANNOT_PARSE_KEY_MESSAGE[Set error message: </br> The server key cannot be parsed.]
|
|
20
|
+
SET_KEY_HAS_CHANGED_MESSAGE[Set error message: </br> The server key has changed.]
|
|
21
|
+
SET_KEY_IS_EXPIRED_MESSAGE[Set error message: </br> The server key is expired.]
|
|
22
|
+
SET_GENERIC_ERROR_MESSAGE[Set error message: </br> Server internal error. Check with your administrator.]
|
|
23
|
+
|
|
24
|
+
START --> API_VSK
|
|
25
|
+
API_VSK -..-> IS_SK_VALID
|
|
26
|
+
IS_SK_VALID --> |yes|END((( )))
|
|
27
|
+
IS_SK_VALID --> |NO|CHECK_ERROR
|
|
28
|
+
CHECK_ERROR --> IS_HTTP_ERROR_500
|
|
29
|
+
IS_HTTP_ERROR_500 --> |yes|THROW_ERROR
|
|
30
|
+
IS_HTTP_ERROR_500 --> |No|IS_HTTP_ERROR_NO_CONTENT
|
|
31
|
+
IS_HTTP_ERROR_NO_CONTENT --> |yes|THROW_ERROR
|
|
32
|
+
THROW_ERROR --> ENDWITHERROR((( )))
|
|
33
|
+
IS_HTTP_ERROR_NO_CONTENT --> |no|IS_NO_ASSOCIATED_USER
|
|
34
|
+
IS_NO_ASSOCIATED_USER--> |yes|REMOVE_BEXT_IFRAME
|
|
35
|
+
REMOVE_BEXT_IFRAME --> ENDBYCALLINGBEXT((( )))
|
|
36
|
+
IS_NO_ASSOCIATED_USER--> |no|CAN_PARSE_KEY
|
|
37
|
+
CAN_PARSE_KEY--> |no|SET_CANNOT_PARSE_KEY_MESSAGE
|
|
38
|
+
SET_CANNOT_PARSE_KEY_MESSAGE --> ENDCUSTOMMESSAGEERROR((( )))
|
|
39
|
+
CAN_PARSE_KEY--> |yes|IS_KEY_CHANGED
|
|
40
|
+
IS_KEY_CHANGED--> |yes|SET_KEY_HAS_CHANGED_MESSAGE
|
|
41
|
+
SET_KEY_HAS_CHANGED_MESSAGE--> ENDCUSTOMMESSAGEERROR((( )))
|
|
42
|
+
IS_KEY_CHANGED--> |no|IS_KEY_EXPIRED
|
|
43
|
+
IS_KEY_EXPIRED--> |yes|SET_KEY_IS_EXPIRED_MESSAGE
|
|
44
|
+
SET_KEY_IS_EXPIRED_MESSAGE --> ENDCUSTOMMESSAGEERROR((( )))
|
|
45
|
+
IS_KEY_EXPIRED--> |no|SET_GENERIC_ERROR_MESSAGE
|
|
46
|
+
SET_GENERIC_ERROR_MESSAGE--> ENDCUSTOMMESSAGEERROR((( )))
|
|
47
|
+
```
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
```mermaid
|
|
2
|
+
%%{init: {'theme':'neutral'}}%%
|
|
3
|
+
classDiagram
|
|
4
|
+
namespace Event {
|
|
5
|
+
class UpdateFoldersLocalStoragePortMessage{
|
|
6
|
+
+name: "passbolt.folders.update-local-storage"
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
namespace FoldersController {
|
|
11
|
+
class UpdateAllFoldersLocalStorageController{
|
|
12
|
+
+exec() Promise
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
namespace FoldersService{
|
|
17
|
+
class GetOrFindFoldersService{
|
|
18
|
+
<<Service>>
|
|
19
|
+
+getOrFindAll() Promise~FolderssCollection~
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
class FindAndUpdateFoldersLocalStorageService{
|
|
23
|
+
<<Service>>
|
|
24
|
+
+findAndUpdateAll(FindAndUpdateLocalStorageOptions options) Promise~FoldersCollection~
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
class FindAndUpdateLocalStorageOptions {
|
|
28
|
+
updatePeriodThreshold: number
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
class FindFoldersService{
|
|
32
|
+
<<Service>>
|
|
33
|
+
+findAll(object contains, object filters) Promise~FoldersCollection~
|
|
34
|
+
+findAllForLocalStorage() Promise~FoldersCollection~
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
namespace ApiService{
|
|
39
|
+
class AbstractService {
|
|
40
|
+
<<Abstract>>
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
class FolderService {
|
|
44
|
+
<<Service>>
|
|
45
|
+
+get FOLDER_NAME() string
|
|
46
|
+
+getSupportedContainOptions() array$
|
|
47
|
+
+getSupportedFilterOptions() array$
|
|
48
|
+
+findAll(object contains, object filters, object orders) Promise~array~
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
namespace LocalStorageService{
|
|
53
|
+
class FoldersLocalStorageService {
|
|
54
|
+
<<Service>>
|
|
55
|
+
$hasCachedData() boolean
|
|
56
|
+
$flush() Promise
|
|
57
|
+
$get() Promise~array~
|
|
58
|
+
$set(FoldersCollection collection) Promise
|
|
59
|
+
$getFolderById(uuid id) Promise~object~
|
|
60
|
+
$addFolder(FolderEntity entity) Promise
|
|
61
|
+
$addFolders(FoldersCollection collection) Promise
|
|
62
|
+
$updateFolder(FolderEntity entity) Promise
|
|
63
|
+
$delete(uuid id) Promise
|
|
64
|
+
get $DEFAULT_CONTAIN() object
|
|
65
|
+
$assertEntityBeforeSave(FolderEntity entity)
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
UpdateFoldersLocalStoragePortMessage*--UpdateAllFoldersLocalStorageController
|
|
70
|
+
UpdateAllFoldersLocalStorageController*--FindAndUpdateFoldersLocalStorageService
|
|
71
|
+
FindAndUpdateFoldersLocalStorageService*--FoldersLocalStorageService
|
|
72
|
+
GetOrFindFoldersService*--FoldersLocalStorageService
|
|
73
|
+
GetOrFindFoldersService*--FindAndUpdateFoldersLocalStorageService
|
|
74
|
+
FindAndUpdateFoldersLocalStorageService*--FindFoldersService
|
|
75
|
+
FindFoldersService*--FolderService
|
|
76
|
+
AbstractService<|--FolderService
|
|
77
|
+
```
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
```mermaid
|
|
2
|
+
%%{init: {'theme':'neutral'}}%%
|
|
3
|
+
classDiagram
|
|
4
|
+
note for PortMessage "Permissions message listeners."
|
|
5
|
+
class PortMessage{
|
|
6
|
+
+name: "passbolt.permissions.find-aco-permissions-for-display"
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
class FindAcoPermissionsForDisplayController{
|
|
10
|
+
+exec(uuid acoForeignKey) PermissionsCollection
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
class FindPermissionsService{
|
|
14
|
+
+findAllByAcoForeignKeyForDisplay(uuid acoForeignKey) PermissionsCollection
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
note for PermissionService "/service/api/permission"
|
|
18
|
+
class PermissionService {
|
|
19
|
+
<<Service>>
|
|
20
|
+
+get RESOURCE_NAME() string
|
|
21
|
+
+getSupportedContainOptions() array$
|
|
22
|
+
+findAllByAcoForeignKey(uuid acoForeignKey, object contains) object
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
note for AbstractService "Abstract API service."
|
|
26
|
+
class AbstractService {
|
|
27
|
+
<<Abstract>>
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
AbstractService<|--PermissionService
|
|
31
|
+
FindPermissionsService*--PermissionService
|
|
32
|
+
FindAcoPermissionsForDisplayController*--FindPermissionsService
|
|
33
|
+
PortMessage*--FindAcoPermissionsForDisplayController
|
|
34
|
+
```
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
```mermaid
|
|
2
|
+
%%{init: {'theme':'neutra'}}%%
|
|
3
|
+
sequenceDiagram
|
|
4
|
+
|
|
5
|
+
%% Retrieve resources from LS
|
|
6
|
+
DecryptMetadataSvc-->>+ResourceLocalStorage: get()
|
|
7
|
+
ResourceLocalStorage-->>-DecryptMetadataSvc: resourcesFromLS
|
|
8
|
+
|
|
9
|
+
%% Reuse metadata from LS whenever possible
|
|
10
|
+
loop Foreach found resource
|
|
11
|
+
DecryptMetadataSvc-->>+resourcesFromLS~ResourcesCollection~: getFirst("id", resource.id)
|
|
12
|
+
resourcesFromLS~ResourcesCollection~-->>-DecryptMetadataSvc: resourceFromLS
|
|
13
|
+
DecryptMetadataSvc-->>+resource~ResourceEntity~: isModifiedAfter(resourceFromLS.modified)
|
|
14
|
+
resource~ResourceEntity~-->>-DecryptMetadataSvc: isMetaFromLSExpired
|
|
15
|
+
alt !isMetaFromLSExpired
|
|
16
|
+
DecryptMetadataSvc-->>resource~ResourceEntity~: set metadata(resourceFromLS.metadataClear)
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
%% Decrypt metadata with session key whenever possible
|
|
21
|
+
DecryptMetadataSvc-->>+GetOrFindSessionKeysService: getOrFindAllByForeignIds(resources.ids)
|
|
22
|
+
GetOrFindSessionKeysService-->>-DecryptMetadataSvc: sessionsKeys
|
|
23
|
+
loop Foreach found resource not yet decrypted
|
|
24
|
+
DecryptMetadataSvc-->>+sessionKeys~SessionKeysCollection~: getFirst("foreign_id", resource.id)
|
|
25
|
+
sessionKeys~SessionKeysCollection~-->>-DecryptMetadataSvc: sessionKey
|
|
26
|
+
alt !sessionKey
|
|
27
|
+
DecryptMetadataSvc-->>+DecryptMessageService: decryptWithSessionKey(resource.metadata, sessionKey)
|
|
28
|
+
DecryptMessageService-->>-DecryptMetadataSvc: metadataClear
|
|
29
|
+
DecryptMetadataSvc-->>resource~ResourceEntity~: set metadata(metadataClear)
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
%% Decrypt with meta key whenever possible
|
|
34
|
+
DecryptMetadataSvc-->>+GetOrFindMetadataKeysService: getOrFindAllByIds(resources.metadataKeysIds)
|
|
35
|
+
GetOrFindMetadataKeysService-->>-DecryptMetadataSvc: metadataKeys
|
|
36
|
+
loop Foreach found resource not yet decrypted
|
|
37
|
+
DecryptMetadataSvc-->>+metadataKeys~MetadataKeysCollection~: getFirst("id", resource.metadata_key_id)
|
|
38
|
+
metadataKeys~MetadataKeysCollection~-->>-DecryptMetadataSvc: metadataKey
|
|
39
|
+
alt !metadataKey
|
|
40
|
+
DecryptMetadataSvc-->>+DecryptMessageService: decrypt(resource.metadata, metadataKey)
|
|
41
|
+
DecryptMessageService-->>-DecryptMetadataSvc: metadataClear
|
|
42
|
+
DecryptMetadataSvc-->>resource~ResourceEntity~: set metadata(metadataClear)
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
loop Foreach found resource not yet decrypted
|
|
47
|
+
DecryptMetadataSvc-->>+DecryptMessageService: decrypt(resource.metadata, account.privateKey)
|
|
48
|
+
DecryptMessageService-->>-DecryptMetadataSvc: metadataClear
|
|
49
|
+
DecryptMetadataSvc-->>resource~ResourceEntity~: set metadata(metadataClear)
|
|
50
|
+
end
|
|
51
|
+
```
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
```mermaid
|
|
2
|
+
%%{init: {'theme':'neutral'}}%%
|
|
3
|
+
graph TB
|
|
4
|
+
classDef condition stroke:#f96
|
|
5
|
+
classDef requirement stroke:#b30900
|
|
6
|
+
START(( ))
|
|
7
|
+
API_RS[Find Resources<br>from API]
|
|
8
|
+
LS_API_RST[Get Resources Types<br>from LS or API]:::requirement
|
|
9
|
+
IS_RST_SUP{{is type supported?}}:::condition
|
|
10
|
+
LS_RS[Get Resources<br>from LS]:::requirement
|
|
11
|
+
V4_MARSH[Marshall Meta]
|
|
12
|
+
SS_LS_SESS_KEYS[Get Session Keys<br>from SS or LS]:::requirement
|
|
13
|
+
V4_MARSH[Marshall Meta]
|
|
14
|
+
DEC_META_SESS_KEY[Decrypt Meta <br>with Session Key]
|
|
15
|
+
DEC_META_USER_KEY[Decrypt Meta <br>with User Key]
|
|
16
|
+
SS_API_META_KEY[Get Meta Keys<br>from SS or API]:::requirement
|
|
17
|
+
DEC_META_META_KEY[Decrypt Meta <br>with Meta Key]
|
|
18
|
+
GET_PASSPHRASE[Get user passphrase]:::requirement
|
|
19
|
+
UPDATE_SESS_KEY[Update Session Key]
|
|
20
|
+
EHD_META_DECRYPTED((( )))
|
|
21
|
+
IS_META_UPDATED{{is Meta modified?}}:::condition
|
|
22
|
+
IS_META_ENCRYPTED{{is Meta encrypted?}}:::condition
|
|
23
|
+
IS_SESS_KEY_FOUND{{is Session Key<br>found & valid?}}:::condition
|
|
24
|
+
IS_RS_PERSO{{Is Rs personal}}:::condition
|
|
25
|
+
START --> API_RS
|
|
26
|
+
LS_API_RST -..-> IS_RST_SUP
|
|
27
|
+
API_RS --> IS_RST_SUP
|
|
28
|
+
IS_RST_SUP --> |no, filter out<br>resource|END_FILTER_OUT((( )))
|
|
29
|
+
LS_RS -..-> IS_META_UPDATED
|
|
30
|
+
IS_RST_SUP --> |yes|IS_META_UPDATED
|
|
31
|
+
IS_META_UPDATED --> |no, keep LS<br>Meta|END_META_NOT_UPDATED((( )))
|
|
32
|
+
IS_META_UPDATED --> |yes|IS_META_ENCRYPTED
|
|
33
|
+
IS_META_ENCRYPTED --> |no|V4_MARSH
|
|
34
|
+
V4_MARSH --> END_V4_MARSH((( )))
|
|
35
|
+
IS_META_ENCRYPTED --> |yes|IS_SESS_KEY_FOUND
|
|
36
|
+
GET_PASSPHRASE -..-> SS_LS_SESS_KEYS
|
|
37
|
+
SS_LS_SESS_KEYS -..-> IS_SESS_KEY_FOUND
|
|
38
|
+
IS_SESS_KEY_FOUND --> |yes|DEC_META_SESS_KEY
|
|
39
|
+
DEC_META_SESS_KEY --> EHD_META_DECRYPTED
|
|
40
|
+
IS_SESS_KEY_FOUND --> |no|IS_RS_PERSO
|
|
41
|
+
IS_RS_PERSO --> |yes|DEC_META_USER_KEY
|
|
42
|
+
IS_RS_PERSO --> |no|DEC_META_META_KEY
|
|
43
|
+
GET_PASSPHRASE -..-> DEC_META_USER_KEY
|
|
44
|
+
DEC_META_USER_KEY --> UPDATE_SESS_KEY
|
|
45
|
+
GET_PASSPHRASE -..-> SS_API_META_KEY
|
|
46
|
+
SS_API_META_KEY -..-> DEC_META_META_KEY
|
|
47
|
+
DEC_META_META_KEY --> UPDATE_SESS_KEY
|
|
48
|
+
UPDATE_SESS_KEY --> EHD_META_DECRYPTED
|
|
49
|
+
```
|