Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -97,3 +97,4 @@ lambdas/backend-api/src/email/email-template.json
.github/copilot-instructions.md

test-runs
seed-data.json
48 changes: 48 additions & 0 deletions scripts/seed/seed.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
#!/bin/bash

set -euo pipefail

root_dir=$(git rev-parse --show-toplevel)

source "$root_dir/scripts/seed/utils.sh"

if [ $# -ne 1 ]; then
echo 1>&2 "$0: expected 1 arguments, received $#"
exit 2
fi

environment=$1

data_file="$root_dir/seed-data.json"

if [ ! -f "${data_file}" ]; then
echo 1>&2 "Error: Seed data file not found at ${data_file}"
exit 2
fi

csi="nhs-notify-${environment}-app"

client_parameter_namespace=${csi}

clients=$(jq -c '.clients[]?' "${data_file}")

while IFS= read -r client; do
if [[ -n "${client}" ]]; then
client_id=$(jq -r '.id' <<< "${client}")
client_name=$(jq -r '.name' <<< "${client}")

echo
echo "---"
echo "Processing client (${client_name} - ${client_id})"

echo "Creating client SSM parameter"
put_client_parameter "${client_parameter_namespace}" "${client}"
echo "Created client SSM parameter"
echo
echo "Processed client: (${client_name} - ${client_id})"
fi
done <<< "${clients}"

echo
echo "---"
echo "Successfully seeded all demo clients"
21 changes: 21 additions & 0 deletions scripts/seed/utils.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#!/bin/bash

function put_client_parameter() {
local namespace=$1
local client=$2

local client_id=$(jq -r '.id' <<< "${client}")
local campaign_ids=$(jq '.campaignIds' <<< "${client}")
local features=$(jq '.features' <<< "${client}")
local parameter_name="/${namespace}/clients/${client_id}"
local parameter_value=$(jq <<< "{
\"campaignIds\": ${campaign_ids},
\"features\": ${features}
}")

aws ssm put-parameter \
--name "${parameter_name}" \
--value "${parameter_value}" \
--type SecureString \
--overwrite > /dev/null
}
Loading