Copyright (C) 2021-2025 The Open Library Foundation
This software is distributed under the terms of the Apache License, Version 2.0. See the file "LICENSE" for more information.
Introduction
The purpose of this edge API utils is the combine classes/utilities/constants shared by both modules: edge-common and edge-common-spring.
Additional information
Secure Stores
Three secure stores currently implemented for safe retrieval of encrypted credentials:
EphemeralStore
Only intended for development purposes. Credentials are defined in plain text in a specified properties file. src/main/resources/ephemeral.properties
AwsParamStore
Retrieves credentials from Amazon Web Services Systems Manager (AWS SSM), more specifically the Parameter Store, where they're stored encrypted using a KMS key.
Key: <salt>_<tenantId>_<username>
e.g. Key=ab73kbw90e_diku_diku
You can set the HTTP endpoint to use for retrieving AWS credentials: Use the system property ecsCredentialsEndpoint (for example http://example.com). The path is taken from the ecsCredentialsPath system property, or from the AWS_CONTAINER_CREDENTIALS_RELATIVE_URI environment variable (standard on ECS containers). You also need to set the system properties region to the AWS region and useIAM to false.
VaultStore
Retrieves credentials from a Vault (https://vaultproject.io). This was added as a more generic alternative for those not using AWS. src/main/resources/vault.properties
Key: <salt>/<tenantId>
Field: <username>
e.g. Key=ab73kbw90e/diku, Field=diku
Additional information
There will be a single instance of okapi client per OkapiClientFactory and per tenant, which means that this client should never be closed or else there will be runtime errors. To enforce this behaviour, method close() has been removed from OkapiClient class.
Configuration
Please refer to the edge-common configuration sections to see all available system properties and their default values.
Issue tracker
See project EDGAPIUTL at the FOLIO issue tracker.
Other documentation
Other modules are described, with further FOLIO Developer documentation at dev.folio.org