forked from PEP-Repository/core
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCHANGELOG
More file actions
2134 lines (1581 loc) · 106 KB
/
CHANGELOG
File metadata and controls
2134 lines (1581 loc) · 106 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Changelog
Note your text below, in the following format (with 42 the issue number of the change):
- repo#42: description
Changes in upcoming release (1.7):
---------------
- Added --format option to "pepcli list" command, which allows the output format to be selected between YAML and JSON. The default was pseudo-JSON, and is now proper JSON.
- Also print brief local pseudonyms (participant aliases) when using --local-pseudonym flag.
- core#2795: Fixed a bug in the "pepcli ama query --script-print participant-groups" and "pepcli ama query --script-print participant-group-access-rules" commands, which caused them to produce no output.
- core#2767: Added a tool for MacOS and Windows users to easily upload files to PEP using a GUI file picker.
- core#2753:
- Changed: The YAML output of user query commands now use `# item count: N` instead of `# size = N` to display array sizes.
This removes the ambiguity of the word `size` and makes the meaning of the number more clear.
- Added support for YAML output for pepcli export commands.
- core#2708: We now store whether a userID is the primary and/or the display ID. Primary ID is set automatically the first time a user logs in.
The userID given when creating a new user will be set as the display ID. Both can be changed by the access administrator.
When no displayIDs exist in the database, it tries to auto-assign display IDs for the existing users, by picking the first ID for that user, if that ID has not been removed.
If that first ID has been removed, auto-assignment will fail for that user. They will need to be set manually (see MANUAL CHANGES REQUIRED)
The output format of `pepcli user query` changes, because of this change. If it is used in scripts, these should be updated for the new format.
Currently, no one outside the PEP team can use `pepcli user query`, so impact should be limited.
- #2756: Added "pepcli ama group clear" command, which removes all subjects from a subject group (without removing the
group itself and/or associated access rules, as "pepcli ama group remove" would do).
- #2755: The "pepcli list" command now supports a "--show-dataless" switch, which causes output to also include (pseudonyms
of) subjects for whom the command retrieves no data. This a.o. allows subject groups to be listed without requiring
data presence and accessibility, and without having to specify column(group)(s):
pepcli list -P some-subject-group --show-dataless
- #1970: We can now request a CSR from servers for their PEP certificates, and replace the certificate after we signed a new one, all using pepcli.
This does not apply to the TLS certificates, so is not that useful yet, until we replace those with "normal" TLS certificates from a public CA (#2768).
For this to work, the certificates will need to be in a writable location (#2769), which they are currently not. That will need to be solved at some point,
before we want to use the new functionality. But it is not necessary to fix this right away as part of the release.
- !2356: Positional CLI parameters can now also be specified using flags, e.g. `pepcli ama cgar create --mode read --access-group group --column-group columns`
- #2794: CSV export no longer lists cell header(s) if no rows are exported.
MANUAL CHANGES REQUIRED:
- #2708: After the release has been deployed, use `pepcli user query` to see which users don't have a displayID. It will print a warning message for each user that doesn't have one yet.
Use `pepcli user setDisplayID <SomeExistingUserId>` to set the display ID for these users.
---------------
Past changes, do not edit (except by person doing release):
Release 1.6 (started 2026-01-28):
- #2771: Manually managed user IDs are now case-insensitive
- User IDs retain their original casing when stored.
- `pepcli user query --user <ID>` returns matches regardless of case differences.
- Both `pepcli user add <ID>` and `pepcli user addIdentifier <EXISTING_ID> <ALTERNATIVE_ID>`
reject new IDs that only differ by case from existing ones.
- The logon procedure now accepts user IDs regardless of case variations.
- User IDs that are automatically added by PEP itself remain case-sensitive
- #1341: This (1.6) release is functionally identical to release 1.5. The increased (minor) version number prevents software upgrades from failing
if/when a hotfix is needed. See https://gitlab.pep.cs.ru.nl/pep/core/-/issues/1341#note_55814 .
Release 1.5 (started 2025-09-01):
- #2638: Added `--export` option to `pepcli pull` which does a basic export to json or csv after downloading the data.
- #2320: Section 4 "Data Access" of Design Document updated
- #366: Replaced networking code to make it more maintainable.
- #2682: It is now possible to make authserver_apache request certificates from Let's Encrypt, without having to use an external ACME client (such as acme.sh)
By default this is not enabled, so projects should not directly be affected by this.
This change did include a rename from the conf-available directory into conf-enabled. This makes it possible to add configuration to
the conf-available directory, which will not be automatically enabled. You can enable it at a later stage, e.g. in a CI job or manually.
- #2656: The "pepcli pull" command now also deals with unknown files and (sub)directories in the download directory, which
can a.o. prevent (resumed) downloads from failing because "Data storage path already exists".
- #2732: Corrected documentation links displayed by "pepcli [...] --help".
MANUAL CHANGES REQUIRED:
- As per verbal instruction by @smeis: redeploy the `pep-release` VM.
- ops#229: Where applicable:
- change the lines `"id_file": "../../dtap/keys/buildservers-linux-update"` to `"id_file": "$GITLAB_GROUP_CI_BUILDSERVERS_LINUX_UPDATE_KEY_FILE"`
and `"id_file": "../../dtap/keys/buildservers"` to `"id_file": "$GITLAB_GROUP_CI_BUILDSERVERS_KEY_FILE"`
- config/<env>/constellation.json (for all <env>s)
- in ppp-config
- in hb-config
- in op-config
- in ops
- in nolai/sandbox
- in nolai/maichart
- in nolai/hhair
- and merge changes to all branches during normal release process.
- core!2225: In core/ci_cd/pep-project-ci-logic.yml, in branch master, change the values of the variables:
MACOS_LEGACY_ASSESSOR_APPCAST_PATH, MACOS_LEGACY_CLI_APPCAST_PATH and MACOS_LEGACY_DOWNLOAD_TOOL_APPCAST_PATH to the values
of the non-legacy variant of the variable, namely:
`MACOS_LEGACY_ASSESSOR_APPCAST_PATH: macos/Universal/update/app/AppCast.xml` to `MACOS_LEGACY_ASSESSOR_APPCAST_PATH: macos/Universal/update/assessor_app/AppCast.xml`
`MACOS_LEGACY_CLI_APPCAST_PATH: macos/Universal/update/cli/AppCast.xml` to `MACOS_LEGACY_CLI_APPCAST_PATH: macos/Universal/update/cli_app/AppCast.xml`
`MACOS_LEGACY_DOWNLOAD_TOOL_APPCAST_PATH: macos/Universal/update/dt/AppCast.xml` to `MACOS_LEGACY_DOWNLOAD_TOOL_APPCAST_PATH: macos/Universal/update/download_tool_app/AppCast.xml`
- #2682: For all environments (except review) the conf-available directory needs to be renamed to conf-enabled. This change should already be in the master branch of all project repo's.
Make sure that these changes are merged forward, when deploying the release.
- ops#367: Migrate master branch to main branch for all project config repo's.
Release 1.4 (started 2025-07-01):
- #2434: Added command "pepcli export csv".
This command can be used to convert the results of a previously issued `pepcli pull` command to CSV.
The CSV file can then be imported into any external application that accepts this format,
such as a spreadsheet editor.
- #2618: Added command "pepcli export json".
Similar to "pepcli export csv", but creates a JSON file instead.
- #2579: The output for "pepcli token block" family of commands has changed.
All subcommands that produce a table in the output now use proper CSV formatting. The differences from the old output
are as follows:
- Individual fields are now surrounded by double quote characters (")
- Double quote characters (") *within* individual fields are properly escaped
- The delimiter between fields has changed from a comma (,) to a semicolon (;)
The following subcommands are affected by this change:
- "pepcli token block list"
- "pepcli token block create"
- "pepcli token block remove"
- The minimum supported macOS version is now 13.3 (Ventura) instead of 11.0. Older versions are not supported by Apple anymore. In exceptional cases, one can still use the PEP Docker image.
- #1642: The user and usergroup storage has been moved to the access manager. On startup, as long as the authserver has a StorageFile entry in its config, and the file exists,
it will send a migrationRequest to access manager. When migration finished successfully, authserver will log:
Migration successful
If migration has already happened, access manager will raise an error. If you know that migration has already happened, you can ignore the error:
Cannot perform userDb migration. There is already user data in the storage
as well as:
Error (handling Access Manager Listener): Unsupported message type <UNKNOWN MESSAGE TYPE: 1397836905>
After successful migration, and if you have verified that interactive login still works,
please remove the StorageFile entry from the authserver config, so it will stop attempting to migrate.
When access manager's storage has been backed up by the hosting partner, you can ask the hosting partner of the authserver to remove the authserver storage file.
Authserver now needs an AccessManager endpoint in its configuration. At the time of this release, this should already have been added
to all projects maintained by the PEP-team. But if I missed anything, you may get an error:
Dynamic exception type: boost::wrapexcept<boost::property_tree::ptree_bad_path>
std::exception::what: No such node (AccessManager)
- ops#85: An ExplicitKey TrustEngine is configured in Shibboleth, as advised by Shibboleth: https://shibboleth.atlassian.net/wiki/spaces/SP3/pages/2065335693/ReleaseNotes#3.4.1.1-(February-8%2C-2023)
- #2351: Add first version of column, column group, and participant group metadata, see the `pepcli structure-metadata` command.
- Storing encrypted or bound metadata via the command line is disabled, for the time being
MANUAL CHANGES REQUIRED:
- #1642: Before upgrading: create an Access Administrator token. That way, if migration is unsuccessful, we'll still have access admin access to set things straight.
After/during upgrading: check the logs of Access Manager and Authserver if migration was successful. See above for details.
After upgrading: remove StorageFile entry from the authserver config file, and deploy the servers with updated config.
Release 1.3 (started 2025-02-11):
- #2553: The "pepcli ping" command no longer fails for servers that sign their responses (i.e. all except Key Server).
- #2565: Removed (support for) unused configuration setting.
- #469: Users can now postpone updates to PepAssessor. A warning popup is provided when the user tries to login
using an outdated version of PepAssessor.
- #2088: Replaced outdated Mbed TLS 2.x library by OpenSSL, which was already (also) used in PEP.
- #2548: Access Manager server no longer crashes if user specifies a filter when running `pepcli ama query`.
MANUAL CHANGES REQUIRED:
- #2565: Remove any "ListenAddress" settings from server configurations.
Semver retrofitting (started 2025-02-05):
- #2558: The PEP development team now maintains separate branches for every release (major+minor version) of the
software. Projects can/should be based on a specific release version.
MANUAL CHANGES REQUIRED:
- #2558: In every project repository, edit the `.gitlab-ci.yml` file in all branches. If it `include`s prefab CI
file(s) from the `pep/core` and/or `pep/ops` repository, update the `ref` of those `include` directives: replace the
hard-coded `release` by `release-X.Y`, where `X` is the major version and `Y` is the minor version of the PEP software
that your project is based on. If you last upgraded your project after 2024-12-17, this will most likely be 1.2.
Release 1.2 (started 2024-11-26; finalized 2024-12-17):
- PEP Command Prompt now displays project & environment and if the last command was successful.
- In the pepcli command `asa token request` the names of some positional arguments were changed.
This only affects how the parameters are displayed in the help text.
- parameter 2: renamed from "group" to "user-group".
- parameter 3: renamed from "expiration-time" to "expiration-unixtime".
- #2357: Token blocking functionality:
- Keyservers can be configured to maintain a blocklist via their json config files.
This is done by setting the "BlocklistStoragePath" property to the desired location for the blocklist data.
The blocklist is optional and the server will run without a blocklist when the property is not set.
- Added new pepcli commands to manage blocked authentication tokens:
- `pecli asa token block create` - to add new blocking rules
- `pecli asa token block remove` - to remove existing blocking rules
- `pecli asa token block list` - to list all existing blocking rules
- #2505: PEP applications no longer produce duplicate logging for
- unexpected headers received from S3 servers.
- incompatible remote software versions attempting to establish a network connection.
- #2494: PEP Assessor no longer scrolls automatically after editing a participant('s personalia).
- #2490: Reduced level ("importance") of log message about the number of worker threads, by default preventing that
message from showing up in the console.
- #2507: AccessManager no longer errors on a column access query when no access is granted.
The filters now have optional vectors to distinguish between a non set filter (do not filter, return everything) and a
vector set to be empty (filter everything, return nothing)
- #567: Changed serialization of the user certificate for the derivation of the private key. Enrollment done with the old
version of PEP is not compatible with the new version. This means that a user has to run pepLogon again, or provide a token.
They will get a warning about this, similar to when there is no ClientKeys.json, or ClientKeys.json has expired.
- #2486: Fixed outrageous bugs in the pepDumpShadowAdministration application.
- #2513: Working in docker, it is no longer necessary to include the client-working-directory as a pepcli parameter. Instead, it is now given as a environment variable named PEP_CONFIG_DIR, defaulting to "/config".
It can still be overridden by manually setting the environment variable, or including the --client-working-directory in the pepcli command.
If neither the --client-working-directory switch nor environment variable are set, the client working directory will default to a platform
specific value, being:
- MacOS: directory-of-the-executable/../Resources
- other platforms: directory-of-the-executable
- #1212: The serialization of local pseudonyms and polymorphic pseudonyms in the Access Manager storage is changed.
Access Manager will automatically convert the existing entries in the database.
- #2472: Users can no longer use the login button multiple times in PEP Assessor (after which the application would
terminate).
- #2088: The X509Certificates constructor now ignores any DER input, only certificates in PEM format will be read.
Certificate chains can however now contain text before the leaf certificate, for example as a comment.
- #2190: Improved user notification from Windows GUI applications:
- To prevent applications from seemingly doing nothing, notifications are now (by default) displayed in a message box
instead of being sent to stdio, where they are likely to go unnoticed.
- Message box notifications are now also sent to stdio, allowing piping and redirection to pick them up.
- Users are now made aware that piping and redirection don't work when using the --bind-to-console switch.
- ppp#127: During ticket requests, Transcryptor now performs its work in batches (instead of one fell swoop), keeping
the server more responsive for other clients.
- ppp#127: Transcryptor now caches its checksum chain values (which are used in monitoring), allowing them to be
retrieved and updated more quickly, freeing up Transcryptor for other requests.
- #2422: Added the "pepcli file-extension list" command.
- #2458: Software releases are versioned semantically starting from this (1.2) release.
MANUAL CHANGES REQUIRED:
- #2513: Inform users that the --client-working-directory switch is no longer required.
- #1212: The access manager will create a backup of accessManagerStorage.sqlite to accessManagerStorage_before_lp_and_pp_reserialization.sqlite.
If this fails for some reason (e.g. not enough space, or the backup file already exists), access manager will exit with
an error. So check the logs for any errors, especially if the access manager does not come online.
After the release, if there is a checksum chain error for the access manager, specifically in the chains
"select-start-pseud", "select-start-pseud-v2", "participant-group-participants" and "participant-group-participants-v2",
this is probably because the conversion has gone wrong. In that (unlikely) case: roll-back the release, or at least
the changes from #1212, and restore the backup.
When we are confident that the release has gone to plan, the backup file can be deleted by C&CZ.
- #2217: Instead of combined with the watchdog in the pep-monitoring image, the watchdog-watchdog image is now built as
a separate docker image. When releasing, the release vm should be redeployed so that the correct image is pulled.
Afterwards, check whether all services are running smoothly.
- #2357: Edit the KeyServer.json file for your environment and add a node reading
"BlocklistStoragePath": "/data/TokenBlocklist.sqlite"
Verify (with the hosting partner) that this file is included in the backup.
- #567: Remove Watchdog's `secrets.json` file to force it to re-enroll, preventing "message authentication failed"
errors when using old (incompatible) enrollment data.
Release (started) 2024-08-06:
- #2324: More warnings have been enabled for GCC/Clang.
- #2339, #2347, #2348, #2349, #2366: Performance improvements.
- #2270: This repo now references Docker images from a specific commit of docker-build, making it possible to change images without affecting existing code. docker-pepservices-core is merged with docker-build and will become obsolete.
- #2250, #2403: We now use C++20, and download & build dependencies via Conan. This also means that a lot of dependencies have been updated. For RxCpp, we are on the latest (unreleased) version, which offers a great performance benefit. Dependencies for Linux are now built in docker-build, and are automatically updated to newer versions in the weekly build. Working versions are automatically pinned using a lockfile. This repo is automatically updated when docker-build is updated. This way, any (security) fixes are automatically incorporated into the build in this repo.
- #2269: Improved the output of `pepcli asa query`:
- The output of the command is now displayed differently:
- The names for each group of displayable data and corresponding filter options were changed to be more accurate:
- "Groups" and `--script-print groups` were changed to
"All User Groups" and `--script-print all-user-groups`.
- "User Groups" and `--script-print user-groups` were changed to
"User Groups per Interactive User" and `--script-print user-groups-per-user`)
- The output now uses standardized formats. The exact format can be selected with a new, optional, commandline parameter '--format'.
The options are:
- `yaml` (default): Use YAML formatting, which is very reader friendly.
- `json`: Use JSON formatting.
- #2211: Pipelines now produce a .app of pepcli + peplogon, and a .app of pepAssessor, for use on MacOS.
- #1933
- Columns can now be separately configured to require pseudonymisation and/or
a directory as input. Using the pepcli store command with the flag "--input-path",
the given path should lead to a directory, single files are then not accepted.
- #2337: PEP no longer produces errors when attempting to download cells
for which no (data payload) page has been stored.
- #2367: It's no longer possible to "pepcli delete" an empty cell, i.e. one
into which no data has been stored or that has already been deleted.
- #2401: Added more unit tests.
- #2443: PEP Assessor now works correctly when a dark theme is enabled, while the text used to be barely readable in this case.
- #2272, #2280, ops#217, ops#218: Most obsolete images/packages/branches are now deleted weekly automatically.
- #2429: ATL is not required anymore to build on Windows. Windows builds should now properly support unicode when interacting with the OS.
- #2442: Removing column-groups is blocked when there are associated columns or access rules to that group.
The "--force" flag will override this blockage and remove the column-group, all column connections and all access rules.
The same goes for participant-groups.
MANUAL CHANGES REQUIRED:
- #2413: Wikis are migrated to the repository and published to GitLab Pages,
located at <https://docs.pages.pep.cs.ru.nl/public/> and
<https://docs.pages.pep.cs.ru.nl/private/>. After releasing, remove the
redundant "include" of "gitlab-pages-ci.yml" (marked by a comment) from
.gitlab-ci.yml in project repos. This change has already been applied to the
"acc" branches of several project repositories.
- #1933
- Change the global configuration of the running projects. Speak with the Data Administrators on which columns have which specifications.
- Configurating a column is done in the "accessmanager/GlobalConfiguration.json" file in the `column_specifications` section:
- Remove all `"plain_directory_pseudonymisation": {}` lines.
- If pseudonymisation is required, keep the `"associated_short_pseudonym_column"` line,
if not, remove it.
- If a directory input is required, add the line `"requires_directory": true`
example:
"column_specifications": [
{ "column": "OnlyPseudonymise",
"associated_short_pseudonym_column": "ShortPseudonym.OnlyPseudonymise",
},
{ "column": "OnlyDirectory",
"requires_directory": true
},
{ "column": "BothPseudoAndDir",
"associated_short_pseudonym_column": "ShortPseudonym.BothPseudoAndDir",
"requires_directory": true
}
]
- Verify that documentation links are correct, e.g. from `pepcli --help`.
- ppp#126: In ClientConfig.json for all project environments, if there's a
"Castor.BaseURL" setting, update its value to
"https://data.castoredc.com/studies/%1/participants/%2/visits"
Quickfix 2024-03-11:
- #2300: Improved "pepcli file-extension" commands:
- Commands no longer fail due to network messages getting too large.
- Improved performance.
- Added "--report-progress" switch that outputs percentage done and
time remaining.
Quickfix 2024-03-05:
- #2315: Storage Facility no longer uses a fixed-size memory block to store
entries, allowing the number of entries to grow larger than before.
Quickfix 2024-02-14:
- #2303: The "pepcli query column-access" command no longer lists columns that
have been removed.
- #2301: Metadata updates (such as file extension assignments) no longer cause
cells to become unreadable when the previous cell version was stored using a
legacy encryption scheme.
Quickfix 2024-02-08:
- #2301: Metadata updates (such as file extension assignments) no longer cause
cells to become unreadable when the previous cell version was stored using a
legacy encryption scheme.
Release 2024-01-04:
- #2109: The VisitAssessor columns are now exportable through the PEP Assessor
application.
- #1917: Pipelines now produce a Flatpak of pepcli, pepLogon and pepAssessor,
for use on Linux
- #2218: The "pepcli ama group auto-assign" command now sends its output to
stdout instead of stderr.
- #2235: If an error occurs before pepAssessor can show its GUI, the application
now displays a box containing the error message instead of terminating without
notice.
- #2227: Tab autocompletion is now available for options of PEP command line
tools such as pepcli on bash, zsh, and powershell/pwsh. See
/autocomplete/README.md for instructions. In the Windows installer the PEP
command line prompt now uses Windows Powershell and has a default working
directory of ~/Downloads instead of `%LOCALAPPDATA%`. Note that there are some
differences between Windows PowerShell and Command Prompt (cmd.exe), including
that Windows PowerShell prepends a Byte-Order Mark to files it creates,
such as when redirecting output to a file with `>`. If this poses a problem,
one can always switch back by typing `cmd`.
- ops#111: It is now possible to configure multiple authentication sources for
an environment. e.g. Google as well as SURFconext.
- nolai#3: To make it easier to track down misconfiguration, Watchdog now
reports missing configuration settings rather than sending invalid requests to
PEP servers to have the problem detected there.
- #2215: Added "pepcli query token" command, which reports details on the
specified "--oauth-token".
- #2225: Access Manager now also reports the implicit "*" participant group as
accessible to Data Administrator. This a.o. fixes failure to retrieve (all)
data when Data Administrator invokes "pepcli pull --all-accessible".
- #2034:
- File extensions can now be stored alongside PEP data by specifying a
"--file-extension" when invoking "pepcli store". If "pepcli store" is
invoked without the "--file-extension" switch but with an "--input-path" (or
equivalently an "--input-file" or "-i"), the extension of the input file is
automatically stored with the data. Specify an empty string to prevent this:
--file-extension ""
- Data that has already (previously) been stored into PEP doesn't need to be
re-uploaded to assign a file extension. Instead an extension can be assigned
retroactively by invoking "pepcli file-extension assign". Cells in well-known
(predefined) columns can be automatically assigned the correct extension by
invoking "pepcli file-extension auto-assign".
- Apart from file extensions, metadata in general can also be updated without
uploading new (payload) data. Use the "pepcli store" command's
"--metadata-only" switch to do so. In this case, the "--file-extension"
switch can be used to assign a file extension.
- Data downloaded using "pepcli pull" will automatically be saved to files
whose names include the extensions stored in PEP. This can be prevented
by means of the "--suppress-file-extensions" switch.
- When invoking "pepcli pull --update", behavior depends on the download
directory:
- if the download was originally performed by an older PEP version (that
didn't support file extensions) or with the "--suppress-file-extensions"
switch, then no file extensions will be applied.
- if the download was originally performed by this or a later PEP version
(that does support file extensions) and the "--suppress-file-extensions"
was not used, then files will be renamed in the download directory
(without re-downloading the cell contents) if the cell has been assigned a
(new) file extension in PEP.
- ops#108: Authserver now runs a cron-job to automatically download SURFconext metadata every week.
This accomodates the certificate rollover that will happen at SURFconext.
- #1689: Windows 10 is now the minimum supported Windows version.
MANUAL CHANGES REQUIRED:
- ops#111: Merge https://gitlab.pep.cs.ru.nl/pep/ppp-config/-/merge_requests/72 during PPP release
and https://gitlab.pep.cs.ru.nl/pep/hb-config/-/merge_requests/10 during HB release.
Make sure that you test the interactive logon. On acc and prod this should just work as normal.
On master and stable you get an extra screen where you can choose the authentication provider.
- ops#14: deal with ops-related services that have moved to the pep-release VM:
- Update prod watchdog configuration's `watchdogWatchdogUrl` setting:
change `master` to `release`.
- Once all `prod` environments are running updated configuration, remove port
8083 forwarding from the `master` environment's nginx configuration: see
https://gitlab.pep.cs.ru.nl/pep/ops/-/blame/master/config/master/nginx/etc/nginx.conf#L36
- #2034:
- Inform users that "pepcli pull" may/will produce files that include a file
extension.
- Coordinate the release with data administrators to have them assign file
extensions ASAP after deployment:
1. Grant data admins "write-meta" privileges on all column groups.
2. Have data admins invoke "pepcli file-extension auto-assign".
3. Have data admins invoke "pepcli file-extension assign" for "all" columns.
4. Revoke "write-meta" privileges from data admins.
- #2034: Provide additional/sufficient disk space on Storage Facility. See e.g.
https://gitlab.pep.cs.ru.nl/pep/ppp-config/-/issues/97 .
Release 2023-07-12:
- #2184: Users can now add the --all-accessible flag to their pull command,
instead of explicitly stating which columngroups and participants they would
like to download. The server will look up to which data the user has access
and provide it all.
- #2090: The PEP Assessor application now shows its buttons wrapped. So instead
of the user having to use the horizontal scrollbar because the buttons go out
of frame, now the buttons that didn't fit appear on a new row.
- #2165: Program no longer crashes when using the "--answer-set-count" switch
with the "pepcli castor" commands "list-import-columns" and/or
"create-import-columns".
- #2146: Castor integration uses new API endpoints instead of the ones that have
been deprecated.
- #2158: Replaced default behavior when Windows applications (such as
pepAssessor) are started from a command prompt. They used to write their stdio
output to the console unless "--no-console-binding" was specified. Now they
don't write their output to the console unless the "--bind-to-console" is
passed.
- #2161: Added the new "read-meta" access type to column groups. Privileges can
be granted just like with the "read" and "write" access types that already
existed. Holders of only the "read-meta" privilege can retrieve information
*about* cells (such as whether they contain data and when those data have been
uploaded), but the "read" privilege is still required to access the *content*
of those cells.
- Having "read" access to a column group grants implicit "read-meta" access to
that column group.
- Data Administrators have implicit "read-meta" access to all column groups,
so they can perform the following actions without requiring explicitly
configured access:
- counting data points using "pepcli list --no-inline-data".
- retrieving cell history using "pepcli history".
- The "pepcli query column-access" and "pepcli ama query" commands only list
"read-meta" access that has been explicitly configured. (Both commands do
provide a help text blurb about implicitly granted access.)
- #2173: (Most) external libraries are now linked dynamically on Windows
platforms. The installer deploys the required DLLs to the installation
directory; users should notice no difference with the old (statically linked)
approach.
- #2168: Added the ability to create a new row with a generated PEP ID,
without entering data for the ParticipantInfo column.
You can do this by using the "pepcli register id" command in
the pepcli. It returns a participant ID, which is a cryptographically random
identifier.
- #1348: Builds in project repositories now produce an Apptainer/Singularity
image on the basis of the "client" Docker image. Image files are called
"client.sif" and are published for download on the PEP Website, e.g. at
- https://pep.cs.ru.nl/ppp/acc/client.sif
- https://pep.cs.ru.nl/ppp/prod/client.sif
- https://pep.cs.ru.nl/hb/acc/client.sif
- https://pep.cs.ru.nl/hb/prod/client.sif
- https://pep.cs.ru.nl/nolai/acc/client.sif
- https://pep.cs.ru.nl/dtap/master/client.sif
- https://pep.cs.ru.nl/dtap/stable/client.sif
Note that these images are provided "as is". The PEP team does not provide
support for Apptainer/Singularity, nor for (problems arising from) running the
PEP software from an Apptainer/Singularity container.
- #2107: PEP now uses a newer OpenSSL API for SHA-2 hashing instead of
deprecated functions. Also authentication no longer fails on (newly installed)
Windows machines that lack the root CA certificate for auth server's HTTP
endpoints.
- #2171: Networking no longer (1) logs error messages twice or (2) counts
unhandled read exceptions twice.
- #2159: Castor import now uses endpoint(URL)s that produce more data per call,
improving performance because
- fewer calls are needed in total, and consequently
- the Castor API's request rate limit isn't reached quite as often.
- #1478: Retrieval of metadata and payload data now requires two individual
calls to Storage Facility. This simplifies Storage Facility's API as well as
client side processing of returned messages.
MANUAL CHANGES REQUIRED:
- #2184: Inform users of the --all-accessible flag of the cli pull command.
- #2146: In the GlobalConfiguration.json file:
- change the names of "institute_abbreviation" nodes to "site_abbreviation".
- change the values of "study_type": "REPORT" nodes to "REPEATING_DATA".
- #2134: Some changes where made in the CmakeList.txt files of master in ops,
ppp-config and hb-config. Make sure that in ops master is merged into stable,
and in ppp-config and hb-config, master is merged into acc.
Release 2023-03-15:
- #2131: When the version of PEP binaries is printed (e.g. on application
startup or when running `pepClientTest 5`), the reference (branch) name is no
longer included in the output to e.g. prevent release versions from reporting
themselves as having been built for a feature branch.
- #2130: The "pepcli pull" now issues progress notifications (to stdout) if the
new "--report-progress" switch is passed.
- #2033: The "pepcli list" now shows the total count of cells with data in them.
- #1059: The "pepcli pull" command now uses the (shorter) participant alias
instead of the (longer) local pseudonym as the name for participant
directories. Existing download directories can be converted to the new format
by running "pepcli pull update-pseudonym-format".
- #2147: Storage Facility now detects when (incoming) data isn't written to disk
correctly, preventing state corruption and data loss.
- #2149: Fixed occasional faulty segmentation of incoming HTTP data, which a.o.
resulted in Castor import failure.
- #2153: The "pepcli ama group removeFrom" command now actually removes
participants from (participant) groups instead of adding them.
Hotfix 2023-02-09:
- #2136: Instead of terminating with an error, Castor import now waits and
retries if it hits Castor's request rate limiting ("throttling").
Release 2023-01-10:
MANUAL CHANGES REQUIRED:
- #2087: Notify users of existence of pepcli ... store ... --resolve-symlinks
flag. Adding this will explicitly allow symlinks to be resolved. Without this
flag, whenever symlinks are found, a runtime error will be raised and the
process terminated.
SOFTWARE CHANGES:
- #2087: Added --resolve-symlinks flag "pepcli store" command:
- flag is converted to a boolean and passed to the pseudonymiser.
- The pseudonymiser checks each path and when a symlink is found but the flag
is not set, a runtime error is raised.
- #2091: In all cmakelists of external projects a newly required parameter
DOWNLOAD_EXTRACT_TIMESTAMP is added.
- This is required from cmake 3.25 onwards.
- Older versions (<3.23) do not accept this parameter, therefore the
addition of the parameter is conditional on the cmake version
(pep-paths.cmake ln.24)
- #1912: Upon startup, Storage Facility now logs the number of file store
entries and the time taken to load them.
- #1763: Synchronization of production data to the acceptance environment
("data synchronization") is now based on (project specific) configuration
rather than being hard-coded against the PPP situation. The PPP project's
configuration has been updated to make their data sync work with the new
approach. The synchronization jobs are now available in "acc" pipelines rather
than being bound to a separate branch. Other projects can use the
configuration-based approach to also support data synchronization, but a bunch
of manual work will still be needed in every such project to get things to
work.
- #2071: Programs now produce additional help text when it looks like a user
tried to pass a literal asterisk as a command line parameter but the shell has
globbed it to a list of file names.
Hotfix 2022-11-14:
- #2089: Results of "pepcli ama query" are split over more parts to prevent
network messages from becoming too large.
Release 2022-09-22:
MANUAL CHANGES REQUIRED:
- #1791: Notify users of breaking changes in command line argument processing:
- switch values must be explicitly provided: implicit values are no longer
supported. Only "pepcli get"'s "--output-file" (-o) and "--metadata" (-m)
switches are affected: pass a "-" value to these for old behavior.
- switches for parent commands must be specified *before* any sub-command.
- positional parameters can no longer be specified with a "--named-switch"
announcer.
- #2006: In the pep/play-config repo, merge `2006-aa-logon` into the `acc`
branch. Then use "pepcli asa" to
- create group "Access Administrator"
- add user "accessadmin@play.pep.cs.ru.nl" to group "Access Administrator"
- add user "multihat@play.pep.cs.ru.nl" to groups
- "Access Administrator"
- "Data Administrator"
- "Monitor"
- "Research Assessor"
- remove any remaining "triplehat@..." users.
- #1943: In project repositories, remove any remaining "BartenderPath" settings
from ClientConfig.json files.
- #2076: Notify users that pepAssessor's software upgrade may fail due to faulty
(checksum) validation of the new installer. If so, advise to download and
install by hand.
SOFTWARE CHANGES:
- #2005: Added switches to the "pepcli asa token request" command:
- "--json" to produce output in JSON format.
- "--expiration-yyyymmdd" for a more user friendly input format.
- #2006: Added logon ability as Access Administrator to test versions of IDP and
auth server.
- #1992: Prevented "Query out of scope of provided Ticket" error when requesting
data for empty column group(s) and/or empty participant group(s).
- #2008: Windows (console) applications now process Ctrl+C quicker, preventing
them from doing (too much) stuff while they're being torn down.
- #1791: Command line arguments are now processed consistently across
executables and (sub-)commands. All (published) commands and executables now
support the "--help" switch. Some corner cases are no longer supported:
- switch values must be explicitly provided: implicit values are no longer
supported. Only "pepcli get"'s "--output-file" (-o) and "--metadata" (-m)
switches are affected: pass a "-" value to these for old behavior.
- switches for parent commands must be specified *before* any sub-command.
- positional parameters can no longer be specified with a "--named-switch"
announcer.
- #1943: The location of the Bartender sticker printing application is no longer
configured within PEP. First-time users will be prompted to locate the
application themselves.
- #1764: Cells can now be cleared in the PEP storage: use the "pepcli delete"
command to do so. Downloading will then no longer produce data for cell that
are thusly cleared (but PEP will retain a historical copy of the previous
data).
- #2036: The "pepcli list" command no longer supports the "--non-canonical"
switch that allowed Data Administrator to retrieve all versions of a cell's
contents. Cell histories including deletions can now be retrieved using the
new "pepcli history" command.
- #2055: The `pepcli castor create-import-columns` command now also ensures
that pre-existing (e.g. manually created) import columns are added to the
`Castor` column group. The same applies to the
`pepcli castor list-import-columns` command when using the `--remaining`
switch.
- #2060: Interactive logon now produces an error message when OAuth token cannot
be retrieved because no usable (Open)SSL library is found.
- #2074: Fixed download corruption when using "pepcli get" on Windows systems.
- #2076: Fixed faulty checksum validation on installers downloaded by
pepAssessor's software update mechanism. Since the fix won't be available
until this new version is deployed onto target machines, users may need to
(download and) install the new version by hand.
Rushed mini-release 2022-08-24:
- #2068: The pepAssessor GUI now supports sticker printing for short pseudonyms
that are associated with the participant (i.e. appear in the left part of the
window).
Release 2022-04-06:
MANUAL CHANGES REQUIRED:
- #1569: Inform Data Administrators of the addition of the
"pepcli ama group auto-assign" command.
- #1475:
- Grant (*nix/Docker) users access to appropriate Docker image registries.
- Have HB's hosting partners update Docker image locations.
- Have users upgrade to new version of client software.
- #1982: Inform Data Administrators of the addition of the
"pepcli register ensure-complete" command.
SOFTWARE CHANGES:
- #1569: Added "pepcli ama group auto-assign" command, which assigns all
non-test participants to groups named "all" and (if study contexts are used)
"all-<studyContextName>". Participants will also be removed from groups if
they become test participants or have been removed from a study context. Also,
empty "all" and "all-<studyContextName>" groups will be removed. The command
accepts --mapname switches to translate study context IDs to different group
names. E.g. --mapname "pom=ppp" will assign participants of study context
"POM" to participant group "all-ppp" instead of "all-pom".
- #1946: The "pepcli query participant-group-access" now also works for users in
the "Data Administrator" role, who have implicit full access to all
participant groups. The "pepcli ama query" command does not list these access
privileges, but now issues a notification about them.
- #1950: Directory pseudonymization (e.g. when uploading MRI data) now raises an
error if the directory contains a symbolic link, to prevent users from
uploading data they didn't intend to upload.
- #1475: Project setup, build procedure, and publication strategy has changed.
Users must perform manual actions to migrate to new situation.
- #1982: Added "pepcli register ensure-complete" command, which ensures that
participant records have a complete set of short pseudonyms.
Release 2022-02-17:
MANUAL CHANGES REQUIRED:
- #1918: For all environments: the directory authserver_apache/etc/httpd/conf.d
needs to be renamed to authserver_apache/etc/apache2/conf-available
this has been done for the environments that have their config in pep/core,
but needs to be done for all acceptance and production environments
- #1545: When upgrading from a previous release, the "PEP Command Prompt" start
menu entry may disappear or not (re-)appear. In this case, try "repair"ing the
installation in Control Panel -> Programs -> Programs and Features.
Uninstalling and reinstalling should also fix things.
SOFTWARE CHANGES:
- #1832: Removed support for the unused "TokenFile" ClientConfig setting.
The pepLogon and pepcli utilities now (read and) write token files to the
working directory, preventing failure when ClientConfig.json is located
on a read-only file system.
- #1545: The "PEP Command Prompt" start menu entry is now displayed for all
installed PEP flavors.
- #1564: The pepAssessor UI can now also edit participant data when no
personalia (name and DoB) were previously stored.
- #1616: Improved error message when a Castor study cannot be found for
a specified (e.g. configured) slug.
- #1838: Fixed a bug where the last entry in an MRI directory was not correctly
closed and hashed. This solves Martin Johanson's problem of 'pepcli pull --update'
saying that files were changed, even though they were not.
- #1119: Watchdog will now check authserver as well. Some config changes for the
watchdog are required for this. During release, you will have to merge the branch
`1119-make-watchdog-check-authserver` in ppp-infra/ops and hb-config repositories
into (hb_)acc and (hb_)prod branches. Play-config is already updated, but this is not
yet possible for HB and POM.
This change also upgraded CentOS, used as the base for the authserver_apache images,
from version 7 to version 8. This should not cause any problems.
- #1892: Replaced pepcli's "validate-data" command by "validate <aspect>" command,
which supports sub-commands:
- "pepcli validate data" validates data stored in PEP (what "validate-data" did).
- "pepcli validate pseudonym <value>" validates pseudonym validity.
The <aspect> defaults to "data", so calls to "pepcli validate-data" should be
replaced by either "pepcli validate" or "pepcli validate data".
- #1918: authserver_apache image now uses Ubuntu instead of CentOS
- #1891: Path to Bartender sticker printing application can now be (re-)configured
on machines running pepAssessor application.
- #1923: Data Administrator can now access any participant group without needing
explicitly granted privileges.
Release 2021-10-01:
MANUAL CHANGES REQUIRED:
- #1722: For PPP/POM client software installed on Windows, uninstall PEP and
run the new installer by hand. If the (pre-filled) default installation
directory is not (a subdirectory of) "C:\Program Files":
- Cancel the installation.
- Start Registry Editor (regedit.exe) from an administrative account.
- Find registry key "HKLM\Software\Radboud University\PEP (<your-flavor>)".
Note that you need the key under HKLM, not the one under HKCU.
- Delete value "InstallLocation" (or the entire key).
- Start the installation again.
The new installation attempt should now default to (a subdirectory of)
"C:\Program Files". Leave the location at its default.
After installation, delete any shortcuts that were previously manually
created (or update them to the new installation location).
- #1780: Instruct users to invoke PEP (command line) applications from a
writable directory, e.g. starting their shell by means of the
"PEP Command Prompt" shortcut.
- #1353: Notify users that the ordering may have changed in the browser's
role selection combo box.
SOFTWARE CHANGES:
- #1639: When importing REPORTS data from a Castor study, no (empty JSON) data are now
stored for records that contain no reports.
- #1686: The "--xml-structure-file" switch is no longer available (or needed) for
"pepcli castor list-import-columns" and "pepcli castor create-import-columns".
- #1684: Added ability to list (without creating them) those Castor import columns that
remain to be created. Use one of
- pepcli castor list-import-columns --remaining
- pepcli castor create-import-columns --dry
- #1310: Screen no longer blanks in pepAssessor after short pseudonym lookup failure.
- #1700: When using the `pepcli list` command with the `--ticket-out` switch, ticket
files no longer get corrupted under Windows.
- #1615: The "KeysFile" setting is now mandatory in ClientConfig(.json) files.
- #1722: Windows installer now defaults to installation under "C:\Program Files"
instead of "C:\MyPrograms". Installer for PPP/POM also creates a pepAssessor
shortcut in "C:\Research", from where RadboudUMC's policy copies it to users'
start menus.
- #1699: The "pepcli list" command can now be invoked with "--inline-data-size-limit 0"
to prevent any data from being inlined.
- #1646: Enrollment details can now be inspected using "pepcli query enrollment".
- #1705: Removed outdated "pepcli pseudonymise" command.
- #1735: Warnings are now issued when retrieving data using the "pepcli list"
and/or "pepcli get" commands. Users are urged to use "pepcli pull" instead.
- #1656: The printed overview is now translated to pepAssessor's UI language.
- #1618: When visit numbering is inappropriate, visit descriptions can now be
configured/overridden in ProjectConfig.json on a per-context basis. Short
pseudonym descriptions in UI and print overview now only contain a visit
description (or number) when they contain SPs for multiple visits.
- #1672: Fixed intermittent Registration Server deadlock during startup.
- #1693: Archived report instances are no longer imported from Castor.
- #1477: Only Data Administrator and Watchdog can retrieve non-canonical data anymore
(i.e. full item histories).
- #1784: The "Open participant" window in pepAssessor no longer assumes that participant
IDs are (a maximum of) 15 characters long.
- #1783: The "pepcli register" command no longer hangs when registration fails. Partial
record creation is also prevented under normal circumstances.
- #1780: Added a "PEP Command Prompt" shortcut to the Start Menu.
- #1786: The browser now shows an error page when authentication or authorization fails
instead of "You have been logged in".
- #1807: Prevented applications from failing when invoked using the environment's path.
- #1797: Applications now read ClientConfig.json file from the executable's directory,
and write ClientKeys.json file to the current working directory.
- #1353: For users belonging to multiple access groups, the HTML combo for role
selection now shows roles in deterministic order. Also improved markup
validity of that page and the one that displays logon status.
- #1828: Short pseudonym errata can now be defined in GlobalConfiguration instead of
program code.
- #1502: User pseudonym or local pseudonym can now be used with the '-p' flag of pepcli.
- #1648: Multiple participant groups can now be used in a single request.
- #1648: It is no longer possible to combine participant groups and specific participants in a single request.
Release 2021-03-09:
MANUAL CHANGES REQUIRED:
- #1645: we received a new sticker template for PPP, with the project label "POM" removed.
We cannot test this ourselves. Ask the person from POM who does the testing to verify
that the template is correctly updated.
SOFTWARE CHANGES:
- #1357: Improved performance of PullCastor import of survey data.
Release 2021-02-24: