NIFI-15216 - Add support for AWS RDS IAM authentication in DBCP Connection Pool #10524
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
NIFI-15216 - Add support for AWS RDS IAM authentication in DBCP Connection Pool
The goal is to add support for AWS RDS IAM Authentication when connecting over JDBC to an AWS RDS instance.
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.Connecting.html
The approach is the following:
nifi-standard-services/nifi-dbcp-service-apiorg.apache.nifi.dbcp.api.DatabasePasswordProviderorg.apache.nifi.dbcp.api.DatabasePasswordRequestContextnifi-extension-utils/nifi-dbcp-baseProviderAwareBasicDataSourcewraps commons‑dbcpBasicDataSourceand pulls passwords from an injectedDatabasePasswordProviderAbstractDBCPConnectionPoolexpose the new “Database Password Provider” property and forward the request contextnifi-aws-bundle/nifi-aws-processorsorg.apache.nifi.processors.aws.rds.AwsRdsIamDatabasePasswordProviderimplements the API, uses the existing AWS credentials service, and generates IAM auth tokens per connectionnifi-dbcp-service-api(scope provided) so the controller service compiles against the shared APInifi-aws-bundle/nifi-aws-narnifi-aws-service-api-nar(which already drags innifi-standard-shared-nar→nifi-standard-services-api-nar)Class-loader / NAR chain
nifi-standard-services-api-nar↳ contains
nifi-dbcp-service-api(DatabasePasswordProvider, etc.)nifi-standard-shared-nar↳ depends on
nifi-standard-services-api-narnifi-aws-service-api-nar↳ depends on
nifi-standard-shared-nar(so it inherits the entire controller-service API set)nifi-aws-nar↳ depends on
nifi-aws-service-api-nar↳ transitively inherits
nifi-standard-shared-nar→nifi-standard-services-api-narTracking
Please complete the following tracking steps prior to pull request creation.
Issue Tracking
Pull Request Tracking
NIFI-00000NIFI-00000Pull Request Formatting
mainbranchVerification
Please indicate the verification steps performed prior to pull request creation.
Build
./mvnw clean install -P contrib-checkLicensing
LICENSEandNOTICEfilesDocumentation