Skip to content

Commit bc9c755

Browse files
committed
Merge branch 'feature/PB-40083_13-Prepare-API-code' into 'master'
PB-40724 v5.0.0 See merge request passbolt/passbolt-ce-api!362
2 parents 8e71a06 + cf03be9 commit bc9c755

File tree

1,072 files changed

+22113
-16628
lines changed

Some content is hidden

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

1,072 files changed

+22113
-16628
lines changed

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

+22-96
Original file line numberDiff line numberDiff line change
@@ -122,36 +122,16 @@
122122
##
123123
## CUSTOM COMBINATIONS
124124
##
125-
seq-php7.4-mysql5.7:
125+
seq-php8.2-mysql5.7:
126126
variables:
127-
PHP_VERSION: "7.4"
127+
PHP_VERSION: "8.2"
128128
DATABASE_ENGINE_VERSION: "${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/mysql:5.7"
129129
extends:
130130
- .mysql-template
131131
- .test-template
132132
rules:
133133
- if: "$TEST_DISABLED == null"
134134

135-
seq-php8.0-postgres13:
136-
variables:
137-
PHP_VERSION: "8.0"
138-
DATABASE_ENGINE_VERSION: "${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/postgres:13-alpine"
139-
extends:
140-
- .postgres-template
141-
- .test-template
142-
rules:
143-
- if: '$TEST_DISABLED == null && $CI_COMMIT_BRANCH == "master"'
144-
- if: '$TEST_DISABLED == null && $CI_COMMIT_BRANCH == "develop"'
145-
146-
seq-php8.1-postgres15:
147-
variables:
148-
PHP_VERSION: "8.1"
149-
DATABASE_ENGINE_VERSION: "${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/postgres:15-alpine"
150-
extends:
151-
- .postgres-template
152-
- .test-template
153-
allow_failure: true
154-
155135
#seq-php7.4-postgres12.11:
156136
# variables:
157137
# PHP_VERSION: "7.4"
@@ -177,9 +157,9 @@ seq-php8.1-postgres15:
177157
# - if: '$TEST_DISABLED == null'
178158

179159
## DEBIAN 11 BULLSEYE
180-
seq-php7.4-mariadb10.5:
160+
seq-php8.2-mariadb10.5:
181161
variables:
182-
PHP_VERSION: "7.4"
162+
PHP_VERSION: "8.2"
183163
DATABASE_ENGINE_VERSION: "${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/mariadb:10.5"
184164
extends:
185165
- .mysql-template
@@ -200,18 +180,6 @@ seq-php7.4-mariadb10.5:
200180
# - if: '$TEST_DISABLED == null && $CI_COMMIT_BRANCH == "master"'
201181
# - if: '$TEST_DISABLED == null && $CI_COMMIT_BRANCH == "develop"'
202182

203-
## UBUNTU 20.04 LTS FOCAL
204-
seq-php7.4-mysql8:
205-
variables:
206-
PHP_VERSION: "7.4"
207-
DATABASE_ENGINE_VERSION: "${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/mysql:8.0"
208-
extends:
209-
- .mysql-template
210-
- .test-template
211-
rules:
212-
- if: '$TEST_DISABLED == null && $CI_COMMIT_BRANCH == "master"'
213-
- if: '$TEST_DISABLED == null && $CI_COMMIT_BRANCH == "develop"'
214-
215183
#seq-php7.4-postgres12.11:
216184
# variables:
217185
# PHP_VERSION: "7.4"
@@ -223,9 +191,9 @@ seq-php7.4-mysql8:
223191
# - if: '$TEST_DISABLED == null'
224192

225193
## UBUNTU 22.04 LTS JAMMY
226-
seq-php8.1-mysql8:
194+
seq-php8.2-mysql8:
227195
variables:
228-
PHP_VERSION: "8.1"
196+
PHP_VERSION: "8.2"
229197
DATABASE_ENGINE_VERSION: "${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/mysql:8.0"
230198
extends:
231199
- .mysql-template
@@ -234,54 +202,20 @@ seq-php8.1-mysql8:
234202
- if: '$TEST_DISABLED == null && $CI_COMMIT_BRANCH == "master"'
235203
- if: '$TEST_DISABLED == null && $CI_COMMIT_BRANCH == "develop"'
236204

237-
#seq-php8.1-postgres14.3:
238-
# variables:
239-
# PHP_VERSION: "8.1"
240-
# DATABASE_ENGINE_VERSION: '${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/postgres:14-alpine'
241-
# extends:
242-
# - .postgres-template
243-
# - .test-template
244-
# rules:
245-
# - if: '$TEST_DISABLED == null'
246-
247205
##
248206
## RPM COMBINATIONS
249207
##
250208
## CENTOS 7 - with remi and mariadb repos
251209
seq-php8.2-mariadb10.3:
252210
variables:
253-
PHP_VERSION: "7.4"
211+
PHP_VERSION: "8.2"
254212
DATABASE_ENGINE_VERSION: "${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/mariadb:10.3"
255213
extends:
256214
- .mysql-template
257215
- .test-template
258216
rules:
259217
- if: "$TEST_DISABLED == null"
260218

261-
## ROCKY LINUX 8.6
262-
seq-php8.0-mariadb10.5:
263-
variables:
264-
PHP_VERSION: "8.0"
265-
DATABASE_ENGINE_VERSION: "${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/mariadb:10.5"
266-
extends:
267-
- .mysql-template
268-
- .test-template
269-
rules:
270-
- if: '$TEST_DISABLED == null && $CI_COMMIT_BRANCH == "master"'
271-
- if: '$TEST_DISABLED == null && $CI_COMMIT_BRANCH == "develop"'
272-
273-
## RHEL 9
274-
seq-php8.0-mariadb8.0:
275-
variables:
276-
PHP_VERSION: "8.0"
277-
DATABASE_ENGINE_VERSION: "${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/mysql:8.0"
278-
extends:
279-
- .mysql-template
280-
- .test-template
281-
rules:
282-
- if: '$TEST_DISABLED == null && $CI_COMMIT_BRANCH == "master"'
283-
- if: '$TEST_DISABLED == null && $CI_COMMIT_BRANCH == "develop"'
284-
285219
#seq-php8.0-postgres13.7:
286220
# variables:
287221
# PHP_VERSION: "8.0"
@@ -293,6 +227,14 @@ seq-php8.0-mariadb8.0:
293227
# - if: '$TEST_DISABLED == null && $CI_COMMIT_BRANCH == "master"'
294228
# - if: '$TEST_DISABLED == null && $CI_COMMIT_BRANCH == "develop"'
295229

230+
seq-php8.2-postgres15:
231+
variables:
232+
PHP_VERSION: "8.2"
233+
DATABASE_ENGINE_VERSION: "${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/postgres:15-alpine"
234+
extends:
235+
- .postgres-template
236+
- .test-template
237+
296238
seq-php8.3-mariadb10.5:
297239
variables:
298240
PHP_VERSION: "8.3"
@@ -303,36 +245,20 @@ seq-php8.3-mariadb10.5:
303245
rules:
304246
- if: "$TEST_DISABLED == null"
305247

306-
307-
# Mariadb 11.5 tests
308-
309-
seq-php8.0-mariadb11.5:
248+
seq-php8.3-postgres13:
310249
variables:
311-
PHP_VERSION: "8.0"
312-
DATABASE_ENGINE_VERSION: "${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/mariadb:11.5"
250+
PHP_VERSION: "8.3"
251+
DATABASE_ENGINE_VERSION: "${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/postgres:13-alpine"
313252
extends:
314-
- .mariadb-template
253+
- .postgres-template
315254
- .test-template
316255
rules:
317256
- if: '$TEST_DISABLED == null && $CI_COMMIT_BRANCH == "master"'
318257
- if: '$TEST_DISABLED == null && $CI_COMMIT_BRANCH == "develop"'
319-
- if: '$TEST_DISABLED == null && $CI_COMMIT_BRANCH == "release"'
320-
allow_failure: true
321258

322-
seq-php8.1-mariadb11.5:
323-
variables:
324-
PHP_VERSION: "8.1"
325-
DATABASE_ENGINE_VERSION: "${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/mariadb:11.5"
326-
extends:
327-
- .mariadb-template
328-
- .test-template
329-
rules:
330-
- if: '$TEST_DISABLED == null && $CI_COMMIT_BRANCH == "master"'
331-
- if: '$TEST_DISABLED == null && $CI_COMMIT_BRANCH == "develop"'
332-
- if: '$TEST_DISABLED == null && $CI_COMMIT_BRANCH == "release"'
333-
allow_failure: true
259+
# Mariadb 11.5 tests
334260

335-
# This is what we ship with the docker image as of 14 Nov 2024
261+
# This is what we ship with the docker image as of 14 Nov 2024
336262
seq-php8.2-mariadb11.5:
337263
variables:
338264
PHP_VERSION: "8.2"
@@ -355,4 +281,4 @@ seq-php8.3-mariadb11.5:
355281
- if: '$TEST_DISABLED == null && $CI_COMMIT_BRANCH == "master"'
356282
- if: '$TEST_DISABLED == null && $CI_COMMIT_BRANCH == "develop"'
357283
- if: '$TEST_DISABLED == null && $CI_COMMIT_BRANCH == "release"'
358-
allow_failure: true
284+
allow_failure: true

.gitlab-ci/jobs/security_check.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
.security-check:
22
stage: unit-test
33
variables:
4-
PHP_VERSION: "7.4"
4+
PHP_VERSION: "8.2"
55
COMPOSER_ALLOW_SUPERUSER: 1
66
image: $CI_REGISTRY_IMAGE_TEST:$PHP_VERSION
77
allow_failure: true

.gitlab-ci/jobs/style_check.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
.static-analysis:
22
stage: unit-test
33
variables:
4-
PHP_VERSION: "7.4"
4+
PHP_VERSION: "8.2"
55
COMPOSER_ALLOW_SUPERUSER: 1
66
image: $CI_REGISTRY_IMAGE_TEST:$PHP_VERSION
77
allow_failure: false
88
script:
99
- composer config --global process-timeout 2000
1010
- composer install --no-interaction
1111
- composer validate --check-lock --no-check-publish
12-
- composer cs-check
1312
- composer stan
1413
- composer psalm
14+
- composer cs-check
1515

1616
static-analysis:
1717
extends: .static-analysis

CHANGELOG.md

+69-2
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,76 @@
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.12.1] - 2025-03-17
5+
## [5.0.0] - 2025-04-10
6+
### Added
7+
- PB-39434 As an administrator I can log user actions on file in an SIEM compatible format
8+
- PB-39627 Enforce PHP 8.2 as minimum passbolt API requirement
9+
- PB-40155 Add Passbolt API support of PHP 8.4
10+
- PB-40247 Add API status documentation link to the health check command
11+
12+
### Fixed
13+
- PB-39706 When creating a user from CLI the metadata_private_keys should have their fields created_by and modified_by set
14+
- PB-41356 As an administrator I can delete a resource type associated to deleted resources
15+
- PB-41374 Fix unlimited session lifetime introduced in CakePHP 5
16+
- PB-41379 Updates the minimum next version to 8.2 to remove false warning from installation
17+
18+
### Maintenance
19+
- PB-28246 Refactor the whole application to upgrade CakePHP to version 5
20+
- PB-39434 Add code coverage to ActionLogsUsernameQueryStrategy
21+
- PB-39660 Mock MfaFormInterface to avoid tests failing occasionally
22+
- PB-39630 Fix ResourcesIndexControllerPaginationTest recurrently failing test
23+
24+
## [5.0.0-rc.2] - 2025-04-08
25+
### Fixed
26+
- PB-41374 Fix unlimited session lifetime introduced in CakePHP 5
27+
- PB-41379 Updates the minimum next version to 8.2 to remove false warning from installation
28+
29+
## [5.0.0-rc.1] - 2025-04-07
30+
### Added
31+
- PB-39434 As an administrator I can log user actions on file in an SIEM compatible format
32+
- PB-39627 Enforce PHP 8.2 as minimum passbolt API requirement
33+
- PB-40155 Add Passbolt API support of PHP 8.4
34+
- PB-40247 Add API status documentation link to the health check command
35+
36+
### Fixed
37+
- PB-39706 When creating a user from CLI the metadata_private_keys should have their fields created_by and modified_by set
38+
- PB-41356 As an administrator I can delete a resource type associated to deleted resources
39+
40+
### Maintenance
41+
- PB-28246 Refactor the whole application to upgrade CakePHP to version 5
42+
- PB-39434 Add code coverage to ActionLogsUsernameQueryStrategy
43+
- PB-39660 Mock MfaFormInterface to avoid tests failing occasionally
44+
- PB-39630 Fix ResourcesIndexControllerPaginationTest recurrently failing test
45+
46+
## [5.0.0-test.4] - 2025-04-02
47+
### Added
48+
- PB-39434 As an administrator I can log user actions on file in an SIEM compatible format
49+
- PB-40155 Add Passbolt API support of PHP 8.4
50+
- PB-39627 Enforce PHP 8.2 as minimum passbolt API requirement
51+
652
### Fixed
7-
- PB-39959 Fixes an issue when fetching the locale of suspended users when queried in a sub-query
53+
- PB-39706 When creating a user from CLI the metadata_private_keys should have their fields created_by and modified_by set
54+
55+
### Improved
56+
- PB-38164 Migrate passbolt API skeleton to v5
57+
- PB-40247 Add API status documentation link to the health check command
58+
59+
### Maintenance
60+
- PB-28246 Refactor the whole application to upgrade CakePHP to version 5
61+
- PB-39434 Add code coverage to ActionLogsUsernameQueryStrategy
62+
- PB-39660 Mock MfaFormInterface to avoid tests failing occasionally
63+
- PB-39630 Fix ResourcesIndexControllerPaginationTest recurrently failing test
64+
65+
## [5.0.0-test.2] - 2025-03-28
66+
### Maintenance
67+
- PB-39712 Update CakePHP to version 5
68+
69+
### Fixed
70+
- PB-40668 Cannot assign bool to property App\Notification\Email\EmailSender::$appFullBaseUrl of type string error
71+
72+
## [5.0.0-test.1] - 2025-03-28
73+
### Maintenance
74+
- PB-39712 Update CakePHP to version 5
875

976
## [4.12.1-test.1] - 2025-03-14
1077
### Fixed

Gruntfile.js

+2-13
Original file line numberDiff line numberDiff line change
@@ -97,14 +97,11 @@ module.exports = function(grunt) {
9797
// Default Avatars
9898
'avatar/**',
9999
// Passbolt logos
100-
'logo/icon-20_white.png', 'logo/icon-20_grey.png', 'logo/icon-20.png',
101-
'logo/icon-48_white.png', 'logo/icon-48.png',
102-
'logo/logo.png', 'logo/[email protected]', 'logo/logo.svg', 'logo/logo_white.svg', 'logo/logo_white.png',
100+
'logo/logo.png', 'logo/logo.svg', 'logo/logo_white.svg',
103101
// Image for inputs and controls
104102
'controls/check_black.svg',
105-
'controls/check_white.svg',
103+
'controls/check_tick.svg',
106104
'controls/chevron-down_black.svg',
107-
'controls/chevron-down_white.svg',
108105
'controls/chevron-down_blue.svg',
109106
'controls/dot_white.svg',
110107
'controls/dot_red.svg',
@@ -118,13 +115,6 @@ module.exports = function(grunt) {
118115
'controls/warning.svg',
119116
'controls/attention.svg',
120117
// Login page 3rd party logo
121-
'third_party/firefox_logo.png',
122-
'third_party/FirefoxAMO_black.svg',
123-
'third_party/FirefoxAMO_white.svg',
124-
'third_party/ChromeWebStore_black.svg',
125-
'third_party/ChromeWebStore_white.svg',
126-
'third_party/edge-addon-black.svg',
127-
'third_party/edge-addon-white.svg',
128118
'third_party/chosen-sprite.png',
129119
'third_party/[email protected]',
130120
'third_party/firefox.svg',
@@ -135,7 +125,6 @@ module.exports = function(grunt) {
135125

136126
// Smtp provider 3rd party logo
137127
'third_party/aws-ses.svg',
138-
'third_party/azure.svg',
139128
'third_party/elastic-email.svg',
140129
'third_party/gmail.svg',
141130
'third_party/mailgun.svg',

RELEASE_NOTES.md

+30-5
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,35 @@
1-
Release song: https://youtu.be/NUTGr5t3MoY?si=1hitMfMv8PDn1Wf2
1+
Release song: https://www.youtube.com/watch?v=yf1f8zNvR1I
22

3-
This is a maintenance release. It fixes a reported issue when notifying group administrators that a user should be added to a group. The issue occurred when a group administrator had been suspended.
3+
“Even the longest day has its end” goes the old Irish proverb, and here we are at long last announcing the Passbolt 5.x series.
4+
This first release v5.0 ships with a complete redesign of the application’s interface, which had remained largely unchanged since
5+
Passbolt’s early days and was limiting the addition of new capabilities.
6+
The new version offers a more spacious layout that provides room for meaningful information and addresses long-standing ergonomic issues.
7+
If you want to know more, check out what changed in this [Passbolt 5, UI Redesign](https://community.passbolt.com/t/passbolt-5-ui-redesign/12717) community post.
48

5-
Thank you to the community for the valuable feedback!
9+
Passbolt v5.0 lays the groundwork for the v5.x series, which will expand the software’s capabilities to handle more sensitive data types that the community has requested,
10+
such as key-value pairs, SSH keys, and certificates. The blog article about the passbolt v5.0 release is coming soon.
611

12+
Of course, with each major version come the inevitable breaking changes, which we strive to minimize as much as possible.
13+
With this release, the minimum server requirement has changed to PHP 8.2 or greater, so be sure to check out our latest blog article on [how to upgrade to PHP 8.2](https://www.passbolt.com/blog/preparing-for-passbolt-v5-php-8-2-requirement).
14+
Additionally this is a perfect moment to back up your server data and prepare for the unexpected.
15+
16+
Thank you to the community for all your feedback, testing, and support in making this milestone possible. We hope you’ll enjoy what Passbolt v5.0 has to offer and look forward to hearing from you.
17+
18+
## [5.0.0] - 2025-04-10
19+
### Added
20+
- PB-39434 As an administrator I can log user actions on file in an SIEM compatible format
21+
- PB-39627 Enforce PHP 8.2 as minimum passbolt API requirement
22+
- PB-40155 Add Passbolt API support of PHP 8.4
23+
- PB-40247 Add API status documentation link to the health check command
724

8-
## [4.12.1] - 2025-03-17
925
### Fixed
10-
- PB-39959 Fixes an issue when fetching the locale of suspended users when queried in a sub-query
26+
- PB-39706 When creating a user from CLI the metadata_private_keys should have their fields created_by and modified_by set
27+
- PB-41356 As an administrator I can delete a resource type associated to deleted resources
28+
- PB-41374 Fix unlimited session lifetime introduced in CakePHP 5
29+
- PB-41379 Updates the minimum next version to 8.2 to remove false warning from installation
30+
31+
### Maintenance
32+
- PB-28246 Refactor the whole application to upgrade CakePHP to version 5
33+
- PB-39434 Add code coverage to ActionLogsUsernameQueryStrategy
34+
- PB-39660 Mock MfaFormInterface to avoid tests failing occasionally
35+
- PB-39630 Fix ResourcesIndexControllerPaginationTest recurrently failing test

0 commit comments

Comments
 (0)