Skip to content

Commit 60b625c

Browse files
committed
feat: expose gsul in ptl for debugging purposes
1 parent 071b278 commit 60b625c

8 files changed

Lines changed: 112 additions & 2 deletions

File tree

.github/scripts/deploy_api.sh

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ echo "Apigee environment: ${APIGEE_ENVIRONMENT}"
1010
echo "Proxygen private key name: ${PROXYGEN_PRIVATE_KEY_NAME}"
1111
echo "Proxygen KID: ${PROXYGEN_KID}"
1212
echo "Deploy Check Prescription Status Update: ${DEPLOY_CHECK_PRESCRIPTION_STATUS_UPDATE}"
13+
echo "Expose Get Status Updates: ${EXPOSE_GET_STATUS_UPDATES}"
1314
echo "Dry run: ${DRY_RUN}"
1415
# shellcheck disable=SC2153
1516
echo "is_pull_request: ${IS_PULL_REQUEST}"
@@ -106,6 +107,14 @@ if [[ "${DEPLOY_CHECK_PRESCRIPTION_STATUS_UPDATE}" == "false" ]]; then
106107
fi
107108
fi
108109

110+
# Remove get-status-updates if not needed
111+
if [[ "${EXPOSE_GET_STATUS_UPDATES}" == "false" ]]; then
112+
if [[ "${API_TYPE}" == "standard" ]]; then
113+
echo "Removing get-status-updates endpoint"
114+
jq 'del(.paths."/get-status-updates")' "$SPEC_PATH" > temp.json && mv temp.json "$SPEC_PATH"
115+
fi
116+
fi
117+
109118
# Find and replace the x-nhsd-apim.target.secret value
110119
jq --arg mtls_key "${MTLS_KEY}" '.["x-nhsd-apim"].target.security.secret = "\($mtls_key)"' "${SPEC_PATH}" > temp.json && mv temp.json "${SPEC_PATH}"
111120

.github/scripts/release_code.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ sam deploy \
6161
LogRetentionInDays="$LOG_RETENTION_DAYS" \
6262
Environment="$TARGET_ENVIRONMENT" \
6363
DeployCheckPrescriptionStatusUpdate="$DEPLOY_CHECK_PRESCRIPTION_STATUS_UPDATE" \
64+
ExposeGetStatusUpdates="$EXPOSE_GET_STATUS_UPDATES" \
6465
EnableAlerts="$ENABLE_ALERTS" \
6566
StateMachineLogLevel="$STATE_MACHINE_LOG_LEVEL" \
6667
EnableNotificationsInternal="$ENABLE_NOTIFICATIONS_INTERNAL" \

.github/workflows/ci.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ jobs:
8888
DYNAMODB_AUTOSCALE: false
8989
DEPLOY_APIGEE_CPSU: true
9090
DEPLOY_CHECK_PRESCRIPTION_STATUS_UPDATE: true
91+
EXPOSE_GET_STATUS_UPDATES: true
9192
ENABLE_ALERTS: true
9293
REQUIRE_APPLICATION_NAME: false
9394
RUN_REGRESSION_TEST: true
@@ -133,6 +134,7 @@ jobs:
133134
DYNAMODB_AUTOSCALE: false
134135
DEPLOY_APIGEE_CPSU: true
135136
DEPLOY_CHECK_PRESCRIPTION_STATUS_UPDATE: true
137+
EXPOSE_GET_STATUS_UPDATES: true
136138
RUN_REGRESSION_TEST: false
137139
STATE_MACHINE_LOG_LEVEL: ALL
138140
LOG_LEVEL: DEBUG
@@ -172,6 +174,7 @@ jobs:
172174
DYNAMODB_AUTOSCALE: false
173175
DEPLOY_APIGEE_CPSU: true
174176
DEPLOY_CHECK_PRESCRIPTION_STATUS_UPDATE: true
177+
EXPOSE_GET_STATUS_UPDATES: true
175178
ENABLE_ALERTS: true
176179
RUN_REGRESSION_TEST: true
177180
STATE_MACHINE_LOG_LEVEL: ALL

.github/workflows/pull_request.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ jobs:
122122
DYNAMODB_AUTOSCALE: false
123123
DEPLOY_APIGEE_CPSU: true
124124
DEPLOY_CHECK_PRESCRIPTION_STATUS_UPDATE: true
125+
EXPOSE_GET_STATUS_UPDATES: true
125126
ENABLE_ALERTS: false
126127
REQUIRE_APPLICATION_NAME: false
127128
RUN_REGRESSION_TEST: true
@@ -167,6 +168,7 @@ jobs:
167168
DYNAMODB_AUTOSCALE: false
168169
DEPLOY_APIGEE_CPSU: true
169170
DEPLOY_CHECK_PRESCRIPTION_STATUS_UPDATE: true
171+
EXPOSE_GET_STATUS_UPDATES: true
170172
RUN_REGRESSION_TEST: false
171173
STATE_MACHINE_LOG_LEVEL: ALL
172174
ENABLE_BACKUP: "False"

.github/workflows/release.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ jobs:
8888
DYNAMODB_AUTOSCALE: false
8989
DEPLOY_APIGEE_CPSU: true
9090
DEPLOY_CHECK_PRESCRIPTION_STATUS_UPDATE: true
91+
EXPOSE_GET_STATUS_UPDATES: true
9192
ENABLE_ALERTS: true
9293
REQUIRE_APPLICATION_NAME: false
9394
RUN_REGRESSION_TEST: true
@@ -136,6 +137,7 @@ jobs:
136137
DYNAMODB_AUTOSCALE: false
137138
DEPLOY_APIGEE_CPSU: true
138139
DEPLOY_CHECK_PRESCRIPTION_STATUS_UPDATE: true
140+
EXPOSE_GET_STATUS_UPDATES: true
139141
RUN_REGRESSION_TEST: false
140142
STATE_MACHINE_LOG_LEVEL: ALL
141143
ENABLE_BACKUP: "False"
@@ -187,6 +189,7 @@ jobs:
187189
DYNAMODB_AUTOSCALE: true
188190
DEPLOY_APIGEE_CPSU: true
189191
DEPLOY_CHECK_PRESCRIPTION_STATUS_UPDATE: true
192+
EXPOSE_GET_STATUS_UPDATES: false
190193
ENABLE_ALERTS: true
191194
RUN_REGRESSION_TEST: false
192195
STATE_MACHINE_LOG_LEVEL: ERROR
@@ -239,6 +242,7 @@ jobs:
239242
DYNAMODB_AUTOSCALE: false
240243
DEPLOY_APIGEE_CPSU: true
241244
DEPLOY_CHECK_PRESCRIPTION_STATUS_UPDATE: true
245+
EXPOSE_GET_STATUS_UPDATES: true
242246
ENABLE_ALERTS: true
243247
RUN_REGRESSION_TEST: true
244248
STATE_MACHINE_LOG_LEVEL: ALL
@@ -285,6 +289,7 @@ jobs:
285289
DYNAMODB_AUTOSCALE: false
286290
DEPLOY_APIGEE_CPSU: true
287291
DEPLOY_CHECK_PRESCRIPTION_STATUS_UPDATE: true
292+
EXPOSE_GET_STATUS_UPDATES: true
288293
ENABLE_ALERTS: true
289294
RUN_REGRESSION_TEST: true
290295
STATE_MACHINE_LOG_LEVEL: ALL
@@ -332,6 +337,7 @@ jobs:
332337
DYNAMODB_AUTOSCALE: false
333338
DEPLOY_APIGEE_CPSU: true
334339
DEPLOY_CHECK_PRESCRIPTION_STATUS_UPDATE: true
340+
EXPOSE_GET_STATUS_UPDATES: true
335341
RUN_REGRESSION_TEST: false
336342
STATE_MACHINE_LOG_LEVEL: ALL
337343
ENABLE_BACKUP: "False"
@@ -385,6 +391,7 @@ jobs:
385391
DYNAMODB_AUTOSCALE: true
386392
DEPLOY_APIGEE_CPSU: true
387393
DEPLOY_CHECK_PRESCRIPTION_STATUS_UPDATE: false
394+
EXPOSE_GET_STATUS_UPDATES: false
388395
ENABLE_ALERTS: true
389396
RUN_REGRESSION_TEST: false
390397
STATE_MACHINE_LOG_LEVEL: ERROR

.github/workflows/run_release_code_and_api.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,9 @@ on:
6161
DEPLOY_CHECK_PRESCRIPTION_STATUS_UPDATE:
6262
type: boolean
6363
default: false
64+
EXPOSE_GET_STATUS_UPDATES:
65+
type: boolean
66+
default: false
6467
ENABLE_ALERTS:
6568
type: boolean
6669
default: true
@@ -236,6 +239,7 @@ jobs:
236239
VERSION_NUMBER: ${{ inputs.VERSION_NUMBER }}
237240
DYNAMODB_AUTOSCALE: ${{ inputs.DYNAMODB_AUTOSCALE }}
238241
DEPLOY_CHECK_PRESCRIPTION_STATUS_UPDATE: ${{ inputs.DEPLOY_CHECK_PRESCRIPTION_STATUS_UPDATE }}
242+
EXPOSE_GET_STATUS_UPDATES: ${{ inputs.EXPOSE_GET_STATUS_UPDATES }}
239243
ENABLE_ALERTS: ${{ inputs.ENABLE_ALERTS }}
240244
STATE_MACHINE_LOG_LEVEL: ${{ inputs.STATE_MACHINE_LOG_LEVEL }}
241245
ENABLE_BACKUP: ${{ inputs.ENABLE_BACKUP }}
@@ -289,6 +293,7 @@ jobs:
289293
PROXYGEN_KID: "eps-cli-key-1"
290294
DRY_RUN: false
291295
DEPLOY_CHECK_PRESCRIPTION_STATUS_UPDATE: ${{ inputs.DEPLOY_CHECK_PRESCRIPTION_STATUS_UPDATE }}
296+
EXPOSE_GET_STATUS_UPDATES: ${{ inputs.EXPOSE_GET_STATUS_UPDATES }}
292297
IS_PULL_REQUEST: ${{ inputs.IS_PULL_REQUEST }}
293298
MTLS_KEY: ${{ inputs.MTLS_KEY }}
294299
ENABLE_MUTUAL_TLS: ${{ inputs.ENABLE_MUTUAL_TLS }}
@@ -310,6 +315,7 @@ jobs:
310315
PROXYGEN_KID: eps-cli-key-cpsu-1
311316
DRY_RUN: false
312317
DEPLOY_CHECK_PRESCRIPTION_STATUS_UPDATE: ${{ inputs.DEPLOY_CHECK_PRESCRIPTION_STATUS_UPDATE }}
318+
EXPOSE_GET_STATUS_UPDATES: ${{ inputs.EXPOSE_GET_STATUS_UPDATES }}
313319
IS_PULL_REQUEST: ${{ inputs.IS_PULL_REQUEST }}
314320
MTLS_KEY: ${{ inputs.MTLS_KEY }}
315321
ENABLE_MUTUAL_TLS: ${{ inputs.ENABLE_MUTUAL_TLS }}

SAMtemplates/apis/main.yaml

Lines changed: 74 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,14 @@ Parameters:
5454
Type: String
5555
Default: none
5656

57+
GetStatusUpdatesFunctionName:
58+
Type: String
59+
Default: none
60+
61+
GetStatusUpdatesFunctionArn:
62+
Type: String
63+
Default: none
64+
5765
NHSNotifyUpdateCallbackFunctionName:
5866
Type: String
5967
Default: none
@@ -71,6 +79,10 @@ Parameters:
7179
DeployCheckPrescriptionStatusUpdate:
7280
Type: String
7381

82+
ExposeGetStatusUpdates:
83+
Type: String
84+
Default: false
85+
7486
ForwardCsocLogs:
7587
Type: String
7688
Default: false
@@ -81,6 +93,9 @@ Conditions:
8193
ShouldDeployCheckPrescriptionStatusUpdate: !Equals
8294
- true
8395
- !Ref DeployCheckPrescriptionStatusUpdate
96+
ShouldExposeGetStatusUpdates: !Equals
97+
- true
98+
- !Ref ExposeGetStatusUpdates
8499

85100
Resources:
86101
GenerateCertificate:
@@ -526,6 +541,58 @@ Resources:
526541
IntegrationHttpMethod: POST
527542
Uri: !Sub arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${CheckPrescriptionStatusUpdatesFunctionArn}/invocations
528543

544+
GetStatusUpdatesResource:
545+
Condition: ShouldExposeGetStatusUpdates
546+
Type: AWS::ApiGateway::Resource
547+
Properties:
548+
RestApiId: !Ref RestApiGateway
549+
ParentId: !GetAtt RestApiGateway.RootResourceId
550+
PathPart: get-status-updates
551+
552+
GetStatusUpdatesMethod:
553+
Condition: ShouldExposeGetStatusUpdates
554+
Type: AWS::ApiGateway::Method
555+
Properties:
556+
RestApiId: !Ref RestApiGateway
557+
ResourceId: !Ref GetStatusUpdatesResource
558+
HttpMethod: POST
559+
AuthorizationType: NONE
560+
Integration:
561+
Type: AWS
562+
Credentials: !GetAtt RestApiGatewayResources.Outputs.ApiGwRoleArn
563+
IntegrationHttpMethod: POST
564+
Uri: !Sub arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${GetStatusUpdatesFunctionArn}/invocations
565+
RequestTemplates:
566+
application/json: |-
567+
$input.json('$')
568+
IntegrationResponses:
569+
- StatusCode: 200
570+
ResponseTemplates:
571+
application/json: |-
572+
$input.body
573+
MethodResponses:
574+
- StatusCode: "200"
575+
576+
GetStatusUpdatesHandle:
577+
Condition: ShouldExposeGetStatusUpdates
578+
DependsOn: GetStatusUpdatesMethod
579+
Type: "AWS::CloudFormation::WaitConditionHandle"
580+
581+
GetStatusUpdatesWaitHandle:
582+
Type: "AWS::CloudFormation::WaitConditionHandle"
583+
584+
GetStatusUpdatesWaitCondition:
585+
Type: "AWS::CloudFormation::WaitCondition"
586+
Properties:
587+
Handle:
588+
!If [
589+
ShouldExposeGetStatusUpdates,
590+
!Ref GetStatusUpdatesHandle,
591+
!Ref GetStatusUpdatesWaitHandle,
592+
]
593+
Timeout: "1"
594+
Count: 0
595+
529596
# we can not use a conditional in depends on in ApiGateway::Deployment
530597
# so instead we use a wait condition that has the conditional in it and use that as a dependency
531598
# taken from https://garbe.io/blog/2017/07/17/cloudformation-hacks/
@@ -553,7 +620,7 @@ Resources:
553620
# if you add a new endpoint, then change the name of this resource
554621
# also need to change it in RestApiGatewayStage.Properties.DeploymentId
555622
# *********************************************************************
556-
RestApiGatewayDeploymentV2f:
623+
RestApiGatewayDeploymentV2h:
557624
Type: AWS::ApiGateway::Deployment
558625
DependsOn:
559626
# see note above if you add something in here when you add a new endpoint
@@ -563,6 +630,7 @@ Resources:
563630
- Format1UpdatePrescriptionStatusMethod
564631
- CheckPrescriptionStatusUpdatesWaitCondition
565632
- NotificationDeliveryStatusCallbackMethod
633+
- GetStatusUpdatesWaitCondition
566634
# see note above if you add something in here when you add a new endpoint
567635
Properties:
568636
RestApiId: !Ref RestApiGateway
@@ -571,7 +639,7 @@ Resources:
571639
Type: AWS::ApiGateway::Stage
572640
Properties:
573641
RestApiId: !Ref RestApiGateway
574-
DeploymentId: !Ref RestApiGatewayDeploymentV2f
642+
DeploymentId: !Ref RestApiGatewayDeploymentV2h
575643
StageName: prod
576644
TracingEnabled: true
577645
AccessLogSetting:
@@ -595,6 +663,10 @@ Resources:
595663
- Fn::ImportValue: !Sub ${StackName}:functions:${StatusFunctionName}:ExecuteLambdaPolicyArn
596664
- Fn::ImportValue: !Sub ${StackName}:functions:${CapabilityStatementFunctionName}:ExecuteLambdaPolicyArn
597665
- Fn::ImportValue: !Sub ${StackName}:functions:${NHSNotifyUpdateCallbackFunctionName}:ExecuteLambdaPolicyArn
666+
- !If
667+
- ShouldExposeGetStatusUpdates
668+
- Fn::ImportValue: !Sub ${StackName}:functions:${GetStatusUpdatesFunctionName}:ExecuteLambdaPolicyArn
669+
- !Ref AWS::NoValue
598670
- Fn::ImportValue: !Sub ${StackName}:state-machines:${Format1UpdatePrescriptionsStatusStateMachineName}:ExecuteStateMachinePolicy
599671
- !If
600672
- ShouldDeployCheckPrescriptionStatusUpdate

SAMtemplates/main_template.yaml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,13 @@ Parameters:
7171
DeployCheckPrescriptionStatusUpdate:
7272
Type: String
7373

74+
ExposeGetStatusUpdates:
75+
Type: String
76+
Default: false
77+
AllowedValues:
78+
- true
79+
- false
80+
7481
Environment:
7582
Type: String
7683

@@ -223,11 +230,14 @@ Resources:
223230
CapabilityStatementFunctionArn: !GetAtt Functions.Outputs.CapabilityStatementFunctionArn
224231
CheckPrescriptionStatusUpdatesFunctionName: !GetAtt Functions.Outputs.CheckPrescriptionStatusUpdatesFunctionName
225232
CheckPrescriptionStatusUpdatesFunctionArn: !GetAtt Functions.Outputs.CheckPrescriptionStatusUpdatesFunctionArn
233+
GetStatusUpdatesFunctionName: !GetAtt Functions.Outputs.GetStatusUpdatesFunctionName
234+
GetStatusUpdatesFunctionArn: !GetAtt Functions.Outputs.GetStatusUpdatesFunctionArn
226235
NHSNotifyUpdateCallbackFunctionName: !GetAtt Functions.Outputs.NHSNotifyUpdateCallbackFunctionName
227236
NHSNotifyUpdateCallbackFunctionArn: !GetAtt Functions.Outputs.NHSNotifyUpdateCallbackFunctionArn
228237
LogRetentionInDays: !Ref LogRetentionInDays
229238
EnableSplunk: !Ref EnableSplunk
230239
DeployCheckPrescriptionStatusUpdate: !Ref DeployCheckPrescriptionStatusUpdate
240+
ExposeGetStatusUpdates: !Ref ExposeGetStatusUpdates
231241
ForwardCsocLogs: !Ref ForwardCsocLogs
232242

233243
Functions:

0 commit comments

Comments
 (0)