Description
When updating an AWS Kinesis destination with a partial config (e.g., only streamName), the backend doesn't merge the update with existing config values. Instead, it returns the original values unchanged.
1 test is currently skipped in the SDK test suite due to this bug.
Current Behavior
When sending a PATCH request with partial config:
PATCH /api/v1/{tenant_id}/destinations/{id}
{
"type": "aws_kinesis",
"config": {
"streamName": "updated-stream"
// Missing region field
}
}
Expected: Backend merges with existing config, returns updated streamName
Actual: Backend returns original streamName value unchanged
Evidence
Test Implementation: spec-sdk-tests/tests/destinations/aws-kinesis.test.ts lines 336-349
// TODO: Re-enable this test once backend properly handles partial config updates for AWS Kinesis
it.skip('should update destination config', async () => {
const updated = await client.updateDestination(destinationId, {
type: 'aws_kinesis',
config: {
streamName: 'updated-stream', // Only updating streamName
},
});
expect(updated.config.streamName).to.equal('updated-stream'); // FAILS
});
Test Error:
AssertionError: expected 'my-stream' to equal 'updated-stream'
+ expected - actual
-my-stream
+updated-stream
Comparison with Other Destination Types
AWS S3 - WORKS CORRECTLY (aws-s3.test.ts lines 332-346):
it('should update destination config', async () => {
const updated = await client.updateDestination(destinationId, {
type: 'aws_s3',
config: {
bucket: 'updated-bucket', // Only updating bucket
},
});
expect(updated.config.bucket).to.equal('updated-bucket'); // PASSES ✅
});
AWS SQS - WORKS CORRECTLY (aws-sqs.test.ts lines 248-262):
it('should update destination config', async () => {
const updated = await client.updateDestination(destinationId, {
type: 'aws_sqs',
config: {
queueUrl: 'https://sqs.us-west-2.amazonaws.com/123456789012/updated-queue',
},
});
expect(updated.config.queueUrl).to.equal(
'https://sqs.us-west-2.amazonaws.com/123456789012/updated-queue'
); // PASSES ✅
});
Impact
- Skipped Test:
spec-sdk-tests/tests/destinations/aws-kinesis.test.ts line 336
- Users cannot update individual Kinesis config fields without providing all fields
- Inconsistent behavior compared to other AWS destination types
Steps to Reproduce
- Create AWS Kinesis destination with
streamName: 'my-stream' and region: 'us-east-1'
- Update destination with partial config:
{ streamName: 'updated-stream' }
- Observe that returned config still has
streamName: 'my-stream'
Expected Behavior
Partial config updates should merge with existing config:
- Provided fields should be updated
- Omitted fields should retain their existing values
- Behavior should match AWS S3 and AWS SQS destinations
Additional Context
See detailed analysis in spec-sdk-tests/TEST_STATUS.md and spec-sdk-tests/GITHUB_ISSUES.md
Description
When updating an AWS Kinesis destination with a partial config (e.g., only
streamName), the backend doesn't merge the update with existing config values. Instead, it returns the original values unchanged.1 test is currently skipped in the SDK test suite due to this bug.
Current Behavior
When sending a PATCH request with partial config:
Expected: Backend merges with existing config, returns updated
streamNameActual: Backend returns original
streamNamevalue unchangedEvidence
Test Implementation:
spec-sdk-tests/tests/destinations/aws-kinesis.test.tslines 336-349Test Error:
Comparison with Other Destination Types
AWS S3 - WORKS CORRECTLY (
aws-s3.test.tslines 332-346):AWS SQS - WORKS CORRECTLY (
aws-sqs.test.tslines 248-262):Impact
spec-sdk-tests/tests/destinations/aws-kinesis.test.tsline 336Steps to Reproduce
streamName: 'my-stream'andregion: 'us-east-1'{ streamName: 'updated-stream' }streamName: 'my-stream'Expected Behavior
Partial config updates should merge with existing config:
Additional Context
See detailed analysis in
spec-sdk-tests/TEST_STATUS.mdandspec-sdk-tests/GITHUB_ISSUES.md