Skip to content

Commit 400a373

Browse files
Merge pull request #646 from govuk-one-login/OJ-3196
OJ-3196: refactor - remove abandon step function, subscription filter…
2 parents 08cc5a3 + 2821bb8 commit 400a373

10 files changed

Lines changed: 5 additions & 730 deletions

File tree

infrastructure/template.yaml

Lines changed: 3 additions & 161 deletions
Original file line numberDiff line numberDiff line change
@@ -827,7 +827,7 @@ Resources:
827827
Role: !GetAtt CodeDeployServiceRole.Arn
828828
Alarms: !If
829829
- UseCanaryDeploymentAlarms
830-
- [!Ref AbandonFunctionCanaryErrors, !Ref AbandonStateMachineCanary5xxErrors]
830+
- [!Ref AbandonFunctionCanaryErrors, !Ref AbandonFunctionCanary5xxErrors]
831831
- [!Ref AWS::NoValue]
832832
LoggingConfig:
833833
LogGroup: !Sub /aws/lambda/${AWS::StackName}/AbandonFunction
@@ -1585,111 +1585,6 @@ Resources:
15851585
- Name: StateMachineArn
15861586
Value: !Ref NinoCheckStateMachine
15871587

1588-
AbandonStateMachine:
1589-
Type: AWS::Serverless::StateMachine
1590-
Properties:
1591-
AutoPublishAlias: live
1592-
DeploymentPreference:
1593-
Type: !Ref StepFunctionsDeploymentPreference
1594-
Interval: !If [IsProdEnvironment, 15, 5]
1595-
Percentage: !If [IsProdEnvironment, 10, 50]
1596-
Alarms: !If
1597-
- UseCanaryDeploymentAlarms
1598-
- - !Ref SsmParametersFunctionCanaryErrors
1599-
- !Ref AbandonStateMachineFailedCanary
1600-
- !Ref AbandonStateMachineCanary5xxErrors
1601-
- !Ref AWS::NoValue
1602-
StateMachineVersionArn: !Sub "arn:aws:states:${AWS::Region}:${AWS::AccountId}:stateMachine:${AbandonStateMachine}:live"
1603-
Type: EXPRESS
1604-
DefinitionUri: ../step-functions/abandon.asl.json
1605-
DefinitionSubstitutions:
1606-
AuditEventPrefix: !Ref AuditEventNamePrefix
1607-
CheckSessionStateMachineArn: !Sub ${CheckSessionStateMachine}:live
1608-
CommonStackName: !Ref CommonStackName
1609-
SsmParametersFunction: !Ref SsmParametersFunction.Version
1610-
CheckHmrcEventBus: !Ref CheckHmrcEventBus
1611-
CheckHmrcEventBusSource: !FindInMap [EnvironmentConfiguration, !Ref Environment, DOMAINNAME]
1612-
AuditEventNameAbandoned: !FindInMap [Audit, EventName, Abandoned]
1613-
Logging:
1614-
Destinations:
1615-
- CloudWatchLogsLogGroup:
1616-
LogGroupArn: !GetAtt AbandonStateMachineLogGroup.Arn
1617-
IncludeExecutionData: True
1618-
Level: ALL
1619-
Policies:
1620-
- LambdaInvokePolicy:
1621-
FunctionName: !Ref SsmParametersFunction
1622-
- DynamoDBReadPolicy:
1623-
TableName: !Sub "{{resolve:ssm:/${CommonStackName}/SessionTableName}}"
1624-
- DynamoDBWritePolicy:
1625-
TableName: !Sub "{{resolve:ssm:/${CommonStackName}/SessionTableName}}"
1626-
- EventBridgePutEventsPolicy:
1627-
EventBusName: !Ref CheckHmrcEventBus
1628-
- Statement:
1629-
Effect: Allow
1630-
Action:
1631-
- states:StartSyncExecution
1632-
- states:StartExecution
1633-
Resource:
1634-
- !Ref CheckSessionStateMachine
1635-
- Statement:
1636-
Effect: Allow
1637-
Action: logs:*
1638-
Resource: "*"
1639-
PermissionsBoundary: !If
1640-
- UsePermissionsBoundary
1641-
- !Ref PermissionsBoundary
1642-
- !Ref AWS::NoValue
1643-
1644-
AbandonStateMachineLogGroup:
1645-
Type: AWS::Logs::LogGroup
1646-
Properties:
1647-
LogGroupName: !Sub "/aws/vendedlogs/states/${AWS::StackName}-Abandon-state-machine-logs"
1648-
RetentionInDays: 30
1649-
1650-
PIIRedactedAbandonStateMachineLogsSubscriptionFilterCSLS:
1651-
Type: AWS::Logs::SubscriptionFilter
1652-
Condition: IsNotDevLikeEnvironment
1653-
Properties:
1654-
DestinationArn: !FindInMap [PlatformConfiguration, !Ref Environment, CSLSEGRESS]
1655-
FilterPattern: ""
1656-
LogGroupName: !Ref PIIRedactedAbandonStateMachineLogGroup
1657-
1658-
AbandonStateMachineFailedMetric:
1659-
Type: AWS::Logs::MetricFilter
1660-
Properties:
1661-
LogGroupName: !Ref AbandonStateMachineLogGroup
1662-
FilterPattern: '{$.type = "ExecutionFailed"}'
1663-
MetricTransformations:
1664-
- MetricValue: "1"
1665-
MetricName: "AbandonStateMachine}-Error"
1666-
MetricNamespace: !Sub "${AWS::StackName}/LogMessages"
1667-
1668-
AbandonStateMachineAlarm:
1669-
Type: "AWS::CloudWatch::Alarm"
1670-
Condition: DeployAlarms
1671-
Properties:
1672-
OKActions:
1673-
- !ImportValue platform-alarm-warning-alert-topic
1674-
AlarmActions:
1675-
- !ImportValue platform-alarm-warning-alert-topic
1676-
AlarmDescription: !Sub
1677-
- "${AbandonStateMachine} failed 4 or more requests in the last hour. Runbook: ${SupportManualURL}"
1678-
- SupportManualURL: !FindInMap [StaticVariables, Urls, SupportManualURL]
1679-
AlarmName: !Sub "${AWS::StackName}-${Environment}-AbandonStateMachine-ExecutionsFailed-alarm"
1680-
MetricName: "ExecutionsFailed"
1681-
Namespace: AWS/States
1682-
ComparisonOperator: GreaterThanThreshold
1683-
Statistic: Sum
1684-
DatapointsToAlarm: 1
1685-
EvaluationPeriods: 1
1686-
Period: 3600
1687-
Threshold: 3
1688-
TreatMissingData: notBreaching
1689-
Dimensions:
1690-
- Name: StateMachineArn
1691-
Value: !Ref AbandonStateMachine
1692-
16931588
NinoIssueCredentialStateMachine:
16941589
Type: AWS::Serverless::StateMachine
16951590
Properties:
@@ -2206,31 +2101,6 @@ Resources:
22062101
ComparisonOperator: GreaterThanOrEqualToThreshold
22072102
TreatMissingData: notBreaching
22082103

2209-
AbandonStateMachineFailedCanary:
2210-
Type: AWS::CloudWatch::Alarm
2211-
Condition: UseCanaryDeploymentAlarms
2212-
Properties:
2213-
ActionsEnabled: true
2214-
AlarmActions:
2215-
- !ImportValue platform-alarm-warning-alert-topic
2216-
OKActions:
2217-
- !ImportValue platform-alarm-warning-alert-topic
2218-
AlarmDescription: !Sub "Errors returned from the AbandonStateMachine"
2219-
MetricName: ExecutionsFailed
2220-
Dimensions:
2221-
- Name: StateMachineArn
2222-
Value: !Sub "arn:aws:states:${AWS::Region}:${AWS::AccountId}:stateMachine:${AbandonStateMachine}"
2223-
- Name: Alias
2224-
Value: "live"
2225-
Namespace: AWS/States
2226-
Statistic: Sum
2227-
Unit: Count
2228-
Period: 60
2229-
EvaluationPeriods: 1
2230-
Threshold: 1
2231-
ComparisonOperator: GreaterThanOrEqualToThreshold
2232-
TreatMissingData: notBreaching
2233-
22342104
NinoCheckStateMachineFailedCanary:
22352105
Type: AWS::CloudWatch::Alarm
22362106
Condition: UseCanaryDeploymentAlarms
@@ -2306,7 +2176,7 @@ Resources:
23062176
ComparisonOperator: GreaterThanOrEqualToThreshold
23072177
TreatMissingData: notBreaching
23082178

2309-
AbandonStateMachineCanary5xxErrors:
2179+
AbandonFunctionCanary5xxErrors:
23102180
Type: AWS::CloudWatch::Alarm
23112181
Condition: UseCanaryDeploymentAlarms
23122182
Properties:
@@ -2315,7 +2185,7 @@ Resources:
23152185
- !ImportValue platform-alarm-warning-alert-topic
23162186
OKActions:
23172187
- !ImportValue platform-alarm-warning-alert-topic
2318-
AlarmDescription: "AbandonStateMachine returning 5xx response."
2188+
AlarmDescription: "Abandon lambda returning 5xx response."
23192189
Namespace: AWS/ApiGateway
23202190
MetricName: 5XXError
23212191
Dimensions:
@@ -2831,16 +2701,6 @@ Resources:
28312701
MetricName: VCIssuedMetric
28322702
MetricNamespace: !Ref CriIdentifier
28332703

2834-
AbandonedJourneyMetric:
2835-
Type: AWS::Logs::MetricFilter
2836-
Properties:
2837-
LogGroupName: !Ref AbandonStateMachineLogGroup
2838-
FilterPattern: '{($.details.name = "Clear Auth Code")}'
2839-
MetricTransformations:
2840-
- MetricValue: 1
2841-
MetricName: AbandonedAuthMetric
2842-
MetricNamespace: !Ref CriIdentifier
2843-
28442704
####################################################################
28452705
# #
28462706
# Log Groups for Slunk (PII Redacted) #
@@ -2853,12 +2713,6 @@ Resources:
28532713
LogGroupName: !Sub "/aws/vendedlogs/states/${AWS::StackName}-NinoCheck-state-machine-logs-pii-redacted"
28542714
RetentionInDays: 30
28552715

2856-
PIIRedactedAbandonStateMachineLogGroup:
2857-
Type: AWS::Logs::LogGroup
2858-
Properties:
2859-
LogGroupName: !Sub "/aws/vendedlogs/states/${AWS::StackName}-Abandon-state-machine-logs-pii-redacted"
2860-
RetentionInDays: 30
2861-
28622716
PIIRedactedNinoIssueCredentialLogGroup:
28632717
Type: AWS::Logs::LogGroup
28642718
Properties:
@@ -2947,15 +2801,6 @@ Resources:
29472801
FilterPattern: ""
29482802
LogGroupName: !Ref NinoCheckStateMachineLogGroup
29492803

2950-
AbandonStateMachineLogsSubscriptionFilter:
2951-
Type: AWS::Logs::SubscriptionFilter
2952-
DependsOn: PIIRedactFunctionCloudWatchAliasPermissions
2953-
Properties:
2954-
FilterName: "PII Redaction"
2955-
DestinationArn: !Ref PIIRedactFunction.Alias
2956-
FilterPattern: ""
2957-
LogGroupName: !Ref AbandonStateMachineLogGroup
2958-
29592804
NinoIssueCredentialLogsSubscriptionFilter:
29602805
Type: AWS::Logs::SubscriptionFilter
29612806
DependsOn: PIIRedactFunctionCloudWatchAliasPermissions
@@ -3047,9 +2892,6 @@ Outputs:
30472892
NinoUsersTable:
30482893
Description: NinoUsersTable table name
30492894
Value: !Ref NinoUsersTable
3050-
AbandonStateMachineArn:
3051-
Description: Abandon state machine ARN
3052-
Value: !Ref AbandonStateMachine
30532895
AuditEventResponseReceivedRule:
30542896
Description: AuditEvent Response Received Rule
30552897
Value: !Ref AuditEventResponseReceivedRule

integration-tests/globalStackOutputSetup.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ let outputs: Partial<{
66
PublicApiGatewayId: string;
77
NinoUsersTable: string;
88
UserAttemptsTable: string;
9-
AbandonStateMachineArn: string;
9+
1010
CheckSessionStateMachineArn: string;
1111
NinoCheckStateMachineArn: string;
1212
NinoIssueCredentialStateMachineArn: string;
@@ -48,7 +48,7 @@ export default async function globalSetup() {
4848
"person-identity-common-cri-api";
4949
process.env.SESSION_TABLE =
5050
`session-${outputs.CommonStackName}` || "session-common-cri-api";
51-
process.env.ABANDON_STATE_MACHINE_ARN = outputs.AbandonStateMachineArn;
51+
5252
process.env.CHECK_SESSION_STATE_MACHINE_ARN =
5353
outputs.CheckSessionStateMachineArn;
5454
process.env.NINO_CHECK_STATE_MACHINE_ARN = outputs.NinoCheckStateMachineArn;

integration-tests/step-functions/aws/abandon/abandon.test.ts

Lines changed: 0 additions & 59 deletions
This file was deleted.

integration-tests/step-functions/mocked/abandon/MockConfigFile.json

Lines changed: 0 additions & 59 deletions
This file was deleted.

0 commit comments

Comments
 (0)