Skip to content

Commit e7fa9cc

Browse files
authored
Update to version v7.0.3
Merge pull request #817 from aws-solutions/feature/v7.0.3
2 parents e9427df + 3bb7331 commit e7fa9cc

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

60 files changed

+155
-246
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,4 +113,5 @@ Pipfile.lock
113113
.viperlightrc
114114

115115
# Lambda requirements.txt files
116-
**/requirements.txt
116+
**/requirements.txt
117+
.aider*

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [7.0.3] - 2025-03-27
9+
10+
### Fixed
11+
12+
- Update SSM parameter migration to only migrate specified parameters [Issue #815](https://github.com/aws-solutions/qnabot-on-aws/issues/815)
13+
814
## [7.0.2] - 2025-03-13
915

1016
### Security

README.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -361,10 +361,8 @@ As QnABot evolves over the years, it makes use of various services and functiona
361361
_Note: **Deployable solution versions** refers to the ability to deploy the version of QnABot in their AWS accounts. **Actively supported versions** for QnABot is only available for the latest version of QnABot._
362362
363363
### Deployable Versions
364-
- [v7.0.2](https://github.com/aws-solutions/qnabot-on-aws/releases/tag/v7.0.2) - [Public](https://solutions-reference.s3.amazonaws.com/qnabot-on-aws/v7.0.2/qnabot-on-aws-main.template)/[VPC](https://solutions-reference.s3.amazonaws.com/qnabot-on-aws/v7.0.2/qnabot-on-aws-vpc.template)
365-
- [v7.0.1](https://github.com/aws-solutions/qnabot-on-aws/releases/tag/v7.0.1) - [Public](https://solutions-reference.s3.amazonaws.com/qnabot-on-aws/v7.0.1/qnabot-on-aws-main.template)/[VPC](https://solutions-reference.s3.amazonaws.com/qnabot-on-aws/v7.0.1/qnabot-on-aws-vpc.template)
366-
- [v7.0.0](https://github.com/aws-solutions/qnabot-on-aws/releases/tag/v7.0.0) - [Public](https://solutions-reference.s3.amazonaws.com/qnabot-on-aws/v7.0.0/qnabot-on-aws-main.template)/[VPC](https://solutions-reference.s3.amazonaws.com/qnabot-on-aws/v7.0.0/qnabot-on-aws-vpc.template)
367-
- _Note: Lambda Runtimes have been updated this release. Solution now uses: [**nodejs20** and python3.10]_
364+
- [v7.0.3](https://github.com/aws-solutions/qnabot-on-aws/releases/tag/v7.0.3) - [Public](https://solutions-reference.s3.amazonaws.com/qnabot-on-aws/v7.0.3/qnabot-on-aws-main.template)/[VPC](https://solutions-reference.s3.amazonaws.com/qnabot-on-aws/v7.0.3/qnabot-on-aws-vpc.template)
365+
- _Note: Lambda Runtimes have been updated in the v7.0.0 release. Solution now uses: [**nodejs20** and python3.10]_
368366
- [v6.1.5](https://github.com/aws-solutions/qnabot-on-aws/releases/tag/v6.1.5) - [Public](https://solutions-reference.s3.amazonaws.com/qnabot-on-aws/v6.1.5/qnabot-on-aws-main.template)/[VPC](https://solutions-reference.s3.amazonaws.com/qnabot-on-aws/v6.1.5/qnabot-on-aws-vpc.template)
369367
- [v6.1.4](https://github.com/aws-solutions/qnabot-on-aws/releases/tag/v6.1.4) - [Public](https://solutions-reference.s3.amazonaws.com/qnabot-on-aws/v6.1.4/qnabot-on-aws-main.template)/[VPC](https://solutions-reference.s3.amazonaws.com/qnabot-on-aws/v6.1.4/qnabot-on-aws-vpc.template)
370368
- [v6.1.3](https://github.com/aws-solutions/qnabot-on-aws/releases/tag/v6.1.3) - [Public](https://solutions-reference.s3.amazonaws.com/qnabot-on-aws/v6.1.3/qnabot-on-aws-main.template)/[VPC](https://solutions-reference.s3.amazonaws.com/qnabot-on-aws/v6.1.3/qnabot-on-aws-vpc.template)

source/cli/aws_solutions/qnabot/cli/qnabot_cli.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
@click.pass_context
1616
def cli(ctx) -> None:
1717
os.environ["SOLUTION_ID"] = "SO0189"
18-
os.environ["SOLUTION_VERSION"] = "v7.0.2"
18+
os.environ["SOLUTION_VERSION"] = "v7.0.3"
1919

2020

2121
@cli.command("import")

source/lambda/aws-sdk-layer/package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

source/lambda/aws-sdk-layer/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "aws-layer",
3-
"version": "7.0.2",
3+
"version": "7.0.3",
44
"description": "QnABot Lambda aws-sdk-layer",
55
"main": "index.js",
66
"scripts": {

source/lambda/cfn-lambda-layer/package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

source/lambda/cfn-lambda-layer/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "cfn-lambda-layer",
3-
"version": "7.0.2",
3+
"version": "7.0.3",
44
"description": "QnABot Cfn Lambda Layer",
55
"main": "index.js",
66
"scripts": {

source/lambda/cfn/lib/SettingsInitializer.js

Lines changed: 10 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
************************************************************************************************ */
55

66
const { DynamoDBClient, PutItemCommand, UpdateItemCommand, GetItemCommand } = require('@aws-sdk/client-dynamodb');
7-
const { SSMClient, GetParameterCommand, DeleteParameterCommand ,DescribeParametersCommand } = require('@aws-sdk/client-ssm');
7+
const { SSMClient, GetParameterCommand } = require('@aws-sdk/client-ssm');
88
const { marshall } = require('@aws-sdk/util-dynamodb');
99
const customSdkConfig = require('./util/customSdkConfig');
1010
const settingsJson = require('./DefaultSettings.json');
@@ -227,11 +227,6 @@ async function migrateFromSSM(tableName, ssmParameters) {
227227
}
228228
}
229229
}
230-
const deleteParams = {
231-
Name: ssmParameter
232-
};
233-
const deleteCommand = new DeleteParameterCommand(deleteParams)
234-
await ssm.send(deleteCommand);
235230
}
236231
catch(error) {
237232
throw new Error(`Error migrating from SSM: ${error}`);
@@ -240,39 +235,6 @@ async function migrateFromSSM(tableName, ssmParameters) {
240235
}
241236
}
242237

243-
async function getSSMParameters() {
244-
const prefixes = [
245-
'CFN-CustomQnABotSettings',
246-
'CFN-DefaultQnABotSettings',
247-
'CFN-PrivateQnABotSettings'
248-
];
249-
250-
let ssmParameters = []
251-
252-
for (const prefix of prefixes) {
253-
const describeParams = {
254-
ParameterFilters: [
255-
{
256-
Key: "Name",
257-
Option: "BeginsWith",
258-
Values: [prefix]
259-
}
260-
],
261-
MaxResults: 1
262-
};
263-
const describeCommand = new DescribeParametersCommand(describeParams);
264-
const describeResponse = await ssm.send(describeCommand);
265-
266-
if (describeResponse.Parameters.length > 0) {
267-
ssmParameters = ssmParameters.concat(describeResponse.Parameters[0].Name);
268-
}
269-
}
270-
271-
return ssmParameters;
272-
}
273-
274-
275-
276238
module.exports = class SettingsInitializer {
277239

278240
async Create(params, reply) {
@@ -281,12 +243,18 @@ module.exports = class SettingsInitializer {
281243
let writePrivateSettings = true;
282244
// Initialize settings (will only add new settings if table is not empty)
283245
await writeSettingsToDynamoDB(SettingsTable, settingsJson);
284-
const ssmParameters = await getSSMParameters();
246+
247+
// Only migrate parameters that were explicitly passed to this function
248+
const ssmParameters = [
249+
params.DefaultSettingsParameter,
250+
params.PrivateSettingsParameter,
251+
params.CustomSettingsParameter
252+
]
285253

286254
if (ssmParameters.length > 0) {
287-
console.log('Legacy SSM parameters found. Performing migration from SSM to DynamoDB');
255+
console.log(`Migrating specific SSM parameters: ${ssmParameters.join(', ')}`);
288256
await migrateFromSSM(SettingsTable, ssmParameters);
289-
writePrivateSettings = false
257+
writePrivateSettings = false;
290258
}
291259

292260
await updatePrivateSettings(params, SettingsTable, writePrivateSettings);
@@ -323,5 +291,3 @@ module.exports = class SettingsInitializer {
323291
reply(null, ID, { FnGetAttrsDataObj: { Settings: "Deleted" } });
324292
}
325293
}
326-
327-

source/lambda/cfn/package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)