From 879f6d26d73b0014dcbc562e58eec2bb3e71b5d2 Mon Sep 17 00:00:00 2001 From: Joshua Lamke Date: Thu, 26 Jun 2025 15:52:20 -0400 Subject: [PATCH] add optional encryption context to allow accessing context in eem rule function --- package-lock.json | 4 ++-- package.json | 2 +- src/utils/encryption.js | 4 ++-- test/unit/utils/encryption.test.js | 12 ++++++++++-- 4 files changed, 15 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0815b1a..074c021 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "aws-lambda-stream", - "version": "1.1.4", + "version": "1.1.5", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "aws-lambda-stream", - "version": "1.1.4", + "version": "1.1.5", "license": "MIT", "dependencies": { "object-sizeof": "^2.6.0" diff --git a/package.json b/package.json index 3a40c76..ccd2324 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "aws-lambda-stream", - "version": "1.1.4", + "version": "1.1.5", "description": "Create stream processors with AWS Lambda functions.", "keywords": [ "aws", diff --git a/src/utils/encryption.js b/src/utils/encryption.js index b76f8ec..3a97167 100644 --- a/src/utils/encryption.js +++ b/src/utils/encryption.js @@ -165,8 +165,8 @@ export const encryptData = ({ masterKeyAlias = process.env.MASTER_KEY_ALIAS, regions = (process.env.KMS_REGIONS && process.env.KMS_REGIONS.split(',')), AES = true, -} = {}) => async (data) => { - const eemMetadata = typeof eem === 'function' ? eem(data) : eem; +} = {}) => async (data, ctx = {}) => { + const eemMetadata = typeof eem === 'function' ? eem(data, ctx) : eem; const result = await encryptObject(data, { masterKeyAlias, regions, diff --git a/test/unit/utils/encryption.test.js b/test/unit/utils/encryption.test.js index fca92ee..759e460 100644 --- a/test/unit/utils/encryption.test.js +++ b/test/unit/utils/encryption.test.js @@ -266,14 +266,22 @@ describe('utils/encryption.js', () => { ...uow.event.thing, discriminator: 'thing', timestamp: uow.event.timestamp, + }, { + event: { + eem: { + fields: [ + 'description', + ], + }, + }, })), }), - eem: (data) => { + eem: (data, ctx) => { if (data.discriminator === 'thing') { return { fields: [ 'name', - 'description', + ...ctx.event.eem.fields, ], }; } else {