-
Notifications
You must be signed in to change notification settings - Fork 18
Description
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'
andregion: '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
Metadata
Metadata
Assignees
Labels
Type
Projects
Status