Changes and required actions

Changes and required actions

Functional Area

Change or Additions

Considerations

Action timing,
Action required

Comments

Contact person,
Related JIRAs

Functional Area

Change or Additions

Considerations

Action timing,
Action required

Comments

Contact person,
Related JIRAs

Affected app or module

What has been changed or added that should be noted for this release

What challenges may arise related to this change or addition

When can the action be taken (before, during or after upgrade)?

If applicable, detail what action(s) must be taken here

Is this action required for the next release?

Name of user leaving comment: comment on what you encountered or ask a question @mention Contact person

User name of person that can provide additional detail.
Include issue link for bug fix, story or feature that applies

Deployment

AWS S3 URL endpoint validation is more picky in Poppy

If using Amazon S3: Only an officially supported Amazon S3 endpoint URL is allowed in the S3 URL environment variables of modules. Example:

Wrong: AWS_URL=https://s3-us-west-2.amazonaws.com/

Correct: AWS_URL=https://s3.us-west-2.amazonaws.com

Before upgrade change environment variables and secure store variables AWS_URLand S3_URL.

 

@Julian Ladisch 

https://folio-org.atlassian.net/browse/FOLS3CL-20

 

Deployment

Set SYSTEM_USER_PASSWORD environment variable for
mod-consortia
mod-data-export-spring
mod-dcb
mod-entities-links
mod-inn-reach
mod-pubsub
mod-remote-storage
mod-search

Module will fail on startup or when enabling a tenant if system user password is not set.

Consider setting a different SYSTEM_USER_NAME and a different SYSTEM_USER_PASSWORD for each module.

Before upgrade set environment variables/secure store variables.

The new password will be applied when migrating a tenant to the Poppy version of the module.

If changing the SYSTEM_USER_NAME from the default name or from the previous name the old system user still exists and must be manually disabled or deleted.

 

@Julian Ladisch 

https://folio-org.atlassian.net/browse/SECURITY-9

 

System wide

Refresh token support. Expiring token support. See the guide how to configure for more information.

Third party integrations that use non-expiring legacy tokens will need to be updated to use the new authn/login-with-expiry  token endpoint during the deprecation period of Poppy and Quesnelia. Within Poppy and Quesnelia both the legacy authn/login and new login endpoints will be supported.

Integrations that use the edge API are unaffected.

System operators can configure access and refresh token expiration (TTLs) as documented in the mod-authtoken READMEusing the new token.expiration.secondssystem property.

It is also possible to configure the token cookie SameSite attribute using LOGIN_COOKIE_SAMESITE environment variable. as documented in the READMEs of mod-login and mod-login-saml.

When the LOGIN_COOKIE_SAMESITE  attribute is not set, it defaults to the more restrictive Lax attribute.

For system operators who are not using the FOLIO front-end and wish take full advantage of the enhanced security of expiring tokens, there is a new system property legacy.token.tenants in mod-authtoken. This property affects the system state in three ways.

  1. When not provided or provided with a wildcard * character, all tenants are legacy token tenants.

  2. When provided, with a comma separated list of tenant ids, only those tenants will be legacy token tenants.

  3. When provided with an empty string value, no tenants will be legacy token tenants.

A legacy token tenant is a tenant for which a request to the legacy authn/login  endpoint will not return a 404. See the readme of mod-authtoken for additional details.

Follow instructions here for updating third party integrations and for configuration.

In Poppy, backend modules default to using the new authn/login-with-expiry endpoint which issues expiring tokens. Enabling the legacy token endpoint through configuration does not disable this new endpoint. It only has the effect of exposing the legacy endpoint to requests for a given tenant allowing for a smother transition for clients which currently depend on the legacy endpoint.

 

@Steve Ellis 

https://folio-org.atlassian.net/browse/FOLIO-3627

 

Password reset link (mod-users-bl)

Token in the reset password link expires early.

Ensure that mod-users-bl’s RESET_PASSWORD_LINK_EXPIRATION_TIME (default: 24 hours) does not exceed mod-authtoken’s token.expiration.seconds (default: 10 minutes)

Before or after upgrade

 

@Steve Ellis , @Julian Ladisch

https://folio-org.atlassian.net/browse/MODUSERBL-185

Inventory, SRS, Data import

Default MARC-Instance mapping updated to change multiple classification fields or repeated subfields within one classification field are handled

Libraries should review and decide: 

  1. If existing Instances should be refreshed against the updated map, so that all existing instances reflect these changes

See Update of mapping to correct handling of repeated classification fields and subfields for additional details.

Follow the instructions to update the mapping rules. 

Mandatory change. 

Note that any revised mappings will only apply to Instances created or updated via MARC Bibs after the map is updated. To refresh existing Instances against the current SRS MARC Bibs and current map, the library may consider running Script 3 described here: Scripts for Inventory, Source Record Storage, and Data Import Cleanup

 

@Ann-Marie Breaux (Deactivated) 

https://folio-org.atlassian.net/browse/MODDICORE-323

 

Inventory, SRS, Data import

Default MARC-Instance mapping updated to adjust punctuation handling for the 1xx/7xx contributor fields and for the $e/$j relator terms

If the library wants more name relator terms to be standardized, for searching and filtering, this update will help.

Libraries should review and decide: 

  1. If existing Instances should be refreshed against the updated map, so that all existing instances reflect these changes

See Update of mapping to adjust punctuation handling for 1xx/7xx contributors and $e/$j relator terms for additional details.

Follow the to update the mapping rules. 

Mandatory change. 

Note that any revised mappings will only apply to Instances created or updated via MARC Bibs after the map is updated. To refresh existing Instances against the current SRS MARC Bibs and current map, the library may consider running Script 3 described here: Scripts for Inventory, Source Record Storage, and Data Import Cleanup

 

@Ann-Marie Breaux (Deactivated) 

https://folio-org.atlassian.net/browse/MODDICORE-347

https://folio-org.atlassian.net/browse/MODDICORE-355

Data Import

This functionality enables libraries to reliably process large MARC 21 files through data import. When enabled, the system automatically splits large files into smaller parts, which are optimal for processing.

Data splitting functionality is currently an opt-in feature that is disabled by default and requires S3-compatible storage to use.  Environment variables to control enablement/disablement are set at the cluster level for mod-data-import.
See detailed release documentation here: Detailed Release Notes for Data Import Splitting Feature#Suggestedvalues and user-level documentation here: DRAFT Overview: reliably process large MARC files

 

 

@Kathleen Moore, @Ryan Taylor 

https://folio-org.atlassian.net/browse/UXPROD-4337

Settings. Patron Overdue Policy. Reminder fee section.

The overdue policies has been extended with an additional section to define “Reminder fees”. The policy is defining the wanted process to bill reminder fees.

 

Reminder schedule. The first reminder is scheduled at check-out based on the due date and the reminder fee configuration defined in this section. As the first reminder is sent the next reminder is scheduled according to this configuration, and so forth. A timed process is then defined in mod-circulation, to pick up due reminders, charge fees and send notices.

If the library does not use reminder fees then leave this section unfilled.

 

 If institutions expect to generate more than 100 reminder fee notices each time the scheduled process runs, the limit on maximum number of schedule notices must be raised to a new, desired limit.

This is done by adding an entry to configurations/entries with module set to "NOTIFICATION_SCHEDULER", configName set to “noticesLimit” and “value” set to the desired limit.

A new timed process is defined in mod-circulation to process reminders that have become due according to the configured reminder fees policy.

By default the process is scheduled to run once a day, at one minute past midnight in Central European timezone (00:01 CET) where it will pick up reminders that have become due since the most recent run.

The default timing of the process can be changed using Okapi's timer interface. Use Okapi's timer API to find the timed process at path "/circulation/scheduled-digital-reminders-processing" and follow the Okapi guide to set the desired timing of the process.

The process can be disabled entirely, if desired by tenants not using reminder fees. The Okapi guide describes how to disable a timed process as well. This is not required though, since simply letting the process run will have negligible impact on installations that do not use reminder fees.

 

https://folio-org.atlassian.net/browse/UXPROD-2015

https://folio-org.atlassian.net/browse/UXPROD-4159

@Florian Ruckelshausen 

@Charlotte Whitt 

Inn Reach listening to Kafka topics.

A new environmental variable INNREACH_TENANTS introduced which is mandatory and should contain the list of tenants for which mod-inn-reach module will be enabled.

The INNREACH_TENANTS variable is not set then the module will not start.

 

 

@Vignesh Kalyanasundaram
@Steve Ellis 
@Gurleen Kaur1 
https://folio-org.atlassian.net/browse/MODINREACH-381

INNREACH_TENANTS variable details

 

 

Requests, Request policies, Service points

  • For each type of request allowed in a Request policy, libraries will be able to specify which Service points are allowed for pickup (from among the Service points that are flagged as pickup SPs in Settings > Tenant > Service points).

  • The New Request form will be dynamic, enabling Title / Item information AND Requester information to determine available Request types and Pickup locations

  • Libraries will see a confirmation popup when changing a Pickup location from “Yes” to “No” as a reminder that this action will remove it from existing Request policies and affect all Circulation rules using the policies.

 

 

 

@Anne Ekblad 

https://folio-org.atlassian.net/browse/UXPROD-2689

Loan records. Add patron info and add staff info

Loan-related notes/comments (action based):

Two new buttons for adding this information is now available from the detailed loan display, and the check-out screen when clicking the three dots.

 

 

The notes/comments are searchable in the Circulation log app. 

 

https://folio-org.atlassian.net/browse/UXPROD-3913

@Axel Dörrer 

@Charlotte Whitt 

Patron notices

A new token supporting sending patron notices with the new patron information has been developed: 

{{loan.additionalInfo}}

 

 

 

https://folio-org.atlassian.net/browse/UXPROD-3913

@Axel Dörrer 

@Charlotte Whitt 

@julie.bickle 

Patron notices

7 new tokens for users primary address information supporting sending printed letters with a final reminder to patrons:

{{user.primarydeliveryAddressType}}

{{user.primaryAddressLine1}}

{{user.primaryAddressLine2}}

{{user.primaryCity}}

{{user.primaryStateProvRegion}}

{{user.primaryZipPostalCode}}

{{user.primaryCountry}}

 

 

 

 

https://folio-org.atlassian.net/browse/UXPROD-4276

@Florian Ruckelshausen 

@Charlotte Whitt 

@julie.bickle 

Patron notices

Addition:

Given: You have a lost item policy that charges the actual cost + a notice policy that sends notices with the existing trigger “Lost item fee(s), charged”,
When: You bill the actual cost for an item that has aged to lost,
Then: A notice is sent to the patron, according to the settings in the notice policy.

There are no new options or features in the notice policy or the notice templates; rather, the existing triggers have expanded their scope.

UXPROD-3573.docx

Please note: This ALSO works for items that have been declared lost.

Before upgrading to Poppy and/or switching to actual cost, please review whether your notice policies and/or templates (e.g. wording) need to or can be updated as a consequence.

Remember: Updates to a notice policy are applied when the open loan is next updated. Updates to the lost item policy are NOT applied to open loans.

 

@julie.bickle 

https://folio-org.atlassian.net/browse/UXPROD-3573

 

Patron notices

Addition:

Given: You have billed the actual cost for a lost item (both whether aged to lost or declared lost) + you have a notice policy that sends notices with the existing trigger “Lost item returned - fee(s) adjusted”,
When: The lost item is checked in (returned),
Then: A notice is sent to the patron, according to the settings in the notice policy.

There are no new options or features in the notice policy or the notice templates; rather, the existing triggers have expanded their scope.

UXPROD-3740.docx

 

Before upgrading to Poppy and/or switching to actual cost, please review whether your notice policies and/or templates (e.g. wording) need to or can be updated as a consequence.

Remember: Updates to a notice policy are applied when the open loan is next updated. Updates to the lost item policy are NOT applied to open loans

 

@julie.bickle 

https://folio-org.atlassian.net/browse/UXPROD-3740

 

Patron notices

Addition:

Lost item fees (set cost, actual cost and processing fee) can be bundled into one notice, overnight (or whenever you have agreed to with your hosting provider).

The functionality works the same as for notices trigged by the “Loan due date/time”:

  • There is a new “Mutliple fee/fine charges” token pair to add to the templates: #feeCharges  &  /feeCharges

  • For the triggering event “Lost item fee(s) charged”, there are two new options to select:

  •  

    • Send overnight with multiple lost item fee charges by patron.  – This option will bundle any open lost item charges into one email (by standard, up to 100 charges). MUST contain the multiple charges tokens: #feeCharges  &  /feeCharges

    • Send throughout the day with one lost item fee charge per notice.  – This represents existing functionality, and will be the default setting in your existing notice policies that use this trigger. MUST NOT contain the multiple charges tokens: #feeCharges  &  /feeCharges

UXPROD-3998.docx

 

Before upgrading to Poppy and/or selecting this option, please review whether your notice policies and/or templates (e.g. wording) need to or can be updated as a consequence.

Remember: Updates to a notice policy are applied when the open loan is next updated. Updates to the lost item policy are NOT applied to open loans. 

 

@julie.bickle 

https://folio-org.atlassian.net/browse/UXPROD-3998

 

Patron notices

Mandatory change:

Overdue fines can be bundled into one notice. The functionality is very similar as for check in and out notices:

  • There is a new “Mutliple fee/fine charges” token pair that MUST be added to the templates: #feeCharges  &  /feeCharges
    Otherwise, the notices will have an empty email body.

  • For the notice policy trigger “Overdue fine, returned”: The overdue fines generated in a single check in session are bundled when the check in session is closed.

  • For the notice policy trigger “Overdue fine, renewed”: The overdue fines are bundled when you renew multiple items at the same time. 

UXPROD-3999.docx

 

Mandatory change:

Before upgrading to Poppy and/or selecting this option, you MUST update the relevant notice templates to include the multiple charges tokens. Otherwise, the notices will have an empty email body.

In addition, please review whether your notice policies and/or templates (e.g. wording) need to or can be updated as a consequence.

Remember: Updates to a notice policy are applied when the open loan is next updated. Updates to the lost item policy are NOT applied to open loans. 

 

@julie.bickle 

https://folio-org.atlassian.net/browse/UXPROD-3999

 

Title level requests

Addition:
Institutions will now be able to choose to have title level request holds fail OR always succeed, following Circulation rules. (Through Orchid, holds can always be placed, regardless of Circulation rules).

Via discovery: The TLR endpoint used by edge-patron tries Page, Recall, then hold when TLR is enabled. If you allow recalls, by policy, it will never fall back to TLR hold (if holds are also allowed by policy).

Settings > Circulation > Title level requests. Select the box next to "Fail to create title level hold when request is blocked by circulation rule" to prevent holds from succeeding when Circulation rules do not allow them. 

 

@Stephanie Buck 

https://folio-org.atlassian.net/browse/UXPROD-3981

 

Fees/fines: Actual cost

Additions:
Actual cost, fee/fine, and status details have been added to the Actual cost processing page. You can now access the processing page through the Action menu on the User details record. An "X" has been added to enable people to leave the processing page without needing to use the back button on the browser. 

 

 

 

https://folio-org.atlassian.net/browse/UXPROD-4083

https://folio-org.atlassian.net/browse/UXPROD-3954

@Stephanie Buck 

OAI-PMH -  AWS S3/ MinIO Server 

OAI-PMH uses AWS S3 or Minio Server for storing error logs generated by harvests

The environment will need to be configured as described in https://github.com/folio-org/mod-oai-pmh#environment-variables

 

 

https://folio-org.atlassian.net/browse/UXPROD-4006

@Magda Zacharska 

@Viachaslau Khandramai (Deactivated) 

OAI-PMH/Inventory storage 

New field completeUpdatedDate has been added to the instance schema to improve OAI-PMH performance for incremental harvests (with from/until parameters) 

Execute scripts as documented in Migration scripts for OAI-PMH

Execution of the script takes approximately 5 hours for 8 millions instance records.

 

https://folio-org.atlassian.net/browse/MODINVSTOR-1105

https://folio-org.atlassian.net/browse/MODOAIPMH-492

@Magda Zacharska

@Viachaslau Khandramai (Deactivated) 

@Mikita Siadykh 

 

 

OAI-PMH

A new property cleanErrorsInterval has been added to OAI-PMH technical configuration. The property defines for how many days the error logs are stored.

 

  1. Retrieve OAI-PMH technical config via request: GET /configurations/entries?query=module="OAIPMH" and configName="technical".

  2. Update config: PUT /configurations/entries/{id} with body included parameter

cleanErrorsInterval:

{
"id": "{id}",
"module": "OAIPMH",
"configName": "technical",
"enabled": true,
"value": "{\"enableValidation\":\"false\",\"formattedOutput\":\"false\",\"srsClientIdleTimeoutSec\":\"20\",

\"maxRecordsPerResponse\":\"50\",\"srsHttpRequestRetryAttempts\":\"50\",\"fetchingChunkSize\":\"5000\",

\"cleanErrorsInterval\":\"30\"}"
}

 

Additional information can be found in: https://github.com/folio-org/mod-oai-pmh#configuration

https://folio-org.atlassian.net/browse/MODOAIPMH-514

@Viachaslau Khandramai (Deactivated) 

@Magda Zacharska 

OAI-PMH

Columns path_to_error_file_in_s3 and started_date has been added to the request_metadata_lb table

 

Requests metadata table should be empty or clean up in case there are records before upgrading.

 

https://folio-org.atlassian.net/browse/MODOAIPMH-545

Data export

New field userId has been added to jobExecution schema for completed jobs filtering purposes

 

No action is needed.  The migration script is executed automatically during the module upgrade.

 

https://folio-org.atlassian.net/browse/MDEXP-643

https://folio-org.atlassian.net/browse/MDEXP-639

@Magda Zacharska

@Viachaslau Khandramai (Deactivated) 

@Mikita Siadykh