All notable changes to this project will be documented in this file.
This project follows Keep a Changelog format for changes and adheres to Semantic Versioning.
- feat: add support for Lambda Advanced Logging Controls (ALC) (#1514) by @jeromevdl
- feat: Add support for POWERTOOLS_LOGGER_LOG_EVENT (#1510) by @AlexeySoshin
- fix: json schema 403 error (#1457) by @jeromevdl
- fix: array jmespath fail in idempotency module (#1420) by @jeromevdl
- chore: java21 support in our build (#1488) by @jeromevdl
- chore: Addition of Warn Message If Invalid Annotation Key While Tracing #1511 (#1512) by @jdoherty
- fix: null namespace should fallback to default namespace (#1506) by @jeromevdl
- fix: get trace id from system property when env var is not set (#1503) by @mriccia
- chore: artifacts size on good branches (#1493) by @jeromevdl
- fix: enforce jackson databind version (#1472) by @jeromevdl
- chore: add missing projects and improve workflow (#1487) by @jeromevdl
- chore: Reporting size of the jars in GitHub comments (#1196) by @jeromevdl
- Deps: Bump third party dependencies to the latest versions.
- docs(customer-reference): add Vertex Pharmaceuticals as a customer reference (#1486) by @scottgerring
- docs: Adding Kotlin example. (#1454) by @jasoniharris
- docs: Terraform example (#1478) by @skal111
- docs: Add Serveless Framework example (#1363) by @AlexeySoshin
- docs: Fix link to SQS large message migration guide (#1422) by @scottgerring
- docs(logging): correct log example keys (#1411) by @walmsles
- docs: Update gradle configuration readme (#1359) by @scottgerring
- Feat: Add Batch Processor module in (#1317) by @scottgerring
- Feat: Add SNS+SQS large messages module (#1310) by @jeromevdl
- fix: use default credentials provider for all provided SDK clients in (#1303) by @roamingthings
- Chore: Make request for Logger explicitly for current class in (#1307) by @jreijn
- Chore: checkstyle formater & linter in (#1316) by @jeromevdl
- Chore: Add powertools specific user-agent-suffix to the AWS SDK v2 clients by @eldimi in (#1306)
- Chore: Add 'v2' branch to build workflows to prepare for v2 work in (#1341) by @scottgerring
- Deps: Bump third party dependencies to the latest versions.
- Docs: Add maintainers guide in (#1326) by @scottgerring
- Docs: improve contributing guide in (#1334) by @jeromevdl
- Docs: Improve example documentation in (#1291) by @scottgerring
- Docs: Add discord + sec disclosure links to readme in (#1311) by @scottgerring
- Docs: Add external examples from AWS SAM CLI App Templates in (#1318) by @AlexeySoshin
- Docs: Add CDK example in (#1321) by @AlexeySoshin
- Fix: idempotency timeout bug (#1285) by @scottgerring
- Fix: ParamManager cannot provide default SSM & Secrets providers (#1282) by @jeromevdl
- Fix: Handle batch failures in FIFO queues correctly (#1183) by @scottgerring
- Deps: Bump third party dependencies to the latest versions.
- Feature: Add AppConfig provider to parameters module (#1104) by @scottgerring
- Fix: missing idempotency key should not persist any data (#1201) by @jeromevdl
- Fix:Removing env var credentials provider as default. (#1161) by @msailes
- Chore: Swap implementation of
aspectj-maven-plugin
to support Java 17 (#1172) by @mriccia - Test: end-to-end tests for core modules and idempotency (#970) by @jeromevdl
- Chore: cleanup spotbugs maven profiles (#1236) by @jeromevdl
- Chore: removing logback from all components (#1227) by @jeromevdl
- Chore: Roll SLF4J log4j bindings to v2 (#1190) by @scottgerring
- Deps: Bump third party dependencies to the latest versions.
- Feature: Add DynamoDB provider to parameters module (#1091) by @scottgerring
- Feature: Update to powertools-cloudformation to deprecate
Response.success()
andResponse.failed()
methods. New helper methods are added to make it easier to follow best practicesResponse.success(String physicalResourceId)
andResponse.failed(String physicalResourceId)
. For a detailed explanation please read the powertools-cloudformation documentation page. (#1082) by @msailes - Update how a Lambda request handler method is identified (#1058) by @humanzz
- Deps: Bump third party dependencies to the latest versions.
- Examples: Import examples from aws-samples/aws-lambda-powertools-examples (#1051) by @scottgerring
- Deprecate withMetricLogger in favor of withMetricsLogger (#1060) by @humanzz
- Update issue templates (#1062) by @machafer
- Send code coverage report (jacoco) to codecov (#1094) by @jeromevdl
- Improve
powertools-cloudformation
docs (#1090) by @mriccia - Add link to Powertools for AWS Lambda (Java) workshop (#1095) by @scottgerring
- Fix mdocs and git revision plugin integration (#1066) by @machafer
- Feature: Introduce
MetricsUtils.withMetricsLogger()
utility method (#1000) by @humanzz
- Update logic for recording documentation pages views to use correct runtime name (#1047) by @kozub
- Deps: Bump third party dependencies to the latest versions.
- Docs: Update Powertools for AWS Lambda (Java) definition by @heitorlessa
- Docs: Add information about other supported langauges to README and docs (#1033) by @kozub
- Feature: Idempotency - Handle Lambda timeout scenarios for INPROGRESS records (#933) by @jeromevdl
- Fix: Envelope is not taken into account with built-in types (#960) by @jeromevdl
- Fix: Code suggestion from CodeGuru (#984) by @kozub
- Fix: Compilation warning with SqsLargeMessageAspect on gradle (#998) by @jeromevdl
- Fix: Log message processing exceptions as occur (#1011) by @nem0-97
- Docs: Add missing grammar article (#976) by @fsmiamoto
- Fixes to resolve vulnerable transitive dependencies (919)
- SQS Large message processing: Classpath conflict on
PayloadS3Pointer
when consumer application depends onpayloadoffloading-common
, introduced in v1.8.0. (#851)
- Idempotency: thread-safety issue of MessageDigest (#817)
- Idempotency: disable dynamodb client creation in persistent store when disabling idempotency (#796)
- deps: Bump third party dependencies to the latest versions.
- Easy Event Deserialization: Extraction and deserialization of the main content of events (body, messages, ...) #757
- Different behavior while using SSMProvider with or without trailing slash in parameter names #758
- Powertools for AWS Lambda (Java) Idempotency module: New module to get your Lambda function Idempotent (#717)
- Powertools for AWS Lambda (Java) Serialization module: New module to handle JSON (de)serialization (Jackson ObjectMapper, JMESPath functions)
- SQS Batch processing: Prevent message to be marked as success if failed sending to DLQ for non retryable exceptions. #731
- SQS Batch processing: Improve documentation on IAM premissions required by function when using utility with an encrypted SQS queue with customer managed KMS keys.
- Tracing: Ability to override object mapper used for serializing method response as trace metadata when enabled. This provides users ability to customize how and what you want to capture as metadata from method response object. #698
- Logging: Upgrade Log4j to version 2.17.1 for CVE-2021-44832
- Logging: Modern log4j configuration to customise structured logging. Refer docs to start using new config. #670
- SQS Batch: Support batch size greater than 10. #667
- Logging: Upgrade Log4j to version 2.17.0 for CVE-2021-45105
- Tracing: add
Service
annotation. #654
- Upgrading Log4j to version 2.16.0 for CVE-2021-45046
- Upgrading Log4j to version 2.15.0 for CVE-2021-44228
- Powertools for AWS Lambda (Java) Cloudformation module (NEW): New module simplifying AWS Lambda-backed custom resources written in Java. #560
- SQS Large message processing: Ability to override the default
S3Client
use to fetch payload from S3. #602
- Logging:
@Logging
annotation now works with@Tracing
annotation onRequestStreamHandler
when used inlogEvent
mode. #567
- deps: Bump third party dependencies to the latest versions.
- SQS Batch processing: Ability to move non retryable message to configured dead letter queue(DLQ). #500
- Powertools for AWS Lambda (Java) All Modules: Upgrade to the latest(1.14.0) aspectj-maven-plugin which also supports Java 9 and newer versions. Users no longer need to depend on com.nickwongdev as a workaround. #489
- Logging: Performance optimisation to improve cold start. #484
- SQS Batch processing/Large message: Module now lazy loads default SQS client. #484
- Powertools for AWS Lambda (Java) All Modules: Fix static code analysis violations done via spotbugs (#458).
- Logging: Support for extracting Correlation id using
@Logging
annotation viacorrelationIdPath
attribute andsetCorrelationId()
method inLoggingUtils
(#448). - Logging: New
clearState
attribute on@Logging
annotation to clear previously added custom keys upon invocation(#453).
- deps: Bump third party dependencies to the latest versions.
- Tracing: Support for Boolean and Number type as value in
TracingUtils.putAnnotation()
(#423). - Logging: API to remove any additional custom key from logger entry using
LoggingUtils.removeKeys()
(#395).
- deps: Bump third party dependencies to the latest versions.
- Metrics: Ability to set multiple dimensions as default dimensions via
MetricsUtils.defaultDimensions()
. Introduced in v1.4.0MetricsUtils.defaultDimensionSet()
is deprecated now for better user experience.
-
Metrics: Ability to set default dimension for metrics via
MetricsUtils.defaultDimensionSet()
.Note: If your monitoring depends on default dimensions captured before via aws-embedded-metrics-java, those either need to be updated or has to be explicitly captured via
MetricsUtils.defaultDimensionSet()
. -
Metrics: Remove validation of having minimum one dimension. EMF now support Dimension set being empty as well.
- Powertools: It now works out of the box with code guru profile handler implementation.
- Logging: Ability to override object mapper used for logging event. This provides customers ability to customize how and what they want to log from event.
- Metrics: Module now by default captures AWS Request id as property if used together with Metrics annotation. It will also capture Xray Trace ID as property if tracing is enabled. This ensures good observability and tracing.
- Metrics:
withSingleMetric
from `MetricsUtils can now pick the default namespace specified either on Metrics annotation or via POWERTOOLS_METRICS_NAMESPACE env var, without need to specify explicitly for each call. - Metrics:
Metrics
annotation captures metrics even in case of unhandled exception from Lambda function. - Docs: Migrated from Gatsby to MKdocs documentation system