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

Chore/secure storage test #4190

Closed
wants to merge 43 commits into from
Closed

Conversation

khatruong2009
Copy link
Member

Issue #, if available:

Description of changes:

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

NikaHsn and others added 30 commits November 27, 2023 09:18
…oudwatch sdk (#3441)

* add a new dart package with aft create

* add cloudwatch sdk

* update dependencies constraint in pubspec files

* update sdk.yaml file to remove unused apis
* chore: added e2e test environment for non remote config

* chore: add remote config integration test stack environment for logging

* chore: correctly format imports using snake case. removed empty this.config object

* chore: add license header to top of the file

* chore: remove commented code

* chore: remove commented code

* remove unnecessary import

Co-authored-by: Dillon Nys <24740863+dnys1@users.noreply.github.com>

* chore: removed unnecessary path.join and fixed formatting

* chore: removed unnecessary argument and fixed filepath

* chore: added remoteconfig.js, fixed remoteloggingconstraints.json confusion

* chore: remove unnecessary path.join

* chore: added e2e test environment for non remote config

* chore: add remote config integration test stack environment for logging

* remove unnecessary import

Co-authored-by: Dillon Nys <24740863+dnys1@users.noreply.github.com>

* chore: added remoteconfig.js, fixed remoteloggingconstraints.json confusion

* chore: added BUCKET to argument for handling remote config

* chore: changed remoteconfig to typescript but still need types

* chore: updated types for remote config

* chore: changed argument to adjust to using NodejsFunction instead of Function

* chore: updated typing for setCachedConfig

* chore: removed old remoteconfig.js file and removed unnecessary import

* Update infra/lib/logging/resources/lambda/remoteconfig.ts

Co-authored-by: Dillon Nys <24740863+dnys1@users.noreply.github.com>

* Update infra/lib/logging/resources/lambda/remoteconfig.ts

Co-authored-by: Dillon Nys <24740863+dnys1@users.noreply.github.com>

* Update infra/lib/logging/resources/lambda/remoteconfig.ts

Co-authored-by: Dillon Nys <24740863+dnys1@users.noreply.github.com>

* Update infra/lib/logging/resources/lambda/remoteconfig.ts

Co-authored-by: Dillon Nys <24740863+dnys1@users.noreply.github.com>

* Update infra/lib/logging/resources/lambda/remoteconfig.ts

Co-authored-by: Dillon Nys <24740863+dnys1@users.noreply.github.com>

---------

Co-authored-by: Dillon Nys <24740863+dnys1@users.noreply.github.com>
chore(logging): add folder for logging_cloudwatch to have aws and amplify implementations in their own package.

Co-authored-by: Nika Hassani <nikaws@amazon.com>
* feat(logging): add queued item store
* chore(logging): add github workflows
* chore: used aft to create new amplify_logging_cloudwatch package under logging_cloudwatch package

* feat(logging): add queued item store (#3564)

* feat(logging): add queued item store
* chore(logging): add github workflows

* chore: used aft to create new amplify_logging_cloudwatch package under logging_cloudwatch package

* feat(logging): add queued item store (#3564)

* feat(logging): add queued item store
* chore(logging): add github workflows

* chore: moving queued item store to logging_cloudwatch

* chore: updated web compiler version to fix build issue

* chore: corrected the aws_logging_cloudwatch in pubspec to be the correct version

* chore: fixed drift dependency in pubspec.yaml

* chore: fixed getAll creating new timestamp and addItem not using timestamp argument

* chore: refactored isFull method and supporting methods so that it doesn't call getAll everytime

* chore(logging): removed commented code

* chore(logging): changed comments on pubspec.yaml

* Update packages/logging_cloudwatch/amplify_logging_cloudwatch/example/pubspec.yaml

Co-authored-by: Dillon Nys <24740863+dnys1@users.noreply.github.com>

* chore(logging): fixed error in example pubspec

* chore(logging): removed flutter files

* chore: added tests for the class

* Update packages/logging_cloudwatch/amplify_logging_cloudwatch/lib/src/queued_item_store/drift/drift_queued_item_store.dart

Co-authored-by: NikaHsn <nika.hasani@gmail.com>

* Update packages/logging_cloudwatch/amplify_logging_cloudwatch/lib/src/queued_item_store/drift/drift_queued_item_store.dart

Co-authored-by: NikaHsn <nika.hasani@gmail.com>

* chore: added timestamp and ID into the addition and subtraction calculations

* Update packages/logging_cloudwatch/amplify_logging_cloudwatch/lib/src/queued_item_store/index_db/indexed_db_adapter.dart

Co-authored-by: NikaHsn <nika.hasani@gmail.com>

* Update packages/logging_cloudwatch/amplify_logging_cloudwatch/lib/src/queued_item_store/index_db/indexed_db_adapter.dart

Co-authored-by: NikaHsn <nika.hasani@gmail.com>

* chore: added timestamp and id into addition and subtraction calculation for isFull

* Update packages/logging_cloudwatch/aws_logging_cloudwatch/lib/aws_logging_cloudwatch.dart

Co-authored-by: NikaHsn <nika.hasani@gmail.com>

* chore: refactored isFull in indexed_db_adapter to match the implementation of drift

* chore: generated aft workflows for new package

* chore: updated template tags

* chore: added test for isFull method

* chore: refactored the clear method to only set totalbytesize to 0 after clear has happened rather than before

* chore: removed unnecessary default test file

* chore: fixed macro tags

* chore: added matching unit tests to aws_logging_cloudwatch tests

* chore: refactored addition and subtraction of currenttotalbytesize to reduce repeating code and hardcoded timestamp size

* chore: switched to using string.length method rather than utf8.encode

* chore: changed the isFull test, in memory isFull implementation has a helper function now,  reverted back to original test file to be able to test indexed db

* chore: added docs for helper function

* chore: fixed test name

* chore: updated docs to match implementation removing utf8

* chore: fixed name on templates and macros

* chore: added timestamp.length calculation just in case there are different time stamps. adjusted docs to accomadate for the change

* chore: added github workflows and correct dependencies in dependabot

* chore: refactored byteSize of queuedItemStore to use DRY principles

* Update packages/logging_cloudwatch/aws_logging_cloudwatch/lib/src/queued_item_store/queued_item_store.dart

Co-authored-by: Dillon Nys <24740863+dnys1@users.noreply.github.com>

* Update packages/logging_cloudwatch/aws_logging_cloudwatch/lib/src/queued_item_store/queued_item_store.dart

Co-authored-by: NikaHsn <nika.hasani@gmail.com>

* chore: fixed QueuedItem syntax

* chore: test comment to trigger workflows

* Revert "chore: test comment to trigger workflows"

This reverts commit 8d1f7eb.

* chore: added static method to eliminate the need to create a new instance just to get byte size of a QueuedItem

* chore: added public docs to the static method

---------

Co-authored-by: NikaHsn <nika.hasani@gmail.com>
Co-authored-by: Dillon Nys <24740863+dnys1@users.noreply.github.com>
* fixed comment for static method

* fix: updated versions with aft and added back in queuedItemStorage exports (not sure how it got removed)

* fix: made tests more efficient so it wouldn't time out and removed a default todo comment

* chore: changed package_info_plus back to ^4.0.2
chore: fix indexed db adapter. was failing browser tests
* fix(logging): queued item store to use path provider on vm if storage path is null
* chore(logging): update github workflows
…nc (#3699)

* feat(logging): enable log rotation and set retry
* feat(logging): add cloudwatch logger plugin

* feat(logging): default remote config

chore: moved declarations to improve dart syntax

chore: use logger instead of print statement

chore: added sigv4signer to sign the http request

chore: switched Future.delayed to Timer and implemented jsonserializable

chore: roll back unnecessary changes from cloudwatch_logger_plugin

chore: removed an extra line of fetchAndCacheConstraintFromEndpoint

chore: moved saveConstraintLocally out of fetchConstraintFromEndpoint and moved into fetchAndCacheFromEndpoint

fix: seeing if moving the queued_item_store_test.dart file into main test directory will fix testing issue

Revert "fix: seeing if moving the queued_item_store_test.dart file into main test directory will fix testing issue"

This reverts commit f033713.

chore: added ignore line for try catch block and removed unnecessary method

chore: added web implementation of remote_constraint_provider

fix: try changing path provider dependency to fix test

fix: added flutter sdk to dependencies

chore: generated workflows after adding dependencies

fix: fixed indentation issue in pubspec

chore: generate new workflows

chore: changed file and folder names for file_storage

chore: fix import for renamed files, added region as a required field to DefaultRemoteConfiguration and fixed scope variable to adjust for that. Also moved scope variable to inside fetchConstraintFromEndpoint method

replaced AmplifyLogger with AWSLoggerMixin instead.

chore: made signer private and used AWSHttpRequest.get method directly rather than calling it through AWSHttpRequest

use stoppable timer instead of while loop

chore: updated LoggingConstraint class to match the remote config file

chore: added AWSHeaders.accept to the headers for the request

chore: added public documentation and trailing comma

chore: removed unnecessary time checks in the getter if statement

chore: removed initialize() method and put it into the constructor

chore: removed unnecessary lastUpdate variable now that it is no longer checked in the getter

chore: added a comment and removed flutter plugin files

chore: fixed some formatting

chore: removed the InSeconds part of the refreshIntervalInSeconds property because it's a Duration, which isn't specific to seconds

chore: fixed comment to reflect change in fetchInterval and flushInterval property name change

chore: make isRunning variable privatge

chore: corrected error handling in the fetchAndCacheConstraintFromEndpoint method

chore: add license headers to storage implementations

chore: added path for join() method to ensure windows compatibility

chore: removed dart:io dependency, changed HttpHeaders.acceptHeader to AWSHeaders.accept, changed getter to just retrieve from cache

chore: remove flutter dependency

chore: removed http and replaced with AWSHttpClient

chore: removed unnecessary stop method

chore: remove .flutter-plugins files

chore: moved constructor initializers into a separate init function so that I can use async await

chore: added local storage check before fetching in the initialize function

chore: refactored DefaultRemoteLoggingConstraintProvider to separate createRequest from the rest of the class, allowing for signed and unsigned requests to be sent

chore: used private global variable for local storage key

chore: refacted fileStore dart implementation

* chore: dart FileStorage refactor and unit tests added

* chore: made the Future.delayed more explicit

* chore: added flutter path provider to amplify_logging_cloudwatch

* chore: removed fluter dependency

* chore: remove flutter plugin files from git ignore now that flutter dependency is removed

* chore: changed names of file storage functions, logger level, and removed flutter plugin gitignore

* chore: remove flutter plugin .gitignore

* chore: Added completer, removed conditional import, added closeable, removed credentials provider from base class and only added to defaultconstraintprovider, changed fileStorage to use FileStorage instead of just FileStorageImpl, removed isRunning since it is never false after the first run, added completer so that delay isn't needed for tests, removed the catching of errors, added credentials provider parameter to awssigv4signer,

* chore: updated aft workflows

* Update packages/logging_cloudwatch/aws_logging_cloudwatch/lib/src/plugin_config.dart

Co-authored-by: Dillon Nys <24740863+dnys1@users.noreply.github.com>

* Update packages/logging_cloudwatch/aws_logging_cloudwatch/lib/src/plugin_config.dart

Co-authored-by: Dillon Nys <24740863+dnys1@users.noreply.github.com>

* chore: removed manual toJson and replace jsonSerializable with zAmplifySerializable

* Update packages/logging_cloudwatch/aws_logging_cloudwatch/lib/src/file_storage/file_storage.dart

Co-authored-by: Dillon Nys <24740863+dnys1@users.noreply.github.com>

* Update packages/logging_cloudwatch/aws_logging_cloudwatch/lib/src/file_storage/file_storage.dart

Co-authored-by: Dillon Nys <24740863+dnys1@users.noreply.github.com>

* chore: use factory constructor and _fileStorage might be null in remoteConstraint

* chore: fixed local storage variable and method name and also added and fixed tests

* Update packages/logging_cloudwatch/aws_logging_cloudwatch/lib/src/remote_constraint_provider.dart

Co-authored-by: Dillon Nys <24740863+dnys1@users.noreply.github.com>

* Update packages/logging_cloudwatch/aws_logging_cloudwatch/lib/src/remote_constraint_provider.dart

Co-authored-by: Dillon Nys <24740863+dnys1@users.noreply.github.com>

* Update packages/logging_cloudwatch/aws_logging_cloudwatch/lib/src/remote_constraint_provider.dart

Co-authored-by: Dillon Nys <24740863+dnys1@users.noreply.github.com>

* Update packages/logging_cloudwatch/aws_logging_cloudwatch/lib/src/remote_constraint_provider.dart

Co-authored-by: Dillon Nys <24740863+dnys1@users.noreply.github.com>

* chore: add AWSSerializable and added comment to test to address Future.delayed

* chore: fixed some formatting and removed todo comment

* chore: removed unnecessary comments

* Update packages/logging_cloudwatch/aws_logging_cloudwatch/test/remote_constraint_provider_test.dart

Co-authored-by: NikaHsn <nika.hasani@gmail.com>

* Update packages/logging_cloudwatch/aws_logging_cloudwatch/test/remote_constraint_provider_test.dart

Co-authored-by: NikaHsn <nika.hasani@gmail.com>

* Update packages/logging_cloudwatch/aws_logging_cloudwatch/lib/src/file_storage/file_storage.dart

Co-authored-by: NikaHsn <nika.hasani@gmail.com>

---------

Co-authored-by: Nika Hassani <nikaws@amazon.com>
Co-authored-by: Dillon Nys <24740863+dnys1@users.noreply.github.com>
Co-authored-by: NikaHsn <nika.hasani@gmail.com>
fix(logging): fix logging infra stack duplicate imports and set s3bucket autoDeleteObject to true
* feat(logging): add LoggingConfig to AmplifyConfig
* chore(logging): cloudwatch logger plugin to use amplify_core logging config
* chore: add identifyCall to flush logs and batch send methods in cloudwatch_logger_plugin

* chore: changed export from amplify_core to import from cloudwatch_logger_plugin.dart directly. Also moved identifyCall method around the _startSyncingIfNotInProgress

* Update packages/logging_cloudwatch/aws_logging_cloudwatch/lib/src/cloudwatch_logger_plugin.dart

Co-authored-by: NikaHsn <nika.hasani@gmail.com>

* Update packages/logging_cloudwatch/aws_logging_cloudwatch/lib/src/cloudwatch_logger_plugin.dart

Co-authored-by: NikaHsn <nika.hasani@gmail.com>

* chore: restored comments that were deleted

* chore: fixed formatting issues and added more descriptive comment

* chore: fixed flushIntervalInSeconds variable name

* chore: generated workflows

* chore: removed dependabot duplicates

* chore: attempt to remove duplicates part 2

* chore: remove duplicates from dependabot

* chore: removed dependency

---------

Co-authored-by: NikaHsn <nika.hasani@gmail.com>
)

feat(logging): configure cloudwatch logger with Amplify.configure()
feat(logging): clear logs when user sign out
…or logs and remote config (#3892)

* fix(logging): enable local log store and remote config with file storage for amplify cloudwatch logger plugin
Nika Hassani and others added 13 commits November 27, 2023 09:18
feat(logging):send amplify library logs to cloudwatch
#3910)

chore(logging): update example app for the app bar leading icon to sign-out user
* feat: implement _isLoggable and corrected categoryLogLevel in UserLogLevel class

* chore: added _userId private variable instead of using method variable

* chore: add aft workflows

* chore: added helper method make sure category keys match

* chore: removed unnecessary new listener

* Update packages/logging_cloudwatch/aws_logging_cloudwatch/lib/src/cloudwatch_logger_plugin.dart

Co-authored-by: NikaHsn <nika.hasani@gmail.com>

* chore: removed white spaces

* chore: added tests, tests methods, and fixed a typ

* Update packages/logging_cloudwatch/aws_logging_cloudwatch/lib/src/cloudwatch_logger_plugin.dart

Co-authored-by: NikaHsn <nika.hasani@gmail.com>

* chore: removed testing methods and adjusted tests

* chore: WIP - changed tests for handleLogEntry

* chore: added future<void>.delay(0) to tests

* chore: updated remote_constraint_provider_test

* updated the tests

* chore: flattened if statement

---------

Co-authored-by: NikaHsn <nika.hasani@gmail.com>
Co-authored-by: Nika Hassani <nikaws@amazon.com>
@khatruong2009 khatruong2009 deleted the chore/secure-storage-test branch November 27, 2023 18:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants