Spike: MODKBEKBJ-331 - How to store multiple HoldingsIQ/RM API credentials in mod-configuration
IN REVIEW
Goal: provide a possible solution to have the ability to store multiple RM API credentials
Initial info:
Solution should support following use cases (based on this document):
|
| ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
Proposed solution:
To bind RM API credentials to an institution we need to define some parameter, which uniquely describes particular institution. From existing configuration we have following options:
UUID - unique
institution code - not unique, may have duplicates.
{ "id": "22222222-2222-2222-2222-222222222222", "code": "kb.ebsco.url.33333333-3333-3333-3333-333333333333", "value": "https://test.url.io", "module": "EKB", "enabled": true, "metadata": { "createdDate": "2019-12-20T13:27:31.139", "updatedDate": "2019-12-20T13:27:34.647+00", "createdByUserId": "11111111-1111-1111-1111-111111111111", "updatedByUserId": "11111111-1111-1111-1111-111111111111" }, "configName": "api_access", "description": "EBSCO RM-API URL" } |
{ "id": "22222222-2222-2222-2222-222222222222", "code": "kb.ebsco.url.umass", "value": "https://test.url.io", "module": "EKB", "enabled": true, "metadata": { "createdDate": "2019-12-20T13:27:31.139", "updatedDate": "2019-12-20T13:27:34.647+00", "createdByUserId": "11111111-1111-1111-1111-111111111111", "updatedByUserId": "11111111-1111-1111-1111-111111111111" }, "configName": "api_access", "description": "EBSCO RM-API URL" } |
To conform existing requirements, usage of institution seems not enough, in case of multiple libraries managed separately, we can not manage RM API Credentials for them with this approach.
Instead of it we can use a combination of
university.campus.library
to uniquely identify credentials for both cases.
Use cases:
Consortium/Multiple universities sharing same tenant | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||
A university with multiple libraries managed separately AND in same tenant | ||||||||||||||||||||||||||||
|
Updates to existing functionality:
- Made university/campus/library codes unique and have a restriction to code length(right now it is possible to create a code with 500 characters length)
- Made location code as a combination of university.campus.library + unique location code instead of manual input.
Advantages:
- Covers both initial use cases
- Covers situation with mixed use cases(if it is an option in future)
Disadvantages:
- Configuration duplicates in case of consortia
# | Question | Answer |
---|---|---|
1 | How user can change his/her Service point? | |
2 | Is it possible to have consortia and separate universities at the same time? This means in the scope of storing RM API credentials. |