Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
83 changes: 83 additions & 0 deletions .github/workflows/amplify_firehose_dart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
# Generated with aft. To update, run: `aft generate workflows`
name: amplify_firehose_dart
on:
push:
branches:
- main
- stable
paths:
- '.github/workflows/amplify_firehose_dart.yaml'
- '.github/workflows/dart_vm.yaml'
- 'packages/amplify_core/lib/**/*.dart'
- 'packages/amplify_core/pubspec.yaml'
- 'packages/amplify_foundation/amplify_foundation_dart/lib/**/*.dart'
- 'packages/amplify_foundation/amplify_foundation_dart/pubspec.yaml'
- 'packages/amplify_foundation/amplify_foundation_dart_bridge/lib/**/*.dart'
- 'packages/amplify_foundation/amplify_foundation_dart_bridge/pubspec.yaml'
- 'packages/amplify_lints/lib/**/*.yaml'
- 'packages/amplify_lints/pubspec.yaml'
- 'packages/aws_common/lib/**/*.dart'
- 'packages/aws_common/pubspec.yaml'
- 'packages/aws_signature_v4/lib/**/*.dart'
- 'packages/aws_signature_v4/pubspec.yaml'
- 'packages/common/amplify_db_common_dart/lib/**/*.dart'
- 'packages/common/amplify_db_common_dart/pubspec.yaml'
- 'packages/kinesis/amplify_firehose_dart/**/*.dart'
- 'packages/kinesis/amplify_firehose_dart/**/*.yaml'
- 'packages/kinesis/amplify_firehose_dart/lib/**/*'
- 'packages/kinesis/amplify_firehose_dart/test/**/*'
- 'packages/smithy/smithy/lib/**/*.dart'
- 'packages/smithy/smithy/pubspec.yaml'
- 'packages/smithy/smithy_aws/lib/**/*.dart'
- 'packages/smithy/smithy_aws/pubspec.yaml'
pull_request:
paths:
- '.github/workflows/amplify_firehose_dart.yaml'
- '.github/workflows/dart_vm.yaml'
- 'packages/amplify_core/lib/**/*.dart'
- 'packages/amplify_core/pubspec.yaml'
- 'packages/amplify_foundation/amplify_foundation_dart/lib/**/*.dart'
- 'packages/amplify_foundation/amplify_foundation_dart/pubspec.yaml'
- 'packages/amplify_foundation/amplify_foundation_dart_bridge/lib/**/*.dart'
- 'packages/amplify_foundation/amplify_foundation_dart_bridge/pubspec.yaml'
- 'packages/amplify_lints/lib/**/*.yaml'
- 'packages/amplify_lints/pubspec.yaml'
- 'packages/aws_common/lib/**/*.dart'
- 'packages/aws_common/pubspec.yaml'
- 'packages/aws_signature_v4/lib/**/*.dart'
- 'packages/aws_signature_v4/pubspec.yaml'
- 'packages/common/amplify_db_common_dart/lib/**/*.dart'
- 'packages/common/amplify_db_common_dart/pubspec.yaml'
- 'packages/kinesis/amplify_firehose_dart/**/*.dart'
- 'packages/kinesis/amplify_firehose_dart/**/*.yaml'
- 'packages/kinesis/amplify_firehose_dart/lib/**/*'
- 'packages/kinesis/amplify_firehose_dart/test/**/*'
- 'packages/smithy/smithy/lib/**/*.dart'
- 'packages/smithy/smithy/pubspec.yaml'
- 'packages/smithy/smithy_aws/lib/**/*.dart'
- 'packages/smithy/smithy_aws/pubspec.yaml'
schedule:
- cron: "0 13 * * 1" # Every Monday at 06:00 PST
workflow_dispatch:
defaults:
run:
shell: bash

# These permissions are needed to interact with GitHub's OIDC Token endpoint.
permissions:
id-token: write
contents: read

# Cancels in-progress job when there is another push to same ref.
# https://docs.github.com/en/actions/using-jobs/using-concurrency#example-only-cancel-in-progress-jobs-or-runs-for-the-current-workflow
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
test:
uses: ./.github/workflows/dart_vm.yaml
secrets: inherit
with:
package-name: amplify_firehose_dart
working-directory: packages/kinesis/amplify_firehose_dart
4 changes: 4 additions & 0 deletions .github/workflows/amplify_kinesis.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ on:
- 'packages/kinesis/amplify_kinesis/test/**/*'
- 'packages/kinesis/amplify_kinesis_dart/lib/**/*.dart'
- 'packages/kinesis/amplify_kinesis_dart/pubspec.yaml'
- 'packages/kinesis/amplify_record_cache_dart/lib/**/*.dart'
- 'packages/kinesis/amplify_record_cache_dart/pubspec.yaml'
- 'packages/smithy/smithy/lib/**/*.dart'
- 'packages/smithy/smithy/pubspec.yaml'
- 'packages/smithy/smithy_aws/lib/**/*.dart'
Expand Down Expand Up @@ -56,6 +58,8 @@ on:
- 'packages/kinesis/amplify_kinesis/test/**/*'
- 'packages/kinesis/amplify_kinesis_dart/lib/**/*.dart'
- 'packages/kinesis/amplify_kinesis_dart/pubspec.yaml'
- 'packages/kinesis/amplify_record_cache_dart/lib/**/*.dart'
- 'packages/kinesis/amplify_record_cache_dart/pubspec.yaml'
- 'packages/smithy/smithy/lib/**/*.dart'
- 'packages/smithy/smithy/pubspec.yaml'
- 'packages/smithy/smithy_aws/lib/**/*.dart'
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/amplify_kinesis_dart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ on:
- 'packages/kinesis/amplify_kinesis_dart/**/*.yaml'
- 'packages/kinesis/amplify_kinesis_dart/lib/**/*'
- 'packages/kinesis/amplify_kinesis_dart/test/**/*'
- 'packages/kinesis/amplify_record_cache_dart/lib/**/*.dart'
- 'packages/kinesis/amplify_record_cache_dart/pubspec.yaml'
- 'packages/smithy/smithy/lib/**/*.dart'
- 'packages/smithy/smithy/pubspec.yaml'
- 'packages/smithy/smithy_aws/lib/**/*.dart'
Expand Down Expand Up @@ -54,6 +56,8 @@ on:
- 'packages/kinesis/amplify_kinesis_dart/**/*.yaml'
- 'packages/kinesis/amplify_kinesis_dart/lib/**/*'
- 'packages/kinesis/amplify_kinesis_dart/test/**/*'
- 'packages/kinesis/amplify_record_cache_dart/lib/**/*.dart'
- 'packages/kinesis/amplify_record_cache_dart/pubspec.yaml'
- 'packages/smithy/smithy/lib/**/*.dart'
- 'packages/smithy/smithy/pubspec.yaml'
- 'packages/smithy/smithy_aws/lib/**/*.dart'
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/amplify_kinesis_example.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,8 @@ on:
- 'packages/kinesis/amplify_kinesis/pubspec.yaml'
- 'packages/kinesis/amplify_kinesis_dart/lib/**/*.dart'
- 'packages/kinesis/amplify_kinesis_dart/pubspec.yaml'
- 'packages/kinesis/amplify_record_cache_dart/lib/**/*.dart'
- 'packages/kinesis/amplify_record_cache_dart/pubspec.yaml'
- 'packages/secure_storage/amplify_secure_storage/android/**/*'
- 'packages/secure_storage/amplify_secure_storage/ios/**/*'
- 'packages/secure_storage/amplify_secure_storage/lib/**/*.dart'
Expand Down Expand Up @@ -127,6 +129,8 @@ on:
- 'packages/kinesis/amplify_kinesis/pubspec.yaml'
- 'packages/kinesis/amplify_kinesis_dart/lib/**/*.dart'
- 'packages/kinesis/amplify_kinesis_dart/pubspec.yaml'
- 'packages/kinesis/amplify_record_cache_dart/lib/**/*.dart'
- 'packages/kinesis/amplify_record_cache_dart/pubspec.yaml'
- 'packages/secure_storage/amplify_secure_storage/android/**/*'
- 'packages/secure_storage/amplify_secure_storage/ios/**/*'
- 'packages/secure_storage/amplify_secure_storage/lib/**/*.dart'
Expand Down
75 changes: 75 additions & 0 deletions .github/workflows/amplify_record_cache_dart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# Generated with aft. To update, run: `aft generate workflows`
name: amplify_record_cache_dart
on:
push:
branches:
- main
- stable
paths:
- '.github/workflows/amplify_record_cache_dart.yaml'
- '.github/workflows/dart_vm.yaml'
- 'packages/amplify_core/lib/**/*.dart'
- 'packages/amplify_core/pubspec.yaml'
- 'packages/amplify_foundation/amplify_foundation_dart/lib/**/*.dart'
- 'packages/amplify_foundation/amplify_foundation_dart/pubspec.yaml'
- 'packages/amplify_lints/lib/**/*.yaml'
- 'packages/amplify_lints/pubspec.yaml'
- 'packages/aws_common/lib/**/*.dart'
- 'packages/aws_common/pubspec.yaml'
- 'packages/aws_signature_v4/lib/**/*.dart'
- 'packages/aws_signature_v4/pubspec.yaml'
- 'packages/common/amplify_db_common_dart/lib/**/*.dart'
- 'packages/common/amplify_db_common_dart/pubspec.yaml'
- 'packages/kinesis/amplify_record_cache_dart/**/*.dart'
- 'packages/kinesis/amplify_record_cache_dart/**/*.yaml'
- 'packages/kinesis/amplify_record_cache_dart/lib/**/*'
- 'packages/kinesis/amplify_record_cache_dart/test/**/*'
- 'packages/smithy/smithy/lib/**/*.dart'
- 'packages/smithy/smithy/pubspec.yaml'
pull_request:
paths:
- '.github/workflows/amplify_record_cache_dart.yaml'
- '.github/workflows/dart_vm.yaml'
- 'packages/amplify_core/lib/**/*.dart'
- 'packages/amplify_core/pubspec.yaml'
- 'packages/amplify_foundation/amplify_foundation_dart/lib/**/*.dart'
- 'packages/amplify_foundation/amplify_foundation_dart/pubspec.yaml'
- 'packages/amplify_lints/lib/**/*.yaml'
- 'packages/amplify_lints/pubspec.yaml'
- 'packages/aws_common/lib/**/*.dart'
- 'packages/aws_common/pubspec.yaml'
- 'packages/aws_signature_v4/lib/**/*.dart'
- 'packages/aws_signature_v4/pubspec.yaml'
- 'packages/common/amplify_db_common_dart/lib/**/*.dart'
- 'packages/common/amplify_db_common_dart/pubspec.yaml'
- 'packages/kinesis/amplify_record_cache_dart/**/*.dart'
- 'packages/kinesis/amplify_record_cache_dart/**/*.yaml'
- 'packages/kinesis/amplify_record_cache_dart/lib/**/*'
- 'packages/kinesis/amplify_record_cache_dart/test/**/*'
- 'packages/smithy/smithy/lib/**/*.dart'
- 'packages/smithy/smithy/pubspec.yaml'
schedule:
- cron: "0 13 * * 1" # Every Monday at 06:00 PST
workflow_dispatch:
defaults:
run:
shell: bash

# These permissions are needed to interact with GitHub's OIDC Token endpoint.
permissions:
id-token: write
contents: read

# Cancels in-progress job when there is another push to same ref.
# https://docs.github.com/en/actions/using-jobs/using-concurrency#example-only-cancel-in-progress-jobs-or-runs-for-the-current-workflow
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
test:
uses: ./.github/workflows/dart_vm.yaml
secrets: inherit
with:
package-name: amplify_record_cache_dart
working-directory: packages/kinesis/amplify_record_cache_dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,22 @@
/// Amplify Kinesis Data Streams client for Dart.
library;

// Re-export shared types used in the public API
export 'package:amplify_record_cache_dart/amplify_record_cache_dart.dart'
show
FlushStrategy,
FlushInterval,
FlushNone,
FlushData,
RecordData,
ClearCacheData;

// Main client
export 'src/amplify_kinesis_client.dart';
// Options
export 'src/amplify_kinesis_client_options.dart';
// Exceptions
export 'src/exception/amplify_kinesis_exception.dart';
// Flush strategies
export 'src/flush_strategy/flush_strategy.dart';
// Return types
export 'src/model/clear_cache_data.dart';
export 'src/model/flush_data.dart';
export 'src/model/record_data.dart';
// SDK client (for escape hatch)
export 'src/sdk/kinesis.dart'
show
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,12 @@ import 'package:amplify_foundation_dart/amplify_foundation_dart.dart'
import 'package:amplify_foundation_dart_bridge/amplify_foundation_dart_bridge.dart';
import 'package:amplify_kinesis_dart/src/amplify_kinesis_client_options.dart';
import 'package:amplify_kinesis_dart/src/exception/amplify_kinesis_exception.dart';
import 'package:amplify_kinesis_dart/src/flush_strategy/flush_strategy.dart';
import 'package:amplify_kinesis_dart/src/impl/auto_flush_scheduler.dart';
import 'package:amplify_kinesis_dart/src/impl/kinesis_record.dart';
import 'package:amplify_kinesis_dart/src/impl/kinesis_sender.dart';
import 'package:amplify_kinesis_dart/src/impl/record_client.dart';
import 'package:amplify_kinesis_dart/src/impl/storage/platform/record_storage_platform.dart';
import 'package:amplify_kinesis_dart/src/model/clear_cache_data.dart';
import 'package:amplify_kinesis_dart/src/model/flush_data.dart';
import 'package:amplify_kinesis_dart/src/model/record_data.dart';
import 'package:amplify_kinesis_dart/src/kinesis_limits.dart' as limits;
import 'package:amplify_kinesis_dart/src/sdk/kinesis.dart';
import 'package:amplify_kinesis_dart/src/version.dart';
import 'package:amplify_record_cache_dart/amplify_record_cache_dart.dart';
import 'package:smithy/smithy.dart' show WithUserAgent;

/// User agent component identifying this library.
Expand Down Expand Up @@ -114,6 +109,11 @@ class AmplifyKinesisClient {
identifier: region,
storagePath: storagePath,
maxCacheBytes: opts.cacheMaxBytes,
maxRecordsPerBatch: limits.maxRecordsPerStream,
maxBytesPerBatch: limits.maxPutRecordsSizeBytes,
maxRecordSizeBytes: limits.maxRecordSizeBytes,
dbPrefix: 'kinesis_records',
storeName: 'kinesis_records',
);

final kinesisClient = KinesisClient(
Expand Down Expand Up @@ -208,8 +208,21 @@ class AmplifyKinesisClient {
_logger.debug('Record collection is disabled, dropping record');
return const Result.ok(RecordData());
}
// KDS-specific partition key validation
final codePoints = partitionKey.runes.length;
if (codePoints == 0 || codePoints > limits.maxPartitionKeyLength) {
return Result.error(
KinesisValidationException(
'Partition key length ($codePoints) is outside the allowed '
'range of 1-${limits.maxPartitionKeyLength} characters.',
recoverySuggestion:
'Use a partition key between 1 and '
'${limits.maxPartitionKeyLength} characters.',
),
);
}
_logger.verbose('Recording to stream: $streamName');
final kinesisRecord = RecordInput.now(
final kinesisRecord = createKinesisRecordInputNow(
data: data,
partitionKey: partitionKey,
streamName: streamName,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

import 'package:amplify_kinesis_dart/src/amplify_kinesis_client.dart'
show AmplifyKinesisClient;
import 'package:amplify_kinesis_dart/src/flush_strategy/flush_strategy.dart';
import 'package:amplify_record_cache_dart/amplify_record_cache_dart.dart';

/// {@template amplify_kinesis.amplify_kinesis_client_options}
/// Configuration options for [AmplifyKinesisClient].
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,7 @@
// SPDX-License-Identifier: Apache-2.0

import 'package:amplify_core/amplify_core.dart';
import 'package:amplify_kinesis_dart/src/exception/record_cache_exception.dart';

/// Default recovery suggestion for errors.
const String defaultRecoverySuggestion =
'Inspect the underlying error for more details.';
import 'package:amplify_record_cache_dart/amplify_record_cache_dart.dart';

/// {@template amplify_kinesis.amplify_kinesis_exception}
/// Base exception for Amplify Kinesis Data Streams errors.
Expand Down
Loading
Loading