Skip to content

KSM-841: fix delete() skipping keys with falsy values in Oracle storage - #969

Merged
stas-schaller merged 1 commit into
release/storage/javascript/oracle-kms/v1.0.0from
KSM-841-fix-delete-falsy-values
Mar 16, 2026
Merged

stas-schaller merged 1 commit into
release/storage/javascript/oracle-kms/v1.0.0from
KSM-841-fix-delete-falsy-values

Conversation

@stas-schaller

Copy link
Copy Markdown
Collaborator

Summary

Fix OciKeyValueStore.delete() silently skipping deletion when a key holds a falsy value ("", 0, false).

Root Cause

delete() used if (config[key]) (truthy check) instead of if (key in config) (existence check). Keys with falsy values routed into the else branch — the key was never removed and the logger incorrectly reported "Key not found".

Same bug was fixed in Azure (KSM-835), AWS (KSM-839), and GCP (KSM-840). contains() was already corrected for Oracle in KSM-838.

Changes

  • sdk/javascript/packages/oracle/src/OracleKeyValueStore.ts: Replace if (config[key]) → if (key in config) (line 433)
  • sdk/javascript/packages/oracle/test/OracleKeyValueStore.test.ts: Add describe('delete() — KSM-841 regression') with 3 tests (empty string, zero, truly missing key)

Test Plan

cd sdk/javascript/packages/oracle
npm test
# Expected: 45 tests pass (3 new KSM-841 regression tests + 42 existing)

Regression tests confirmed failing before fix, passing after fix.

Closes https://keeper.atlassian.net/browse/KSM-841

@stas-schaller
stas-schaller merged commit c35ee19 into release/storage/javascript/oracle-kms/v1.0.0 Mar 16, 2026
3 checks passed
@stas-schaller
stas-schaller deleted the KSM-841-fix-delete-falsy-values branch March 16, 2026 15:49
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