@govuk-pay/cli 0.0.30 → 0.0.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/package.json +5 -2
  2. package/resources/pay-local/config/localstack/init-aws.sh +70 -0
  3. package/resources/pay-local/config/postgres/docker-entrypoint-initdb.d/make_payments_databases.sql +26 -0
  4. package/resources/pay-local/config/service_config.yaml +193 -0
  5. package/resources/pay-local/config/services/adminusers.env +49 -0
  6. package/resources/pay-local/config/services/cardid.env +2 -0
  7. package/resources/pay-local/config/services/connector.env +70 -0
  8. package/resources/pay-local/config/services/demo-service.env +10 -0
  9. package/resources/pay-local/config/services/egress/squid.conf +47 -0
  10. package/resources/pay-local/config/services/frontend.env +12 -0
  11. package/resources/pay-local/config/services/java_app.env +1 -0
  12. package/resources/pay-local/config/services/ledger.env +10 -0
  13. package/resources/pay-local/config/services/products-ui.env +14 -0
  14. package/resources/pay-local/config/services/products.env +25 -0
  15. package/resources/pay-local/config/services/publicapi.env +13 -0
  16. package/resources/pay-local/config/services/publicauth.env +13 -0
  17. package/resources/pay-local/config/services/selfservice.env +21 -0
  18. package/resources/pay-local/config/services/ssl/certs/frontend-proxy.crt +18 -0
  19. package/resources/pay-local/config/services/ssl/certs/products-ui-proxy.crt +20 -0
  20. package/resources/pay-local/config/services/ssl/certs/publicapi-proxy.crt +18 -0
  21. package/resources/pay-local/config/services/ssl/certs/selfservice-proxy.crt +20 -0
  22. package/resources/pay-local/config/services/ssl/certs/stubs-proxy.crt +18 -0
  23. package/resources/pay-local/config/services/ssl/keys/frontend-proxy.key +28 -0
  24. package/resources/pay-local/config/services/ssl/keys/products-ui-proxy.key +28 -0
  25. package/resources/pay-local/config/services/ssl/keys/publicapi-proxy.key +28 -0
  26. package/resources/pay-local/config/services/ssl/keys/selfservice-proxy.key +28 -0
  27. package/resources/pay-local/config/services/ssl/keys/stubs-proxy.key +28 -0
  28. package/resources/pay-local/config/services/ssl/make-selfsigned.sh +2 -0
  29. package/resources/pay-local/config/services/stubs.env +12 -0
  30. package/resources/pay-local/config/services/toolbox.env +6 -0
  31. package/resources/pay-local/config/services/webhooks.env +9 -0
  32. package/resources/pay-local/templates/docker-compose.hbs +276 -0
  33. package/resources/usageDetails.txt +1 -0
  34. package/src/commands/local/config/default_config_setup.js +13 -0
  35. package/src/commands/local/config/last_up_record.js +50 -0
  36. package/src/commands/local/config/pay_local_cluster.js +221 -0
  37. package/src/commands/local/config/renderer.js +46 -0
  38. package/src/commands/local/docker_compose_controller.js +24 -0
  39. package/src/commands/local/subcommands/down.js +56 -0
  40. package/src/commands/local/subcommands/nuke.js +28 -0
  41. package/src/commands/local/subcommands/otp.js +27 -0
  42. package/src/commands/local/subcommands/restart.js +35 -0
  43. package/src/commands/local/subcommands/up.js +55 -0
  44. package/src/commands/local.js +98 -0
  45. package/src/core/commandRouter.js +4 -0
  46. package/src/util/configs.js +47 -0
  47. package/src/util/md5.js +16 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@govuk-pay/cli",
3
- "version": "0.0.30",
3
+ "version": "0.0.31",
4
4
  "description": "GOV.UK Pay Command Line Interface",
5
5
  "bin": {
6
6
  "pay": "bin/cli.js",
@@ -18,9 +18,12 @@
18
18
  "@aws-sdk/client-ecs": "^3.637.0",
19
19
  "@aws-sdk/client-rds": "^3.637.0",
20
20
  "@aws-sdk/client-ssm": "^3.651.1",
21
+ "handlebars": "^4.7.8",
21
22
  "openurl": "^1.1.1",
22
23
  "semver": "^7.6.3",
23
- "ts-standard": "^12.0.2"
24
+ "totp-generator": "^1.0.0",
25
+ "ts-standard": "^12.0.2",
26
+ "yaml": "^2.5.1"
24
27
  },
25
28
  "files": [
26
29
  "resources",
@@ -0,0 +1,70 @@
1
+ #!/bin/sh
2
+
3
+ cat > /tmp/sqs_attributes.json <<EOF
4
+ {
5
+ "VisibilityTimeout": "3600",
6
+ "DelaySeconds": "0",
7
+ "ReceiveMessageWaitTimeSeconds": "0"
8
+ }
9
+ EOF
10
+
11
+ echo "|======================================================================="
12
+ echo "| Creating SQS queues"
13
+ echo "|======================================================================="
14
+ for QUEUE in \
15
+ connector_tasks_queue \
16
+ pay_capture_queue \
17
+ pay_event_queue \
18
+ payout_reconcile_queue \
19
+ webhooks-events-subscriber-queue
20
+ do
21
+ echo "---------------------"
22
+ echo "Creating queue $QUEUE"
23
+ echo "---------------------"
24
+ aws sqs create-queue \
25
+ --queue-name "$QUEUE" \
26
+ --attributes file:///tmp/sqs_attributes.json \
27
+ --endpoint-url=http://localhost:4566 \
28
+ --region=eu-west-1
29
+ echo "---------------------"
30
+ echo
31
+ done
32
+
33
+ echo "|======================================================================="
34
+ echo "| Creating SNS topics"
35
+ echo "|======================================================================="
36
+ for TOPIC in \
37
+ card-payment-dispute-events-topic \
38
+ card-payment-events-topic
39
+ do
40
+ echo "---------------------"
41
+ echo "Creating topic $TOPIC"
42
+ echo "---------------------"
43
+ aws sns create-topic \
44
+ --name "$TOPIC" \
45
+ --endpoint-url=http://localhost:4566 \
46
+ --region=eu-west-1
47
+ echo "---------------------"
48
+ echo
49
+ done
50
+
51
+ echo "|======================================================================="
52
+ echo "| Subscribing webhooks SQS queue to relevant SNS topics"
53
+ echo "|======================================================================="
54
+ for TOPIC in \
55
+ card-payment-dispute-events-topic \
56
+ card-payment-events-topic
57
+ do
58
+ echo
59
+ echo "---------------------"
60
+ echo "Subscribing webhooks-events-subscriber-queue to topic $TOPIC"
61
+ echo "---------------------"
62
+ aws sns subscribe \
63
+ --topic-arn "arn:aws:sns:eu-west-1:000000000000:$TOPIC" \
64
+ --protocol sqs \
65
+ --notification-endpoint arn:aws:sns:eu-west-1:000000000000:webhooks-events-subscriber-queue \
66
+ --endpoint-url=http://localhost:4566 \
67
+ --region=eu-west-1
68
+ echo
69
+ echo
70
+ done
@@ -0,0 +1,26 @@
1
+ CREATE EXTENSION "uuid-ossp";
2
+ CREATE EXTENSION IF NOT EXISTS pg_trgm WITH SCHEMA pg_catalog;
3
+
4
+ CREATE USER connector WITH password 'mysecretpassword';
5
+ CREATE DATABASE connector WITH owner=connector TEMPLATE postgres;
6
+ GRANT ALL PRIVILEGES ON DATABASE connector TO connector;
7
+
8
+ CREATE USER publicauth WITH password 'mysecretpassword';
9
+ CREATE DATABASE publicauth WITH owner=publicauth TEMPLATE postgres;
10
+ GRANT ALL PRIVILEGES ON DATABASE publicauth TO publicauth;
11
+
12
+ CREATE USER adminusers WITH password 'mysecretpassword';
13
+ CREATE DATABASE adminusers WITH owner=adminusers TEMPLATE postgres;
14
+ GRANT ALL PRIVILEGES ON DATABASE adminusers TO adminusers;
15
+
16
+ CREATE USER products WITH password 'mysecretpassword';
17
+ CREATE DATABASE products WITH owner=products TEMPLATE postgres;
18
+ GRANT ALL PRIVILEGES ON DATABASE products TO products;
19
+
20
+ CREATE USER ledger WITH password 'mysecretpassword';
21
+ CREATE DATABASE ledger WITH owner=ledger TEMPLATE postgres;
22
+ GRANT ALL PRIVILEGES ON DATABASE ledger TO ledger;
23
+
24
+ CREATE USER webhooks WITH password 'mysecretpassword';
25
+ CREATE DATABASE webhooks WITH owner=webhooks TEMPLATE postgres;
26
+ GRANT ALL PRIVILEGES ON DATABASE webhooks TO webhooks;
@@ -0,0 +1,193 @@
1
+ adminusers:
2
+ name: adminusers
3
+ type: java
4
+ db: true
5
+ db_port: 19700
6
+ port: 9700
7
+ admin_port: 9701
8
+ healthcheck: true
9
+ queues:
10
+ AWS_SQS_CONNECTOR_TASKS_QUEUE_URL: connector_tasks_queue
11
+ clusters:
12
+ - admin
13
+ - paymentlinks
14
+ - card
15
+ - endtoend
16
+ - java
17
+ - toolbox
18
+ cardid:
19
+ name: cardid
20
+ type: java
21
+ port: 9900
22
+ db: false
23
+ admin_port: 9901
24
+ healthcheck: true
25
+ clusters:
26
+ - paymentlinks
27
+ - card
28
+ - endtoend
29
+ - java
30
+ connector:
31
+ name: connector
32
+ type: java
33
+ db: true
34
+ db_port: 19300
35
+ port: 9300
36
+ admin_port: 9301
37
+ healthcheck: true
38
+ can_use_egress_proxy: true
39
+ queues:
40
+ AWS_SQS_CAPTURE_QUEUE_URL: pay_capture_queue
41
+ AWS_SQS_PAYMENT_EVENT_QUEUE_URL: pay_event_queue
42
+ AWS_SQS_PAYOUT_RECONCILE_QUEUE_URL: payout_reconcile_queue
43
+ AWS_SQS_CONNECTOR_TASKS_QUEUE_URL: connector_tasks_queue
44
+ clusters:
45
+ - admin
46
+ - paymentlinks
47
+ - card
48
+ - endtoend
49
+ - java
50
+ - toolbox
51
+ frontend:
52
+ name: frontend
53
+ type: node
54
+ proxy: true
55
+ naxsi: true
56
+ db: false
57
+ port: 9000
58
+ debug_port: 9001
59
+ proxy_port: 29000
60
+ healthcheck: true
61
+ can_use_egress_proxy: true
62
+ clusters:
63
+ - paymentlinks
64
+ - card
65
+ - endtoend
66
+ ledger:
67
+ name: ledger
68
+ type: java
69
+ db: true
70
+ db_port: 20700
71
+ port: 10700
72
+ admin_port: 10701
73
+ healthcheck: true
74
+ queues:
75
+ AWS_SQS_PAYMENT_EVENT_QUEUE_URL: pay_event_queue
76
+ sns_topics:
77
+ SNS_TOPIC_CARD_PAYMENT_EVENTS: card-payment-events-topic
78
+ SNS_TOPIC_CARD_PAYMENT_DISPUTE_EVENTS: card-payment-dispute-events-topic
79
+ clusters:
80
+ - admin
81
+ - card
82
+ - endtoend
83
+ - java
84
+ - toolbox
85
+ products:
86
+ name: products
87
+ type: java
88
+ db: true
89
+ db_port: 19800
90
+ port: 18000
91
+ admin_port: 18001
92
+ healthcheck: true
93
+ clusters:
94
+ - admin
95
+ - paymentlinks
96
+ - endtoend
97
+ - java
98
+ - toolbox
99
+ products-ui:
100
+ name: products-ui
101
+ type: node
102
+ proxy: true
103
+ db: false
104
+ port: 10400
105
+ debug_port: 10401
106
+ proxy_port: 19000
107
+ healthcheck: true
108
+ clusters:
109
+ - paymentlinks
110
+ - endtoend
111
+ publicapi:
112
+ name: publicapi
113
+ type: java
114
+ proxy: true
115
+ db: false
116
+ naxsi: true
117
+ port: 9100
118
+ admin_port: 9101
119
+ proxy_port: 39100
120
+ healthcheck: true
121
+ uses_redis: true
122
+ clusters:
123
+ - paymentlinks
124
+ - card
125
+ - endtoend
126
+ - java
127
+ publicauth:
128
+ name: publicauth
129
+ type: java
130
+ db: true
131
+ db_port: 19600
132
+ port: 9600
133
+ admin_port: 9601
134
+ healthcheck: true
135
+ clusters:
136
+ - admin
137
+ - paymentlinks
138
+ - card
139
+ - endtoend
140
+ - java
141
+ - toolbox
142
+ selfservice:
143
+ name: selfservice
144
+ type: node
145
+ proxy: true
146
+ naxsi: true
147
+ db: false
148
+ port: 9400
149
+ debug_port: 9401
150
+ healthcheck: true
151
+ proxy_port: 39000
152
+ clusters:
153
+ - admin
154
+ - endtoend
155
+ - webhooks
156
+ - toolbox
157
+ stubs:
158
+ name: stubs
159
+ type: node
160
+ proxy: false
161
+ db: false
162
+ port: 3030
163
+ debug_port: 3031
164
+ healthcheck: false
165
+ clusters:
166
+ - endtoend
167
+ toolbox:
168
+ name: toolbox
169
+ type: node
170
+ db: false
171
+ port: 3040
172
+ debug_port: 3041
173
+ healthcheck: true
174
+ entrypoint_override_local: 'sh -c "npm run build:copy && npm --inspect=0.0.0.0:3041 start"'
175
+ clusters:
176
+ - toolbox
177
+ webhooks:
178
+ name: webhooks
179
+ type: java
180
+ db: true
181
+ db_port: 20800
182
+ port: 10800
183
+ admin_port: 10801
184
+ healthcheck: true
185
+ queues:
186
+ AWS_SQS_PAYMENT_EVENT_QUEUE_URL: webhooks-events-subscriber-queue
187
+ clusters:
188
+ - admin
189
+ - card
190
+ - endtoend
191
+ - java
192
+ - toolbox
193
+ - webhooks
@@ -0,0 +1,49 @@
1
+ PORT=9700
2
+ ADMIN_PORT=9701
3
+
4
+ DB_HOST=adminusers_db
5
+ DB_PORT=5432
6
+ DB_SSL_OPTION=ssl=true
7
+ DB_USER=adminusers
8
+ DB_PASSWORD=mysecretpassword
9
+
10
+ JPA_LOG_LEVEL=WARNING
11
+ JPA_SQL_LOG_LEVEL=WARNING
12
+ LOGIN_ATTEMPT_CAP=2
13
+
14
+ # defines whether outbound HTTP traffic need to be routed via a proxy. Default behaviour is proxy off.
15
+ HTTP_PROXY_ENABLED=false
16
+ HTTP_PROXY_HOST=egress.pymnt.localdomain
17
+ HTTP_PROXY_PORT=8080
18
+
19
+ LEDGER_URL=http://ledger:10700
20
+
21
+ NOTIFY_SERVICE_ID=pay-notify-service-id
22
+ NOTIFY_SECRET=pay-notify-secret-needs-to-be-32-chars-fsghdngfhmhfkrgsfs
23
+ NOTIFY_API_KEY=api_key-pay-notify-service-id-pay-notify-secret-needs-to-be-32-chars-fsghdngfhmhfkrgsfs
24
+ NOTIFY_SIGN_IN_OTP_SMS_TEMPLATE_ID=pay-notify-sign-in-otp-sms-template-id
25
+ NOTIFY_CHANGE_SIGN_IN_2FA_TO_SMS_OTP_SMS_TEMPLATE_ID=pay-notify-change-sign-in-2fa-to-sms-otp-sms-template-id
26
+ NOTIFY_SELF_INITIATED_CREATE_USER_AND_SERVICE_OTP_SMS_TEMPLATE_ID=pay-notify-self-initiated-create-user-and-service-otp-sms-template-id
27
+ NOTIFY_CREATE_USER_IN_RESPONSE_TO_INVITATION_TO_SERVICE_OTP_SMS_TEMPLATE_ID=pay-notify-create-user-in-response-to-invitation-to-service-otp-sms-template-id
28
+ NOTIFY_INVITE_EMAIL_TEMPLATE_ID=pay-notify-invite-email-template-id
29
+ NOTIFY_INVITE_USER_EMAIL_TEMPLATE_ID=pay-notify-invite-user-email-template-id
30
+ NOTIFY_FORGOTTEN_PASSWORD_EMAIL_TEMPLATE_ID=pay-notify-forgotten-password-email-template-id
31
+ NOTIFY_BASE_URL=http://stubs:3030/notify
32
+ NOTIFY_INVITE_SERVICE_EMAIL_TEMPLATE_ID=pay-notify-invite-service-email-template-id
33
+ NOTIFY_INVITE_SERVICE_USER_EXITS_EMAIL_TEMPLATE_ID=pay-notify-invite-service-user-exists-email-template-id
34
+ NOTIFY_LIVE_ACCOUNT_CREATED_EMAIL_TEMPLATE_ID=pay-notify-live-account-created-email-template-id
35
+ NOTIFY_DISPUTE_CREATED_EMAIL_TEMPLATE_ID=pay-notify-dispute-created-email-template-id
36
+ NOTIFY_STRIPE_DISPUTE_CREATED_EMAIL_TEMPLATE_ID=pay-notify-dispute-created-email-template-id
37
+ NOTIFY_STRIPE_DISPUTE_EVIDENCE_SUBMITTED_EMAIL_TEMPLATE_ID=pay-notify-dispute-evidence-submitted-template-id
38
+ NOTIFY_STRIPE_DISPUTE_LOST_EMAIL_TEMPLATE_ID=pay-notify-stripe-dispute-lost-email-template-id
39
+ NOTIFY_STRIPE_DISPUTE_LOST_AND_SERVICE_CHARGED_EMAIL_TEMPLATE_ID=pay-notify-stripe-dispute-lost-andservice-charged-email-template-id
40
+ NOTIFY_STRIPE_DISPUTE_WON_EMAIL_TEMPLATE_ID=pay-notify-stripe-dispute-won-email-template-id
41
+ NOTIFY_EMAIL_REPLY_TO_SUPPORT_ID=pay-notify-email-reply-to-support-id
42
+
43
+ FORGOTTEN_PASSWORD_EXPIRY_MINUTES=90
44
+
45
+ AWS_SQS_CONNECTOR_TASKS_QUEUE_URL=http://localstack:4566/000000000000/connector_tasks_queue
46
+
47
+ #AWS_XRAY_DAEMON_ADDRESS=xray:2000
48
+
49
+ EXPUNGE_AND_ARCHIVE_HISTORICAL_DATA_ENABLED=true
@@ -0,0 +1,2 @@
1
+ PORT=9800
2
+ ADMIN_PORT=9801
@@ -0,0 +1,70 @@
1
+ PORT=9300
2
+ ADMIN_PORT=9301
3
+
4
+ DB_HOST=connector_db
5
+ DB_PORT=5432
6
+ DB_SSL_OPTION=ssl=true
7
+ DB_USER=connector
8
+ DB_PASSWORD=mysecretpassword
9
+
10
+ SECURE_WORLDPAY_NOTIFICATION_ENABLED=false
11
+ SECURE_WORLDPAY_NOTIFICATION_DOMAIN=pymnt.localdomain
12
+
13
+ GDS_CONNECTOR_WORLDPAY_TEST_URL=http://stubs:3030/stub/worldpay
14
+ GDS_CONNECTOR_WORLDPAY_LIVE_URL=http://stubs:3030/stub/worldpay
15
+
16
+ WORLDPAY_3DS_FLEX_DDC_TEST_URL=http://stubs:3030/stub/worldpay
17
+ WORLDPAY_3DS_FLEX_DDC_LIVE_URL=http://stubs:3030/stub/worldpay
18
+
19
+ WORLDPAY_APPLE_PAY_PAYMENT_PROCESSING_CERTIFICATE=LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUVjRENDQkJhZ0F3SUJBZ0lJVXlyRU00SXpCSFF3Q2dZSUtvWkl6ajBFQXdJd2dZQXhOREF5QmdOVkJBTU0KSzBGd2NHeGxJRmR2Y214a2QybGtaU0JFWlhabGJHOXdaWElnVW1Wc1lYUnBiMjV6SUVOQklDMGdSekl4SmpBawpCZ05WQkFzTUhVRndjR3hsSUVObGNuUnBabWxqWVhScGIyNGdRWFYwYUc5eWFYUjVNUk13RVFZRFZRUUtEQXBCCmNIQnNaU0JKYm1NdU1Rc3dDUVlEVlFRR0V3SlZVekFlRncweE5ERXdNall4TWpFd01UQmFGdzB4TmpFeE1qUXgKTWpFd01UQmFNSUdoTVM0d0xBWUtDWkltaVpQeUxHUUJBUXdlYldWeVkyaGhiblF1WTI5dExuTmxZWFJuWldWcgpMbE5sWVhSSFpXVnJNVFF3TWdZRFZRUUREQ3ROWlhKamFHRnVkQ0JKUkRvZ2JXVnlZMmhoYm5RdVkyOXRMbk5sCllYUm5aV1ZyTGxObFlYUkhaV1ZyTVJNd0VRWURWUVFMREFvNVFqTlJXVGxYUWxvMU1SY3dGUVlEVlFRS0RBNVQKWldGMFIyVmxheXdnU1c1akxqRUxNQWtHQTFVRUJoTUNWVk13V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQgpCd05DQUFRUGppQTFrVEVvZFNUMnd5NWQ1a1FGck0wRDVxQlg5VWtyeThXNkQrdkM3T3FiTW9UbS91cFJNMUdSCkhlQTJMYVZUcndBbnBHaG9PMEVUcVlGMk51NFZvNElDVlRDQ0FsRXdSd1lJS3dZQkJRVUhBUUVFT3pBNU1EY0cKQ0NzR0FRVUZCekFCaGl0b2RIUndPaTh2YjJOemNDNWhjSEJzWlM1amIyMHZiMk56Y0RBMExXRndjR3hsZDNkawpjbU5oTWpBeE1CMEdBMVVkRGdRV0JCUVdHZktnUGdWQlg4Sk92ODRxMWMwNEhTaE1tekFNQmdOVkhSTUJBZjhFCkFqQUFNQjhHQTFVZEl3UVlNQmFBRklTMmhNdzZobUp5RmxtVTZCcWp2VWpmT3Q4TE1JSUJIUVlEVlIwZ0JJSUIKRkRDQ0FSQXdnZ0VNQmdrcWhraUc5Mk5rQlFFd2dmNHdnY01HQ0NzR0FRVUZCd0lDTUlHMkRJR3pVbVZzYVdGdQpZMlVnYjI0Z2RHaHBjeUJqWlhKMGFXWnBZMkYwWlNCaWVTQmhibmtnY0dGeWRIa2dZWE56ZFcxbGN5QmhZMk5sCmNIUmhibU5sSUc5bUlIUm9aU0IwYUdWdUlHRndjR3hwWTJGaWJHVWdjM1JoYm1SaGNtUWdkR1Z5YlhNZ1lXNWsKSUdOdmJtUnBkR2x2Ym5NZ2IyWWdkWE5sTENCalpYSjBhV1pwWTJGMFpTQndiMnhwWTNrZ1lXNWtJR05sY25ScApabWxqWVhScGIyNGdjSEpoWTNScFkyVWdjM1JoZEdWdFpXNTBjeTR3TmdZSUt3WUJCUVVIQWdFV0ttaDBkSEE2Ckx5OTNkM2N1WVhCd2JHVXVZMjl0TDJObGNuUnBabWxqWVhSbFlYVjBhRzl5YVhSNUx6QTJCZ05WSFI4RUx6QXQKTUN1Z0thQW5oaVZvZEhSd09pOHZZM0pzTG1Gd2NHeGxMbU52YlM5aGNIQnNaWGQzWkhKallUSXVZM0pzTUE0RwpBMVVkRHdFQi93UUVBd0lES0RCUEJna3Foa2lHOTJOa0JpQUVRZ3hBUmprek9FWTBOalU0UTBFeVF6RkRPVU16Ck9FSTRSRVpEUWpWRVFrSXlRVEl5TkRVMk1EZEVSRVV5UmpFeE5EWXlNRVU0TkRZNFJVWTFNa1F5TURoRFFUQUsKQmdncWhrak9QUVFEQWdOSUFEQkZBaUIrUTR6enBNajJESlRDSWhERkJjbXdLMXpRQUM3MGZZMklzWWQ4K054dQp1d0loQUtqOVJyVE95aWFRbm9UNU1xaTNVSG9wYjZ4VHVnbDNMVURCbG9yYUJIeVAKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQ==
20
+ WORLDPAY_APPLE_PAY_PAYMENT_PROCESSING_PRIVATE_KEY=MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgOqukXQoQVbg1xvvq/IGLdK0UuJPbbawULTALcuw/Uz2hRANCAAQPjiA1kTEodST2wy5d5kQFrM0D5qBX9Ukry8W6D+vC7OqbMoTm/upRM1GRHeA2LaVTrwAnpGhoO0ETqYF2Nu4V
21
+
22
+ GDS_CONNECTOR_SMARTPAY_TEST_URL=http://stubs:3030/stub/smartpay
23
+ GDS_CONNECTOR_SMARTPAY_LIVE_URL=http://stubs:3030/stub/smartpay
24
+
25
+ SANDBOX_ALLOWED_CIDRS=["127.0.0.1/32", "0.0.0.0/32"]
26
+
27
+ SMARTPAY_ALLOWED_CIDRS=["127.0.0.1/32", "0.0.0.0/32"]
28
+ GDS_CONNECTOR_SMARTPAY_NOTIFICATION_USER=smartpay-user
29
+ GDS_CONNECTOR_SMARTPAY_NOTIFICATION_PASSWORD=smartpay-password
30
+
31
+ STRIPE_ALLOWED_CIDRS=["127.0.0.1/32", "0.0.0.0/32"]
32
+ STRIPE_TRANSACTION_FEE_PERCENTAGE=0.9
33
+ STRIPE_TRANSACTION_RADAR_FEE_IN_PENCE=5
34
+ STRIPE_TRANSACTION_THREE_DS_FEE_IN_PENCE=5
35
+
36
+ JPA_LOG_LEVEL=WARNING
37
+ JPA_SQL_LOG_LEVEL=WARNING
38
+
39
+ # defines whether outbound HTTP traffic need to be routed via a proxy. Default behaviour is proxy off.
40
+ HTTP_PROXY_ENABLED=false
41
+
42
+ # If `ENABLE_OUTBOUND_PROXY=true` make sure to set the below proxy vars. Otherwise they are ignored
43
+ HTTP_PROXY_HOST=egress.pymnt.localdomain
44
+ HTTP_PROXY_PORT=8080
45
+ HTTP_PROXY_SCHEME=http
46
+ AUTH_READ_TIMEOUT_SECONDS=1
47
+
48
+ NOTIFY_EMAIL_ENABLED=true
49
+ NOTIFY_PAYMENT_RECEIPT_EMAIL_TEMPLATE_ID=email-template-id
50
+ NOTIFY_REFUND_ISSUED_EMAIL_TEMPLATE_ID=email-refund-issued-template-id
51
+ NOTIFY_API_KEY=api_key-pay-notify-service-id-pay-notify-secret-needs-to-be-32-chars-fsghdngfhmhfkrgsfs
52
+ NOTIFY_BASE_URL=http://stubs:3030/notify
53
+
54
+ #AWS_XRAY_DAEMON_ADDRESS=xray:2000
55
+ AWS_XRAY_CONTEXT_MISSING=LOG_ERROR
56
+
57
+ CAPTURE_PROCESS_QUEUE_SCHEDULER_THREAD_DELAY_IN_SECONDS=1
58
+
59
+ EVENT_QUEUE_ENABLED=true
60
+ AWS_SQS_PAYMENT_EVENT_QUEUE_URL=http://localstack:4566/000000000000/pay_event_queue
61
+ AWS_SQS_PAYOUT_RECONCILE_QUEUE_URL=http://localstack:4566/000000000000/payout_reconcile_queue
62
+
63
+ EMIT_PAYMENT_STATE_TRANSITION_EVENTS=true
64
+ EMIT_PAYOUT_EVENTS=true
65
+
66
+ TASK_QUEUE_ENABLED="true"
67
+ AWS_SQS_CONNECTOR_TASKS_QUEUE_URL=http://localstack:4566/000000000000/connector_tasks_queue
68
+
69
+ FRONTEND_URL=http://localhost:9000
70
+ CARDID_URL=http://cardid:9900
@@ -0,0 +1,10 @@
1
+ NODE_WORKER_COUNT=1
2
+ NODE_ENV=dev
3
+ SESSION_ENCRYPTION_KEY=asdjhbwefbo23r23rbfik2roiwhefwbqw
4
+ COOKIE_MAX_AGE=5400000
5
+
6
+ #AWS_XRAY_DAEMON_ADDRESS=xray:2000
7
+ DISABLE_INTERNAL_HTTPS=true
8
+ DISABLE_SSL=true
9
+
10
+ PAY_API_URL=http://publicapi:9100
@@ -0,0 +1,47 @@
1
+ logformat govuk_datetime %tg %6tr %>a %Ss/%03>Hs %<st %rm %ru %[un %Sh/%<a %mt
2
+
3
+ acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
4
+ acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
5
+ acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
6
+ acl localnet src fc00::/7 # RFC4193 local private network range
7
+ acl localnet src fe80::/10 # RFC4291 link-local (directly-plugged) machine
8
+
9
+ acl SSL_ports port 443
10
+ acl Safe_ports port 80
11
+ acl purge method PURGE
12
+ acl CONNECT method CONNECT
13
+
14
+ acl all_sites ssl::server_name_regex .*
15
+
16
+ acl vpc src 172.18.0.0/16
17
+
18
+ http_access allow all_sites vpc SSL_ports
19
+
20
+ http_access allow manager localhost
21
+ http_access deny manager
22
+ http_access allow purge localhost
23
+ http_access deny purge
24
+ http_access deny !Safe_ports
25
+ http_access deny CONNECT !SSL_ports
26
+ http_access allow localhost
27
+
28
+ http_access deny all
29
+ icp_access deny all
30
+
31
+ http_port 0.0.0.0:8080
32
+
33
+ access_log stdio:/dev/stdout govuk_datetime
34
+ cache_log stdio:/dev/stdout govuk_datetime
35
+
36
+ refresh_pattern ^ftp: 1440 20% 10080
37
+ refresh_pattern ^gopher: 1440 0% 1440
38
+ refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
39
+ refresh_pattern (Release|Package(.gz)*)$ 0 20% 2880
40
+
41
+ pid_filename /squid/pid
42
+ visible_hostname squid
43
+ hosts_file /etc/hosts
44
+ maximum_object_size 512 MB
45
+ coredump_dir /squid
46
+ cache_mem 1024 MB
47
+ cache deny all
@@ -0,0 +1,12 @@
1
+ SESSION_ENCRYPTION_KEY=asdjhbwefbo23r23rbfik2roiwhefwbqw
2
+ COOKIE_MAX_AGE=5400000
3
+ CONNECTOR_HOST=http://connector:9300
4
+ ANALYTICS_TRACKING_ID=testing-123
5
+ CARDID_HOST=http://cardid:9900
6
+ NODE_WORKER_COUNT=1
7
+ NODE_ENV=dev
8
+ WORLDPAY_3DS_FLEX_DDC_TEST_URL=http://stubs:3030/stub/worldpay
9
+ WORLDPAY_3DS_FLEX_DDC_LIVE_URL=http://stubs:3030/stub/worldpay
10
+
11
+ #AWS_XRAY_DAEMON_ADDRESS=xray:2000
12
+ DISABLE_INTERNAL_HTTPS=true
@@ -0,0 +1 @@
1
+ JAVA_OPTS=-Xms128m -Xmx1G
@@ -0,0 +1,10 @@
1
+ PORT=10700
2
+ ADMIN_PORT=10701
3
+ QUEUE_MESSAGE_RECEIVER_THREAD_DELAY_IN_MILLISECONDS=1000
4
+
5
+ EXPUNGE_AND_REDACT_HISTORICAL_DATA_ENABLED=true
6
+ EXPUNGE_OR_REDACT_DATA_OLDER_THAN_DAYS=0
7
+ EXPUNGE_NO_OF_TRANSACTIONS_PER_TASK_RUN=5
8
+ SNS_ENABLED=true
9
+ PUBLISH_CARD_PAYMENT_EVENTS_TO_SNS=true
10
+ PUBLISH_CARD_PAYMENT_DISPUTE_EVENTS_TO_SNS=true
@@ -0,0 +1,14 @@
1
+ PORT=10100
2
+
3
+ SESSION_ENCRYPTION_KEY=asdjhbwefbo23r23rbfik2roiwhefwbqw
4
+ COOKIE_MAX_AGE=3600000
5
+ DISABLE_INTERNAL_HTTPS=true
6
+
7
+ SELFSERVICE_DASHBOARD_URL=http://localhost:9400/dashboard
8
+ SELFSERVICE_DEMO_PAYMENT_RETURN_URL=http://localhost:9400/make-a-demo-payment/:productExternalId/go-to-transactions
9
+
10
+ NODE_ENV=dev
11
+
12
+ GOOGLE_RECAPTCHA_SITE_KEY=6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI
13
+ GOOGLE_RECAPTCHA_SECRET_KEY=6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe
14
+ GOOGLE_RECAPTCHA_USE_ENTERPRISE_VERSION=false
@@ -0,0 +1,25 @@
1
+ PORT=10300
2
+ ADMIN_PORT=10001
3
+
4
+ DB_HOST=products_db
5
+ DB_SSL_OPTION=ssl=true
6
+ DB_USER=products
7
+ DB_PASSWORD=mysecretpassword
8
+
9
+ JPA_LOG_LEVEL=WARNING
10
+ JPA_SQL_LOG_LEVEL=WARNING
11
+
12
+
13
+ BASE_URL=http://localhost:10300
14
+ PRODUCTSUI_PAY_URL=http://localhost:10400/pay
15
+ PRODUCTSUI_CONFIRMATION_URL=http://localhost:10400/payment-complete
16
+ PRODUCTS_FRIENDLY_BASE_URI=http://localhost:10400/redirect
17
+
18
+ HTTP_PROXY_HOST=egress.pymnt.localdomain
19
+ HTTP_PROXY_PORT=8080
20
+ HTTP_PROXY_SCHEME=http
21
+ AUTH_READ_TIMEOUT_SECONDS=1
22
+
23
+ EXPUNGE_HISTORICAL_DATA_ENABLED=true
24
+ EXPUNGE_DATA_OLDER_THAN_DAYS=0
25
+ EXPUNGE_NO_OF_PAYMENTS_PER_TASK_RUN=10
@@ -0,0 +1,13 @@
1
+ PORT=9100
2
+ ADMIN_PORT=9101
3
+ CONNECTOR_URL=http://connector:9300
4
+ PUBLIC_AUTH_URL=http://publicauth:9600/v1/api/auth
5
+ LEDGER_URL=http://ledger:10700
6
+ TOKEN_API_HMAC_SECRET=qwer9yuhgf
7
+ PUBLICAPI_BASE=http://publicapi:9100
8
+ ALLOW_HTTP_FOR_RETURN_URL=true
9
+ #AWS_XRAY_DAEMON_ADDRESS=xray:2000
10
+ REDIS_URL=redis
11
+ RATE_LIMITER_VALUE=75
12
+ RATE_LIMITER_VALUE_POST=15
13
+ RATE_LIMITER_PER_MILLIS=1000
@@ -0,0 +1,13 @@
1
+ PORT=9600
2
+ ADMIN_PORT=9601
3
+
4
+ DB_HOST=publicauth_db
5
+ DB_PORT=5432
6
+ DB_SSL_OPTION=ssl=true
7
+ DB_USER=publicauth
8
+ DB_PASSWORD=mysecretpassword
9
+
10
+ TOKEN_DB_BCRYPT_SALT='$2a$10$IhaXo6LIBhKIWOiGpbtPOu'
11
+ TOKEN_API_HMAC_SECRET=qwer9yuhgf
12
+
13
+ #AWS_XRAY_DAEMON_ADDRESS=xray:2000
@@ -0,0 +1,21 @@
1
+ PORT=9400
2
+ SESSION_ENCRYPTION_KEY=asdjhbwefbo23r23rbfik2roiwhefwbqw
3
+ PUBLIC_AUTH_URL=http://publicauth:9600/v1/frontend/auth
4
+ SELFSERVICE_BASE=selfservice
5
+ PRODUCTS_URL=http://products:18000
6
+ ADMINUSERS_URL=http://adminusers:9700
7
+ LEDGER_URL=http://ledger:10700
8
+ WEBHOOKS_URL=http://webhooks:10800
9
+ PRODUCTS_API_TOKEN=g0nBA5lNzfUalQjk4ZBDy70AikNshxz2G70dA6lg
10
+ PRODUCTS_FRIENDLY_BASE_URI=productsui/redirect
11
+
12
+ LOGIN_ATTEMPT_CAP=3
13
+
14
+ COOKIE_MAX_AGE=10800000
15
+ NODE_WORKER_COUNT=1
16
+ NODE_ENV=dev
17
+
18
+ # defines whether outbound HTTP traffic need to be routed via a proxy.
19
+ HTTP_PROXY_ENABLED=false
20
+
21
+ #AWS_XRAY_DAEMON_ADDRESS=xray:2000
@@ -0,0 +1,18 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIC8jCCAdoCCQCF60eRLhmlXDANBgkqhkiG9w0BAQsFADA7MRcwFQYDVQQDDA5m
3
+ cm9udGVuZC1wcm94eTETMBEGA1UECgwKR09WLlVLIFBheTELMAkGA1UEBhMCR0Iw
4
+ HhcNMTgxMDAzMTA1MDA2WhcNMTkxMDAzMTA1MDA2WjA7MRcwFQYDVQQDDA5mcm9u
5
+ dGVuZC1wcm94eTETMBEGA1UECgwKR09WLlVLIFBheTELMAkGA1UEBhMCR0IwggEi
6
+ MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCyQ5bPLhR1njJc3eGtAyChrQPS
7
+ /oKHDUm1H61HSv9OJFZvm4La1hQD9BhxbT47ZC1qTGAnaXoP3SJJSooyZxIcrEQp
8
+ Ns9zVsGjZ6wdn4Dhjks4x70qEcZawkrgPhJEIGaYlSs928LOrBLWAv+cSew+YSMA
9
+ Men6wdg5fWDaue91LMc/Scp7YIGfVWU3oRe+nVKF7jvQv7qu1C4HIEqEyRDiDM2I
10
+ POrYTvst9FIGHcEV5FqfKa5rfy5A8wpXFdg3DaC0US5dZPQDdz/q+pM/+42lt3R6
11
+ vTPUVpESOgRaa2sr6j6/B5VltIgXN4oXak+Ho5KSsi3DWAivriIeNXGAsnM3AgMB
12
+ AAEwDQYJKoZIhvcNAQELBQADggEBAKMq4/XWjadL08UsEOjGL7fvOIn6HopqeQ3+
13
+ slXyQYO0BMokF5TRgfVQ4Gq5r9Rs9900/FTdYTeOFmQv7taU+U8Op76b4oFCq9jG
14
+ YRCnCYeYwdl5Jk695NXp7U5DhLKAbxSDXK1tkwyODg9N/JIUWynowNagiwnuTA5l
15
+ 7uUICeIlF25wKz+9NPOVtVebKZeVwouSLuWP1p42VewE1nq9XotnG2Kq0yjPQ3cP
16
+ P/EZZuXncvbQxnSMLZZqabgTvuEELgIKtB+3M6s3G05gWzjJ22neEJjqLUA9oObr
17
+ TNV3cn4fGxANh7bRGIe4eiyk/onJNcuWQ1+b6adSkRDjCVFGzqs=
18
+ -----END CERTIFICATE-----
@@ -0,0 +1,20 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIDTzCCAjegAwIBAgIJAJTMRAWxLjdOMA0GCSqGSIb3DQEBCwUAMD4xGjAYBgNV
3
+ BAMMEXNlbGZzZXJ2aWNlLXByb3h5MRMwEQYDVQQKDApHT1YuVUsgUGF5MQswCQYD
4
+ VQQGEwJHQjAeFw0xODEwMDUxMzI1NTFaFw0xOTEwMDUxMzI1NTFaMD4xGjAYBgNV
5
+ BAMMEXNlbGZzZXJ2aWNlLXByb3h5MRMwEQYDVQQKDApHT1YuVUsgUGF5MQswCQYD
6
+ VQQGEwJHQjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALMqC2PBeWXf
7
+ 4y841dai6Jpnci7mPICjtgk3bMEzeTS3u79XqR0tm4nNRs7jJzRGL4q1uYGIlRPn
8
+ bfiFBAKRJTR1thntZV5kiUf5c4rdFIDlhjJF8WbWoTpys1ZQ1pJwpYSDbppdt3Cz
9
+ 3gh/LHmlTFxP84Ha/4Bk+W6+VVMNdY07ymjYt2f327983XEmvFmm0ZUMPrUHzU2J
10
+ kppt/H01Se4clGU1ngqSYcQoD4SWDctRFXjv7YY/cZKmNARnCMCHKChmTWNiRjCx
11
+ R9khg+ZOYCWsU11V6OuKizs8DedOmQnnISJ5JoY9ACC+/Ll0F0GKBsc87ZYh5mdw
12
+ uWMYEfGUuesCAwEAAaNQME4wHQYDVR0OBBYEFJYeywmQGYJ0+U28cXRmGK+/HGzy
13
+ MB8GA1UdIwQYMBaAFJYeywmQGYJ0+U28cXRmGK+/HGzyMAwGA1UdEwQFMAMBAf8w
14
+ DQYJKoZIhvcNAQELBQADggEBAEH4TgXZSRU66qeiVIphuMtajkpCKIYkhSJiy+BS
15
+ 5Q8hnqAVWUvihhBpfdBpV2vosTAYU9I7eEkJ+t1utDgH6nzriIVuUKEeeMDmel+M
16
+ zLqMy8M4+9Y/Stesxm646iWIJMzGT8PoZSYBbcjvb4bsLBy7nxkkFvVluo90uBoK
17
+ xY60fSLLobh1Uh0Nr3/Ui9u712gjq1IZ3bcohqVXEumck9cH3z84BjzUlCPRoYPN
18
+ SUydh086XTBz4yjP7DK68QyCAfVoTwWz7P7rLjYZH9NB57b3DrwizYlwMX7kKfHj
19
+ POXim9pVku1mI1IdBFxN3XbqzeqHUeCRyyqWxCIlDeHCEmA=
20
+ -----END CERTIFICATE-----
@@ -0,0 +1,18 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIC9DCCAdwCCQDCic1s3YTXrjANBgkqhkiG9w0BAQsFADA8MRgwFgYDVQQDDA9w
3
+ dWJsaWNhcGktcHJveHkxEzARBgNVBAoMCkdPVi5VSyBQYXkxCzAJBgNVBAYTAkdC
4
+ MB4XDTI0MDMwNDE1MzA0OVoXDTI1MDMwNDE1MzA0OVowPDEYMBYGA1UEAwwPcHVi
5
+ bGljYXBpLXByb3h5MRMwEQYDVQQKDApHT1YuVUsgUGF5MQswCQYDVQQGEwJHQjCC
6
+ ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALN/gveplxRPaCWANwe2S9LD
7
+ ZAeFD0rQFFETt1IKHmk0qFn/4Gxdf5svMhrk6fV7HJW5v93bpz8fgFlwTeHh5FKN
8
+ 6AeGzqhP16LrBNNIavuFwEU/LRER+FlMjNN66EHGrcPClF3c5eAmWarYdZYkpkCN
9
+ +Nh2TEAB/biJXb95YxJjg5NZUCJnS4LC0GYjS4Gu3dauIsQbJ0L4oYo9K/1FZfJc
10
+ 7u5FTY5T9zRJPGVEMN/HFqe2PzgesP1dWs/HMlFMgtefcb/9ESkx+SzRwITkE9mq
11
+ MlNL5lpNC/joK30vKj6ZclRBwQ6EgtdzgrvnIAvP4gklZqqUuSCdYsqjzTc7uoUC
12
+ AwEAATANBgkqhkiG9w0BAQsFAAOCAQEAhzI5eFhRG+DYvtJVHtwm6YudpEJ/MT/P
13
+ jHhnymVLfTNrvkhZ+75VUTKXdhnZQWMBpH4ZV5ASktB+BeiMz/lKcA1tdAZvnZyB
14
+ 6O9QLYKMEfU5fg5i7fdrAimv3rvj/KMgejUZrHobKaMWcPBRiIpKbxWI6+DFTHyc
15
+ hCcMdeC8rNT5Iz1WG2Uqo66otv83g6dyIrbq8cOZxXI9ocTQgTyfLSIWp72NBxk5
16
+ xxMzuyojVU678zb7oX3qCRTX4TlxMU/+o7QQ/oPwpHi9S/oDpeZBfepLf6nmwQJT
17
+ TGWlUWlb2gCJef8UtrJSDg9B4nZR83L7qutEberZJrkzBxbqXz6GfQ==
18
+ -----END CERTIFICATE-----