GitHub - folio-org/edge-api-utils

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