@govuk-pay/cli 0.0.29 → 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.
- package/package.json +5 -2
- package/resources/legacy-ruby-cli/config/secrets.yml +2 -2
- package/resources/legacy-ruby-cli/config/service_secrets.yml +2 -2
- package/resources/pay-local/config/localstack/init-aws.sh +70 -0
- package/resources/pay-local/config/postgres/docker-entrypoint-initdb.d/make_payments_databases.sql +26 -0
- package/resources/pay-local/config/service_config.yaml +193 -0
- package/resources/pay-local/config/services/adminusers.env +49 -0
- package/resources/pay-local/config/services/cardid.env +2 -0
- package/resources/pay-local/config/services/connector.env +70 -0
- package/resources/pay-local/config/services/demo-service.env +10 -0
- package/resources/pay-local/config/services/egress/squid.conf +47 -0
- package/resources/pay-local/config/services/frontend.env +12 -0
- package/resources/pay-local/config/services/java_app.env +1 -0
- package/resources/pay-local/config/services/ledger.env +10 -0
- package/resources/pay-local/config/services/products-ui.env +14 -0
- package/resources/pay-local/config/services/products.env +25 -0
- package/resources/pay-local/config/services/publicapi.env +13 -0
- package/resources/pay-local/config/services/publicauth.env +13 -0
- package/resources/pay-local/config/services/selfservice.env +21 -0
- package/resources/pay-local/config/services/ssl/certs/frontend-proxy.crt +18 -0
- package/resources/pay-local/config/services/ssl/certs/products-ui-proxy.crt +20 -0
- package/resources/pay-local/config/services/ssl/certs/publicapi-proxy.crt +18 -0
- package/resources/pay-local/config/services/ssl/certs/selfservice-proxy.crt +20 -0
- package/resources/pay-local/config/services/ssl/certs/stubs-proxy.crt +18 -0
- package/resources/pay-local/config/services/ssl/keys/frontend-proxy.key +28 -0
- package/resources/pay-local/config/services/ssl/keys/products-ui-proxy.key +28 -0
- package/resources/pay-local/config/services/ssl/keys/publicapi-proxy.key +28 -0
- package/resources/pay-local/config/services/ssl/keys/selfservice-proxy.key +28 -0
- package/resources/pay-local/config/services/ssl/keys/stubs-proxy.key +28 -0
- package/resources/pay-local/config/services/ssl/make-selfsigned.sh +2 -0
- package/resources/pay-local/config/services/stubs.env +12 -0
- package/resources/pay-local/config/services/toolbox.env +6 -0
- package/resources/pay-local/config/services/webhooks.env +9 -0
- package/resources/pay-local/templates/docker-compose.hbs +276 -0
- package/resources/usageDetails.txt +1 -0
- package/src/commands/local/config/default_config_setup.js +13 -0
- package/src/commands/local/config/last_up_record.js +50 -0
- package/src/commands/local/config/pay_local_cluster.js +221 -0
- package/src/commands/local/config/renderer.js +46 -0
- package/src/commands/local/docker_compose_controller.js +24 -0
- package/src/commands/local/subcommands/down.js +56 -0
- package/src/commands/local/subcommands/nuke.js +28 -0
- package/src/commands/local/subcommands/otp.js +27 -0
- package/src/commands/local/subcommands/restart.js +35 -0
- package/src/commands/local/subcommands/up.js +55 -0
- package/src/commands/local.js +98 -0
- package/src/core/commandRouter.js +4 -0
- package/src/util/configs.js +47 -0
- package/src/util/md5.js +16 -0
|
@@ -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-----
|
|
@@ -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
|
+
MIIC7DCCAdQCCQChntfK5crC9TANBgkqhkiG9w0BAQsFADA4MRQwEgYDVQQDDAtz
|
|
3
|
+
dHVicy1wcm94eTETMBEGA1UECgwKR09WLlVLIFBheTELMAkGA1UEBhMCR0IwHhcN
|
|
4
|
+
MTgxMDAzMDk0NzIwWhcNMTkxMDAzMDk0NzIwWjA4MRQwEgYDVQQDDAtzdHVicy1w
|
|
5
|
+
cm94eTETMBEGA1UECgwKR09WLlVLIFBheTELMAkGA1UEBhMCR0IwggEiMA0GCSqG
|
|
6
|
+
SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDe04Va9XOuKi9lhnJLuaSRv0XSnSMextaW
|
|
7
|
+
EW6HCT8PbC9U4CaIlM3f/iypHusCvWFjMBsB1I5ZaPb3EnpmNCiQNYm1Kt6Jjz4a
|
|
8
|
+
CnA1TX5VT0XlrMlTY7WaPL97SD1Si4a67PuMcio/9ZUHhNRbLV21VuleMeV9fueK
|
|
9
|
+
wPRpjiORFEey56AJt4dNFl4XVDoJN9RP8KViWzAArFcOnECpM7NnVS7PiRDAA0ZL
|
|
10
|
+
OilDKE+rePuGTm6ym584gWs4bX505C6teoAZ6QpiuXOk8/j9fcyRoCevPy4SogXJ
|
|
11
|
+
Yf2aUQ4EzJUziBMZM7xh3m/+JMKWrmqFLPOmOS5mPXsvQ8eVvh4fAgMBAAEwDQYJ
|
|
12
|
+
KoZIhvcNAQELBQADggEBAABmE1vBgVNxTH+2rTHEs6ZKfU4EGRR1Qq+PRhHOfus7
|
|
13
|
+
zF9Z/nJ63YXdSt99DLeRwpVzQvRBT6Sl0tFy6CVmogW8c38Tkt2pdR5lnzfcQPrN
|
|
14
|
+
MwzUYGKetiAvHREBblR1bs+9IzpybEz1j+i8bX3kG8PKcIK0m4gnIvwWZwHDlBHr
|
|
15
|
+
i4tG3ank+nKPMnITwMK6OR4C4NdI6O3FdU0jLgmdVFWbbuZ6saFW/3oGWgvi2M3E
|
|
16
|
+
LC6dmWgwf2GwMb3xO9lgtQFgTy1TPCk8IwB/bXIrwG4rIEwuI8Kki6JvucGwPtUp
|
|
17
|
+
8j3po7WhWDmpauwIpD+5xVTxbCyd5uuecPa9CsJukG4=
|
|
18
|
+
-----END CERTIFICATE-----
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
-----BEGIN PRIVATE KEY-----
|
|
2
|
+
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCyQ5bPLhR1njJc
|
|
3
|
+
3eGtAyChrQPS/oKHDUm1H61HSv9OJFZvm4La1hQD9BhxbT47ZC1qTGAnaXoP3SJJ
|
|
4
|
+
SooyZxIcrEQpNs9zVsGjZ6wdn4Dhjks4x70qEcZawkrgPhJEIGaYlSs928LOrBLW
|
|
5
|
+
Av+cSew+YSMAMen6wdg5fWDaue91LMc/Scp7YIGfVWU3oRe+nVKF7jvQv7qu1C4H
|
|
6
|
+
IEqEyRDiDM2IPOrYTvst9FIGHcEV5FqfKa5rfy5A8wpXFdg3DaC0US5dZPQDdz/q
|
|
7
|
+
+pM/+42lt3R6vTPUVpESOgRaa2sr6j6/B5VltIgXN4oXak+Ho5KSsi3DWAivriIe
|
|
8
|
+
NXGAsnM3AgMBAAECggEBAJ+pXceOVBDMcfsvV9On+3ATEFvITIw9YIjzKDW0fFo2
|
|
9
|
+
vZwUwuzR1Pd9hu8Akz6KiQquAWkLVaIjw3O1aXWfT1+TAzGOv9tkFucOEeAuXjan
|
|
10
|
+
RcRDUa/+X5QmdP3HWoDeLEX5RNOQoziMcgpwgRQwOYHdaoXgLtrDB7DmFPuSkWB2
|
|
11
|
+
DPlKrX1tL2m8PkMMFyLpm1oRwGY8VRcz47DpYnAeB9UwQN5HcPFYVdL9dK4GY8NE
|
|
12
|
+
+uLy8FoDOxcSbDdOY0nF+JgjLGCX2kqyFCE0s40AEazwyGORXSfSpokUigJLrMnX
|
|
13
|
+
OYyTNZ5BNc/dySrrx6BP5rFp3wziaIBiqNd7/lWIg7ECgYEA5jdk5/Bb0QKqHmvS
|
|
14
|
+
ZwZthpEc1nLtiIpwm6q4b6xB/pI/epi03wpghYxQ6aYR1X/2HMT/7M0wm+YCYotb
|
|
15
|
+
O7gmVNIavS49WevfpI3V6D1hjFOzlRD9KGJz9owM3Da5AZVEtl3OwLixuvgb5oCI
|
|
16
|
+
byE6U9tH/zN8LWbeE0dlAMqzEf0CgYEAxjqnCcbjLIe4BTJJr+UqfgD0fCii1/72
|
|
17
|
+
9C58MuccGziOT8Ig/efm39u763GFovQ1yuNx2g4Uj77wMAJkFJRJLhP3rATtccPe
|
|
18
|
+
9obphn+kVGzPGpO5dvaeN30eHT/+lRKjdZwNfvhB38q8YjFfhf+bwxFTNFm4TBK1
|
|
19
|
+
wz1WEBM9FkMCgYASVi8vWjG2ACRUr/neQuDOaxiE7DqHOZ+mhn6SRoIrKLLtrOQb
|
|
20
|
+
L9RoTrjTI2sgOkT8HaTU07Mfd76Q4tCtfQlwkBuZHem9E9CIZtO238y5RKF1Khk/
|
|
21
|
+
8jeSV61ejO1HdwA2Flq1dwCRB9oRDgPP9jGTJFAjv5IQe7UMjA87dOm2cQKBgDHd
|
|
22
|
+
c0OMWn1LLslv2wV6WnQT/Wx2NHCtXKYUQ33ykSlv0qzRosb8XSGW/vC9P+a8FAQT
|
|
23
|
+
rwIxZI68c2NAVriujLIgp78IBksGAMJ3Mat51HbAYGDJJHB+nVJMERU+keYiKChf
|
|
24
|
+
ty1nefq33ye8T9E/eYlahFm48BmC42JXvZyRml5NAoGAGeQ6ub2MEH/gC4AyCU49
|
|
25
|
+
XfziuznchGl5OyERtw9h87D25eRZe7b9E/mHVJKkvZZ9Q6cgtRmK3PHuHpWFScZ7
|
|
26
|
+
4vyNaRmqLlMCDNTNmYhmJ+aAGWE648UFH8dzDJGUIzj6pjVDWIyD2Q2inFViCert
|
|
27
|
+
5ank4Cv+OwTv3okVs1M4ggI=
|
|
28
|
+
-----END PRIVATE KEY-----
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
-----BEGIN PRIVATE KEY-----
|
|
2
|
+
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCzKgtjwXll3+Mv
|
|
3
|
+
ONXWouiaZ3Iu5jyAo7YJN2zBM3k0t7u/V6kdLZuJzUbO4yc0Ri+KtbmBiJUT5234
|
|
4
|
+
hQQCkSU0dbYZ7WVeZIlH+XOK3RSA5YYyRfFm1qE6crNWUNaScKWEg26aXbdws94I
|
|
5
|
+
fyx5pUxcT/OB2v+AZPluvlVTDXWNO8po2Ldn99u/fN1xJrxZptGVDD61B81NiZKa
|
|
6
|
+
bfx9NUnuHJRlNZ4KkmHEKA+Elg3LURV47+2GP3GSpjQEZwjAhygoZk1jYkYwsUfZ
|
|
7
|
+
IYPmTmAlrFNdVejrios7PA3nTpkJ5yEieSaGPQAgvvy5dBdBigbHPO2WIeZncLlj
|
|
8
|
+
GBHxlLnrAgMBAAECggEADlEcyeLrBYYHjH15MQahmb0Mdcz2Jr1uTXw9V476b4kD
|
|
9
|
+
Gr4xiGBdnnxl3SBvwJCfOfFdmolEiGuk8QgIEwBwPanuXFIJGKrmAXdgkUcrXUV6
|
|
10
|
+
HMhUCwi5p4cE56/cBaW0xEsQaot0ni/xXTJ0ZmAcIwBMkCLk6einuf7BqLpZm2h6
|
|
11
|
+
UGqqjd/8FLCWlFkEG2zZKr8rLg8hnKwcyt3VKGXWcXAnOupoQMhyLmQGGSGzC+m4
|
|
12
|
+
xh5tXTkOnUmcZUI5oi9RHI1aMV4jnI/4hwAe8kWxvMpMUu3GczVWOeBrRt2AVpqi
|
|
13
|
+
I8oqHSpLdvkXpM9O9x7Xmg+X33XG1dyh7YY40TyByQKBgQDt6erEldK+KCFDbyXO
|
|
14
|
+
EsyUn9Bc1wfxMUBGKp0l2GflwMaShQxNRd+8Vy2igADXOKtOWdWw2k4zaWM/0wU6
|
|
15
|
+
UwZiIzuQOP8nahbN060H1Ot3TTHqbuiClj1YqpuSYh/ghAgwVyElt57NKGuyZUTj
|
|
16
|
+
LnvZqaCyAUUBnyuRgxfvHZ7wZwKBgQDAyMrmn2DNyAM1Q2FBv01gnQhc/gCoc2jB
|
|
17
|
+
qLvd0XtGluTcCW+y3fwq+10+RzhgMPEfKt+aTLKhuAmhMi7HH8gUScajnQzkRwoS
|
|
18
|
+
cJMjCGjS7CCbOIdvkqj6fFuZUy+jvhZvbenf5Ivi1nibVSoU6j9dtcX7ZUSb3dqA
|
|
19
|
+
4hhdg5Sn3QKBgQDlVtMXk7Fl2vtNrOwNfTO2pWPOyv3989MYkGWSIMzuvejtPtH/
|
|
20
|
+
/zZQsNztw2SMEzWXPqPualJt3s5srPdiJLyHh50YRsk3bl3zJXSrkwU0qLZQXX9G
|
|
21
|
+
upsCSNvUvUArRjs6lhL+78Vl0OwYOOSx9pIu3QRp8y1ZBd2S1IMS3kPjSwKBgQCp
|
|
22
|
+
Xb4j7lE1eEqZOKDxCggIoO0ABYa+duXJfVvO/IK4+UgGp6OiGLO5byvz0s4Mc/Lh
|
|
23
|
+
1uCqxkcJHI4ZN+UwuxMj/8yrYQY6Zs7KdGxPksvEwf3DYF5b/xTFOwueIB7yU8WS
|
|
24
|
+
D5YwRLFAj/tVO/TEeydARLmyqr0j0jxsjjWpsjefYQKBgQCxLc2aG4s/1jMIW3yP
|
|
25
|
+
nzoTai23bn9DyIxfPyM9Aiv3vdHa/WvZIdB739HAzcVNDfmMPjuo+IebpFsIfyjZ
|
|
26
|
+
uSbFVyhPsdVKWjXYv3xCopWyuqUoerD8Bj/WYUaGgBM3LvxNAtio5G9JiqpG3HsP
|
|
27
|
+
nmnnb5AbYJxn+s5lVni/tlmRfQ==
|
|
28
|
+
-----END PRIVATE KEY-----
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
-----BEGIN PRIVATE KEY-----
|
|
2
|
+
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCzf4L3qZcUT2gl
|
|
3
|
+
gDcHtkvSw2QHhQ9K0BRRE7dSCh5pNKhZ/+BsXX+bLzIa5On1exyVub/d26c/H4BZ
|
|
4
|
+
cE3h4eRSjegHhs6oT9ei6wTTSGr7hcBFPy0REfhZTIzTeuhBxq3DwpRd3OXgJlmq
|
|
5
|
+
2HWWJKZAjfjYdkxAAf24iV2/eWMSY4OTWVAiZ0uCwtBmI0uBrt3WriLEGydC+KGK
|
|
6
|
+
PSv9RWXyXO7uRU2OU/c0STxlRDDfxxantj84HrD9XVrPxzJRTILXn3G//REpMfks
|
|
7
|
+
0cCE5BPZqjJTS+ZaTQv46Ct9Lyo+mXJUQcEOhILXc4K75yALz+IJJWaqlLkgnWLK
|
|
8
|
+
o803O7qFAgMBAAECggEAEEFY6/LIwscaKGM/GIyyuyiEs4WiR+UmId2GOYC/Fkn1
|
|
9
|
+
gQkCGu4wsy4H/JWEdn2qrgh/TqkosTe6GN9pvi4FzlAZlizoJCfu4EsmSbgCMDsB
|
|
10
|
+
mYPKIgSdmACttC0qQWKrs9G4O/PYQX9XmXg21d0FzUzOH1Q/PYCwqHiQK9njVfPU
|
|
11
|
+
SSuC5g7bJTTIpSzo64sX2AfmlVetRGJ9mdWfLZi/Q/PppBTjWth0ADHLb0e99cyM
|
|
12
|
+
da4LrCQSXqym8+LyTOU8rxRBzn8gjT7wyoIHBEujGsqLEFPkPKHiUTsvpjlIU2v3
|
|
13
|
+
7CY4fpsfxjX1JlGxmUhaJvZKLTnYY6v6kyytWmXo4QKBgQDejSKZ+IDrS792URFw
|
|
14
|
+
SoN6WrKzvDY1sxxdSFLTbjrAyIlz9XX+LrmHbwwa2cmDHSQyP1p3p4hVeLRkYFDu
|
|
15
|
+
qKX3VRCTSlXGCKMbLz7CK9tm5VNzh4H2pHXfZz0lt+235tHZtoD8JwzsVdCLANpn
|
|
16
|
+
7kTFTTpyswD8AJMIi7YvM5lJmQKBgQDOed1VxyI8q3pSXPM6Ij+7K5dsN3W3zY1r
|
|
17
|
+
G24pqaiQg+HRf7XBhHKseaJAxUVl4DRJHZXorwH/cCuhp2k60rnjGfX2zDnnV55v
|
|
18
|
+
2abE9ziUhawdF6nSAvV00DvUEAJ9kgp7aNJMAdajhLXuW9ERiHl+rX3ykId2Ue43
|
|
19
|
+
8p0FL/cDzQKBgGFsJRaD22OlYCYaLOkcJVwdchcOMCjnxGXtcByQJ3YXE1zIuiNQ
|
|
20
|
+
LvVjnkfuyLD1w8+fPiodE6he05ERPLyM5UJVYZEovE2ZoFUZJH75le0APLzZOAJR
|
|
21
|
+
Uiw+1Fy7nHuhtoF4zBQVwCmBE26WLAXNHxvDx+9H/wlR8wuNpW4aR2MZAoGBAJbO
|
|
22
|
+
ZX3wSy5a5KXho/kS6M+RYDC3NTDBXogbadPeSfL7kGUOzTcBwSv+TybVrwFgx2+b
|
|
23
|
+
v1FK+b+TMxsIBpDjNsgLvx26PpSc52i0ZN054EaCd5psHSn55UOjj/8sjlUe5K8M
|
|
24
|
+
eYTwVs/p72OgBkyzDGIc33/aVkZyQvb0KgGO7fEFAoGALKnWcnvDBDU++H+AD1RO
|
|
25
|
+
ECWk45FJ756dhZSZ/2E3/JUgTDQmddny2P/2vhK/MhitdyBi5yWUpjl4jn1Hl9nW
|
|
26
|
+
fJS4ExA7xgyzKhKXKD6lOen0CbXofHEm8JoC5Hj4nj2LocT/kerkdrbBw7DbPGtr
|
|
27
|
+
e3Z1chiiNRGt8+v43VKurXU=
|
|
28
|
+
-----END PRIVATE KEY-----
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
-----BEGIN PRIVATE KEY-----
|
|
2
|
+
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCzKgtjwXll3+Mv
|
|
3
|
+
ONXWouiaZ3Iu5jyAo7YJN2zBM3k0t7u/V6kdLZuJzUbO4yc0Ri+KtbmBiJUT5234
|
|
4
|
+
hQQCkSU0dbYZ7WVeZIlH+XOK3RSA5YYyRfFm1qE6crNWUNaScKWEg26aXbdws94I
|
|
5
|
+
fyx5pUxcT/OB2v+AZPluvlVTDXWNO8po2Ldn99u/fN1xJrxZptGVDD61B81NiZKa
|
|
6
|
+
bfx9NUnuHJRlNZ4KkmHEKA+Elg3LURV47+2GP3GSpjQEZwjAhygoZk1jYkYwsUfZ
|
|
7
|
+
IYPmTmAlrFNdVejrios7PA3nTpkJ5yEieSaGPQAgvvy5dBdBigbHPO2WIeZncLlj
|
|
8
|
+
GBHxlLnrAgMBAAECggEADlEcyeLrBYYHjH15MQahmb0Mdcz2Jr1uTXw9V476b4kD
|
|
9
|
+
Gr4xiGBdnnxl3SBvwJCfOfFdmolEiGuk8QgIEwBwPanuXFIJGKrmAXdgkUcrXUV6
|
|
10
|
+
HMhUCwi5p4cE56/cBaW0xEsQaot0ni/xXTJ0ZmAcIwBMkCLk6einuf7BqLpZm2h6
|
|
11
|
+
UGqqjd/8FLCWlFkEG2zZKr8rLg8hnKwcyt3VKGXWcXAnOupoQMhyLmQGGSGzC+m4
|
|
12
|
+
xh5tXTkOnUmcZUI5oi9RHI1aMV4jnI/4hwAe8kWxvMpMUu3GczVWOeBrRt2AVpqi
|
|
13
|
+
I8oqHSpLdvkXpM9O9x7Xmg+X33XG1dyh7YY40TyByQKBgQDt6erEldK+KCFDbyXO
|
|
14
|
+
EsyUn9Bc1wfxMUBGKp0l2GflwMaShQxNRd+8Vy2igADXOKtOWdWw2k4zaWM/0wU6
|
|
15
|
+
UwZiIzuQOP8nahbN060H1Ot3TTHqbuiClj1YqpuSYh/ghAgwVyElt57NKGuyZUTj
|
|
16
|
+
LnvZqaCyAUUBnyuRgxfvHZ7wZwKBgQDAyMrmn2DNyAM1Q2FBv01gnQhc/gCoc2jB
|
|
17
|
+
qLvd0XtGluTcCW+y3fwq+10+RzhgMPEfKt+aTLKhuAmhMi7HH8gUScajnQzkRwoS
|
|
18
|
+
cJMjCGjS7CCbOIdvkqj6fFuZUy+jvhZvbenf5Ivi1nibVSoU6j9dtcX7ZUSb3dqA
|
|
19
|
+
4hhdg5Sn3QKBgQDlVtMXk7Fl2vtNrOwNfTO2pWPOyv3989MYkGWSIMzuvejtPtH/
|
|
20
|
+
/zZQsNztw2SMEzWXPqPualJt3s5srPdiJLyHh50YRsk3bl3zJXSrkwU0qLZQXX9G
|
|
21
|
+
upsCSNvUvUArRjs6lhL+78Vl0OwYOOSx9pIu3QRp8y1ZBd2S1IMS3kPjSwKBgQCp
|
|
22
|
+
Xb4j7lE1eEqZOKDxCggIoO0ABYa+duXJfVvO/IK4+UgGp6OiGLO5byvz0s4Mc/Lh
|
|
23
|
+
1uCqxkcJHI4ZN+UwuxMj/8yrYQY6Zs7KdGxPksvEwf3DYF5b/xTFOwueIB7yU8WS
|
|
24
|
+
D5YwRLFAj/tVO/TEeydARLmyqr0j0jxsjjWpsjefYQKBgQCxLc2aG4s/1jMIW3yP
|
|
25
|
+
nzoTai23bn9DyIxfPyM9Aiv3vdHa/WvZIdB739HAzcVNDfmMPjuo+IebpFsIfyjZ
|
|
26
|
+
uSbFVyhPsdVKWjXYv3xCopWyuqUoerD8Bj/WYUaGgBM3LvxNAtio5G9JiqpG3HsP
|
|
27
|
+
nmnnb5AbYJxn+s5lVni/tlmRfQ==
|
|
28
|
+
-----END PRIVATE KEY-----
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
-----BEGIN PRIVATE KEY-----
|
|
2
|
+
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDe04Va9XOuKi9l
|
|
3
|
+
hnJLuaSRv0XSnSMextaWEW6HCT8PbC9U4CaIlM3f/iypHusCvWFjMBsB1I5ZaPb3
|
|
4
|
+
EnpmNCiQNYm1Kt6Jjz4aCnA1TX5VT0XlrMlTY7WaPL97SD1Si4a67PuMcio/9ZUH
|
|
5
|
+
hNRbLV21VuleMeV9fueKwPRpjiORFEey56AJt4dNFl4XVDoJN9RP8KViWzAArFcO
|
|
6
|
+
nECpM7NnVS7PiRDAA0ZLOilDKE+rePuGTm6ym584gWs4bX505C6teoAZ6QpiuXOk
|
|
7
|
+
8/j9fcyRoCevPy4SogXJYf2aUQ4EzJUziBMZM7xh3m/+JMKWrmqFLPOmOS5mPXsv
|
|
8
|
+
Q8eVvh4fAgMBAAECggEBAMMOFEmIXahTQ0QzSfAh5P60mhGA/pJdatDZF5Dbtjjw
|
|
9
|
+
8gnxYanj4Mg4fq3Y4851K0AhhzK195oq+S1VHpJDDFMYmqBdk4qFOs6e3pS6bmGN
|
|
10
|
+
UFl6RI5b1Ufb756ioROWEe2lr5nFAlkUyE1ZqG7cKpCoMQcE1Khjo5phyFJyW44N
|
|
11
|
+
uS5ILas8xYA+qk77KKX6OffxC9UfXKIaJJwnTWMgpL1Xg4tPpPYHBAnPH5I/qErg
|
|
12
|
+
lUaFueqQ9jtY7yhLH+eD35toOJWVP1j6HRdeybMs3b5N1qDK8pXw75HSbkTCtQ1P
|
|
13
|
+
cxGgV4OFSFpVbpko4rg+EIzJyH72uUTwq0Nw8Thps4ECgYEA+JQGLslKNLCrY4KE
|
|
14
|
+
37Pf07J9y0Sa1asHhpRFHmysrKYEjyQe2gNq0xRWtZv2BjZMT5gcg4J280R0oUEb
|
|
15
|
+
HPfl74dY8sdVtZTIFhj4JPA3TUF8nBY1w95LMDYQE092vNuhijUsoxNtTnJHJhM8
|
|
16
|
+
oIHGFlZNhdN7r9UPXmqxh/yWLEECgYEA5XqqN3ivru6qwIuw+rfcAfGuAXyX1Nm5
|
|
17
|
+
weXqFcn/M8e8MF3AYWFaqOSGvrVAdPjZi+PvohWunxLZKW/VwFCJLTfPxnWQwuKL
|
|
18
|
+
HE9IdI/5jJDAPZ2XGxndw6WZBIn9lXBihYLh5Ej04OV8F1EFU4hii1oGzaznLjg+
|
|
19
|
+
9znHN8mfMl8CgYEAn0fqdkxRGlYiXE8j6VwPDk2PQZKiTEudNOUJLSehtbdjsH0K
|
|
20
|
+
r9QEvWCI9zIKgYyFdXMYwkP1CIhS24kmYHeQhN2LZ3XHO+UsGMzDJJgwN3bA7Btn
|
|
21
|
+
NCzarPfXcSg4A2gQqMjN42jtX5jmckVdUdQWI/YFEr2iwdaaVHu1ale1uoECgYEA
|
|
22
|
+
lcjYO/bpbVxZVe6YKT5DO32dn1jM3eDzj61berdrfUfc/RDklmtuOplXnjk+hls7
|
|
23
|
+
3ER+UKSoYypxVsupkKrAryQj2Z05TQuD04moeHTVZTvCTzWCwOzERITdeQn83EML
|
|
24
|
+
+6tveItqUzVXJvz6Zgi6kczEbhFyoEeUSdiLwU04PS8CgYByG9aNDwMfUvDJgXcN
|
|
25
|
+
0nwO/0EzmTQ50BKyUgXTDOzyQ1s3ahZ4a/eZr7gLKcv+IsS++HWiIE84mZf1PJrL
|
|
26
|
+
y4QtAB7LpigremSxAr3NIJJdSXIfFr0/UP7w0W6N86ZCRH3pxJbNWPPMVdJAH7ky
|
|
27
|
+
w4uKgEXFQLcp8EPN2+W1DMIo2Q==
|
|
28
|
+
-----END PRIVATE KEY-----
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
PORT=9900
|
|
2
|
+
SMARTPAY_EXPECTED_USER=smartpay-user
|
|
3
|
+
SMARTPAY_EXPECTED_PASSWORD=smartpay-password
|
|
4
|
+
WORLDPAY_EXPECTED_USER=worldpay-user
|
|
5
|
+
WORLDPAY_EXPECTED_PASSWORD=worldpay-password
|
|
6
|
+
CONNECTOR_SANDBOX_NOTIFICATION_URL=http://connector:9300/v1/api/notifications/sandbox
|
|
7
|
+
CONNECTOR_WORLDPAY_NOTIFICATION_URL=http://connector:9300/v1/api/notifications/worldpay
|
|
8
|
+
CONNECTOR_SMARTPAY_NOTIFICATION_URL=http://connector:9300/v1/api/notifications/smartpay
|
|
9
|
+
CONNECTOR_EPDQ_NOTIFICATION_URL=http://connector:9300/v1/api/notifications/epdq
|
|
10
|
+
EPDQ_SHA_OUT_PASSPHRASE=mysecretpassphrase
|
|
11
|
+
EXTERNAL_STUBS_URL=http://stubs:3030/
|
|
12
|
+
FRONTEND_URL=http://localhost:9000
|
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
# Cluster: {{name}}
|
|
2
|
+
|
|
3
|
+
services:
|
|
4
|
+
{{#each dbServices}}
|
|
5
|
+
{{name}}:
|
|
6
|
+
image: postgres:15.7
|
|
7
|
+
container_name: {{name}}
|
|
8
|
+
environment:
|
|
9
|
+
- BIND_HOST=0.0.0.0
|
|
10
|
+
- POSTGRES_PASSWORD=mysecretpassword
|
|
11
|
+
mem_limit: 250M
|
|
12
|
+
logging:
|
|
13
|
+
driver: "json-file"
|
|
14
|
+
healthcheck:
|
|
15
|
+
test: ["CMD-SHELL", "pg_isready -d postgres -U postgres"]
|
|
16
|
+
interval: 10s
|
|
17
|
+
timeout: 5s
|
|
18
|
+
retries: 5
|
|
19
|
+
volumes:
|
|
20
|
+
- {{../defaultServiceConfigsPath}}/postgres/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d
|
|
21
|
+
ports:
|
|
22
|
+
- "{{port}}:5432"
|
|
23
|
+
networks:
|
|
24
|
+
- pay_local_mimic_aws_vpc
|
|
25
|
+
|
|
26
|
+
{{/each}}
|
|
27
|
+
|
|
28
|
+
{{#each javaApps}}
|
|
29
|
+
{{name}}:
|
|
30
|
+
{{#if localBuild}}
|
|
31
|
+
build: "$WORKSPACE/pay-{{name}}"
|
|
32
|
+
{{else}}
|
|
33
|
+
image: governmentdigitalservice/pay-{{name}}:{{imageTag}}
|
|
34
|
+
{{/if}}
|
|
35
|
+
container_name: {{name}}
|
|
36
|
+
{{#if hasDB}}
|
|
37
|
+
depends_on:
|
|
38
|
+
{{name}}_db:
|
|
39
|
+
condition: service_healthy
|
|
40
|
+
{{/if}}
|
|
41
|
+
healthcheck:
|
|
42
|
+
test: ["CMD", "wget", "-O", "/dev/null", "http://{{name}}:{{port}}/healthcheck"]
|
|
43
|
+
interval: 10s
|
|
44
|
+
timeout: 5s
|
|
45
|
+
retries: 12
|
|
46
|
+
env_file:
|
|
47
|
+
- {{../defaultServiceConfigsPath}}/services/java_app.env
|
|
48
|
+
- {{../defaultServiceConfigsPath}}/services/{{name}}.env
|
|
49
|
+
{{#ifFileExists environmentOverrideFilePath}}
|
|
50
|
+
- {{../environmentOverrideFilePath}}
|
|
51
|
+
{{/ifFileExists}}
|
|
52
|
+
environment:
|
|
53
|
+
- BIND_HOST=0.0.0.0
|
|
54
|
+
- RUN_MIGRATION=true
|
|
55
|
+
- RUN_APP=true
|
|
56
|
+
- PORT={{port}}
|
|
57
|
+
- DISABLE_INTERNAL_HTTPS=true
|
|
58
|
+
|
|
59
|
+
{{#if hasDB}}
|
|
60
|
+
- DB_HOST={{name}}_db
|
|
61
|
+
- DB_USER={{name}}
|
|
62
|
+
- DB_PASSWORD=mysecretpassword
|
|
63
|
+
- DB_SSL_OPTION=ssl=none
|
|
64
|
+
{{/if}}
|
|
65
|
+
|
|
66
|
+
{{#if requiresLocalStack}}
|
|
67
|
+
- AWS_ACCESS_KEY=mockAccessKey
|
|
68
|
+
- AWS_SECRET_ACCESS_KEY=mockSecretAccessKey
|
|
69
|
+
{{/if}}
|
|
70
|
+
|
|
71
|
+
{{#if useEgressProxy}}
|
|
72
|
+
- http_proxy=http://egress:8080
|
|
73
|
+
- HTTP_PROXY=http://egress:8080
|
|
74
|
+
- https_proxy=http://egress:8080
|
|
75
|
+
- HTTPS_PROXY=http://egress:8080
|
|
76
|
+
- HTTP_PROXY_HOST=egress
|
|
77
|
+
- HTTPS_PROXY_HOST=egress
|
|
78
|
+
- HTTP_PROXY_URI=http://egress:8080
|
|
79
|
+
- HTTPS_PROXY_URI=http://egress:8080
|
|
80
|
+
- HTTP_PROXY_ENABLED=true
|
|
81
|
+
- HTTPS_PROXY_ENABLED=true
|
|
82
|
+
- HTTP_PROXY_PORT=8080
|
|
83
|
+
- HTTPS_PROXY_PORT=8080
|
|
84
|
+
- HTTP_PROXY_SCHEME=http
|
|
85
|
+
- NO_PROXY={{noProxyEnvVar}}
|
|
86
|
+
{{/if}}
|
|
87
|
+
|
|
88
|
+
{{#if hasSQSQueues}}
|
|
89
|
+
- AWS_SQS_REGION=eu-west-1
|
|
90
|
+
- AWS_SQS_MESSAGE_MAXIMUM_WAIT_TIME_IN_SECONDS=20
|
|
91
|
+
- AWS_SQS_NON_STANDARD_SERVICE_ENDPOINT=true
|
|
92
|
+
- AWS_SQS_ENDPOINT=http://localstack:4566
|
|
93
|
+
{{#each sqsQueues}}
|
|
94
|
+
- {{envVarName}}=http://localstack:4566/000000000000/{{queueName}}
|
|
95
|
+
{{/each}}
|
|
96
|
+
{{/if}}
|
|
97
|
+
|
|
98
|
+
{{#if hasSNSTopics}}
|
|
99
|
+
- AWS_SNS_NON_STANDARD_SERVICE_ENDPOINT=true
|
|
100
|
+
- AWS_SNS_ENDPOINT=http://localstack:4566
|
|
101
|
+
- AWS_SNS_REGION=eu-west-1
|
|
102
|
+
{{#each snsTopics}}
|
|
103
|
+
- {{envVarName}}_ARN=arn:aws:sns:eu-west-1:000000000000:{{topicName}}
|
|
104
|
+
{{/each}}
|
|
105
|
+
{{/if}}
|
|
106
|
+
|
|
107
|
+
{{#each ../serviceURLEnvVars}}
|
|
108
|
+
- {{name}}={{value}}
|
|
109
|
+
{{/each}}
|
|
110
|
+
mem_limit: 2G
|
|
111
|
+
logging:
|
|
112
|
+
driver: "json-file"
|
|
113
|
+
ports:
|
|
114
|
+
- "{{port}}:{{port}}"
|
|
115
|
+
{{#if adminPort}}
|
|
116
|
+
- "{{adminPort}}:{{adminPort}}"
|
|
117
|
+
{{/if}}
|
|
118
|
+
networks:
|
|
119
|
+
- pay_local_mimic_aws_vpc
|
|
120
|
+
|
|
121
|
+
{{/each}}
|
|
122
|
+
|
|
123
|
+
{{#each nodeApps}}
|
|
124
|
+
{{name}}:
|
|
125
|
+
{{#if localBuild}}
|
|
126
|
+
build: "$WORKSPACE/pay-{{name}}"
|
|
127
|
+
{{else}}
|
|
128
|
+
image: governmentdigitalservice/pay-{{name}}:{{imageTag}}
|
|
129
|
+
{{/if}}
|
|
130
|
+
container_name: {{name}}
|
|
131
|
+
{{#if hasDB }}
|
|
132
|
+
depends_on:
|
|
133
|
+
{{name}}_db:
|
|
134
|
+
condition: service_healthy
|
|
135
|
+
{{/if}}
|
|
136
|
+
healthcheck:
|
|
137
|
+
test: ["CMD", "wget", "-O", "/dev/null", "http://{{name}}:{{port}}/healthcheck"]
|
|
138
|
+
interval: 10s
|
|
139
|
+
timeout: 5s
|
|
140
|
+
retries: 12
|
|
141
|
+
env_file:
|
|
142
|
+
- {{../defaultServiceConfigsPath}}/services/{{name}}.env
|
|
143
|
+
{{#ifFileExists environmentOverrideFilePath}}
|
|
144
|
+
- {{../environmentOverrideFilePath}}
|
|
145
|
+
{{/ifFileExists}}
|
|
146
|
+
{{#ifBoth ../mountLocalNodeApps localBuild}}
|
|
147
|
+
volumes:
|
|
148
|
+
- "$WORKSPACE/pay-{{../name}}:/app"
|
|
149
|
+
{{/ifBoth}}
|
|
150
|
+
environment:
|
|
151
|
+
- BIND_HOST=0.0.0.0
|
|
152
|
+
- SECURE_COOKIE_OFF=true
|
|
153
|
+
- RUN_APP=true
|
|
154
|
+
- DISABLE_INTERNAL_HTTPS=true
|
|
155
|
+
- PORT={{port}}
|
|
156
|
+
{{#if useEgressProxy}}
|
|
157
|
+
- http_proxy=http://egress:8080
|
|
158
|
+
- HTTP_PROXY=http://egress:8080
|
|
159
|
+
- https_proxy=http://egress:8080
|
|
160
|
+
- HTTPS_PROXY=http://egress:8080
|
|
161
|
+
- HTTP_PROXY_HOST=egress
|
|
162
|
+
- HTTPS_PROXY_HOST=egress
|
|
163
|
+
- HTTP_PROXY_URI=http://egress:8080
|
|
164
|
+
- HTTPS_PROXY_URI=http://egress:8080
|
|
165
|
+
- HTTP_PROXY_ENABLED=true
|
|
166
|
+
- HTTPS_PROXY_ENABLED=true
|
|
167
|
+
- HTTP_PROXY_PORT=8080
|
|
168
|
+
- HTTPS_PROXY_PORT=8080
|
|
169
|
+
- HTTP_PROXY_SCHEME=http
|
|
170
|
+
- NO_PROXY={{../noProxyEnvVar}}
|
|
171
|
+
{{/if}}
|
|
172
|
+
|
|
173
|
+
{{#each ../serviceURLEnvVars}}
|
|
174
|
+
- {{name}}={{value}}
|
|
175
|
+
{{/each}}
|
|
176
|
+
mem_limit: 1G
|
|
177
|
+
working_dir: '/app'
|
|
178
|
+
{{#ifBoth localBuild entrypointOverrideLocal}}
|
|
179
|
+
entrypoint: {{{../entrypointOverrideLocal}}}
|
|
180
|
+
{{else}}
|
|
181
|
+
entrypoint: "npx nodemon --inspect=0.0.0.0:{{../debugPort}} start.js"
|
|
182
|
+
{{/ifBoth}}
|
|
183
|
+
ports:
|
|
184
|
+
- "{{port}}:{{port}}"
|
|
185
|
+
{{#if debugPort}}
|
|
186
|
+
- "{{debugPort}}:{{debugPort}}"
|
|
187
|
+
{{/if}}
|
|
188
|
+
logging:
|
|
189
|
+
driver: "json-file"
|
|
190
|
+
networks:
|
|
191
|
+
- pay_local_mimic_aws_vpc
|
|
192
|
+
|
|
193
|
+
{{/each}}
|
|
194
|
+
|
|
195
|
+
{{#if requiresLocalStack}}
|
|
196
|
+
localstack:
|
|
197
|
+
image: localstack/localstack:3
|
|
198
|
+
container_name: localstack
|
|
199
|
+
environment:
|
|
200
|
+
- EAGER_SERVICE_LOADING=1
|
|
201
|
+
- SERVICES=sns,sqs
|
|
202
|
+
ports:
|
|
203
|
+
- "4566:4566" # All AWS services exposed on this port
|
|
204
|
+
volumes:
|
|
205
|
+
- {{defaultServiceConfigsPath}}/localstack/init-aws.sh:/etc/localstack/init/ready.d/init-aws.sh
|
|
206
|
+
networks:
|
|
207
|
+
- pay_local_mimic_aws_vpc
|
|
208
|
+
{{/if}}
|
|
209
|
+
|
|
210
|
+
{{#if requiresRedis}}
|
|
211
|
+
redis:
|
|
212
|
+
image: redis:latest
|
|
213
|
+
container_name: localRedis
|
|
214
|
+
ports:
|
|
215
|
+
- "6379:6379"
|
|
216
|
+
networks:
|
|
217
|
+
- pay_local_mimic_aws_vpc
|
|
218
|
+
{{/if}}
|
|
219
|
+
|
|
220
|
+
{{#if requiresEgressProxy}}
|
|
221
|
+
egress:
|
|
222
|
+
image: governmentdigitalservice/pay-egress:latest-master
|
|
223
|
+
container_name: egress
|
|
224
|
+
volumes:
|
|
225
|
+
- "{{defaultServiceConfigsPath}}/egress/squid.conf:/etc/squid/squid.conf"
|
|
226
|
+
networks:
|
|
227
|
+
pay_local_mimic_aws_vpc:
|
|
228
|
+
ipv4_address: 172.18.0.253
|
|
229
|
+
expose:
|
|
230
|
+
- 8080
|
|
231
|
+
{{/if}}
|
|
232
|
+
|
|
233
|
+
{{#each reverseProxyServices}}
|
|
234
|
+
{{name}}:
|
|
235
|
+
image: governmentdigitalservice/pay-docker-nginx-proxy:latest-master
|
|
236
|
+
container_name: {{name}}
|
|
237
|
+
healthcheck:
|
|
238
|
+
test: ["CMD", "wget", "--no-check-certificate", "-O", "/dev/null", "https://{{name}}:{{port}}/healthcheck"]
|
|
239
|
+
interval: 10s
|
|
240
|
+
timeout: 5s
|
|
241
|
+
retries: 12
|
|
242
|
+
depends_on:
|
|
243
|
+
{{appName}}:
|
|
244
|
+
condition: service_healthy
|
|
245
|
+
environment:
|
|
246
|
+
- BIND_HOST=0.0.0.0
|
|
247
|
+
- PROXY_SERVICE_HOST=http://{{appName}}
|
|
248
|
+
- PROXY_SERVICE_PORT={{appPort}}
|
|
249
|
+
- HTTPS_LISTEN_PORT={{port}}
|
|
250
|
+
- NAXSI_RULES_URL_CSV=/etc/nginx/naxsi/locations/1/{{appName}}.rules
|
|
251
|
+
- NAXSI_RULES_MD5_CSV={{naxsiRulesSourceFileMD5}}
|
|
252
|
+
- CLIENT_BODY_BUFFER_SIZE=10
|
|
253
|
+
- CLIENT_MAX_BODY_SIZE=10
|
|
254
|
+
mem_limit: 1G
|
|
255
|
+
volumes:
|
|
256
|
+
- "{{naxsiRulesSourceFile}}:/etc/nginx/naxsi/locations/1/{{appName}}.rules"
|
|
257
|
+
- "{{../defaultServiceConfigsPath}}/services/ssl/certs/{{name}}.crt:/etc/keys/crt"
|
|
258
|
+
- "{{../defaultServiceConfigsPath}}/services/ssl/keys/{{name}}.key:/etc/keys/key"
|
|
259
|
+
ports:
|
|
260
|
+
- "{{port}}:{{port}}"
|
|
261
|
+
logging:
|
|
262
|
+
driver: "json-file"
|
|
263
|
+
networks:
|
|
264
|
+
- pay_local_mimic_aws_vpc
|
|
265
|
+
|
|
266
|
+
{{/each}}
|
|
267
|
+
|
|
268
|
+
networks:
|
|
269
|
+
pay_local_mimic_aws_vpc:
|
|
270
|
+
name: pay_local_mimic_aws_vpc
|
|
271
|
+
driver_opts:
|
|
272
|
+
com.docker.network.bridge.host_binding_ipv4: "127.0.0.1"
|
|
273
|
+
ipam:
|
|
274
|
+
driver: default
|
|
275
|
+
config:
|
|
276
|
+
- subnet: 172.18.0.0/24
|
|
@@ -3,6 +3,7 @@ Commands:
|
|
|
3
3
|
pay doctor # Attempts to initialise or fix the Pay CLI
|
|
4
4
|
pay help [COMMAND] # Describe available commands or one specific ...
|
|
5
5
|
pay local # Sets up local Pay development environment
|
|
6
|
+
pay localx # EXPERIMENTAL: Nodejs replacement of `pay local`
|
|
6
7
|
pay schema # Generates web based database diagrams and me...
|
|
7
8
|
pay secrets # Manage secrets in and between environments
|
|
8
9
|
pay tunnel # Open tunnel to application database
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.copyDefaultConfigs = void 0;
|
|
7
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
8
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
9
|
+
function copyDefaultConfigs(to) {
|
|
10
|
+
const sourceDir = node_path_1.default.join(__dirname, '..', '..', '..', '..', 'resources', 'pay-local', 'config');
|
|
11
|
+
node_fs_1.default.cpSync(sourceDir, to, { recursive: true, force: true });
|
|
12
|
+
}
|
|
13
|
+
exports.copyDefaultConfigs = copyDefaultConfigs;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getLastUp = exports.recordUp = void 0;
|
|
7
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
8
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
9
|
+
const LAST_UP_FILENAME = 'last-up-DO-NOT-EDIT.yaml';
|
|
10
|
+
/* Records the last 'up' command docker-compose file by creating a symlink to it in the
|
|
11
|
+
* rendered templates path
|
|
12
|
+
*/
|
|
13
|
+
function recordUp(renderedTemplatesPath, cluster) {
|
|
14
|
+
const lastUpRecordPath = node_path_1.default.resolve(node_path_1.default.join(renderedTemplatesPath, LAST_UP_FILENAME));
|
|
15
|
+
const lastUpActualFilename = `${cluster.name}.yaml`;
|
|
16
|
+
node_fs_1.default.rmSync(lastUpRecordPath, { force: true });
|
|
17
|
+
node_fs_1.default.symlinkSync(lastUpActualFilename, lastUpRecordPath);
|
|
18
|
+
}
|
|
19
|
+
exports.recordUp = recordUp;
|
|
20
|
+
/* Gets the path of the most recently used docker-compose file.
|
|
21
|
+
*
|
|
22
|
+
* Returns undefined if one can't be found, otherwise returns the full path
|
|
23
|
+
* to the yaml file which was last generated by the 'up' command
|
|
24
|
+
*/
|
|
25
|
+
function getLastUp(renderedTemplatesPath) {
|
|
26
|
+
const lastUpRecordPath = node_path_1.default.resolve(node_path_1.default.join(renderedTemplatesPath, LAST_UP_FILENAME));
|
|
27
|
+
const pathStat = node_fs_1.default.lstatSync(lastUpRecordPath, { throwIfNoEntry: false });
|
|
28
|
+
if (pathStat === undefined) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
if (!pathStat.isSymbolicLink()) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const symlinkTarget = node_fs_1.default.readlinkSync(lastUpRecordPath);
|
|
35
|
+
if (symlinkTarget === undefined) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
if (!symlinkTarget.endsWith('.yaml')) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
const lastUpActualPath = node_path_1.default.resolve(node_path_1.default.join(renderedTemplatesPath, symlinkTarget));
|
|
42
|
+
const lastUpActualPathStat = node_fs_1.default.statSync(lastUpActualPath, { throwIfNoEntry: false });
|
|
43
|
+
if (lastUpActualPathStat === undefined) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
if (lastUpActualPathStat.isFile()) {
|
|
47
|
+
return lastUpActualPath;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
exports.getLastUp = getLastUp;
|