Open
Description
Is your feature request related to a problem? Please describe.
N/A
Describe the solution you'd like
Add support for https://aws.amazon.com/about-aws/whats-new/2023/11/aws-secrets-manager-batch-retrieval-secrets/ in Parameters module.
Metadata
Metadata
Assignees
Type
Projects
Status
Backlog
Milestone
Relationships
Development
No branches or pull requests
Activity
scottgerring commentedon Nov 30, 2023
This can be done in the v2 branch once #1403 is merged. It will be a good first issue at that point.
jreijn commentedon Jan 31, 2024
@scottgerring @jeromevdl I would like to pick this up if possible. It seems #1403 has been merged, so good to go?
jreijn commentedon Jan 31, 2024
I took a look at the code base and started with some minor improvements. I noticed that the getValue and the existing getMultipleValues exists, however the later on is now based on path now. I'm thinking of renaming the getMultipleValues to getMultipleValuesByPath and introduce a new method on the BaseProvider called getMultipleValuesByKey(List keys). That way we can support both use cases.
For the new method, I'll see if I can implement a solution in all the providers.
scottgerring commentedon Feb 7, 2024
Hey @jreijn happy for you to pick this up - I will assign it to you.
I'll take some time tomorrow morning to look at the current
...multipleValues
interface and write back!scottgerring commentedon Feb 8, 2024
v2
getMultipleValues
impls1.
AppConfigProvider
- unsupportedpowertools-lambda-java/powertools-parameters/powertools-parameters-appconfig/src/main/java/software/amazon/lambda/powertools/parameters/appconfig/AppConfigProvider.java
Lines 113 to 117 in 3963d6d
2.
DynamoDbProvider
Retrieves all values that share the same partition key.
powertools-lambda-java/powertools-parameters/powertools-parameters-dynamodb/src/main/java/software/amazon/lambda/powertools/parameters/dynamodb/DynamoDbProvider.java
Lines 93 to 99 in 3963d6d
3.
SSMProvider
Retrieves either everything at the given level of the
/parameter/hierarchy
, or everything at the given level plus/parameter/hierarchy/nested/levels
when usingwithRecursive
.powertools-lambda-java/powertools-parameters/powertools-parameters-ssm/src/main/java/software/amazon/lambda/powertools/parameters/ssm/SSMProvider.java
Lines 160 to 166 in 3963d6d
Both the existing implementations - DDB and SSM provider - already vary a little - SSM is path-based, DDB is more like, common key. I'm a bit hesitant to change the existing method name because 1/ its not path-based in both cases and 2/ it's a breaking change against v1 which wouldn't add much. What do you think?
Maybe rather than changing the existing interface, we could add
getMultipleValuesByKey(keys)
on theBaseProvider
, provide a default impl that simply mapsgetValue
over the keys, and then override inSSMProvider
?Thoughts @jreijn / @jeromevdl ?
jreijn commentedon Feb 8, 2024
@scottgerring sounds reasonable. I also noticed that lambda powertools in other languages do something similar. I'll make some small commits while I go along, so I can get some feedback along the way.