Skip to content

Commit c449d62

Browse files
authored
Merge branch 'main' into feature/CCM-12937
2 parents 2d2d96d + d3e95f2 commit c449d62

File tree

74 files changed

+213
-49
lines changed

Some content is hidden

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

74 files changed

+213
-49
lines changed

.github/CODEOWNERS

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@
77
/docs/ @NHSDigital/nhs-notify-supplier-api
88
/infrastructure/terraform/ @NHSDigital/nhs-notify-platform @NHSDigital/nhs-notify-supplier-api-admins
99

10+
# Root level AGENTS.md owned by platform.
11+
AGENTS.md @NHSDigital/nhs-notify-platform
12+
1013
# Codeowners must be final check
1114
/.github/CODEOWNERS @NHSDigital/nhs-notify-code-owners
1215
/CODEOWNERS @NHSDigital/nhs-notify-code-owners

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,8 @@ dist
2727
/sandbox/*.log
2828
/sandbox-staging
2929
/specification/api/components/examples
30+
/specification/api/components/x-nhsd-apim/x-nhsd-apim.yml
31+
/specification/api/components/security-schemes/security-schemes.yml
32+
/specification/api/components/security/security.yml
33+
/specification/api/components/parameters/authorization/authorization.yml
3034
/scripts/JWT/*.pem

AGENTS.md

Lines changed: 95 additions & 0 deletions

Makefile

Lines changed: 14 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -46,32 +46,26 @@ publish-oas:
4646
npm run publish-oas
4747

4848
set-authorization: guard-APIM_ENV
49-
@ AUTHORIZATION=authorization-$$APIM_ENV.yml \
50-
envsubst '$${AUTHORIZATION}' \
51-
< specification/api/components/parameters/authorization/authorization-template.yml > specification/api/components/parameters/authorization/authorization.yml
49+
SPEC_DIR=./specification/api/components/environments
50+
COMPONENT_DIR=./specification/api/components/parameters/authorization
51+
./scripts/build/substitute_build_env.sh $$COMPONENT_DIR/authorization-template.yml $$SPEC_DIR/$$APIM_ENV.env $$COMPONENT_DIR/authorization.yml
5252

53-
set-target: guard-APIM_ENV
54-
@ TARGET=target-$$APIM_ENV.yml \
55-
envsubst '$${TARGET}' \
56-
< specification/api/components/x-nhsd-apim/target-template.yml > specification/api/components/x-nhsd-apim/target.yml
57-
58-
set-access: guard-APIM_ENV
59-
@ ACCESS=access-$$APIM_ENV.yml \
60-
envsubst '$${ACCESS}' \
61-
< specification/api/components/x-nhsd-apim/access-template.yml > specification/api/components/x-nhsd-apim/access.yml
53+
set-nhsd-apim: guard-APIM_ENV
54+
SPEC_DIR=./specification/api/components/environments
55+
COMPONENT_DIR=./specification/api/components/x-nhsd-apim
56+
./scripts/build/substitute_build_env.sh $$COMPONENT_DIR/x-nhsd-apim-template.yml $$SPEC_DIR/$$APIM_ENV.env $$COMPONENT_DIR/x-nhsd-apim.yml
6257

6358
set-security: guard-APIM_ENV
64-
@ SECURITY=security-$$APIM_ENV.yml \
65-
envsubst '$${SECURITY}' \
66-
< specification/api/components/security/security-template.yml > specification/api/components/security/security.yml
67-
@ SECURITY_SCHEMES=security-schemes-$$APIM_ENV.yml \
68-
envsubst '$${SECURITY_SCHEMES}' \
69-
< specification/api/components/security-schemes/security-schemes-template.yml > specification/api/components/security-schemes/security-schemes.yml
59+
SPEC_DIR=./specification/api/components/environments
60+
COMPONENT_DIR=./specification/api/components/security
61+
./scripts/build/substitute_build_env.sh $$COMPONENT_DIR/security-template.yml $$SPEC_DIR/$$APIM_ENV.env $$COMPONENT_DIR/security.yml
62+
COMPONENT_DIR=./specification/api/components/security-schemes
63+
./scripts/build/substitute_build_env.sh $$COMPONENT_DIR/security-schemes-template.yml $$SPEC_DIR/$$APIM_ENV.env $$COMPONENT_DIR/security-schemes.yml
64+
7065

7166
construct-spec: guard-APIM_ENV
67+
$(MAKE) set-nhsd-apim APIM_ENV=$$APIM_ENV
7268
$(MAKE) set-authorization APIM_ENV=$$APIM_ENV
73-
$(MAKE) set-target APIM_ENV=$$APIM_ENV
74-
$(MAKE) set-access APIM_ENV=$$APIM_ENV
7569
$(MAKE) set-security APIM_ENV=$$APIM_ENV
7670

7771
build-json-oas-spec: guard-APIM_ENV
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
#!/usr/bin/env bash
2+
set -euo pipefail
3+
4+
TEMPLATE="$1"
5+
ENV_FILE="$2"
6+
OUT="$3"
7+
8+
# Extract variable names from the env file (left side of KEY=VALUE)
9+
VARS=$(grep -E '^[A-Za-z_][A-Za-z0-9_]*=' "$ENV_FILE" | cut -d= -f1)
10+
11+
# Build envsubst variable list ($VAR1 $VAR2 ...)
12+
VARLIST=""
13+
for v in $VARS; do
14+
VARLIST="$VARLIST \$$v"
15+
done
16+
VARLIST="${VARLIST# }" # remove leading space
17+
18+
# Export values from the env file
19+
set -a
20+
source "$ENV_FILE"
21+
set +a
22+
23+
# Run envsubst only on the selected variables
24+
envsubst "$VARLIST" < "$TEMPLATE" > "$OUT"
25+
26+
echo "Generated: $OUT"

specification/api/components/security-schemes/security-schemes-ptl.yml renamed to specification/api/components/environments/common/security-schemes-ptl.yml

File renamed without changes.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
MONITORING_FLAG=true
2+
TEMPORARY_FLAG=false
3+
ENV_DIR=../environments/int

specification/api/components/x-nhsd-apim/access-int.yml renamed to specification/api/components/environments/int/access.yml

File renamed without changes.

specification/api/components/parameters/authorization/authorization-int.yml renamed to specification/api/components/environments/int/authorization.yml

File renamed without changes.

specification/api/components/x-nhsd-apim/rate-limiting.yml renamed to specification/api/components/environments/int/rate-limiting.yml

File renamed without changes.

0 commit comments

Comments
 (0)