Skip to content

Feat/kinesis firehose library#6635

Closed
ekjotmultani wants to merge 35 commits intofeat/kinesis-e2e-infrafrom
feat/kinesis-firehose-library
Closed

Feat/kinesis firehose library#6635
ekjotmultani wants to merge 35 commits intofeat/kinesis-e2e-infrafrom
feat/kinesis-firehose-library

Conversation

@ekjotmultani
Copy link
Copy Markdown
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.

@ekjotmultani ekjotmultani force-pushed the feat/kinesis-firehose-library branch from e057085 to ad367f8 Compare February 24, 2026 07:16
@ekjotmultani ekjotmultani marked this pull request as ready for review February 24, 2026 17:13
@ekjotmultani ekjotmultani requested a review from a team as a code owner February 24, 2026 17:13
@ekjotmultani ekjotmultani force-pushed the feat/kinesis-firehose-library branch 5 times, most recently from 717f30c to cafd10a Compare February 27, 2026 08:29
ekjotmultani and others added 12 commits February 27, 2026 19:08
Adds the foundational package with minimal constructs needed for
the Kinesis client libraries:
- AmplifyException base class
- AWSCredentialsProvider<T> and AWSCredentials sealed hierarchy
- Logger interface with AmplifyLogger implementation
- LogLevel enum
- Result<T, E> sealed type
Provides V2CredentialsProviderBridge to bridge aws_common (V2)
credentials to amplify_foundation_dart (V3) credentials.
Shared by kinesis client packages to avoid duplicating bridge logic.
@ekjotmultani ekjotmultani force-pushed the feat/kinesis-firehose-library branch from cafd10a to 896d76c Compare February 27, 2026 19:58
@ekjotmultani ekjotmultani force-pushed the feat/kinesis-firehose-library branch from 896d76c to b2e56f6 Compare February 27, 2026 20:18
…plify backend

Provisions Kinesis Data Stream, Firehose delivery stream, IAM user,
and Secrets Manager secret via an Amplify Gen 2 backend using
backend.createStack() to access CDK directly — no auth or other
Amplify categories needed.

Removes the standalone KinesisTestStack and KinesisTestResources
construct from infra/, along with references in the main integ stack
and GitHub stack.
…3 API changes

- Add AmplifyFirehoseClient with offline-capable data streaming
- Sealed AmplifyFirehoseException hierarchy (Storage, Service, LimitExceeded, Unknown, Network, ClientClosed)
- Sealed AmazonDataFirehoseFlushStrategy with Interval and None variants
- FlushData and ClearCacheData return types for flush()/clearCache()
- AmplifyFirehoseClientOptions with configurable maxRecords
- SDK client access via firehoseClient getter
- Flushing guard to prevent concurrent flush operations
- Deprecated aliases for backward compatibility (AmazonDataFirehose, AmazonDataFirehoseOptions)
- 48 unit tests passing
- TODOs left for V3: AmplifyException base, generic AWSCredentialsProvider, Logger
- Replace amplify_core credential/exception types with foundation v3 equivalents
- Exceptions extend AmplifyException from amplify_foundation_dart
- Barrel exports re-export AWSCredentials, AWSCredentialsProvider, StaticCredentials, TemporaryCredentials, Logger
- Add _CredentialsProviderAdapter in sdk_bridge to convert foundation provider to amplify_core for Smithy SDK
- Add V2CredentialsProviderBridge for V2→V3 credential migration
- Options include optional Logger parameter
- Update tests and mocks for v3 types
- Add CDK construct in infra-common for Kinesis + Firehose test resources
- Add infra-gen2/backends/kinesis/main backend definition
- Update test_config.dart to read from environment variables
- Add GitHub Actions workflow for kinesis E2E tests
- Add kinesis to Category enum in amplify_core
- Register kinesis workspace in infra-gen2 package.json
- Add kinesis backend group to deploy_gen2.dart
- AmplifyFirehoseClientOptions validates cacheMaxBytes, maxRecords, maxRetries
- Flush interval validated to be between 1 second and 1 hour
- maxRecords capped at 500 (Firehose PutRecordBatch limit)
- Export kFirehoseMaxRecordsPerBatch and kFirehoseMaxBatchBytes constants
Replace local credentials_bridge.dart with import from the shared
bridge package. Re-export V2CredentialsProviderBridge from barrel.
Wraps the HTTP client with _UserAgentHttpClient that appends
'aws-amazon-firehose-dart/0.1.0' to the User-Agent header.
Works independently of Amplify configuration and composes with
the existing AmplifyHttpClient user agent when Amplify is present.
@ekjotmultani ekjotmultani force-pushed the feat/kinesis-firehose-library branch from 898c824 to 25aa42e Compare March 2, 2026 04:38
…jects records exceeding the Firehose per-record limit of 1,000 KB\n(before base64 encoding) with FirehoseRecordTooLargeException.\nAdds kFirehoseMaxRecordBytes constant and unit tests."
…hat records sent to a non-existent stream do not\nblock valid stream records from flushing successfully.\nAlso adds E2E test for the same scenario."
@ekjotmultani ekjotmultani changed the base branch from main to feat/amplify-foundation-dart-minimal March 4, 2026 17:07
@ekjotmultani ekjotmultani changed the base branch from main to feat/kinesis-e2e-infra March 6, 2026 08:51
@ekjotmultani ekjotmultani deleted the feat/kinesis-firehose-library branch March 24, 2026 22:34
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.

1 participant