aws_request 2.1.0
aws_request: ^2.1.0 copied to clipboard
Easily create, sign, and send API requests to AWS services without the hassle of implementing Signature Version 4.
2.1.0 - 2026-03-22 #
Changes: #
- SigV4 correctness: Canonical query string matches the wire request — parameters sorted by name then value, encoding aligned with how the request
Uriis built (avoids signing/query mismatches from ad hoc encoding) - SigV4 correctness: Region and service names are lowercased in credential scope and in signing-key derivation (fixes invalid signatures when callers pass mixed-case region or service)
- New request options on
AwsRequest.send/staticSendandMockAwsRequest:queryStringPairsfor duplicate query parameter names (not expressible withMap);hashedPayloadIsUnsignedfor S3-styleUNSIGNED-PAYLOAD;useNonS3DoubleEncodedCanonicalPathfor non-S3 path double-encoding rules signedHeadersentries are resolved case-insensitively against merged request headers- Signing uses the same normalized canonical path as the outbound
Uri(url.path) AwsRequestException.toString()includesstackTraceAwsHttpRequest.sendrejects emptyawsAccessKey/awsSecretKey- Clearer error when
mockRequestis true butmockFunctionis null - README: STS / temporary credentials (
X-Amz-Security-Tokenand signing it); retries and HTTP client lifecycle; duplicate query keys withMap; corrected JSON body examples - API docs updated for mutable credential fields, default signed headers, and the new options
- Stricter
analysis_options.yaml(extendspackage:lints/recommended.yaml) - Test suite expanded (SigV4 vector/conformance coverage; optional live AWS tests behind environment configuration)
2.0.0 - 2026-03-21 #
Breaking Changes: #
MockAwsRequestconstructor now uses named parameters to matchAwsRequestAPIAwsRequestExceptionfields (message,stackTrace) are nowfinal
Changes: #
- Removed
intldependency — date formatting is now handled internally - Fixed HTTP client resource leak in
getRequest(client now always closed viatry/finally) - Fixed SigV4 timestamp race condition —
getAuthnow derives dateStamp from amzDate instead of a separateDateTime.now()call - Added optional
endpointparameter for custom/non-standard AWS hostnames (S3 virtual-hosted-style, VPC endpoints, LocalStack, etc.) sign()return type changed fromdynamictoDigestvalidateRequestnow throws directly instead of returning a validation map- Removed unused parameters (
host,requestBody,timeout) fromgetHeaders getSignedHeadersno longer throws when default keys (e.g.host) are passed insignedHeaders- Replaced
type.toString().toUpperCase().split('.').lastwithtype.name.toUpperCase() - All tests now use mock HTTP clients instead of external network calls
- Updated CI pipeline actions (
checkout@v4,codecov-action@v5) - Updated README with SDK requirements,
MockAwsRequestdocumentation, custom endpoints, and corrected examples - Updated example project to current SDK and package versions
1.1.0 - 2025-06-21 #
- Increased minimum
intlversion for 3.32 compatibility - Removed outdated lint rule
1.0.1 - 2024-05-20 #
- Increased minimum
intlversion for 3.3 compatibility
1.0.0 - 2023-05-31 #
- Requires Dart 3.0 or later
- Updated to http ^1.0.0
0.5.0 - 2023-05-31 #
- Updated
intlto new version - Fixed test broken by update
0.4.0+2 - 2023-02-09 #
- Minor housekeeping to fix running tests & lint deprecations
- Fixed typo in description
- Updated example
- Fixed test case for modern dart
0.4.0+1 - 2022-01-25 #
- Added comments for better auto documentation
0.4.0 - 2022-01-24 #
0.3.0+1 - 2022-01-09 #
- Added more unit tests
- Added note about Android permissions to readme
- Incremented mid version for github
- Added optional timeout argument to
AwsRequest.sendthat overrides constructor timeout
0.3.0 - 2022-01-08 #
- Migrated from
universal_iotohttp - Refactored project into discrete testable modules
- Added unit tests for each piece
- Added MockAwsRequest to mock requests for easier testing
- Added AUTHORS file
- Added static version of primary method
- Updated documentation to illustrate new static call method
- Added coverage
- Fixed bug with allowing non String values in queryString
0.2.1 - 2022-01-08 #
- Fixed issue with rejected headers on web
0.2.0+1 - 2021-09-17 #
- Updated package description
0.2.0 - 2021-09-16 #
- Removed unneeded flutter dependency to allow native and js compatibility
- Refactored some code for better readability
- Added AwsRequestType enum to replace String request type
- Removed deprecated
causefrom AwsRequestException - Updated license to MIT
0.1.9 - 2021-09-12 #
- Added stack trace to AwsRequestException
- Added optional timeout parameter with a default value of
Duration(seconds: 10)
0.1.8 - 2021-08-25 #
- Fixed issue causing HttpException
0.1.7 - 2021-07-30 #
- Fixed bug limiting calls to POST requests
- Fixed bug limiting requests to
logsservice - Fixed bug with static signed headers
- Reformatted files
- Added QoL service and target values to constructor
0.1.6 - 2021-07-01 #
- Removed strict flutter sdk version requirement
0.1.5 - 2021-06-08 #
- Fixed null safety typing issue
- Reformatted aws_request.dart
0.1.4 - 2021-05-18 #
- Removed old hard coded region values and replaced with dynamic region
0.1.3 - 2021-03-25 #
- Fixed issue with sending non unicode characters in request body
0.1.2 - 2021-03-24 #
- Fixed
flutter analyzeissues related to null safety
0.1.1 - 2021-03-24 #
- Actually migrated to null safety instead of just upgrading packages
0.1.0 - 2021-03-23 #
- Added support for null safety
- Updated dependencies for null safety compatibility
0.0.3 - 2021-02-10 #
- Reverted issue with null safety. This will be fixed later
- Added files to example to help it execute
0.0.2 - 2021-02-10 #
- Fixed readme.md and added example
0.0.1 - 2021-02-10 #
- Added initial files for sending signed aws requests