Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: AWS Signature V4 library #1456

Merged
merged 37 commits into from
Apr 26, 2022
Merged
Show file tree
Hide file tree
Changes from 35 commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
a9aed37
feat: AWS Common library
Mar 12, 2022
0fee2da
feat: AWS Signature V4 library
Mar 12, 2022
858da1c
chore: Add mono_repo for AWS libraries
Mar 12, 2022
8aa8a0a
chore: Add missing license headers
Mar 12, 2022
1c9cc7c
chore(aws_common): Update CHANGELOG
Mar 12, 2022
4476abe
chore: Update mono_repo version
Mar 15, 2022
118ef00
chore(aws_common): Add config values
Mar 16, 2022
77d4969
chore(ci): Update mono_repo configuration
Mar 16, 2022
86a7a6a
fix(aws_common): Fix library import
Mar 16, 2022
397c319
chore(aws_common): Add SDK headers
Mar 16, 2022
5c96744
chore(aws_common): Add missing HTTP methods
Mar 21, 2022
f818b7c
chore(sigv4): Use Dart VM env on iOS/Android
Mar 29, 2022
2695ab3
chore(sigv4): Clean up S3 example
Mar 29, 2022
9255a5d
chore(sigv4): Use Duration for `expiresIn`
Mar 29, 2022
4da784d
chore(sigv4): Make `expiresIn` required
Mar 29, 2022
ea381d2
chore(sigv4): Refactor canonical request and service configuration
Mar 29, 2022
15eeb6a
chore(aws_common): Clean up
Mar 31, 2022
e57cbf3
chore(aws_common): Add example and tests
Mar 31, 2022
531e864
chore(aws_signature_v4): Refactor signer tests
Mar 31, 2022
39d7e14
chore: Update mono_repo config
Mar 31, 2022
0164cac
chore(aws_signature_v4): Add web example
Apr 13, 2022
8748e64
chore(ci): Update mono_repo
Apr 13, 2022
0839ea0
Merge branch 'main' into feat/signer
dnys1 Apr 16, 2022
d4bb436
chore(aws_signature_v4): Add user agent header
Apr 18, 2022
cfb1464
chore(aws_signature_v4): Use x-amz-user-agent on web
Apr 19, 2022
5c94e5e
chore(aws_signature_v4): Fix user agent signing in tests
Apr 19, 2022
1d6d0d5
chore: Feedback and clean up
Apr 19, 2022
86fd73e
chore(aws_common): Add HTTP response tests
Apr 19, 2022
4580e3f
chore(aws_common): Make default constructors use Uri
Apr 19, 2022
6a4d45f
chore: More feedback and comments
Apr 20, 2022
b87816d
Update packages/aws_signature_v4/lib/src/configuration/service_config…
dnys1 Apr 20, 2022
1deba24
chore(aws_signature_v4): Simplify logic
Apr 20, 2022
58447f6
chore(aws_signature_v4): Update test loading
Apr 20, 2022
52e74d5
chore: Resolve comments feedback
Apr 22, 2022
f763e80
chore(aws): Add service enum
Apr 25, 2022
60e3309
chore(aws): PR feedback
Apr 25, 2022
89915d7
chore(aws_common): Remove JSON annotation
Apr 25, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitallowed
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
**/test/**
128 changes: 128 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
# Created with package:mono_repo v6.2.1
name: Dart Lint
on:
push:
branches:
- main
- master
pull_request:
schedule:
- cron: "0 0 * * 0"
defaults:
run:
shell: bash
env:
PUB_ENVIRONMENT: bot.github

jobs:
job_001:
name: mono_repo self validate
runs-on: ubuntu-latest
steps:
- name: Cache Pub hosted dependencies
uses: actions/cache@v3
with:
path: "~/.pub-cache/hosted"
key: "os:ubuntu-latest;pub-cache-hosted;sdk:stable"
restore-keys: |
os:ubuntu-latest;pub-cache-hosted
os:ubuntu-latest
- uses: dart-lang/setup-dart@v1.3
with:
sdk: stable
- id: checkout
uses: actions/checkout@v3.0.0
- name: mono_repo self validate
run: dart pub global activate mono_repo 6.2.1
- name: mono_repo self validate
run: dart pub global run mono_repo generate --validate
job_002:
name: "analyze_and_format; Dart dev; PKGS: packages/aws_common, packages/aws_signature_v4; `dart format --output=none --set-exit-if-changed .`, `dart analyze --fatal-infos .`"
runs-on: ubuntu-latest
steps:
- name: Cache Pub hosted dependencies
uses: actions/cache@v3
with:
path: "~/.pub-cache/hosted"
key: "os:ubuntu-latest;pub-cache-hosted;sdk:dev;packages:packages/aws_common-packages/aws_signature_v4;commands:format-analyze"
restore-keys: |
os:ubuntu-latest;pub-cache-hosted;sdk:dev;packages:packages/aws_common-packages/aws_signature_v4
os:ubuntu-latest;pub-cache-hosted;sdk:dev
os:ubuntu-latest;pub-cache-hosted
os:ubuntu-latest
- uses: dart-lang/setup-dart@v1.3
with:
sdk: dev
- id: checkout
uses: actions/checkout@v3.0.0
- id: packages_aws_common_pub_upgrade
name: packages/aws_common; dart pub upgrade
if: "always() && steps.checkout.conclusion == 'success'"
working-directory: packages/aws_common
run: dart pub upgrade
- name: "packages/aws_common; dart format --output=none --set-exit-if-changed ."
if: "always() && steps.packages_aws_common_pub_upgrade.conclusion == 'success'"
working-directory: packages/aws_common
run: "dart format --output=none --set-exit-if-changed ."
- name: "packages/aws_common; dart analyze --fatal-infos ."
if: "always() && steps.packages_aws_common_pub_upgrade.conclusion == 'success'"
working-directory: packages/aws_common
run: dart analyze --fatal-infos .
- id: packages_aws_signature_v4_pub_upgrade
name: packages/aws_signature_v4; dart pub upgrade
if: "always() && steps.checkout.conclusion == 'success'"
working-directory: packages/aws_signature_v4
run: dart pub upgrade
- name: "packages/aws_signature_v4; dart format --output=none --set-exit-if-changed ."
if: "always() && steps.packages_aws_signature_v4_pub_upgrade.conclusion == 'success'"
working-directory: packages/aws_signature_v4
run: "dart format --output=none --set-exit-if-changed ."
- name: "packages/aws_signature_v4; dart analyze --fatal-infos ."
if: "always() && steps.packages_aws_signature_v4_pub_upgrade.conclusion == 'success'"
working-directory: packages/aws_signature_v4
run: dart analyze --fatal-infos .
job_003:
name: "analyze_and_format; Dart stable; PKGS: packages/aws_common, packages/aws_signature_v4; `dart format --output=none --set-exit-if-changed .`, `dart analyze --fatal-infos .`"
runs-on: ubuntu-latest
steps:
- name: Cache Pub hosted dependencies
uses: actions/cache@v3
with:
path: "~/.pub-cache/hosted"
key: "os:ubuntu-latest;pub-cache-hosted;sdk:stable;packages:packages/aws_common-packages/aws_signature_v4;commands:format-analyze"
restore-keys: |
os:ubuntu-latest;pub-cache-hosted;sdk:stable;packages:packages/aws_common-packages/aws_signature_v4
os:ubuntu-latest;pub-cache-hosted;sdk:stable
os:ubuntu-latest;pub-cache-hosted
os:ubuntu-latest
- uses: dart-lang/setup-dart@v1.3
with:
sdk: stable
- id: checkout
uses: actions/checkout@v3.0.0
- id: packages_aws_common_pub_upgrade
name: packages/aws_common; dart pub upgrade
if: "always() && steps.checkout.conclusion == 'success'"
working-directory: packages/aws_common
run: dart pub upgrade
- name: "packages/aws_common; dart format --output=none --set-exit-if-changed ."
if: "always() && steps.packages_aws_common_pub_upgrade.conclusion == 'success'"
working-directory: packages/aws_common
run: "dart format --output=none --set-exit-if-changed ."
- name: "packages/aws_common; dart analyze --fatal-infos ."
if: "always() && steps.packages_aws_common_pub_upgrade.conclusion == 'success'"
working-directory: packages/aws_common
run: dart analyze --fatal-infos .
- id: packages_aws_signature_v4_pub_upgrade
name: packages/aws_signature_v4; dart pub upgrade
if: "always() && steps.checkout.conclusion == 'success'"
working-directory: packages/aws_signature_v4
run: dart pub upgrade
- name: "packages/aws_signature_v4; dart format --output=none --set-exit-if-changed ."
if: "always() && steps.packages_aws_signature_v4_pub_upgrade.conclusion == 'success'"
working-directory: packages/aws_signature_v4
run: "dart format --output=none --set-exit-if-changed ."
- name: "packages/aws_signature_v4; dart analyze --fatal-infos ."
if: "always() && steps.packages_aws_signature_v4_pub_upgrade.conclusion == 'success'"
working-directory: packages/aws_signature_v4
run: dart analyze --fatal-infos .
217 changes: 217 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,217 @@
# Created with package:mono_repo v6.2.1
name: Test
on:
push:
branches:
- main
- master
pull_request:
schedule:
- cron: "0 0 * * 0"
defaults:
run:
shell: bash
env:
PUB_ENVIRONMENT: bot.github

jobs:
job_001:
name: "unit_test; Dart dev; PKG: packages/aws_common; `dart test`, `dart test -p chrome`"
runs-on: ubuntu-latest
steps:
- name: Cache Pub hosted dependencies
uses: actions/cache@v3
with:
path: "~/.pub-cache/hosted"
key: "os:ubuntu-latest;pub-cache-hosted;sdk:dev;packages:packages/aws_common;commands:test_0-test_1"
restore-keys: |
os:ubuntu-latest;pub-cache-hosted;sdk:dev;packages:packages/aws_common
os:ubuntu-latest;pub-cache-hosted;sdk:dev
os:ubuntu-latest;pub-cache-hosted
os:ubuntu-latest
- uses: dart-lang/setup-dart@v1.3
with:
sdk: dev
- id: checkout
uses: actions/checkout@v3.0.0
- id: packages_aws_common_pub_upgrade
name: packages/aws_common; dart pub upgrade
if: "always() && steps.checkout.conclusion == 'success'"
working-directory: packages/aws_common
run: dart pub upgrade
- name: packages/aws_common; dart test
if: "always() && steps.packages_aws_common_pub_upgrade.conclusion == 'success'"
working-directory: packages/aws_common
run: dart test
- name: "packages/aws_common; dart test -p chrome"
if: "always() && steps.packages_aws_common_pub_upgrade.conclusion == 'success'"
working-directory: packages/aws_common
run: dart test -p chrome
job_002:
name: "unit_test; Dart dev; PKG: packages/aws_signature_v4; `git submodule update --init`, `dart test`"
runs-on: ubuntu-latest
steps:
- name: Cache Pub hosted dependencies
uses: actions/cache@v3
with:
path: "~/.pub-cache/hosted"
key: "os:ubuntu-latest;pub-cache-hosted;sdk:dev;packages:packages/aws_signature_v4;commands:command-test_0"
restore-keys: |
os:ubuntu-latest;pub-cache-hosted;sdk:dev;packages:packages/aws_signature_v4
os:ubuntu-latest;pub-cache-hosted;sdk:dev
os:ubuntu-latest;pub-cache-hosted
os:ubuntu-latest
- uses: dart-lang/setup-dart@v1.3
with:
sdk: dev
- id: checkout
uses: actions/checkout@v3.0.0
- id: packages_aws_signature_v4_pub_upgrade
name: packages/aws_signature_v4; dart pub upgrade
if: "always() && steps.checkout.conclusion == 'success'"
working-directory: packages/aws_signature_v4
run: dart pub upgrade
- name: "packages/aws_signature_v4; git submodule update --init"
if: "always() && steps.packages_aws_signature_v4_pub_upgrade.conclusion == 'success'"
working-directory: packages/aws_signature_v4
run: git submodule update --init
- name: packages/aws_signature_v4; dart test
if: "always() && steps.packages_aws_signature_v4_pub_upgrade.conclusion == 'success'"
working-directory: packages/aws_signature_v4
run: dart test
job_003:
name: "unit_test; Dart dev; PKG: packages/aws_signature_v4; `git submodule update --init`, `dart test`, `dart test -p chrome`"
runs-on: ubuntu-latest
steps:
- name: Cache Pub hosted dependencies
uses: actions/cache@v3
with:
path: "~/.pub-cache/hosted"
key: "os:ubuntu-latest;pub-cache-hosted;sdk:dev;packages:packages/aws_signature_v4;commands:command-test_0-test_1"
restore-keys: |
os:ubuntu-latest;pub-cache-hosted;sdk:dev;packages:packages/aws_signature_v4
os:ubuntu-latest;pub-cache-hosted;sdk:dev
os:ubuntu-latest;pub-cache-hosted
os:ubuntu-latest
- uses: dart-lang/setup-dart@v1.3
with:
sdk: dev
- id: checkout
uses: actions/checkout@v3.0.0
- id: packages_aws_signature_v4_pub_upgrade
name: packages/aws_signature_v4; dart pub upgrade
if: "always() && steps.checkout.conclusion == 'success'"
working-directory: packages/aws_signature_v4
run: dart pub upgrade
- name: "packages/aws_signature_v4; git submodule update --init"
if: "always() && steps.packages_aws_signature_v4_pub_upgrade.conclusion == 'success'"
working-directory: packages/aws_signature_v4
run: git submodule update --init
- name: packages/aws_signature_v4; dart test
if: "always() && steps.packages_aws_signature_v4_pub_upgrade.conclusion == 'success'"
working-directory: packages/aws_signature_v4
run: dart test
- name: "packages/aws_signature_v4; dart test -p chrome"
if: "always() && steps.packages_aws_signature_v4_pub_upgrade.conclusion == 'success'"
working-directory: packages/aws_signature_v4
run: dart test -p chrome
job_004:
name: "unit_test; Dart stable; PKG: packages/aws_common; `dart test`, `dart test -p chrome`"
runs-on: ubuntu-latest
steps:
- name: Cache Pub hosted dependencies
uses: actions/cache@v3
with:
path: "~/.pub-cache/hosted"
key: "os:ubuntu-latest;pub-cache-hosted;sdk:stable;packages:packages/aws_common;commands:test_0-test_1"
restore-keys: |
os:ubuntu-latest;pub-cache-hosted;sdk:stable;packages:packages/aws_common
os:ubuntu-latest;pub-cache-hosted;sdk:stable
os:ubuntu-latest;pub-cache-hosted
os:ubuntu-latest
- uses: dart-lang/setup-dart@v1.3
with:
sdk: stable
- id: checkout
uses: actions/checkout@v3.0.0
- id: packages_aws_common_pub_upgrade
name: packages/aws_common; dart pub upgrade
if: "always() && steps.checkout.conclusion == 'success'"
working-directory: packages/aws_common
run: dart pub upgrade
- name: packages/aws_common; dart test
if: "always() && steps.packages_aws_common_pub_upgrade.conclusion == 'success'"
working-directory: packages/aws_common
run: dart test
- name: "packages/aws_common; dart test -p chrome"
if: "always() && steps.packages_aws_common_pub_upgrade.conclusion == 'success'"
working-directory: packages/aws_common
run: dart test -p chrome
job_005:
name: "unit_test; Dart stable; PKG: packages/aws_signature_v4; `git submodule update --init`, `dart test`"
runs-on: ubuntu-latest
steps:
- name: Cache Pub hosted dependencies
uses: actions/cache@v3
with:
path: "~/.pub-cache/hosted"
key: "os:ubuntu-latest;pub-cache-hosted;sdk:stable;packages:packages/aws_signature_v4;commands:command-test_0"
restore-keys: |
os:ubuntu-latest;pub-cache-hosted;sdk:stable;packages:packages/aws_signature_v4
os:ubuntu-latest;pub-cache-hosted;sdk:stable
os:ubuntu-latest;pub-cache-hosted
os:ubuntu-latest
- uses: dart-lang/setup-dart@v1.3
with:
sdk: stable
- id: checkout
uses: actions/checkout@v3.0.0
- id: packages_aws_signature_v4_pub_upgrade
name: packages/aws_signature_v4; dart pub upgrade
if: "always() && steps.checkout.conclusion == 'success'"
working-directory: packages/aws_signature_v4
run: dart pub upgrade
- name: "packages/aws_signature_v4; git submodule update --init"
if: "always() && steps.packages_aws_signature_v4_pub_upgrade.conclusion == 'success'"
working-directory: packages/aws_signature_v4
run: git submodule update --init
- name: packages/aws_signature_v4; dart test
if: "always() && steps.packages_aws_signature_v4_pub_upgrade.conclusion == 'success'"
working-directory: packages/aws_signature_v4
run: dart test
job_006:
name: "unit_test; Dart stable; PKG: packages/aws_signature_v4; `git submodule update --init`, `dart test`, `dart test -p chrome`"
runs-on: ubuntu-latest
steps:
- name: Cache Pub hosted dependencies
uses: actions/cache@v3
with:
path: "~/.pub-cache/hosted"
key: "os:ubuntu-latest;pub-cache-hosted;sdk:stable;packages:packages/aws_signature_v4;commands:command-test_0-test_1"
restore-keys: |
os:ubuntu-latest;pub-cache-hosted;sdk:stable;packages:packages/aws_signature_v4
os:ubuntu-latest;pub-cache-hosted;sdk:stable
os:ubuntu-latest;pub-cache-hosted
os:ubuntu-latest
- uses: dart-lang/setup-dart@v1.3
with:
sdk: stable
- id: checkout
uses: actions/checkout@v3.0.0
- id: packages_aws_signature_v4_pub_upgrade
name: packages/aws_signature_v4; dart pub upgrade
if: "always() && steps.checkout.conclusion == 'success'"
working-directory: packages/aws_signature_v4
run: dart pub upgrade
- name: "packages/aws_signature_v4; git submodule update --init"
if: "always() && steps.packages_aws_signature_v4_pub_upgrade.conclusion == 'success'"
working-directory: packages/aws_signature_v4
run: git submodule update --init
- name: packages/aws_signature_v4; dart test
if: "always() && steps.packages_aws_signature_v4_pub_upgrade.conclusion == 'success'"
working-directory: packages/aws_signature_v4
run: dart test
- name: "packages/aws_signature_v4; dart test -p chrome"
if: "always() && steps.packages_aws_signature_v4_pub_upgrade.conclusion == 'success'"
working-directory: packages/aws_signature_v4
run: dart test -p chrome
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "packages/aws_signature_v4/external/aws-c-auth"]
path = packages/aws_signature_v4/external/aws-c-auth
url = https://github.com/awslabs/aws-c-auth.git
19 changes: 19 additions & 0 deletions mono_repo.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
github:
# Runs the workflows weekly
cron: "0 0 * * 0"

workflows:
lint:
name: Dart Lint
stages:
- analyze_and_format
test:
name: Test
stages:
- unit_test

self_validate: analyze_and_format

merge_stages:
- analyze_and_format
- unit_test
13 changes: 13 additions & 0 deletions packages/aws_common/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Files and directories created by pub.
.dart_tool/
.packages

# Conventional directory for build outputs.
build/

# Omit committing pubspec.lock for library packages; see
# https://dart.dev/guides/libraries/private-files#pubspeclock.
pubspec.lock

coverage/
doc/
3 changes: 3 additions & 0 deletions packages/aws_common/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
## 0.1.0

- Initial version.
Loading