Skip to content
Merged
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
11 changes: 5 additions & 6 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,15 +28,16 @@ jobs:
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
curl --proto '=https' --tlsv1.2 -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
NODE_MAJOR=20
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list

- name: Upgrade python packaging tools
run: python -m pip install --upgrade pip setuptools wheel
run: python -m pip install pip==26.1.2 setuptools==83.0.0 wheel==0.47.0

- name: Install poetry
run: pip install poetry
run: |
pip install --only-binary :all: poetry==2.2.1

- name: Cache poetry packages
uses: actions/cache@v4
Expand All @@ -58,9 +59,7 @@ jobs:
cd sandbox
npm run test
cd -
mkdir coverage coverage-temp
TMPDIR="./coverage-temp" npx lcov-result-merger sandbox/coverage/lcov.info coverage/lcov.info --prepend-source-files
rm -r coverage-temp
make merge-coverage-reports

- name: Check licenses
run: make check-licenses
Expand Down
6 changes: 6 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,12 @@ install-hooks: .git/hooks/pre-commit
lint: .check-licenses .ensure-test-documentation-validity .lint-js .lint-python
npm run lint

merge-coverage-reports:
mkdir -p coverage coverage-temp
TMPDIR="./coverage-temp" npm run merge-coverage-reports
rm -r coverage-temp
rm -rf sandbox/coverage/tmp

static-analysis:
npm run static-analysis

Expand Down
12 changes: 12 additions & 0 deletions azure/azure-release-pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ extends:
prod_producer_approval: true
apigee_deployments:
- environment: internal-dev
enable_monitoring: false
enable_status_monitoring: false
jinja_templates:
ENVIRONMENT_TYPE: 'internal'
ERROR_ABOUT_LINK: ${{ variables.error_about_link }}
Expand All @@ -48,6 +50,8 @@ extends:

- environment: internal-dev-sandbox
proxy_path: sandbox
enable_monitoring: false
enable_status_monitoring: false
jinja_templates:
ENVIRONMENT_TYPE: 'sandbox'
ERROR_ABOUT_LINK: ${{ variables.error_about_link }}
Expand All @@ -66,6 +70,8 @@ extends:
- environment: ref
depends_on:
- manual_approval_ref
enable_monitoring: false
enable_status_monitoring: false
jinja_templates:
ENVIRONMENT_TYPE: 'internal'
ERROR_ABOUT_LINK: ${{ variables.error_about_link }}
Expand All @@ -83,6 +89,8 @@ extends:
- environment: internal-qa
depends_on:
- manual_approval_internal_qa
enable_monitoring: false
enable_status_monitoring: false
jinja_templates:
ENVIRONMENT_TYPE: 'internal'
ERROR_ABOUT_LINK: ${{ variables.error_about_link }}
Expand All @@ -101,6 +109,8 @@ extends:
proxy_path: sandbox
depends_on:
- manual_approval_internal_qa_sandbox
enable_monitoring: false
enable_status_monitoring: false
jinja_templates:
ENVIRONMENT_TYPE: 'sandbox'
ERROR_ABOUT_LINK: ${{ variables.error_about_link }}
Expand All @@ -120,6 +130,8 @@ extends:
depends_on:
- manual_approval_sandbox
proxy_path: sandbox
enable_monitoring: false
enable_status_monitoring: false
jinja_templates:
ENVIRONMENT_TYPE: 'sandbox'
ERROR_ABOUT_LINK: ${{ variables.error_about_link }}
Expand Down
14 changes: 12 additions & 2 deletions manifest_template.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ APIGEE_ENVIRONMENTS:
has_mock_auth: true
variants:
- name: internal-qa
global_ratelimit: '18000pm'
global_quota: '6000'
display_name: Internal QA
- name: ref
has_mock_auth: true
Expand All @@ -29,18 +31,26 @@ APIGEE_ENVIRONMENTS:
variants:
- name: internal-dev-sandbox
display_name: Internal Development Sandbox
global_ratelimit: '18000pm'
global_quota: '6000'
- name: internal-qa-sandbox
variants:
- name: internal-qa-sandbox
display_name: Internal QA Sandbox
global_ratelimit: '18000pm'
global_quota: '6000'
- name: sandbox
variants:
- name: sandbox
display_name: Sandbox
global_ratelimit: '18000pm'
global_quota: '6000'
- name: int
variants:
- name: int
display_name: Integration Testing
global_ratelimit: '18000pm'
global_quota: '6000'
- name: prod
variants:
- name: prod
Expand Down Expand Up @@ -73,11 +83,11 @@ apigee:
quota:
enabled: true
interval: 1
limit: {{ VARIANT.global_quota | default(6000)}}
limit: {{ VARIANT.global_quota | default(12000)}}
timeunit: minute
spikeArrest:
enabled: true
ratelimit: {{ VARIANT.global_ratelimit | default('18000pm') }}
ratelimit: {{ VARIANT.global_ratelimit | default('36000pm') }}
app:
quota:
enabled: true
Expand Down
159 changes: 159 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@
"sandbox-postman-collection": "newman run postman/NhsNotify.Sandbox.postman_collection.json",
"integration-postman-collection": "poetry run python scripts/build_postman_environment.py && newman run postman/NhsNotify.Integration.postman_collection.json -e postman/Integration.test.postman_environment.json",
"static-analysis": "./scripts/perform-static-analysis.sh",
"zap-security-scan": "./scripts/run_zap.sh"
"zap-security-scan": "./scripts/run_zap.sh",
"merge-coverage-reports": "lcov-result-merger sandbox/coverage/lcov.info coverage/lcov.info --prepend-source-files"
},
"author": "NHS Digital",
"license": "MIT",
Expand Down Expand Up @@ -41,6 +42,7 @@
"eslint-plugin-workspaces": "^0.11.0",
"eslint-plugin-yml": "^1.2.0",
"handlebars": "^4.7.9",
"lcov-result-merger": "^6.0.0",
"license-checker": "^25.0.1",
"minimist": "^1.2.2",
"newman": "^6.2.2",
Expand Down
5 changes: 3 additions & 2 deletions scripts/publish_zap_compatible.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,9 @@ def scan_and_remove(obj, mappings):
(
("format", "date"),
("personalisation", None),
("/<client-provided-message-status-URI>", None),
("/<client-provided-channel-status-URI>", None),
("/{client-provided-message-status-URI}", None),
("/{client-provided-channel-status-URI}", None),
("/{client-provided-recipient-response-URI}", None),
)
),
f
Expand Down
6 changes: 3 additions & 3 deletions specification/communications-manager.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,15 +35,15 @@ paths:
/channels/nhsapp/accounts:
get:
$ref: endpoints/get_nhsapp_account_details.yaml
/<client-provided-message-status-URI>:
/{client-provided-message-status-URI}:
post:
$ref: callbacks/message_status.yaml
tags: ['Callbacks']
/<client-provided-channel-status-URI>:
/{client-provided-channel-status-URI}:
post:
$ref: callbacks/channel_status.yaml
tags: ['Callbacks']
/<client-provided-recipient-response-URI>:
/{client-provided-recipient-response-URI}:
post:
$ref: callbacks/recipient_response.yaml
tags: ['Callbacks']
2 changes: 1 addition & 1 deletion specification/documentation/APIDescription.md
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,7 @@ Answer options: [Yes, No]

In order to present the recipient with answers, include the `answerOptions` field.

If you subscribe to recipient response callbacks, NHS Notify will send you a callback when a recipient responds to a message (currently only NHS App supports this). See [the recipient response callback](#post-/<client-provided-recipient-response-URI>) for more details.
If you subscribe to recipient response callbacks, NHS Notify will send you a callback when a recipient responds to a message (currently only NHS App supports this). See [the recipient response callback](#post-/-client-provided-recipient-response-URI-) for more details.

## Message character limits
Different character limits apply to each of the communication channels as listed below. NHS Notify will validate that any personalisation fields submitted in the send message request do not exceed these limits but it is the client's responsibility to ensure that when personalisation is combined with any templated text, the channel character limit is not exceeded.
Expand Down
Loading
Loading