Skip to content

Commit

Permalink
Merge branch 'release' into 'master'
Browse files Browse the repository at this point in the history
Merge branch 'release' into 'master'

See merge request passbolt/passbolt-browser-extension!829
  • Loading branch information
cedricalfonsi committed Apr 29, 2024
2 parents aa7bd76 + 8a74a17 commit c21f58b
Show file tree
Hide file tree
Showing 221 changed files with 7,552 additions and 3,070 deletions.
4 changes: 2 additions & 2 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
image: debian:stable-slim
image: ${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/debian:stable-slim

stages:
- test
Expand All @@ -18,4 +18,4 @@ include:
- local: "/.gitlab-ci/jobs/test.yml"
- local: "/.gitlab-ci/jobs/review.yml"
- local: "/.gitlab-ci/jobs/publish.yml"
- local: ".gitlab-ci/jobs/release.yml"
- local: ".gitlab-ci/jobs/release.yml"
6 changes: 3 additions & 3 deletions .gitlab-ci/jobs/build.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
build:
stage: build
image: node:18
image: ${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/node:18
extends: .rules
artifacts:
when: always
Expand All @@ -22,7 +22,7 @@ build:
build_mv3:
stage: build
image: node:18
image: ${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/node:18
extends: .rules
artifacts:
when: always
Expand All @@ -39,4 +39,4 @@ build_mv3:
echo "Sending slack build notification"
echo "================================"
bash ./.gitlab-ci/scripts/bin/slack-status-messages.sh ":jigsaw: A new wild MV3 browser extension appeared! $CI_COMMIT_TAG" "$CI_PROJECT_URL/-/jobs/$CI_JOB_ID/artifacts/browse/dist/"
fi
fi
10 changes: 10 additions & 0 deletions .gitlab-ci/jobs/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,3 +36,13 @@ publish-edge:
echo "Sending slack build notification"
echo "================================"
bash ./.gitlab-ci/scripts/bin/slack-status-messages.sh ":rocket: passbolt-edge-extension $CI_COMMIT_TAG has been published!" "$CI_PROJECT_URL/-/jobs/$CI_JOB_ID"
publish-to-npmjs:
stage: publish
image: ${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/node:18
rules:
- if: "$CI_COMMIT_TAG"
script:
- |
bash .gitlab-ci/scripts/bin/publish_npm.sh
bash ./.gitlab-ci/scripts/bin/slack-status-messages.sh ":rocket: passbolt-browser-extension $CI_COMMIT_TAG has been published in https://www.npmjs.com/package/passbolt-browser-extension" "$CI_PROJECT_URL/-/jobs/$CI_JOB_ID"
8 changes: 4 additions & 4 deletions .gitlab-ci/jobs/test.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
tester:
stage: test
image: node:18
image: ${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/node:18
coverage: /Lines\s* [:] ([\d\.]+)%/
extends: .rules
script:
- npm ci
- npm run test:coverage
- npm run test:ci:coverage
artifacts:
when: always
reports:
Expand All @@ -17,7 +17,7 @@ tester:

linter:
stage: test
image: node:18
image: ${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/node:18
extends: .rules
script:
- npm ci
Expand All @@ -29,4 +29,4 @@ audit:
image: node:18
extends: .rules
script:
- npm audit
- npm audit
6 changes: 4 additions & 2 deletions .gitlab-ci/scripts/bin/publish.sh
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ if is_release_candidate "$CI_COMMIT_TAG"; then
*) echo "I don't recognize this option"
;;
esac
else
elif is_stable "$CI_COMMIT_TAG"; then
case "$1" in
chrome)
send_to_chrome "$PASSBOLT_STABLE_CHROME_ID"
Expand All @@ -60,4 +60,6 @@ else
*) echo "I don't recognize this option"
;;
esac
fi
else
echo "The tag format is not supported"
fi
26 changes: 26 additions & 0 deletions .gitlab-ci/scripts/bin/publish_npm.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#!/usr/bin/env bash

# shellcheck disable=SC1091

set -eu

CI_SCRIPTS_DIR=$(dirname "$0")/..

# shellcheck source=.gitlab-ci/scripts/lib/version-check.sh
source "$CI_SCRIPTS_DIR"/lib/version-check.sh

echo //registry.npmjs.org/:_authToken="$NPM_PUBLISH_TOKEN" > .npmrc
echo email="$NPM_PUBLISH_EMAIL" >> .npmrc
echo always-auth=true >> .npmrc

if is_release_candidate "$CI_COMMIT_TAG"; then
npm publish --tag next
elif is_release_alpha "$CI_COMMIT_TAG"; then
npm publish --tag alpha
elif is_release_beta "$CI_COMMIT_TAG"; then
npm publish --tag beta
elif is_stable "$CI_COMMIT_TAG"; then
npm publish
else
echo "The tag format is not supported"
fi
2 changes: 1 addition & 1 deletion .gitlab-ci/scripts/bin/review.sh
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ if is_release_candidate "$CI_COMMIT_TAG"; then
*) echo "I don't recognize this option"
;;
esac
else
elif is_stable "$CI_COMMIT_TAG"; then
case $1 in
chrome)
send_to_chrome "$PASSBOLT_STABLE_CHROME_ID"
Expand Down
24 changes: 24 additions & 0 deletions .gitlab-ci/scripts/lib/version-check.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,14 @@ function is_valid_api_tag () {
fi
}

function is_stable () {
local version=$1
if [[ ! $version =~ [0-9]+\.[0-9]+\.[0-9]+$ ]];then
return 1
fi
return 0
}

function is_release_candidate () {
local version=$1
if [[ ! $version =~ [0-9]+\.[0-9]+\.[0-9]+-rc\.[0-9]+ ]];then
Expand All @@ -13,6 +21,22 @@ function is_release_candidate () {
return 0
}

function is_release_alpha () {
local version=$1
if [[ ! $version =~ [0-9]+\.[0-9]+\.[0-9]+-alpha\.[0-9]+ ]];then
return 1
fi
return 0
}

function is_release_beta () {
local version=$1
if [[ ! $version =~ [0-9]+\.[0-9]+\.[0-9]+-beta\.[0-9]+ ]];then
return 1
fi
return 0
}

function validate_config_version_and_api_tag () {
local version_file="$1"
local version
Expand Down
63 changes: 62 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,65 @@ All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/).

## [Unreleased]
## [4.7.0] - 2024-04-26
### Added
- PB-32931 As administrator, I see SSO and Directory Sync health checks in Passbolt API Status page
- PB-33065 As an administrator I can add a fallback property to map my organisation AD user username
- PB-33070 Request passphrase when exporting account kit

### Fixed
- PB-32420 Fix double calls to PwnedPassword API service
- PB-32631 Fix healthCheck Entity to support air gapped instances
- PB-33066 As AD, I should not see directorySync and SSO checks if they are disabled
- PB-33067 After an unexpected error during setup, recover or account recovery, only the iframe reload and the port cannot reconnect

### Maintenance
- PB-22623 Start service worker in an insecure environment
- PB-22640 As a signed-in user the inform call to action should remain after the port is disconnected only for MV3
- PB-22644 The passbolt icon should detect if the user is still connected after the service worker awake
- PB-23928 Handle when the extension is updated, the webIntegration should be destroy and injected again
- PB-29622 Simulate user keyboard input for autofill event
- PB-29946 When the service worker is shutdown and a navigation is detected the service worker do not reconnect port and stay in error mode
- PB-29965 Use a dedicated service to verify the server
- PB-29966 Update apiClient to support form data body and custom header
- PB-29967 Use a dedicated service to do the step challenge with the server
- PB-29968 use a dedicated service to check the user authentication status
- PB-29969 Use a dedicated service to logout the user
- PB-29988 Update the alarm in the class StartLoopAuthSessionCheckService to use the property periodInMinutes
- PB-29989 Put the alarm listener at the top level for the StartLoopAuthSessionCheckService to check the authentication status
- PB-29990 Move PassphraseStorageService keep alive alarm listener in top level
- PB-30272 Add message service in the app content script in order to reconnect the port from a message sent by the service worker
- PB-30273 On the post logout event the service worker should reconnect port that needs to receive the post logout message
- PB-30274 Add message service in the browser integration content script in order to reconnect the port from a message sent by the service worker
- PB-30310 Improve invalid groups users sanitization strategy
- PB-30335 Use timeout instead alarms for service worker
- PB-30336 Use timeout instead alarms for promise timeout service
- PB-30337 Put the alarm listener at the top level for the passphraseStorageService to flush passphrase after a time duration
- PB-30341 Remove alarms for toolbar controller
- PB-30342 Use timeout instead of alarm for the resource in progress cache service to flush the resource not consumed
- PB-30374 Check if AuthService from styleguide is still used in the Bext otherwise remove it
- PB-30375 Improve CI unit test performance by running them in band
- PB-32291 Cleanup legacy code and unused passbolt.auth.is-authenticated related elements
- PB-32335 Split PassphraseStorageService to put the KeepSessionAlive feature on its own service
- PB-32345 Ensures on the desktop app during import account that the file to import is taken into account
- PB-32597 Ensure ToolbarController are set on index.js
- PB-32598 Ensure add listener from authentication event controller are set on index.js
- PB-32599 Ensure add listener from StartLoopAuthSessionCheckService are set on index.js
- PB-32604 Ensure add listener from on extension update available controller are set on index.js
- PB-32602 Ensure add listener from user.js are set on index.js
- PB-32603 Ensure add listener from ResourceInProgressCacheService are set on index.js
- PB-32915 Update code to remove the destruction of the public web sign-in on port disconnected
- PB-32916 Update code to remove the destruction of the setup on port disconnected
- PB-32917 Update code to remove the destruction of the recover on port disconnected
- PB-33018 Automate browser extension npm publication
- PB-33024 Ensure only stable tags of the styleguide are published to npm
- PB-33024 Ensure only stable tag of the browser extension are sent for review or publish to the store
- PB-33061 Create account temporary storage
- PB-33062 Use temporary account storage for setup process
- PB-33063 Use temporary account storage for recover process
- PB-33064 Use temporary account storage for account recovery process
- PB-33068 Remove beta information for the windows app

## [4.6.2] - 2024-03-29
### Fixed
- PB-32394 As a user defining my passphrase while activating my account I want to know if my passphrase is part of a dictionary on form submission
Expand Down Expand Up @@ -1527,7 +1586,9 @@ self registration settings option in the left-side bar
- AP: User with plugin installed
- LU: Logged in user

[Unreleased]: https://github.com/passbolt/passbolt_browser_extension/compare/v4.6.0...HEAD
[Unreleased]: https://github.com/passbolt/passbolt_browser_extension/compare/v4.7.0...HEAD
[4.7.0]: https://github.com/passbolt/passbolt_browser_extension/compare/v4.6.2...v4.7.0
[4.6.2]: https://github.com/passbolt/passbolt_browser_extension/compare/v4.6.0...v4.6.2
[4.6.0]: https://github.com/passbolt/passbolt_browser_extension/compare/v4.5.2...v4.6.0
[4.5.2]: https://github.com/passbolt/passbolt_browser_extension/compare/v4.5.1...v.4.5.2
[4.5.1]: https://github.com/passbolt/passbolt_browser_extension/compare/v4.5.0...v.4.5.1
Expand Down
8 changes: 5 additions & 3 deletions Gruntfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,8 @@ module.exports = function (grunt) {
},
service_worker: {
files: [
{ expand: true, cwd: path.src_chrome_mv3, src: 'serviceWorker.js', dest: path.build + 'serviceWorker' }
{ expand: true, cwd: path.src_chrome_mv3, src: 'serviceWorker.js', dest: path.build + 'serviceWorker' },
{ expand: true, cwd: `${path.src_chrome_mv3}/offscreens`, src: 'fetch.html', dest: `${path.build}/offscreens` }
]
},
web_accessible_resources: {
Expand Down Expand Up @@ -309,14 +310,15 @@ module.exports = function (grunt) {
*/
build_service_worker_prod: {
command: [
'npm run build:service-worker'
'npm run build:service-worker',
].join(' && ')
},
build_service_worker_debug: {
command: [
'npm run dev:build:service-worker'
'npm run dev:build:service-worker',
].join(' && ')
},

/**
* Build content script
*/
Expand Down
87 changes: 68 additions & 19 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,72 @@
Song: https://youtu.be/3WOZwwRH6XU?si=jvTiezg7eEEpEh-S
Song: https://www.youtube.com/watch?v=3L4YrGaR8E4

Version 4.6.2 is a targeted maintenance release of the browser extension, focusing on refining passwords strength verification process. This update ensures a balance between adhering to security best practices and maintaining user-friendliness.
Passbolt v4.7 is a maintenance release that resolves multiple issues identified by the community.
Furthermore, this release supports the commitment to improving customization options and integration features, making it easier for organizations to tailor the system to their specific needs.

We extend our gratitude to the community for their insights to help us build passbolt.
A key enhancement in this release is the ability for administrators to use custom SSL certificates for SMTP and Users directory server connections (PRO only).
These long-awaited features are particularly beneficial for organizations operating in air-gapped environments or those using their own root CAs, enabling passbolt to more securely integrate with internal communication tools.
All of these customizations are visible in the API status report of the administration workspace, providing a clear and manageable overview for administrators.

Moreover, the integration with user directories has been enhanced, now enabling the synchronization of user accounts using multiple fields as email identifiers.
This allows organizations with heterogeneous data environments to synchronize more seamlessly with Passbolt.
This improvement is part of a broader initiative aimed at modernizing the integration with your user directories.
Stay tuned, more enhancements are planned for future releases.

## [4.7.0] - 2024-04-26
### Added
- PB-32931 As administrator, I see SSO and Directory Sync health checks in Passbolt API Status page
- PB-33065 As an administrator I can add a fallback property to map my organisation AD user username
- PB-33070 Request passphrase when exporting account kit

## [4.6.2] - 2024-03-29
### Fixed
- PB-32394 As a user defining my passphrase while activating my account I want to know if my passphrase is part of a dictionary on form submission
- PB-32396 As a user defining my new passphrase while changing it I want to know if my new passphrase is part of a dictionary on form submission
- PB-32401 As an administrator defining the passphrase of the generated organization account recovery key I want to know if the passphrase is part of a dictionary on form submission
- PB-32407 As a user editing a password I am invited to confirm its edition when this one very weak in a separate dialog on form submission
- PB-32395 As a user defining my passphrase while requesting an account recovery I want to know if my new passphrase is part of a dictionary on form submission
- PB-32397 As a user verifying my private key passphrase while activation my account I do not want to know if my passphrase is part of a dictionary at this stage
- PB-32399 As a user confirming my passphrase while completing an account recovery (Admin approved) I do not want to know if my passphrase is part of a dictionary on form submission
- PB-32398 As a user confirming my passphrase while importing my private key during an account recover I do not want to know if my passphrase is part of a dictionary on form submission
- PB-32404 As a user creating a password from the quickaccess I am invited to confirm its creation when this one is part of a dictionary in a separate dialog on form submission
- PB-32403 As a user updating a password I am invited to confirm its edition when this one is part of a dictionary in a separate dialog on form submission
- PB-32405 As a user auto-saving a password from the quickaccess I should not be notified if the password is part of an exposed dictionary
- PB-32402 As a user creating a password I am invited to confirm its creation when this one is part of a dictionary in a separate dialog on form submission
- PB-32400 As a user confirming my passphrase while importing an account kit on the desktop app I do not want to know if my passphrase is part of a dictionary on form submission
- PB-32406 As a user creating a password I am invited to confirm its creation when this one very weak in a separate dialog on form submission
- PB-32427 As a user creating a password from the quickaccess I am invited to confirm its creation when this one is VERY WEAK in a separate page on form submission
- PB-32420 Fix double calls to PwnedPassword API service
- PB-32631 Fix healthCheck Entity to support air gapped instances
- PB-33066 As AD, I should not see directorySync and SSO checks if they are disabled
- PB-33067 After an unexpected error during setup, recover or account recovery, only the iframe reload and the port cannot reconnect

### Maintenance
- PB-22623 Start service worker in an insecure environment
- PB-22640 As a signed-in user the inform call to action should remain after the port is disconnected only for MV3
- PB-22644 The passbolt icon should detect if the user is still connected after the service worker awake
- PB-23928 Handle when the extension is updated, the webIntegration should be destroy and injected again
- PB-29622 Simulate user keyboard input for autofill event
- PB-29946 When the service worker is shutdown and a navigation is detected the service worker do not reconnect port and stay in error mode
- PB-29965 Use a dedicated service to verify the server
- PB-29966 Update apiClient to support form data body and custom header
- PB-29967 Use a dedicated service to do the step challenge with the server
- PB-29968 use a dedicated service to check the user authentication status
- PB-29969 Use a dedicated service to logout the user
- PB-29988 Update the alarm in the class StartLoopAuthSessionCheckService to use the property periodInMinutes
- PB-29989 Put the alarm listener at the top level for the StartLoopAuthSessionCheckService to check the authentication status
- PB-29990 Move PassphraseStorageService keep alive alarm listener in top level
- PB-30272 Add message service in the app content script in order to reconnect the port from a message sent by the service worker
- PB-30273 On the post logout event the service worker should reconnect port that needs to receive the post logout message
- PB-30274 Add message service in the browser integration content script in order to reconnect the port from a message sent by the service worker
- PB-30310 Improve invalid groups users sanitization strategy
- PB-30335 Use timeout instead alarms for service worker
- PB-30336 Use timeout instead alarms for promise timeout service
- PB-30337 Put the alarm listener at the top level for the passphraseStorageService to flush passphrase after a time duration
- PB-30341 Remove alarms for toolbar controller
- PB-30342 Use timeout instead of alarm for the resource in progress cache service to flush the resource not consumed
- PB-30374 Check if AuthService from styleguide is still used in the Bext otherwise remove it
- PB-30375 Improve CI unit test performance by running them in band
- PB-32291 Cleanup legacy code and unused passbolt.auth.is-authenticated related elements
- PB-32335 Split PassphraseStorageService to put the KeepSessionAlive feature on its own service
- PB-32345 Ensures on the desktop app during import account that the file to import is taken into account
- PB-32597 Ensure ToolbarController are set on index.js
- PB-32598 Ensure add listener from authentication event controller are set on index.js
- PB-32599 Ensure add listener from StartLoopAuthSessionCheckService are set on index.js
- PB-32604 Ensure add listener from on extension update available controller are set on index.js
- PB-32602 Ensure add listener from user.js are set on index.js
- PB-32603 Ensure add listener from ResourceInProgressCacheService are set on index.js
- PB-32915 Update code to remove the destruction of the public web sign-in on port disconnected
- PB-32916 Update code to remove the destruction of the setup on port disconnected
- PB-32917 Update code to remove the destruction of the recover on port disconnected
- PB-33018 Automate browser extension npm publication
- PB-33024 Ensure only stable tags of the styleguide are published to npm
- PB-33024 Ensure only stable tag of the browser extension are sent for review or publish to the store
- PB-33061 Create account temporary storage
- PB-33062 Use temporary account storage for setup process
- PB-33063 Use temporary account storage for recover process
- PB-33064 Use temporary account storage for account recovery process
- PB-33068 Remove beta information for the windows app
Loading

0 comments on commit c21f58b

Please sign in to comment.