Socket
Socket
Sign inDemoInstall

@sp-tools/kloud-parameter

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@sp-tools/kloud-parameter - npm Package Compare versions

Comparing version 0.0.2 to 0.0.3

4

index.js

@@ -1,5 +0,5 @@

const { makeParameterStore } = require('./lib/make-kloud-parameter');
const { makeKloudStore } = require('./lib/make-kloud-parameter');
module.exports = {
makeParameterStore
makeKloudStore
};
const get = require('lodash.get');
const {
makeGetParameters: makeGetParametersFromDdb
} = require('./ddb/make-get-parameters');
const {
makeGetParameters: makeGetParametersFromSsm
} = require('./ssm/make-get-parameters');
const { makeGetParameters: makeGetParametersFromDdb } = require('./ddb/make-get-parameters');
const { makeGetParameters: makeGetParametersFromSsm } = require('./ssm/make-get-parameters');
const makeParameterStore = ({ configPath, secretPath, provider }) => {
const makeKloudStore = ({ configPath, secretPath, provider }) => {
const providerName = get(provider, 'name');

@@ -21,3 +17,3 @@ const ssmMode = providerName === 'ssm';

provider
})
});

@@ -38,2 +34,2 @@ const getConfigsFromSsm = makeGetParametersFromSsm({

module.exports = { makeParameterStore };
module.exports = { makeKloudStore };
'use strict';
const { makeParameterStore } = require('../index');
const { makeKloudStore } = require('../index');

@@ -11,50 +11,45 @@ const mockGetLatestVersion = jest.fn();

mockGetLatestVersion
.mockImplementation(({ parameterName }) => {
const ddbStore = {
'/stage/config/CONFIG_1': {
name: '/stage/config/CONFIG_1',
value: 'config 1'
},
'/stage/config/CONFIG_2': {
name: '/stage/config/CONFIG_2',
value: 'config 2'
},
'/stage/secret/SECRET_1': {
name: '/stage/secret/SECRET_1',
value: 'secret 1'
},
'/stage/secret/SECRET_2': {
name: '/stage/secret/SECRET_2',
value: 'secret 2'
}
mockGetLatestVersion.mockImplementation(({ parameterName }) => {
const ddbStore = {
'/stage/config/CONFIG_1': {
name: '/stage/config/CONFIG_1',
value: 'config 1'
},
'/stage/config/CONFIG_2': {
name: '/stage/config/CONFIG_2',
value: 'config 2'
},
'/stage/secret/SECRET_1': {
name: '/stage/secret/SECRET_1',
value: 'secret 1'
},
'/stage/secret/SECRET_2': {
name: '/stage/secret/SECRET_2',
value: 'secret 2'
}
return Promise.resolve(ddbStore[parameterName]);
});
};
return Promise.resolve(ddbStore[parameterName]);
});
describe('#ParameterStore - DDB', () => {
it ('should return configs for a given keys', () => {
it('should return configs for a given keys', () => {
const configPath = '/stage/config';
const secretPath = '/stage/secret';
const parameterStore = makeParameterStore({ configPath, secretPath });
const parameterStore = makeKloudStore({ configPath, secretPath });
return parameterStore
.getConfigs(['CONFIG_1', 'CONFIG_2'])
.then(configs => {
expect(configs).toEqual({ CONFIG_1: 'config 1', CONFIG_2: 'config 2' });
});
return parameterStore.getConfigs(['CONFIG_1', 'CONFIG_2']).then(configs => {
expect(configs).toEqual({ CONFIG_1: 'config 1', CONFIG_2: 'config 2' });
});
});
it ('should return secrets for a given keys', () => {
it('should return secrets for a given keys', () => {
const configPath = '/stage/config';
const secretPath = '/stage/secret';
const parameterStore = makeParameterStore({ configPath, secretPath });
const parameterStore = makeKloudStore({ configPath, secretPath });
return parameterStore
.getSecrets(['SECRET_1', 'SECRET_2'])
.then(secrets => {
expect(secrets).toEqual({ SECRET_1: 'secret 1', SECRET_2: 'secret 2' });
});
return parameterStore.getSecrets(['SECRET_1', 'SECRET_2']).then(secrets => {
expect(secrets).toEqual({ SECRET_1: 'secret 1', SECRET_2: 'secret 2' });
});
});

@@ -68,57 +63,34 @@

const parameterStore = makeParameterStore({ configPath, secretPath });
const parameterStore = makeKloudStore({ configPath, secretPath });
return Promise.all([
parameterStore.getConfigs([
'CONFIG_1',
'CONFIG_2'
]),
parameterStore.getSecrets([
'SECRET_1',
'SECRET_2'
])
])
.then(([configs, secrets]) => {
expect(configs).toEqual({
CONFIG_1: 'config 1',
CONFIG_2: 'config 2'
});
return Promise.all([parameterStore.getConfigs(['CONFIG_1', 'CONFIG_2']), parameterStore.getSecrets(['SECRET_1', 'SECRET_2'])])
.then(([configs, secrets]) => {
expect(configs).toEqual({
CONFIG_1: 'config 1',
CONFIG_2: 'config 2'
});
expect(secrets).toEqual({
SECRET_1: 'secret 1',
SECRET_2: 'secret 2'
expect(secrets).toEqual({
SECRET_1: 'secret 1',
SECRET_2: 'secret 2'
});
expect(mockGetLatestVersion.mock.calls.length).toEqual(4);
return Promise.all([parameterStore.getConfigs(['CONFIG_1', 'CONFIG_2']), parameterStore.getSecrets(['SECRET_1', 'SECRET_2'])]);
})
.then(([configs, secrets]) => {
expect(configs).toEqual({
CONFIG_1: 'config 1',
CONFIG_2: 'config 2'
});
expect(mockGetLatestVersion.mock.calls.length).toEqual(4);
expect(secrets).toEqual({
SECRET_1: 'secret 1',
SECRET_2: 'secret 2'
});
return Promise.all([
parameterStore.getConfigs([
'CONFIG_1',
'CONFIG_2'
]),
parameterStore.getSecrets([
'SECRET_1',
'SECRET_2'
])
])
})
.then(([configs, secrets]) => {
expect(configs).toEqual({
CONFIG_1: 'config 1',
CONFIG_2: 'config 2'
expect(mockGetLatestVersion.mock.calls.length).toEqual(4);
});
expect(secrets).toEqual({
SECRET_1: 'secret 1',
SECRET_2: 'secret 2'
})
expect(mockGetLatestVersion.mock.calls.length).toEqual(4);
})
});
});

@@ -5,9 +5,9 @@ 'use strict';

AWS.SSM.mockImplementation(function() {
AWS.SSM.mockImplementation(function () {
return {
getParameters: mockGetParameters
}
};
});
const { makeParameterStore } = require('../index');
const { makeKloudStore } = require('../index');
const provider = {

@@ -18,3 +18,3 @@ name: 'ssm'

describe('#ParameterStore - SSM', () => {
it ('should return configs for a given keys', () => {
it('should return configs for a given keys', () => {
const configPath = '/stage/config';

@@ -24,7 +24,7 @@ const secretPath = '/stage/secret';

mockGetParameters.mockClear();
mockGetParameters
.mockImplementation(() => {
return {
// The parameters returned are out of order to mimic SSM behavior
promise: () => Promise.resolve({
mockGetParameters.mockImplementation(() => {
return {
// The parameters returned are out of order to mimic SSM behavior
promise: () =>
Promise.resolve({
Parameters: [

@@ -42,15 +42,13 @@ {

})
}
});
};
});
const parameterStore = makeParameterStore({ configPath, secretPath, provider });
const parameterStore = makeKloudStore({ configPath, secretPath, provider });
return parameterStore
.getConfigs(['CONFIG_1', 'CONFIG_2'])
.then(configs => {
expect(configs).toEqual({ CONFIG_1: 'config 1', CONFIG_2: 'config 2' });
});
return parameterStore.getConfigs(['CONFIG_1', 'CONFIG_2']).then(configs => {
expect(configs).toEqual({ CONFIG_1: 'config 1', CONFIG_2: 'config 2' });
});
});
it ('should return secrets for a given keys', () => {
it('should return secrets for a given keys', () => {
const configPath = '/stage/config';

@@ -60,6 +58,6 @@ const secretPath = '/stage/secret';

mockGetParameters.mockClear();
mockGetParameters
.mockImplementation(() => {
return {
promise: () => Promise.resolve({
mockGetParameters.mockImplementation(() => {
return {
promise: () =>
Promise.resolve({
Parameters: [

@@ -77,12 +75,10 @@ {

})
}
});
};
});
const parameterStore = makeParameterStore({ configPath, secretPath, provider });
const parameterStore = makeKloudStore({ configPath, secretPath, provider });
return parameterStore
.getSecrets(['SECRET_1', 'SECRET_2'])
.then(secrets => {
expect(secrets).toEqual({ SECRET_1: 'secret 1', SECRET_2: 'secret 2' });
});
return parameterStore.getSecrets(['SECRET_1', 'SECRET_2']).then(secrets => {
expect(secrets).toEqual({ SECRET_1: 'secret 1', SECRET_2: 'secret 2' });
});
});

@@ -95,6 +91,6 @@

mockGetParameters.mockClear();
mockGetParameters
.mockImplementation(() => {
return {
promise: () => Promise.resolve({
mockGetParameters.mockImplementation(() => {
return {
promise: () =>
Promise.resolve({
Parameters: [

@@ -112,32 +108,27 @@ {

})
}
});
};
});
const parameterStore = makeParameterStore({ configPath, secretPath, provider });
const parameterStore = makeKloudStore({ configPath, secretPath, provider });
return parameterStore.getConfigs([
'CONFIG_1',
'CONFIG_2'
])
.then(configs => {
expect(configs).toEqual({
CONFIG_1: 'config 1',
CONFIG_2: 'config 2'
});
return parameterStore
.getConfigs(['CONFIG_1', 'CONFIG_2'])
.then(configs => {
expect(configs).toEqual({
CONFIG_1: 'config 1',
CONFIG_2: 'config 2'
});
expect(mockGetParameters.mock.calls.length).toEqual(1);
expect(mockGetParameters.mock.calls.length).toEqual(1);
return parameterStore.getConfigs([
'CONFIG_1',
'CONFIG_2'
])
})
.then(configs => {
expect(configs).toEqual({
CONFIG_1: 'config 1',
CONFIG_2: 'config 2'
return parameterStore.getConfigs(['CONFIG_1', 'CONFIG_2']);
})
.then(configs => {
expect(configs).toEqual({
CONFIG_1: 'config 1',
CONFIG_2: 'config 2'
});
expect(mockGetParameters.mock.calls.length).toEqual(1);
});
expect(mockGetParameters.mock.calls.length).toEqual(1);
})
});

@@ -150,6 +141,6 @@

mockGetParameters.mockClear();
mockGetParameters
.mockImplementation(() => {
return {
promise: () => Promise.resolve({
mockGetParameters.mockImplementation(() => {
return {
promise: () =>
Promise.resolve({
Parameters: [

@@ -163,15 +154,9 @@ {

})
}
});
};
});
const parameterStore = makeParameterStore({ configPath, secretPath, provider });
const parameterStore = makeKloudStore({ configPath, secretPath, provider });
return expect(parameterStore.getSecrets(['SECRET_1', 'SECRET_2']))
.rejects.toThrow('Unabled to fetch: ["/stage/secret/SECRET_2"]');
return expect(parameterStore.getSecrets(['SECRET_1', 'SECRET_2'])).rejects.toThrow('Unabled to fetch: ["/stage/secret/SECRET_2"]');
});
});
{
"name": "@sp-tools/kloud-parameter",
"version": "0.0.2",
"version": "0.0.3",
"description": "Read configuration from parameter store",

@@ -10,3 +10,3 @@ "main": "index.js",

"engines": {
"node": ">=8.10.0"
"node": ">=10.x"
},

@@ -32,3 +32,3 @@ "keywords": [],

},
"gitHead": "1b845ae6039673fa4b4116a43e191df24ac8313a"
"gitHead": "f613c362807f0c552b382d80b95c7f210eb8ed99"
}

@@ -23,6 +23,6 @@ # Parameter Store Reader

```js
const { makeParameterStore } = require('@sp-tools/kloud-parameter');
const { makeKloudStore } = require('@sp-tools/kloud-parameter');
const { STAGE } = process.env;
const parameterStore = makeParameterStore({
const parameterStore = makeKloudStore({
configPath: `/${SERVICE_STAGE}/foo-service/config`,

@@ -64,6 +64,6 @@ secretPath: `/${SERVICE_STAGE}/foo-service/secret`,

```js
const { makeParameterStore } = require('@sp-tools/kloud-parameter');
const { makeKloudStore } = require('@sp-tools/kloud-parameter');
const { STAGE } = process.env;
const parameterStore = makeParameterStore({
const parameterStore = makeKloudStore({
configPath: `/${SERVICE_STAGE}/foo-service/config`,

@@ -70,0 +70,0 @@ secretPath: `/${SERVICE_STAGE}/foo-service/secret`,

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc