Skip to content

Commit 8cb699d

Browse files
committed
Merge branch 'release' into 'master'
PB-34020 Merge release into master (v4.9.0) See merge request passbolt/passbolt-ce-api!299
2 parents 727e938 + 6b87c9f commit 8cb699d

File tree

107 files changed

+2751
-1317
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

107 files changed

+2751
-1317
lines changed

.gitlab-ci/jobs/php_unit_tests/sequential/php_unit_tests.yml

+22-22
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,8 @@
4949
DATASOURCES_DEFAULT_DRIVER: Cake\Database\Driver\Postgres
5050
DATASOURCES_PORT: 5432
5151
DATASOURCES_DEFAULT_PORT: 5432
52-
DATASOURCES_DEFAULT_ENCODING: 'utf8'
53-
DATASOURCES_TEST_ENCODING: 'utf8'
52+
DATASOURCES_DEFAULT_ENCODING: "utf8"
53+
DATASOURCES_TEST_ENCODING: "utf8"
5454
DATASOURCES_TEST_PORT: 5432
5555
# TO BE REPLACED WITH
5656
# before_script:
@@ -88,25 +88,25 @@
8888
reports:
8989
junit: unitreport.xml
9090
rules:
91-
- if: '$CI_COMMIT_MESSAGE !~ /skip-unit/'
91+
- if: "$CI_COMMIT_MESSAGE !~ /skip-unit/"
9292

9393
##
9494
## CUSTOM COMBINATIONS
9595
##
9696
seq-php7.4-mysql5.7:
9797
variables:
9898
PHP_VERSION: "7.4"
99-
DATABASE_ENGINE_VERSION: '$CI_REGISTRY/mysql-5.7'
99+
DATABASE_ENGINE_VERSION: "${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/mysql:5.7"
100100
extends:
101101
- .mysql-template
102102
- .test-template
103103
rules:
104-
- if: '$TEST_DISABLED == null'
104+
- if: "$TEST_DISABLED == null"
105105

106106
seq-php8.0-postgres13:
107107
variables:
108108
PHP_VERSION: "8.0"
109-
DATABASE_ENGINE_VERSION: '$CI_REGISTRY/postgres-13-alpine'
109+
DATABASE_ENGINE_VERSION: "${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/postgres:13-alpine"
110110
extends:
111111
- .postgres-template
112112
- .test-template
@@ -117,7 +117,7 @@ seq-php8.0-postgres13:
117117
seq-php8.1-postgres15:
118118
variables:
119119
PHP_VERSION: "8.1"
120-
DATABASE_ENGINE_VERSION: '$CI_REGISTRY/postgres-15-alpine'
120+
DATABASE_ENGINE_VERSION: "${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/postgres:15-alpine"
121121
extends:
122122
- .postgres-template
123123
- .test-template
@@ -126,7 +126,7 @@ seq-php8.1-postgres15:
126126
#seq-php7.4-postgres12.11:
127127
# variables:
128128
# PHP_VERSION: "7.4"
129-
# DATABASE_ENGINE_VERSION: '$CI_REGISTRY/postgres-12-alpine'
129+
# DATABASE_ENGINE_VERSION: "${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/postgres:12-alpine"
130130
# extends:
131131
# - .postgres-template
132132
# - .test-template
@@ -140,7 +140,7 @@ seq-php8.1-postgres15:
140140
#seq-php7.4-postgres11.16:
141141
# variables:
142142
# PHP_VERSION: "7.4"
143-
# DATABASE_ENGINE_VERSION: '$CI_REGISTRY/postgres-11-alpine'
143+
# DATABASE_ENGINE_VERSION: "${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/postgres:11-alpine"
144144
# extends:
145145
# - .postgres-template
146146
# - .test-template
@@ -151,7 +151,7 @@ seq-php8.1-postgres15:
151151
seq-php7.4-mariadb10.5:
152152
variables:
153153
PHP_VERSION: "7.4"
154-
DATABASE_ENGINE_VERSION: '$CI_REGISTRY/mariadb-10.5'
154+
DATABASE_ENGINE_VERSION: "${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/mariadb:10.5"
155155
extends:
156156
- .mysql-template
157157
- .test-template
@@ -162,7 +162,7 @@ seq-php7.4-mariadb10.5:
162162
#seq-php7.4-postgres13.7:
163163
# variables:
164164
# PHP_VERSION: "7.4"
165-
# DATABASE_ENGINE_VERSION: '$CI_REGISTRY/postgres-13-alpine'
165+
# DATABASE_ENGINE_VERSION: "${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/postgres:13-alpine"
166166
# extends:
167167
# - .postgres-template
168168
# - .test-template
@@ -174,7 +174,7 @@ seq-php7.4-mariadb10.5:
174174
seq-php7.4-mysql8:
175175
variables:
176176
PHP_VERSION: "7.4"
177-
DATABASE_ENGINE_VERSION: '$CI_REGISTRY/mysql-8.0'
177+
DATABASE_ENGINE_VERSION: "${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/mysql:8.0"
178178
extends:
179179
- .mysql-template
180180
- .test-template
@@ -185,7 +185,7 @@ seq-php7.4-mysql8:
185185
#seq-php7.4-postgres12.11:
186186
# variables:
187187
# PHP_VERSION: "7.4"
188-
# DATABASE_ENGINE_VERSION: '$CI_REGISTRY/postgres-12-alpine'
188+
# DATABASE_ENGINE_VERSION: '${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/postgres:12-alpine'
189189
# extends:
190190
# - .postgres-template
191191
# - .test-template
@@ -196,7 +196,7 @@ seq-php7.4-mysql8:
196196
seq-php8.1-mysql8:
197197
variables:
198198
PHP_VERSION: "8.1"
199-
DATABASE_ENGINE_VERSION: '$CI_REGISTRY/mysql-8.0'
199+
DATABASE_ENGINE_VERSION: "${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/mysql:8.0"
200200
extends:
201201
- .mysql-template
202202
- .test-template
@@ -207,7 +207,7 @@ seq-php8.1-mysql8:
207207
#seq-php8.1-postgres14.3:
208208
# variables:
209209
# PHP_VERSION: "8.1"
210-
# DATABASE_ENGINE_VERSION: '$CI_REGISTRY/postgres-14-alpine'
210+
# DATABASE_ENGINE_VERSION: '${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/postgres:14-alpine'
211211
# extends:
212212
# - .postgres-template
213213
# - .test-template
@@ -221,18 +221,18 @@ seq-php8.1-mysql8:
221221
seq-php8.2-mariadb10.3:
222222
variables:
223223
PHP_VERSION: "7.4"
224-
DATABASE_ENGINE_VERSION: '$CI_REGISTRY/mariadb-10.3'
224+
DATABASE_ENGINE_VERSION: "${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/mariadb:10.3"
225225
extends:
226226
- .mysql-template
227227
- .test-template
228228
rules:
229-
- if: '$TEST_DISABLED == null'
229+
- if: "$TEST_DISABLED == null"
230230

231231
## ROCKY LINUX 8.6
232232
seq-php8.0-mariadb10.5:
233233
variables:
234234
PHP_VERSION: "8.0"
235-
DATABASE_ENGINE_VERSION: '$CI_REGISTRY/mariadb-10.5'
235+
DATABASE_ENGINE_VERSION: "${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/mariadb:10.5"
236236
extends:
237237
- .mysql-template
238238
- .test-template
@@ -244,7 +244,7 @@ seq-php8.0-mariadb10.5:
244244
seq-php8.0-mariadb8.0:
245245
variables:
246246
PHP_VERSION: "8.0"
247-
DATABASE_ENGINE_VERSION: '$CI_REGISTRY/mysql-8.0'
247+
DATABASE_ENGINE_VERSION: "${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/mysql:8.0"
248248
extends:
249249
- .mysql-template
250250
- .test-template
@@ -255,7 +255,7 @@ seq-php8.0-mariadb8.0:
255255
#seq-php8.0-postgres13.7:
256256
# variables:
257257
# PHP_VERSION: "8.0"
258-
# DATABASE_ENGINE_VERSION: '$CI_REGISTRY/postgres-13-alpine'
258+
# DATABASE_ENGINE_VERSION: '${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/postgres:13-alpine'
259259
# extends:
260260
# - .postgres-template
261261
# - .test-template
@@ -266,9 +266,9 @@ seq-php8.0-mariadb8.0:
266266
seq-php8.3-mysql8:
267267
variables:
268268
PHP_VERSION: "8.3"
269-
DATABASE_ENGINE_VERSION: '$CI_REGISTRY/mysql-8.0'
269+
DATABASE_ENGINE_VERSION: "${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/mysql:8.0"
270270
extends:
271271
- .mysql-template
272272
- .test-template
273273
rules:
274-
- if: '$TEST_DISABLED == null'
274+
- if: "$TEST_DISABLED == null"

CHANGELOG.md

+101
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,107 @@
22
All notable changes to this project will be documented in this file.
33
This project adheres to [Semantic Versioning](http://semver.org/).
44

5+
## [4.9.0] - 2024-07-23
6+
### Added
7+
- PB-33690 Improves response times by adding an index to gpgkeys.user_id column
8+
- PB-33639 Adds additional contain parameters to share/search-aros.json for enhanced performance
9+
- PB-33936 Adds a has-users filter to gpgkeys.json index endpoint
10+
- PB-33813 Adds a fixed limit to the search-aros.json endpoint
11+
12+
### Fixed
13+
- PB-33616 As a user creating a resource I should get a validation error if the secret is a string and not an array
14+
- PB-33664 Fix missing "is" in the database schema up to date sentence (GITHUB #517)
15+
16+
### Improved
17+
- PB-33429 As a user I should retrieve resources and folders parent folders in a single query
18+
- PB-33826 Improves the performance of resources.json by improving the datetime fields processing
19+
- PB-24995 Improves last_logged_in property query performance to reduce response time of users.json endpoint
20+
- PB-33653 Improves is_mfa_enabled property query performance to reduce response time of users.json endpoint
21+
- PB-33702 Improves has-access filter performance on users.json
22+
- PB-32591 Validate passbolt.plugins.smtpSettings.security configuration values before passing it to SMTP server
23+
- PB-33214 Update sql export / improve mysql backup command compatibility with mariadb-dump
24+
25+
### Maintenance
26+
- PB-33692 Bump enygma/yubikey to v3.8
27+
28+
### Security
29+
- PB-33747 Fix command injections vulnerabilities in composer/composer package
30+
31+
## [4.9.0-rc.1] - 2024-07-18
32+
### Added
33+
- PB-33690 Improves response times by adding an index to gpgkeys.user_id column
34+
- PB-33639 Adds additional contain parameters to share/search-aros.json for enhanced performance
35+
- PB-33936 Adds a has-users filter to gpgkeys.json index endpoint
36+
- PB-33813 Adds a fixed limit to the search-aros.json endpoint
37+
38+
### Improved
39+
- PB-33429 As a user I should retrieve resources and folders parent folders in a single query
40+
- PB-33826 Improves the performance of resources.json by improving the datetime fields processing
41+
- PB-24995 Improves last_logged_in property query performance to reduce response time of users.json endpoint
42+
- PB-33653 Improves is_mfa_enabled property query performance to reduce response time of users.json endpoint
43+
- PB-33702 Improves has-access filter performance on users.json
44+
- PB-32591 Validate passbolt.plugins.smtpSettings.security configuration values before passing it to SMTP server
45+
- PB-33214 Update sql export / improve mysql backup command compatibility with mariadb-dump
46+
47+
### Security
48+
- PB-33747 Fix command injections vulnerabilities in composer/composer package
49+
50+
### Fixed
51+
- PB-33616 As a user creating a resource I should get a validation error if the secret is a string and not an array
52+
53+
### Maintenance
54+
- PB-33692 Bump enygma/yubikey to v3.8
55+
56+
## [4.9.0-test.2] - 2024-07-17
57+
### Added
58+
- PB-33690 Improves response times by adding an index to gpgkeys.user_id column
59+
- PB-33639 Adds additional contain parameters to share/search-aros.json for enhanced performance
60+
- PB-33936 Adds a has-users filter to gpgkeys.json index endpoint
61+
- PB-33813 Adds a fixed limit to the search-aros.json endpoint
62+
63+
### Improved
64+
- PB-33429 As a user I should retrieve resources and folders parent folders in a single query
65+
- PB-33826 Improves the performance of resources.json by improving the datetime fields processing
66+
- PB-24995 Improves last_logged_in property query performance to reduce response time of users.json endpoint
67+
- PB-33653 Improves is_mfa_enabled property query performance to reduce response time of users.json endpoint
68+
- PB-33702 Improves has-access filter performance on users.json
69+
- PB-32591 Validate passbolt.plugins.smtpSettings.security configuration values before passing it to SMTP server
70+
- PB-33214 Update sql export / improve mysql backup command compatibility with mariadb-dump
71+
72+
### Security
73+
- PB-33747 Fix command injections vulnerabilities in composer/composer package
74+
75+
### Fixed
76+
- PB-33616 As a user creating a resource I should get a validation error if the secret is a string and not an array
77+
78+
### Maintenance
79+
- PB-33692 Bump enygma/yubikey to v3.8
80+
81+
## [4.9.0-test.1] - 2024-07-15
82+
### Added
83+
- PB-33690 Improves response times by adding an index to gpgkeys.user_id column
84+
- PB-33639 Adds additional contain parameters to share/search-aros.json for enhanced performance
85+
- PB-33936 Adds a has-users filter to gpgkeys.json index endpoint
86+
- PB-33813 Adds a fixed limit to the search-aros.json endpoint
87+
88+
### Improved
89+
- PB-33429 As a user I should retrieve resources and folders parent folders in a single query
90+
- PB-33826 Improves the performance of resources.json by improving the datetime fields processing
91+
- PB-24995 Improves last_logged_in property query performance to reduce response time of users.json endpoint
92+
- PB-33653 Improves is_mfa_enabled property query performance to reduce response time of users.json endpoint
93+
- PB-33702 Improves has-access filter performance on users.json
94+
- PB-32591 Validate passbolt.plugins.smtpSettings.security configuration values before passing it to SMTP server
95+
- PB-33214 Update sql export / improve mysql backup command compatibility with mariadb-dump
96+
97+
### Security
98+
- PB-33747 Fix command injections vulnerabilities in composer/composer package
99+
100+
### Fixed
101+
- PB-33616 As a user creating a resource I should get a validation error if the secret is a string and not an array
102+
103+
### Maintenance
104+
- PB-33692 Bump enygma/yubikey to v3.8
105+
5106
## [4.8.0] - 2024-05-21
6107
### Added
7108
- PB-33071 As an administrator I can purge the action logs table with a dedicated command

RELEASE_NOTES.md

+23-34
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,31 @@
1-
Release song: https://youtu.be/hbe3CQamF8k
1+
Release song: https://youtu.be/zUzd9KyIDrM?si=bPS9Qu1t351eZEHH
22

3-
Passbolt v4.8.0 is a maintenance release focusing on the migration of the browser extension to the latest MV3
4-
architecture and adding tools for administrators to help them manage their instance.
3+
Passbolt v4.9.0 is a significant update that addresses long-standing user requests and enhances performance. In this release, a highly requested feature was introduced where the passwords workspace now displays the location of resources. This addition provides extra meta information to help users efficiently identify passwords and where they are located. Additionally, the search functionality has been improved to use resource locations as meta information. Users can now retrieve a resource by using the names of its parent folders, which can greatly simplify the process of finding passwords depending on your organisation's classification system.
54

6-
This release marks the introduction of the first version of the MV3 extension for Chrome. The transition to MV3 has been
7-
in progress since last year, with changes rolled out progressively until now. The base code between MV2 and MV3 is
8-
nearly identical, and both extensions will continue to be maintained in parallel. A detailed blog post explaining our
9-
migration process will be coming soon.
5+
The team has also focused on various performance improvements to meet the growing needs of organisations managing an increasing number of passwords. These enhancements also prepare the way for the upcoming v5.0.0, which will support more content types and include an additional encryption layer. Both the API and the browser extension have been optimised, resulting in a 50% improvement in retrieving and treating collections of resources, according to our benchmarks.
106

11-
A new feature allowing administrators to purge audit logs from the command line was added. This will help reclaim database
12-
space for logs that are no longer relevant, improving the performance of long-running instances while keeping necessary
13-
logs for forensic and audit activities.
14-
15-
A new command has also been added to help administrators debug issues with their SMTP server. Email functionality is
16-
crucial for Passbolt, and diagnosing connection problems is not always straightforward. This new command aims to simplify
17-
the process when connecting to a new SMTP server as well as understand errors that could occur on existing integration.
18-
19-
As passbolt moves towards supporting more content types this year, significant work has been done to enhance performance
20-
across the entire stack, from the database to the API and the browser extension. This release includes some of these
21-
improvements, with more enhancements on the way in the next coming release v4.9.0.
22-
23-
We hope these updates enhance your experience with Passbolt. Your feedback is always valuable to us.
24-
25-
26-
## [4.8.0] - 2024-05-21
7+
## [4.9.0] - 2024-07-23
278
### Added
28-
- PB-33071 As an administrator I can purge the action logs table with a dedicated command
29-
- PB-33231 As an administrator I want to know if a custom certificate is in use for SMTP
30-
- PB-32579 As an administrator I can view email_queue records via passbolt command
31-
32-
### Improved
33-
- PB-32888 As an admin I should not get a time-out on health checks on air-gapped network
34-
- PB-32983 Access email settings only when emails are sent
9+
- PB-33690 Improves response times by adding an index to gpgkeys.user_id column
10+
- PB-33639 Adds additional contain parameters to share/search-aros.json for enhanced performance
11+
- PB-33936 Adds a has-users filter to gpgkeys.json index endpoint
12+
- PB-33813 Adds a fixed limit to the search-aros.json endpoint
3513

3614
### Fixed
37-
- PB-33451 Fix 500 error on authentication when nonce is not a string
38-
- PB-33073 As a user logging in, invalid login operation should not be logged as success in the audit logs
39-
- PB-33234 The application should not throw an error if the JWT public key is not parsable
15+
- PB-33616 As a user creating a resource I should get a validation error if the secret is a string and not an array
16+
- PB-33664 Fix missing "is" in the database schema up to date sentence (GITHUB #517)
17+
18+
### Improved
19+
- PB-33429 As a user I should retrieve resources and folders parent folders in a single query
20+
- PB-33826 Improves the performance of resources.json by improving the datetime fields processing
21+
- PB-24995 Improves last_logged_in property query performance to reduce response time of users.json endpoint
22+
- PB-33653 Improves is_mfa_enabled property query performance to reduce response time of users.json endpoint
23+
- PB-33702 Improves has-access filter performance on users.json
24+
- PB-32591 Validate passbolt.plugins.smtpSettings.security configuration values before passing it to SMTP server
25+
- PB-33214 Update sql export / improve mysql backup command compatibility with mariadb-dump
4026

4127
### Maintenance
42-
- PB-30314 Bump passbolt/passbolt-test-data to v4.8
28+
- PB-33692 Bump enygma/yubikey to v3.8
29+
30+
### Security
31+
- PB-33747 Fix command injections vulnerabilities in composer/composer package

composer.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@
7979
"ext-openssl": "*",
8080
"ext-pdo": "*",
8181
"ext-curl": "*",
82-
"composer/composer": "^2.7.0",
82+
"composer/composer": "^2.7.7",
8383
"cakephp/cakephp": "^4.5",
8484
"cakephp/chronos": "2.4.*",
8585
"longwave/laminas-diactoros": "^2.14.1",
@@ -98,7 +98,7 @@
9898
"firebase/php-jwt": "^6.2.0",
9999
"spomky-labs/otphp": "^10.0.0",
100100
"bacon/bacon-qr-code": "^2.0.7",
101-
"enygma/yubikey": "^3.5",
101+
"enygma/yubikey": "^3.8",
102102
"duosecurity/duo_universal_php": "^1.0.2"
103103
},
104104
"require-dev": {

0 commit comments

Comments
 (0)