ERM: Support S3 settings via environment variables

Description

Current situation or problem:
For file storage in S3 in Agreements and Licenses modules the S3 settings are stored in application settings. The current implementation has multiple issues:

  • The S3 secret key is visible in the frontend in the app settings. The S3 configuration is a sysop task and should not be exposed to the UI. (https://folio-org.atlassian.net/browse/ERM-3287#icft=ERM-3287)

  • The S3ObjectPrefix – like /diku/agreements/ – can be changed in the app settings in the UI. All tenants share a bucket in the standard configuration that most multi-tenant hosters use for all modules. Changing the prefix will mess up with the directory structure.

  • The ERM module doesn't use a changed S3 environment variable when the module is restarted because the module uses the value stored in the app_settings database table of the tenant. A manual change is needed via UI or API.

  • All non-ERM modules use a single configuration for all tenants set in environment variables. It's suprisingly inconsistent that the ERM modules have a different S3 setup.

  • Sysops in a multi-tenant installation with a high number of tenants need tooling that fully automated populates the tenant S3 configuration of mod-agreements and mod-licenses when creating a new tenant or when changing the S3 configuration. A module should have such tooling out of the box, we cannot require each sysop to write such tooling.

In scope
Supporting environment variables for S3 configuration in place of the current app settings

Out of scope
There is no need for tenant specific S3 configuration.

Priority

Development Team

Bienenvolk

Assignee

Solution Architect

Parent

None

Parent Field Value

None

Parent Status

None

is defined by

Checklist

hide

Activity

Show:
Done

Details

Reporter

PO Rank

0

Release

Sunflower (R1 2025)

TestRail: Cases

Open TestRail: Cases

TestRail: Runs

Open TestRail: Runs
Created February 5, 2025 at 12:06 PM
Updated March 12, 2025 at 2:31 PM
Resolved March 12, 2025 at 2:31 PM
TestRail: Cases
TestRail: Runs