diff --git a/Makefile b/Makefile index d137fbdc..dacd22f5 100644 --- a/Makefile +++ b/Makefile @@ -45,6 +45,11 @@ publish-oas: $(MAKE) copy-examples npm run publish-oas +set-authorization: guard-APIM_ENV + @ AUTHORIZATION=authorization-$$APIM_ENV.yml \ + envsubst '$${AUTHORIZATION}' \ + < specification/api/components/parameters/authorization/authorization-template.yml > specification/api/components/parameters/authorization/authorization.yml + set-target: guard-APIM_ENV @ TARGET=target-$$APIM_ENV.yml \ envsubst '$${TARGET}' \ @@ -64,6 +69,7 @@ set-security: guard-APIM_ENV < specification/api/components/security-schemes/security-schemes-template.yml > specification/api/components/security-schemes/security-schemes.yml construct-spec: guard-APIM_ENV + $(MAKE) set-authorization APIM_ENV=$$APIM_ENV $(MAKE) set-target APIM_ENV=$$APIM_ENV $(MAKE) set-access APIM_ENV=$$APIM_ENV $(MAKE) set-security APIM_ENV=$$APIM_ENV diff --git a/VERSION b/VERSION index 0e6bc07b..ed1dc891 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.0.0-${yyyy}${mm}${dd}.${HH}${MM}${SS}+${hash} +1.0.1-${yyyy}${mm}${dd}.${HH}${MM}${SS}+${hash} diff --git a/sdk/Makefile b/sdk/Makefile index 76092481..ba052471 100644 --- a/sdk/Makefile +++ b/sdk/Makefile @@ -3,7 +3,7 @@ VERSION ?= "" SHELL = /bin/bash build: version # Build the project artefact @Pipeline - VER=$$(cat .version) && cd .. && npm run build --buildver=$$VER && cd sdk + VER=$$(cat .version) && cd .. && make build-yml-oas-spec APIM_ENV=prod && npm run generate --buildver=$$VER && cd sdk ./swagger-static.sh clean: # Clean-up project resources (main) @Operations diff --git a/sdk/_config.version.yml b/sdk/_config.version.yml index 9e5d8273..3941841c 100644 --- a/sdk/_config.version.yml +++ b/sdk/_config.version.yml @@ -1 +1 @@ -version: 0.2.0-20251120.121539+0c18993 +version: 1.0.1-20251125.131623+3d60875 diff --git a/specification/api/components/parameters/authorization/authorization-int.yml b/specification/api/components/parameters/authorization/authorization-int.yml new file mode 100644 index 00000000..c4e9225d --- /dev/null +++ b/specification/api/components/parameters/authorization/authorization-int.yml @@ -0,0 +1,9 @@ +name: Authorization +in: header +description: |- + An OAuth 2.0 bearer token. Required in integration and production environments. +required: true +schema: + type: string + pattern: ^Bearer [[:ascii:]]+$ + example: Bearer g1112R_ccQ1Ebbb4gtHBP1aaaNM diff --git a/specification/api/components/parameters/authorization/authorization-internal-dev-pr.yml b/specification/api/components/parameters/authorization/authorization-internal-dev-pr.yml new file mode 100644 index 00000000..e62b2067 --- /dev/null +++ b/specification/api/components/parameters/authorization/authorization-internal-dev-pr.yml @@ -0,0 +1,7 @@ +name: apikey +in: header +description: |- + API Key to authorize in dynamic environments only. +required: false +schema: + type: string diff --git a/specification/api/components/parameters/authorization/authorization-internal-dev.yml b/specification/api/components/parameters/authorization/authorization-internal-dev.yml new file mode 100644 index 00000000..de566bd1 --- /dev/null +++ b/specification/api/components/parameters/authorization/authorization-internal-dev.yml @@ -0,0 +1,9 @@ +name: Authorization +in: header +description: |- + An OAuth 2.0 bearer token. Required in integration and production environments. +required: false +schema: + type: string + pattern: ^Bearer [[:ascii:]]+$ + example: Bearer g1112R_ccQ1Ebbb4gtHBP1aaaNM diff --git a/specification/api/components/parameters/authorization/authorization-prod.yml b/specification/api/components/parameters/authorization/authorization-prod.yml new file mode 100644 index 00000000..c4e9225d --- /dev/null +++ b/specification/api/components/parameters/authorization/authorization-prod.yml @@ -0,0 +1,9 @@ +name: Authorization +in: header +description: |- + An OAuth 2.0 bearer token. Required in integration and production environments. +required: true +schema: + type: string + pattern: ^Bearer [[:ascii:]]+$ + example: Bearer g1112R_ccQ1Ebbb4gtHBP1aaaNM diff --git a/specification/api/components/parameters/authorization/authorization-ref.yml b/specification/api/components/parameters/authorization/authorization-ref.yml new file mode 100644 index 00000000..c4e9225d --- /dev/null +++ b/specification/api/components/parameters/authorization/authorization-ref.yml @@ -0,0 +1,9 @@ +name: Authorization +in: header +description: |- + An OAuth 2.0 bearer token. Required in integration and production environments. +required: true +schema: + type: string + pattern: ^Bearer [[:ascii:]]+$ + example: Bearer g1112R_ccQ1Ebbb4gtHBP1aaaNM diff --git a/specification/api/components/parameters/authorization/authorization-sandbox.yml b/specification/api/components/parameters/authorization/authorization-sandbox.yml new file mode 100644 index 00000000..de566bd1 --- /dev/null +++ b/specification/api/components/parameters/authorization/authorization-sandbox.yml @@ -0,0 +1,9 @@ +name: Authorization +in: header +description: |- + An OAuth 2.0 bearer token. Required in integration and production environments. +required: false +schema: + type: string + pattern: ^Bearer [[:ascii:]]+$ + example: Bearer g1112R_ccQ1Ebbb4gtHBP1aaaNM diff --git a/specification/api/components/parameters/authorization/authorization-template.yml b/specification/api/components/parameters/authorization/authorization-template.yml new file mode 100644 index 00000000..dcb94c5f --- /dev/null +++ b/specification/api/components/parameters/authorization/authorization-template.yml @@ -0,0 +1 @@ +$ref: $AUTHORIZATION diff --git a/specification/api/components/parameters/authorization/authorization.yml b/specification/api/components/parameters/authorization/authorization.yml new file mode 100644 index 00000000..1dd82fdc --- /dev/null +++ b/specification/api/components/parameters/authorization/authorization.yml @@ -0,0 +1 @@ +$ref: authorization-prod.yml diff --git a/specification/api/components/security-schemes/security-schemes.yml b/specification/api/components/security-schemes/security-schemes.yml index 33c6527d..78a3ea0e 100644 --- a/specification/api/components/security-schemes/security-schemes.yml +++ b/specification/api/components/security-schemes/security-schemes.yml @@ -1 +1 @@ -$ref: security-schemes-internal-dev-pr.yml +$ref: security-schemes-prod.yml diff --git a/specification/api/components/security/security.yml b/specification/api/components/security/security.yml index 53a35667..393524ce 100644 --- a/specification/api/components/security/security.yml +++ b/specification/api/components/security/security.yml @@ -1 +1 @@ -$ref: security-internal-dev-pr.yml +$ref: security-prod.yml diff --git a/specification/api/components/x-nhsd-apim/access.yml b/specification/api/components/x-nhsd-apim/access.yml index b0ce6064..c69c222d 100644 --- a/specification/api/components/x-nhsd-apim/access.yml +++ b/specification/api/components/x-nhsd-apim/access.yml @@ -1 +1 @@ -$ref: access-internal-dev-pr.yml +$ref: access-prod.yml diff --git a/specification/api/components/x-nhsd-apim/target.yml b/specification/api/components/x-nhsd-apim/target.yml index 37ed0721..a0f578ca 100644 --- a/specification/api/components/x-nhsd-apim/target.yml +++ b/specification/api/components/x-nhsd-apim/target.yml @@ -1 +1 @@ -$ref: target-internal-dev-pr.yml +$ref: target-prod.yml diff --git a/specification/api/notify-supplier-phase1.yml b/specification/api/notify-supplier-phase1.yml index 589c18af..9588b820 100644 --- a/specification/api/notify-supplier-phase1.yml +++ b/specification/api/notify-supplier-phase1.yml @@ -9,6 +9,7 @@ security: paths: /letters: parameters: + - $ref: 'components/parameters/authorization/authorization.yml' - $ref: 'components/parameters/requestId.yml' - $ref: 'components/parameters/correlationId.yml' post: @@ -17,6 +18,7 @@ paths: $ref: 'components/endpoints/listLetters.yml' '/letters/{id}': parameters: + - $ref: 'components/parameters/authorization/authorization.yml' - $ref: 'components/parameters/requestId.yml' - $ref: 'components/parameters/correlationId.yml' - $ref: 'components/parameters/resourceId.yml' @@ -26,6 +28,7 @@ paths: $ref: 'components/endpoints/patchLetter.yml' '/letters/{id}/data': parameters: + - $ref: 'components/parameters/authorization/authorization.yml' - $ref: 'components/parameters/resourceId.yml' - $ref: 'components/parameters/requestId.yml' - $ref: 'components/parameters/correlationId.yml' @@ -35,6 +38,7 @@ paths: # $ref: 'components/endpoints/headDataId.yml' /mi: parameters: + - $ref: 'components/parameters/authorization/authorization.yml' - $ref: 'components/parameters/requestId.yml' - $ref: 'components/parameters/correlationId.yml' post: