Compare commits
2 Commits
master
...
release-20
Author | SHA1 | Date | |
---|---|---|---|
|
9842cc6164 | ||
|
bf1ebfaab0 |
11
build-and-test.sh
Executable file
11
build-and-test.sh
Executable file
|
@ -0,0 +1,11 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if [[ -d /var/code/src ]]; then
|
||||||
|
cp -R /var/code/{src,test,*.js,*.json} .
|
||||||
|
fi
|
||||||
|
|
||||||
|
npm i
|
||||||
|
npm run build
|
||||||
|
npm run test-debug
|
23
certs/ca/ca.crt
Normal file
23
certs/ca/ca.crt
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDzTCCArWgAwIBAgIRAJD0c8z8ITssbEkzjx4ZmRowDQYJKoZIhvcNAQELBQAw
|
||||||
|
YjELMAkGA1UEBhMCVUsxGDAWBgNVBAoTD0V2ZW50IFN0b3JlIEx0ZDE5MDcGA1UE
|
||||||
|
AxMwRXZlbnRTdG9yZURCIENBIDkwZjQ3M2NjZmMyMTNiMmM2YzQ5MzM4ZjFlMTk5
|
||||||
|
OTFhMB4XDTIyMTAyMjEzNTA1N1oXDTI3MTAyMjEzNTA1N1owYjELMAkGA1UEBhMC
|
||||||
|
VUsxGDAWBgNVBAoTD0V2ZW50IFN0b3JlIEx0ZDE5MDcGA1UEAxMwRXZlbnRTdG9y
|
||||||
|
ZURCIENBIDkwZjQ3M2NjZmMyMTNiMmM2YzQ5MzM4ZjFlMTk5OTFhMIIBIjANBgkq
|
||||||
|
hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA17JM4jAG4fM4dtA6mpatLVkYhS42wwHC
|
||||||
|
RbG7dQINSE9wMKpoy2u4sDvZQrsudOvdeclPkIL1JgUtk7lDlqRMXZ6HnP7zTCKn
|
||||||
|
SQCXzvc3IIU0cGlkffuIS/kuAGBePvmmTwFE3ByDneydlHpSUGEvQY1KEAKwpgSO
|
||||||
|
LX1NtthP3kKT+bq0NdQlgOjm9dEkSYWwfCM7Of9cJdh8bCO4zJ1taGqchxluWlpo
|
||||||
|
DJL6TTHsZDvDjhfzBxhjuRax4S8B8xLaq6LirTFEFGpqFBhqzGGhRl42ZylKqVo9
|
||||||
|
fKhhywwq81ItROmB14OGKa8gyJi7pWGSKRI4M6Ngn89D50Q49K1QdQIDAQABo34w
|
||||||
|
fDAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBAjApBgNVHQ4EIgQg
|
||||||
|
/3vmZ5JvcSlcqyaNXgrQZ5FOXlZ9HvYr9x+Tbrs3Mx4wKwYDVR0jBCQwIoAg/3vm
|
||||||
|
Z5JvcSlcqyaNXgrQZ5FOXlZ9HvYr9x+Tbrs3Mx4wDQYJKoZIhvcNAQELBQADggEB
|
||||||
|
AIMQR/3BHnVYAuG6DSdDPVYkPR9Fvwi9G9U1nybMHY9uSnEOp6yASrRc/cD7pIbP
|
||||||
|
Ax7cvD5f0829fAUFupXtp2T/yNOA7/eis7l6Y0ZZf+QEk9XhZXHVTFLFDb9Fyc6r
|
||||||
|
+i/lXnatGsYwOns0RFSG6tzxi2lxUPwlXauacwTBW4jrphtn0vC3q/n85JOEi2ib
|
||||||
|
aIlXaXUTREJFiFnS22/SX4dSRaeimL34rrd9AjX53Ne6pUiVBGgd2aSUkBh65EYk
|
||||||
|
VCIZwuWLx0jgcT8NI/EeId7FN4CWq73dze5eY2QU00rXidyYDeC2aZcU5e2RTQqn
|
||||||
|
5dGqFGAd/xCopGYdWfusqKM=
|
||||||
|
-----END CERTIFICATE-----
|
27
certs/ca/ca.key
Normal file
27
certs/ca/ca.key
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIIEpQIBAAKCAQEA17JM4jAG4fM4dtA6mpatLVkYhS42wwHCRbG7dQINSE9wMKpo
|
||||||
|
y2u4sDvZQrsudOvdeclPkIL1JgUtk7lDlqRMXZ6HnP7zTCKnSQCXzvc3IIU0cGlk
|
||||||
|
ffuIS/kuAGBePvmmTwFE3ByDneydlHpSUGEvQY1KEAKwpgSOLX1NtthP3kKT+bq0
|
||||||
|
NdQlgOjm9dEkSYWwfCM7Of9cJdh8bCO4zJ1taGqchxluWlpoDJL6TTHsZDvDjhfz
|
||||||
|
BxhjuRax4S8B8xLaq6LirTFEFGpqFBhqzGGhRl42ZylKqVo9fKhhywwq81ItROmB
|
||||||
|
14OGKa8gyJi7pWGSKRI4M6Ngn89D50Q49K1QdQIDAQABAoIBAQCbeiKBSC0t4avp
|
||||||
|
uN8FX2clMPvDxDQlDLeElUCSbxAz907fRXaUaumN3xYUS+iIzxuuFbYMbNlYtpLL
|
||||||
|
0NcvVu7U7NjECeJGFxSOQqcqwHg0MNBD1zRgu1bbrJnEG7LTohCHElsYblVRGKXd
|
||||||
|
yO5ckjEGB1pDgCzk/pOdppzGF9Y6Vl/6WfZQgdGV6B1Qh9Vxs+1CGbK/6YqMM3av
|
||||||
|
9AJTEXgXbHOPyqNwixjxihpz79hXx0lOznL/CeosHKj7+ZY/knWZcDBmNq3ZA3Nz
|
||||||
|
w3p0fDkBtY7zQglh5nTSYoLtpcJvzkAI8uD6eJ4ThwIGUbLlvq0c3yaHZwIqrmEq
|
||||||
|
py09FA8BAoGBAPnuy+ehTBXV5k8icPZjI50Bjr5Alres01OjHxAA5bZJACwVbjMQ
|
||||||
|
a2464yb6DMA6NDrUevfHvKn3rw8OoceNrlaEua0qE5IweRpROf+ENqW9Yhcg4O1G
|
||||||
|
bSUPf5M1JusCSznAJu+gKsqHq0pTtdssh8Xb655xgd3gNMi0lLPlw5+tAoGBANzu
|
||||||
|
vidC8LRH+4JRrb+7PUZi1AR8vtCpabkLuVe7AZJl1wXFvYJTyFcW/e0WTvETcclf
|
||||||
|
9dhy1c0lH44571L4kpKRRKF4U3lcESbiLPDwjvfnls1rYzfzjY1YWoERwGYxL54H
|
||||||
|
2BBYPjKocnHZOnyiBxYn4ysK2O3dYlFxgJy/1GzpAoGBAM4HzW1HqRoC91Va1fY2
|
||||||
|
aaA/LXWmdtg5DwhOWwftRXAMI6kzjWFo8rauspxp2uMH2BB7Ildp/xu6A0SNUk3X
|
||||||
|
fNTzmsCmA/YqIVrRhNcfHZFpWhgo0WKoAMdhTFCEq21lua+EuFQnG79TMaAW+74O
|
||||||
|
qmovzb8SYPUPo1OkkUTvbmENAoGAODTg2Zo1JJhfiyL+ghW/nAWOjOmzneBLzlEG
|
||||||
|
QSSJXNZd4tEQynRINqfZyBRx1vEsdJ/eKsfkTsGQCp4AneoxV+pvPGkhS3G5x1up
|
||||||
|
NU7uAHHBstcMMfLbY0dEFywN97GxvJGgTWA1yquCGia6s3SBOwjAyXWEBNfaqH+o
|
||||||
|
ybgf8ekCgYEA3/Vx/CZ/VB0Fr47cpZGckJWH6lDWkzBEcaAT22VYlhL4CZ0CRDWj
|
||||||
|
6+LSiQDuI3+JwEhZlIkTvfZSo5bhNeUHoEL+15yg2RvsWFzorDxBfvZ//29BQg/Q
|
||||||
|
bN+vlKHpn7V7T9LQg/Tp107mfW6Z/TG4UYIVJyxY/JUjXjQLcFPvTVE=
|
||||||
|
-----END RSA PRIVATE KEY-----
|
20
certs/eventstore-local.crt
Normal file
20
certs/eventstore-local.crt
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDSzCCAjMCFAxEesn/oIrU2T7DOU9cWCyoCCqfMA0GCSqGSIb3DQEBCwUAMGIx
|
||||||
|
CzAJBgNVBAYTAkNBMQswCQYDVQQIDAJCQzESMBAGA1UEBwwJVmFuY291dmVyMRcw
|
||||||
|
FQYDVQQKDA5BZGFwdGVjaCBHcm91cDEZMBcGA1UEAwwQZXZlbnRzdG9yZS5sb2Nh
|
||||||
|
bDAeFw0yMTA1MDYyMDAyMzZaFw0zMTA1MDQyMDAyMzZaMGIxCzAJBgNVBAYTAkNB
|
||||||
|
MQswCQYDVQQIDAJCQzESMBAGA1UEBwwJVmFuY291dmVyMRcwFQYDVQQKDA5BZGFw
|
||||||
|
dGVjaCBHcm91cDEZMBcGA1UEAwwQZXZlbnRzdG9yZS5sb2NhbDCCASIwDQYJKoZI
|
||||||
|
hvcNAQEBBQADggEPADCCAQoCggEBANbNrVQ91TFVsrfFV39/1MjxM/UIP78FaX+S
|
||||||
|
kxAzcpAJKP9PbHLwFXxkl0Bam+3ekE6+hc3qT8o4ksOdzwz+dJbdZF8gblLda7vq
|
||||||
|
JnPjkAZuhojRLPfXvaJZbManEkB30+JIvb/XWhMf34+kvyZaOnKqidzNAuLAFQ+6
|
||||||
|
KCCXYnTUFimumr6AsrZvA9UzN3edrk1pqxMYNT+8MBOUnNfkdHX78aTzdWvq4+Ro
|
||||||
|
+58MT3NpqdI+1cY423JlG2qj8PAqPsgdE4XvmtqDtLndH+VflR1M1Rkn41cofgSh
|
||||||
|
lo7PE2SNn4hSv8m+1HJMfcegJEXKE3LIGHJtV6qT6S+pRtJd9mcCAwEAATANBgkq
|
||||||
|
hkiG9w0BAQsFAAOCAQEAlhKziHmYm81vrx+EHqIZXvmoUp3I1A9STvFqUdHrv9sa
|
||||||
|
8tKD7wW0owTVaxXBW3380ZFRpG3JVJFUgOyFIhi4IccWoqVsBCE0BBR96tlRXrKT
|
||||||
|
UZTAHLEk/SdLL+qfhKgY7F7+M9Wtf5HldiRfNoTqYn6YVXMJMgcwehhHho/fCHzj
|
||||||
|
tzOMfKFjGAq+n8cScLrTaW92JbbxjFPJJ7uQDH4OjAHx6pT885+RJf0rNqboAErA
|
||||||
|
lRLcEjtihslWKD7nelOlJE1egkum/m7MLVFpZPqEBp+x1zXdwacENwIhiRrQQhKi
|
||||||
|
8Qw36BuSCZ3CZK18kGyhtxl/uUP/wx7XXc1U0W2Wtw==
|
||||||
|
-----END CERTIFICATE-----
|
BIN
certs/eventstore.p12
Normal file
BIN
certs/eventstore.p12
Normal file
Binary file not shown.
24
certs/node1/node1.crt
Normal file
24
certs/node1/node1.crt
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIECDCCAvCgAwIBAgIQI83qjs8Vn2iLbeUZbTPRcTANBgkqhkiG9w0BAQsFADBi
|
||||||
|
MQswCQYDVQQGEwJVSzEYMBYGA1UEChMPRXZlbnQgU3RvcmUgTHRkMTkwNwYDVQQD
|
||||||
|
EzBFdmVudFN0b3JlREIgQ0EgOTBmNDczY2NmYzIxM2IyYzZjNDkzMzhmMWUxOTk5
|
||||||
|
MWEwHhcNMjMwMTMwMTUyMzM0WhcNMjQwMTMwMTUyMzM0WjAcMRowGAYDVQQDExFl
|
||||||
|
dmVudHN0b3JlZGItbm9kZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
|
||||||
|
AL3CBeNLxZDvUA4WMRACrM+kxvrlD8ahs9MOFfAJHCNLoNR4mWAvh+BUDHsG7E56
|
||||||
|
4I5Y7XbC0cCIIER3/QB6Jz80kcJ4y745d9RCbYSqTeUnptrLdcXDNiwbI3bAjyuJ
|
||||||
|
tEqg+iPjrz2E6bSlZ4GSxKSTC95Dm80UUU/CG6+H1FesN8JP+ruYey4S5bYASy6o
|
||||||
|
z1NtYaPDGqSqDGvLhuWQNKoJAAc4g1R/UcVFbuI2asnCkFGjDF7gcRKkHpw0DNhN
|
||||||
|
TMQWMdQ2+I8it5UwNzYpsCZj/le5a54mNZqNYj52nEpURDsdJy4BXJy5dUwADZHz
|
||||||
|
ffN+ciWEToQz2hZmnliIG98CAwEAAaOB/zCB/DAOBgNVHQ8BAf8EBAMCBaAwHQYD
|
||||||
|
VR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwKQYDVR0O
|
||||||
|
BCIEIFRmt7SsPXFStSAcZDS9OCP03JyevPMV6/1R0Utg8UA3MCsGA1UdIwQkMCKA
|
||||||
|
IP975meSb3EpXKsmjV4K0GeRTl5WfR72K/cfk267NzMeMGUGA1UdEQReMFyCKmNs
|
||||||
|
dXN0ZXIudGVzdHMubm9kZS1ldmVudHN0b3JlLWNsaWVudC5sb2NhbIIobm9kZTEu
|
||||||
|
dGVzdHMubm9kZS1ldmVudHN0b3JlLWNsaWVudC5sb2NhbIcEwKghCjANBgkqhkiG
|
||||||
|
9w0BAQsFAAOCAQEATHxhyf27pPFJRegPB9ozm4P06MkvZMm4syxmoR1jJohm+7Xp
|
||||||
|
7jd9ENATFApZNxV+/MYGgryML9Y+Md/Bd1fttP8j0MUR5euJX8zehrnCufaIw2If
|
||||||
|
/a9YalJ2/a+WElAgTHM1sCpdvL+WwsQ6IjWPVfGIu7VIotQXIqllZUjMd3rFI4Ip
|
||||||
|
9CkMgXbZzls8OhWH1FnPkFFjolqITwcgSmn3NWbQkl6qFYFjAZ8pFcjhdNay7yZx
|
||||||
|
+Pe9gEPbi6iyP50xb0LQtJXQQvFhwmDQbR5v0xiBI6ONK8mha3fQkxmV1wMPJdvQ
|
||||||
|
TOva/iFP4qmjyewyzOd752DN6r4qFlpb39Hpmw==
|
||||||
|
-----END CERTIFICATE-----
|
27
certs/node1/node1.key
Normal file
27
certs/node1/node1.key
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIIEpAIBAAKCAQEAvcIF40vFkO9QDhYxEAKsz6TG+uUPxqGz0w4V8AkcI0ug1HiZ
|
||||||
|
YC+H4FQMewbsTnrgjljtdsLRwIggRHf9AHonPzSRwnjLvjl31EJthKpN5Sem2st1
|
||||||
|
xcM2LBsjdsCPK4m0SqD6I+OvPYTptKVngZLEpJML3kObzRRRT8Ibr4fUV6w3wk/6
|
||||||
|
u5h7LhLltgBLLqjPU21ho8MapKoMa8uG5ZA0qgkABziDVH9RxUVu4jZqycKQUaMM
|
||||||
|
XuBxEqQenDQM2E1MxBYx1Db4jyK3lTA3NimwJmP+V7lrniY1mo1iPnacSlREOx0n
|
||||||
|
LgFcnLl1TAANkfN9835yJYROhDPaFmaeWIgb3wIDAQABAoIBAFO5a8eiAwWz0Wql
|
||||||
|
t/gMdhsX5QOGVbOaXTFeIafLHTMlh0y3+VRLJHSCIQ+XOmRWKwYjjoK76rg8V6Be
|
||||||
|
IK85Nl/Y3gckLSE9UfXBaXkDe2MEX8ZhxxD+1MQZJUicJY9cLsROyo9TQlqubj9a
|
||||||
|
S5UMIN9MUgw7YF7X/Bho2LZWBAa6Hz3LSyndwArvqZeUf8ovmJnWEUvJB8amVhwB
|
||||||
|
DoYqyNjiqIEJYWRfCeGfLEOmotmwCfYeJFyr84r3wfS6qmaesKM8Nbz8eSSNg7n3
|
||||||
|
5LcAL2Bv3hvsMmUEZQl3J41AtBVsU5DgbTf6/seuKvfVOcqVp9AtZp2rg3xY4pNI
|
||||||
|
7gN4wiECgYEA1lBh13LdjM0rOg9096ee2hQKjFvwVki0xzZigmf94CXoAJ19qwOe
|
||||||
|
J0WXfk1g5GP1bg5pdVhKdS+LEIqet9ipaall5hWotaYJdyOtWiQan9wRRa3sk6pl
|
||||||
|
K29LBF+XzZWAKE7C2371rVyMXViHzv056wasw0RSgxd6HBi1mOpcveMCgYEA4qrj
|
||||||
|
Ha24Qh+/b883FaMphYrl8H8nMgAdGmi7HiLnJx6jzPzalsBI5+qnDY8/oqeAie66
|
||||||
|
k8c6uRKOsEFrsbK/w3+21rGuZb9t9PupDONFOW9D94744HDFu0Clnr5S2ABKM9D6
|
||||||
|
hUL2qQedAqZx5CNWbpM/wdV0OBKhveIb9OyjytUCgYA21jCC0ThRK7owy/2w1Kn3
|
||||||
|
wQMF8Qxo94eSJZ9FINi7/tcDOUkLdgyEnfDqd2AgcFc/Rt7DEMlUfMrHe8Cq5/xJ
|
||||||
|
NfgFzGrzt71aR722f+B0IPomax9KlWH3oC2Au/j6uJMnPSfsw+qW5kRgKiPt2at1
|
||||||
|
MKsJ97RpKJutDsGAlA8Q4wKBgQCUyjBD7yEg5s43iwJRxcUf0EmYUR9dhw2TpGQQ
|
||||||
|
KEEsQMStbt3eT2KMOlBmaj4Pe3y5DmiTURiPHEtmD8ut3fRbVJ6k2AXu7HY1dm1F
|
||||||
|
9HogdZVcEBH24pAplwog5jZja+1Jjkik6YwY8NJ0RuZEJ544/5e+mWus0y4xAxfu
|
||||||
|
8teh8QKBgQDQm6vKAsldQStgj9gwRiTAUrMPTriVQTUd4/8lof+RoIJWM7CARLos
|
||||||
|
9MYkAefv4MgjvwWNn8RbFjN91NBX4qpCjgm62P25npFSKQAK+JQlvj7MbSw54jyx
|
||||||
|
2/uj4JEMM1rOocJr9tvYAeC2nnZMOuhesLVy+SHF9TJ2WtalDOTZ1A==
|
||||||
|
-----END RSA PRIVATE KEY-----
|
24
certs/node2/node2.crt
Normal file
24
certs/node2/node2.crt
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIECDCCAvCgAwIBAgIQdipz5iGZgwtJYjBK4mjFijANBgkqhkiG9w0BAQsFADBi
|
||||||
|
MQswCQYDVQQGEwJVSzEYMBYGA1UEChMPRXZlbnQgU3RvcmUgTHRkMTkwNwYDVQQD
|
||||||
|
EzBFdmVudFN0b3JlREIgQ0EgOTBmNDczY2NmYzIxM2IyYzZjNDkzMzhmMWUxOTk5
|
||||||
|
MWEwHhcNMjMwMTMwMTUyMzQwWhcNMjQwMTMwMTUyMzQwWjAcMRowGAYDVQQDExFl
|
||||||
|
dmVudHN0b3JlZGItbm9kZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
|
||||||
|
AOJZaF5skFJeNOgkqG8B38lV6lhKwvrmspxZvw7tP8dhzV7R+EUdTXYS86ximW4c
|
||||||
|
cdK5zqXRgZG6WaaFFN4BeCLqum+602l9Bw88K5Ww68v5R9VP8sgt7w4UsqvVjTJ4
|
||||||
|
60R59PvfrwkIL1DFkKBM4B7CmdLR20VZiJQ9YghR03TBbjjvIhaDyprmxu0vDsF7
|
||||||
|
f3zNmcnBF+14Z0b/exevtiVbyvNQ6nQENSo7Whz/kDV1a2i/BsVlsbFc43ywmsHL
|
||||||
|
Ks1z2rSctTgfYmK/yUFaR4B1mkzhQf9/CfJxJQLekC9Zv85ah9tMGwl/pbDfZh7q
|
||||||
|
NUJQHjJMm4I/HeeTQPd1CXcCAwEAAaOB/zCB/DAOBgNVHQ8BAf8EBAMCBaAwHQYD
|
||||||
|
VR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwKQYDVR0O
|
||||||
|
BCIEIDlz3IFnAja157ly4cFxgZTfYrwlqAhgtbEu4TVhO/yPMCsGA1UdIwQkMCKA
|
||||||
|
IP975meSb3EpXKsmjV4K0GeRTl5WfR72K/cfk267NzMeMGUGA1UdEQReMFyCKmNs
|
||||||
|
dXN0ZXIudGVzdHMubm9kZS1ldmVudHN0b3JlLWNsaWVudC5sb2NhbIIobm9kZTIu
|
||||||
|
dGVzdHMubm9kZS1ldmVudHN0b3JlLWNsaWVudC5sb2NhbIcEwKghCzANBgkqhkiG
|
||||||
|
9w0BAQsFAAOCAQEAvj0ZjZkKdqwVdfXJAhMPGZwMf8gfZRpSCJe95FL0yePUk/jm
|
||||||
|
di2qk2sb2+W9prPR1Nbs1hfLnHHBw32yrxekvFSUC6Qc23X8S9QU01FOO7uEVtnM
|
||||||
|
fdEzyuZcdPBK2SAL/CxN0WH/yUxNWkWnqQKegZxkvpMVxMAsA0l3twWwfkEQtjhA
|
||||||
|
V/dcS5WwZxyyvCQ0qAVZ4+Zd/huvmsNIaXplvCs/P8yU6SR0TUdahJpfxJeKkKIf
|
||||||
|
k2h2/G36i26lTTm2TyxO4A2v8PotRO0xhjJkVKVEs4ZuY+lK6JUoTaM9Z8FubDqE
|
||||||
|
K2KH+YCBdER5jQK2YbmZDRh58aKMpCXtCx8RqQ==
|
||||||
|
-----END CERTIFICATE-----
|
27
certs/node2/node2.key
Normal file
27
certs/node2/node2.key
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIIEpQIBAAKCAQEA4lloXmyQUl406CSobwHfyVXqWErC+uaynFm/Du0/x2HNXtH4
|
||||||
|
RR1NdhLzrGKZbhxx0rnOpdGBkbpZpoUU3gF4Iuq6b7rTaX0HDzwrlbDry/lH1U/y
|
||||||
|
yC3vDhSyq9WNMnjrRHn0+9+vCQgvUMWQoEzgHsKZ0tHbRVmIlD1iCFHTdMFuOO8i
|
||||||
|
FoPKmubG7S8OwXt/fM2ZycEX7XhnRv97F6+2JVvK81DqdAQ1KjtaHP+QNXVraL8G
|
||||||
|
xWWxsVzjfLCawcsqzXPatJy1OB9iYr/JQVpHgHWaTOFB/38J8nElAt6QL1m/zlqH
|
||||||
|
20wbCX+lsN9mHuo1QlAeMkybgj8d55NA93UJdwIDAQABAoIBAQDR3UvjoIz/kdFE
|
||||||
|
HBj/M6GmLz6ktkyqDRQ12xBGarrjxk6AR/YFPvH/M/syLglMCpuOYjCzldiooTtW
|
||||||
|
JbX/USVuWmyaA4LZH89X1NYkaHF4IZz0rrfP2qb3S0GOCOZtkaexSdJXZkIIAcq8
|
||||||
|
/TDnL9/tJUkyKtk/J5B2waMPS67fZGoZ6wx3sHZ7/CCcvdtHSvCT5+taVoHGUDPi
|
||||||
|
kToGcJAIDKAOakZfv1bfzYFyln18NA55V+133tGfZYJrILmEwLcU2Y7BAaoD+yme
|
||||||
|
+BWU3eKgYRCsvA+HzdgDetEaqp78Ax/G29OUK9NWdXk2hwhmkpZgSLV3g7OlfNve
|
||||||
|
6pmuEpcBAoGBAOPIMM+uYQJmRIapXZADQOc7VkF55sSjh3h25tjS8iHIEGQ9gb8n
|
||||||
|
h4iNUDC73NN9Yfw6/vKrwcpIq5nQKRRUQ+NJFxurtN6XBBlYNf336tg6S/65oe3W
|
||||||
|
R3m35/w72qcct1aOASDafuxdoEV/kbflpao57PxRZAXGdMPJANDckujXAoGBAP5j
|
||||||
|
x4NZvYI73oL2OI/2CJytA5uksfsh0ymusNKRaBhqLwFIE1Ud/CHj5eG1Bo9ox8Yl
|
||||||
|
e5AdkMmSSYFIe3B/P1apFI22/GKc1on2mFXKRY8zAMVLGbsLJarQz4xIX36bafUh
|
||||||
|
1O9JM1d6PWDITAzoptIJDF7U41jxbbGMic6gIbBhAoGAMOUkNTCFenJhe1aX0vYf
|
||||||
|
1IMUPPHh64v+5IkBfMGrYD0F576cP2BI47MR56Qr/uoHQpGXcJgV/UokK9xXNRnx
|
||||||
|
iLSD1VjCdpWMN7SLwnyZWNkKvx8x90/r/+DOV4KxqPWtFVNeQqMkY7ClWsXLjeIp
|
||||||
|
8aSFjpQaGHNFVVGsbykqD/kCgYEA3BZ/eoidiJs7e5qCfSqjcMnPIU1wHpG5G4rj
|
||||||
|
uInMwbK8UCOHdlCm3rtJG+l+b3x7ulabfKfXqE1EAvIuubmdluBZw/HYkYiXpG0Q
|
||||||
|
hsilPasms4qyDD0srYhSyE+lLuhO16IZk5yFKt27VIx2H4T5LyZc6X7N4xmdicrJ
|
||||||
|
P1cTToECgYEAlW2xWDl90suSAw1Tv23BVEX6ol/UColtGY8VDIHsXPDBYImtGiFt
|
||||||
|
MibOuyzWsvPw0HZDzWw9otU0735clhK34v+E1WyPFvOAo18orcCS4A6Fi42tp5oG
|
||||||
|
sNVxiYJFFUn+nnHUoGZNuKlB5PZR1Wxus6wXY2rZdoQ6QsBD0XjquCE=
|
||||||
|
-----END RSA PRIVATE KEY-----
|
24
certs/node3/node3.crt
Normal file
24
certs/node3/node3.crt
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIECDCCAvCgAwIBAgIQecOoexYVeIUtLwNQp179vzANBgkqhkiG9w0BAQsFADBi
|
||||||
|
MQswCQYDVQQGEwJVSzEYMBYGA1UEChMPRXZlbnQgU3RvcmUgTHRkMTkwNwYDVQQD
|
||||||
|
EzBFdmVudFN0b3JlREIgQ0EgOTBmNDczY2NmYzIxM2IyYzZjNDkzMzhmMWUxOTk5
|
||||||
|
MWEwHhcNMjMwMTMwMTUyMzQ2WhcNMjQwMTMwMTUyMzQ2WjAcMRowGAYDVQQDExFl
|
||||||
|
dmVudHN0b3JlZGItbm9kZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
|
||||||
|
AN8iXoWZjjxOqJJLTHmHOy89lbk2pBo/ca7qPZ/WC+I52A4Lgw58/O7tV/RHFyao
|
||||||
|
X8lS2hAVMlRfToUqj7ILAVBeF3t827W0qttbv+wdnxvIWqpq1HdtV5xgLIUXbyiQ
|
||||||
|
SI97Tgn7zDJOvm41sHV0xsPWKlritliDByXlGMOabzV53yxa1c0cU2bP5n7nc9wW
|
||||||
|
KOH03OU64qCj6MJTdi35peKDhaAcRtGmr5ZggUCP4n9GUzJ1FATAkcrLMOjoh1v1
|
||||||
|
K6auqOQZ8f+ns+3bQ4G96rZxwwrSzI/leUFY4u/lzjLUlEuLALJquPrB6RiwzTwb
|
||||||
|
BOaTYG6mgWORWPBupjpj67cCAwEAAaOB/zCB/DAOBgNVHQ8BAf8EBAMCBaAwHQYD
|
||||||
|
VR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwKQYDVR0O
|
||||||
|
BCIEIMdKDLFiWvROUmnmDVing8S3lLisBr+vfrrM+A0t3yycMCsGA1UdIwQkMCKA
|
||||||
|
IP975meSb3EpXKsmjV4K0GeRTl5WfR72K/cfk267NzMeMGUGA1UdEQReMFyCKmNs
|
||||||
|
dXN0ZXIudGVzdHMubm9kZS1ldmVudHN0b3JlLWNsaWVudC5sb2NhbIIobm9kZTMu
|
||||||
|
dGVzdHMubm9kZS1ldmVudHN0b3JlLWNsaWVudC5sb2NhbIcEwKghDDANBgkqhkiG
|
||||||
|
9w0BAQsFAAOCAQEAEJmQloXSfxqWGIdGFi7UFDNr3oTxuQsEJRztKzA1rRPbvFhp
|
||||||
|
jJ1uPZKRv0SBnmaQa6+PW1zphP+kklmMq9XqiFqq7D7FmYgr2err08DbQfMxyEhG
|
||||||
|
yHmaBFzEyI/rm8jRn3K5DMV6cDCB3jTn5eud3oVVAZwTsLcR3mB2UpSJ7lAJgRFs
|
||||||
|
5pfFFgHKCQ4YQcFIkNtMeda7KpVv4YxoltJMSISDGvo4fcNhCH62H6/PDJFBi/e9
|
||||||
|
L4vB7eZHaO//8UQQxV24VSDLDBP1MQ4ucLZEVam9HQj4qK+DiwDlH6WmQs22FqqE
|
||||||
|
i7aLjEEu9Ko2zG7hzTp1jxDfyPw5iByax1JdXw==
|
||||||
|
-----END CERTIFICATE-----
|
27
certs/node3/node3.key
Normal file
27
certs/node3/node3.key
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIIEpAIBAAKCAQEA3yJehZmOPE6okktMeYc7Lz2VuTakGj9xruo9n9YL4jnYDguD
|
||||||
|
Dnz87u1X9EcXJqhfyVLaEBUyVF9OhSqPsgsBUF4Xe3zbtbSq21u/7B2fG8haqmrU
|
||||||
|
d21XnGAshRdvKJBIj3tOCfvMMk6+bjWwdXTGw9YqWuK2WIMHJeUYw5pvNXnfLFrV
|
||||||
|
zRxTZs/mfudz3BYo4fTc5TrioKPowlN2Lfml4oOFoBxG0aavlmCBQI/if0ZTMnUU
|
||||||
|
BMCRyssw6OiHW/Urpq6o5Bnx/6ez7dtDgb3qtnHDCtLMj+V5QVji7+XOMtSUS4sA
|
||||||
|
smq4+sHpGLDNPBsE5pNgbqaBY5FY8G6mOmPrtwIDAQABAoIBADk571QEVd5RrhoX
|
||||||
|
Bb4FWMB84vFleiDhNJ7PpI5hrxqOC0NO4IXOuG/unygfM2jOtgJEJXkKdqX8635r
|
||||||
|
s/7No8Cg4RTiqNapR0iK92XvEudlMxuR2nvmpxmL8N8Ra4jTuEhUL2eQFIaye1R4
|
||||||
|
oJD/Khr/yk0U5/87W5H0d61y5iKobF87QbI9xxkBGGQygsvoEni4sHchN1se/Ha8
|
||||||
|
y9nb6B/9sYU8lfSSaRhS/sqpH/ppnptWr1hwxj6jxI21uMB+cWN+rs8j1F0Zizex
|
||||||
|
+TTDqhyuYoqh1x2J9UFCjipiKVnA1563eFmtQZk2nrNdjvN6K9qWa0iF8IgTGvdh
|
||||||
|
m+9NNEECgYEA6sYqugSzeVCqBqHKAQKESsO6XOQjwkDZQhgeDG8Sal5RArlNsup6
|
||||||
|
hh/ZONPCL/6zxz5oKEyxzsTg4tJI9F3uqkpF5rcM1UGCc3maywXmLUd70NuTWM2G
|
||||||
|
hz+R4IhKyuQsFhWzFRBh10rorSvjIflkKiviZp+lNiDp1UnY0pOhxWUCgYEA807M
|
||||||
|
i60fuTTZsvGKhExORHUOnfs3USst1zHODDAaQYyjUYJP7ix/azf1ciHeeNCZ9rzF
|
||||||
|
9xBlDKChRSvKPnU0K07C49a+WI4rdgw8zS+8dqKdvaczPas0InPzXs+oW/O6I86I
|
||||||
|
ANEanw9fgrAPEL4/8TLMLhjTV3msdrJ04KzVWOsCgYEAtc9Ax01cr1YIVZp1FNMe
|
||||||
|
H8fzSnxiNMyDcuu6WWaqnDTuB234/dUXjUacsaVLfF+CWYm6n3rFN5q/jOfMF3Gm
|
||||||
|
obli6IhZJ8zTeRlzBkZLOkVhXRytvtdqltJj5b2mLfkFKxUi2e0V1+PqzDBwdJ7t
|
||||||
|
MrtJWK/JAWH7s3C8uFYbsQECgYEAsxD2d4H1zA/6fLlKEa47GCTymhCumJ1nwm4U
|
||||||
|
UGICoOWJuU5n10mGiXmIufP1UQNtnOs342p8hDugFVFyKl+GAq2Xv6lnM7OGhv3g
|
||||||
|
rb6JPOLXpyHsE2HyH70oi0nXhb0t7HZvH/LFXfUpfPxoShFK7BBPt0lsGYAiDsWu
|
||||||
|
QUDST/sCgYAVljJlvlEx8C8HmBrSeeh+Zec9t9HDjl04jNAwenY4x5hD1l1u2ij5
|
||||||
|
OJqVodZd1s/To7Dm9Xc6w7r6c9x8xsok4Kc3izc/KQXlxPvRnxF76J4KsMw8kEU1
|
||||||
|
LnQN+igffijohdln2Q8cQnEZylM1N4e+sNat5ufEzTk7MBn1676aHA==
|
||||||
|
-----END RSA PRIVATE KEY-----
|
|
@ -1,147 +1,134 @@
|
||||||
version: '3.4'
|
version: '3.7'
|
||||||
|
|
||||||
services:
|
services:
|
||||||
eventstore.db:
|
eventstore1:
|
||||||
image: eventstore/eventstore:release-5.0.8
|
image: eventstore/eventstore:20.10.5-buster-slim
|
||||||
environment:
|
environment:
|
||||||
- EVENTSTORE_WORKER_THREADS=5
|
|
||||||
- EVENTSTORE_CLUSTER_SIZE=3
|
- EVENTSTORE_CLUSTER_SIZE=3
|
||||||
|
- EVENTSTORE_CLUSTER_DNS=cluster.tests.node-eventstore-client.local
|
||||||
|
- EVENTSTORE_ADVERTISE_HOST_TO_CLIENT_AS=node1.tests.node-eventstore-client.local
|
||||||
|
- EVENTSTORE_ADVERTISE_HTTP_PORT_TO_CLIENT_AS=2113
|
||||||
|
- EVENTSTORE_ADVERTISE_TCP_PORT_TO_CLIENT_AS=1113
|
||||||
|
# - EVENTSTORE_DISCOVER_VIA_DNS=False
|
||||||
|
# - EVENTSTORE_GOSSIP_SEED=192.168.33.10:2113,192.168.33.11:2113,192.168.33.12:2113
|
||||||
- EVENTSTORE_RUN_PROJECTIONS=All
|
- EVENTSTORE_RUN_PROJECTIONS=All
|
||||||
- EVENTSTORE_DB=/var/lib/eventstore-data
|
- EVENTSTORE_START_STANDARD_PROJECTIONS=True
|
||||||
- EVENTSTORE_INDEX=/var/lib/eventstore-index
|
- EVENTSTORE_ENABLE_EXTERNAL_TCP=true
|
||||||
- EVENTSTORE_LOG=/var/log/eventstore
|
|
||||||
- EVENTSTORE_CLUSTER_GOSSIP_PORT=2112
|
|
||||||
- EVENTSTORE_INT_TCP_PORT=1112
|
|
||||||
- EVENTSTORE_EXT_TCP_PORT=1113
|
- EVENTSTORE_EXT_TCP_PORT=1113
|
||||||
- EVENTSTORE_INT_HTTP_PORT=2112
|
- EVENTSTORE_HTTP_PORT=2113
|
||||||
- EVENTSTORE_EXT_HTTP_PORT=2113
|
|
||||||
- EVENTSTORE_DISCOVER_VIA_DNS=true
|
|
||||||
- EVENTSTORE_CLUSTER_DNS=eventstore.local
|
|
||||||
- EVENTSTORE_INT_IP=192.168.33.10
|
- EVENTSTORE_INT_IP=192.168.33.10
|
||||||
- EVENTSTORE_EXT_IP=192.168.33.10
|
- EVENTSTORE_EXT_IP=192.168.33.10
|
||||||
|
- EVENTSTORE_CERTIFICATE_FILE=/etc/eventstore/certs/node1/node1.crt
|
||||||
|
- EVENTSTORE_CERTIFICATE_PRIVATE_KEY_FILE=/etc/eventstore/certs/node1/node1.key
|
||||||
|
- EVENTSTORE_TRUSTED_ROOT_CERTIFICATES_PATH=/etc/eventstore/certs/ca
|
||||||
|
expose:
|
||||||
|
- "1112"
|
||||||
|
- "1113"
|
||||||
|
- "2113"
|
||||||
ports:
|
ports:
|
||||||
- "1112:1112"
|
- "1112:1112"
|
||||||
- "1113:1113"
|
- "1113:1113"
|
||||||
- "2112:2112"
|
|
||||||
- "2113:2113"
|
- "2113:2113"
|
||||||
networks:
|
networks:
|
||||||
app_net:
|
app_net:
|
||||||
aliases:
|
aliases:
|
||||||
- eventstore.local
|
- cluster.tests.node-eventstore-client.local
|
||||||
|
- node1.tests.node-eventstore-client.local
|
||||||
ipv4_address: 192.168.33.10
|
ipv4_address: 192.168.33.10
|
||||||
volumes:
|
volumes:
|
||||||
- type: volume
|
- eventstore1-data:/var/lib/eventstore
|
||||||
source: eventstore-volume-data
|
- ./certs:/etc/eventstore/certs:ro
|
||||||
target: /var/lib/eventstore-data
|
|
||||||
- type: volume
|
|
||||||
source: eventstore-volume-index
|
|
||||||
target: /var/lib/eventstore-index
|
|
||||||
- type: volume
|
|
||||||
source: eventstore-volume-logs
|
|
||||||
target: /var/log/eventstore
|
|
||||||
|
|
||||||
eventstore.db2:
|
eventstore2:
|
||||||
image: eventstore/eventstore:release-5.0.8
|
image: eventstore/eventstore:20.10.5-buster-slim
|
||||||
environment:
|
environment:
|
||||||
- EVENTSTORE_WORKER_THREADS=5
|
|
||||||
- EVENTSTORE_CLUSTER_SIZE=3
|
- EVENTSTORE_CLUSTER_SIZE=3
|
||||||
|
- EVENTSTORE_CLUSTER_DNS=cluster.tests.node-eventstore-client.local
|
||||||
|
- EVENTSTORE_ADVERTISE_HOST_TO_CLIENT_AS=node2.tests.node-eventstore-client.local
|
||||||
|
- EVENTSTORE_ADVERTISE_HTTP_PORT_TO_CLIENT_AS=2113
|
||||||
|
- EVENTSTORE_ADVERTISE_TCP_PORT_TO_CLIENT_AS=1113
|
||||||
|
# - EVENTSTORE_DISCOVER_VIA_DNS=False
|
||||||
|
# - EVENTSTORE_GOSSIP_SEED=192.168.33.10:2113,192.168.33.11:2113,192.168.33.12:2113
|
||||||
- EVENTSTORE_RUN_PROJECTIONS=All
|
- EVENTSTORE_RUN_PROJECTIONS=All
|
||||||
- EVENTSTORE_DB=/var/lib/eventstore-data
|
- EVENTSTORE_START_STANDARD_PROJECTIONS=True
|
||||||
- EVENTSTORE_INDEX=/var/lib/eventstore-index
|
- EVENTSTORE_ENABLE_EXTERNAL_TCP=true
|
||||||
- EVENTSTORE_LOG=/var/log/eventstore
|
|
||||||
- EVENTSTORE_CLUSTER_GOSSIP_PORT=2112
|
|
||||||
- EVENTSTORE_INT_TCP_PORT=1112
|
|
||||||
- EVENTSTORE_EXT_TCP_PORT=1113
|
- EVENTSTORE_EXT_TCP_PORT=1113
|
||||||
- EVENTSTORE_INT_HTTP_PORT=2112
|
- EVENTSTORE_HTTP_PORT=2113
|
||||||
- EVENTSTORE_EXT_HTTP_PORT=2113
|
|
||||||
- EVENTSTORE_DISCOVER_VIA_DNS=true
|
|
||||||
- EVENTSTORE_CLUSTER_DNS=eventstore.local
|
|
||||||
- EVENTSTORE_INT_IP=192.168.33.11
|
- EVENTSTORE_INT_IP=192.168.33.11
|
||||||
- EVENTSTORE_EXT_IP=192.168.33.11
|
- EVENTSTORE_EXT_IP=192.168.33.11
|
||||||
|
- EVENTSTORE_CERTIFICATE_FILE=/etc/eventstore/certs/node2/node2.crt
|
||||||
|
- EVENTSTORE_CERTIFICATE_PRIVATE_KEY_FILE=/etc/eventstore/certs/node2/node2.key
|
||||||
|
- EVENTSTORE_TRUSTED_ROOT_CERTIFICATES_PATH=/etc/eventstore/certs/ca
|
||||||
expose:
|
expose:
|
||||||
- "1113"
|
- "1113"
|
||||||
- "1112"
|
- "1112"
|
||||||
- "2112"
|
|
||||||
- "2113"
|
- "2113"
|
||||||
networks:
|
networks:
|
||||||
app_net:
|
app_net:
|
||||||
aliases:
|
aliases:
|
||||||
- eventstore.local
|
- cluster.tests.node-eventstore-client.local
|
||||||
|
- node2.tests.node-eventstore-client.local
|
||||||
ipv4_address: 192.168.33.11
|
ipv4_address: 192.168.33.11
|
||||||
volumes:
|
volumes:
|
||||||
- type: volume
|
- eventstore2-data:/var/lib/eventstore
|
||||||
source: eventstore-volume-data2
|
- ./certs:/etc/eventstore/certs:ro
|
||||||
target: /var/lib/eventstore-data
|
|
||||||
- type: volume
|
|
||||||
source: eventstore-volume-index2
|
|
||||||
target: /var/lib/eventstore-index
|
|
||||||
- type: volume
|
|
||||||
source: eventstore-volume-logs2
|
|
||||||
target: /var/log/eventstore
|
|
||||||
|
|
||||||
eventstore.db3:
|
eventstore3:
|
||||||
image: eventstore/eventstore:release-5.0.8
|
image: eventstore/eventstore:20.10.5-buster-slim
|
||||||
environment:
|
environment:
|
||||||
- EVENTSTORE_WORKER_THREADS=5
|
|
||||||
- EVENTSTORE_CLUSTER_SIZE=3
|
- EVENTSTORE_CLUSTER_SIZE=3
|
||||||
|
- EVENTSTORE_CLUSTER_DNS=cluster.tests.node-eventstore-client.local
|
||||||
|
- EVENTSTORE_ADVERTISE_HOST_TO_CLIENT_AS=node3.tests.node-eventstore-client.local
|
||||||
|
- EVENTSTORE_ADVERTISE_HTTP_PORT_TO_CLIENT_AS=2113
|
||||||
|
- EVENTSTORE_ADVERTISE_TCP_PORT_TO_CLIENT_AS=1113
|
||||||
|
# - EVENTSTORE_DISCOVER_VIA_DNS=False
|
||||||
|
# - EVENTSTORE_GOSSIP_SEED=192.168.33.10:2113,192.168.33.11:2113,192.168.33.12:2113
|
||||||
- EVENTSTORE_RUN_PROJECTIONS=All
|
- EVENTSTORE_RUN_PROJECTIONS=All
|
||||||
- EVENTSTORE_DB=/var/lib/eventstore-data
|
- EVENTSTORE_START_STANDARD_PROJECTIONS=True
|
||||||
- EVENTSTORE_INDEX=/var/lib/eventstore-index
|
- EVENTSTORE_ENABLE_EXTERNAL_TCP=true
|
||||||
- EVENTSTORE_LOG=/var/log/eventstore
|
|
||||||
- EVENTSTORE_CLUSTER_GOSSIP_PORT=2112
|
|
||||||
- EVENTSTORE_INT_TCP_PORT=1112
|
|
||||||
- EVENTSTORE_EXT_TCP_PORT=1113
|
- EVENTSTORE_EXT_TCP_PORT=1113
|
||||||
- EVENTSTORE_INT_HTTP_PORT=2112
|
- EVENTSTORE_HTTP_PORT=2113
|
||||||
- EVENTSTORE_EXT_HTTP_PORT=2113
|
|
||||||
- EVENTSTORE_DISCOVER_VIA_DNS=true
|
|
||||||
- EVENTSTORE_CLUSTER_DNS=eventstore.local
|
|
||||||
- EVENTSTORE_INT_IP=192.168.33.12
|
- EVENTSTORE_INT_IP=192.168.33.12
|
||||||
- EVENTSTORE_EXT_IP=192.168.33.12
|
- EVENTSTORE_EXT_IP=192.168.33.12
|
||||||
|
- EVENTSTORE_CERTIFICATE_FILE=/etc/eventstore/certs/node3/node3.crt
|
||||||
|
- EVENTSTORE_CERTIFICATE_PRIVATE_KEY_FILE=/etc/eventstore/certs/node3/node3.key
|
||||||
|
- EVENTSTORE_TRUSTED_ROOT_CERTIFICATES_PATH=/etc/eventstore/certs/ca
|
||||||
expose:
|
expose:
|
||||||
- "1113"
|
- "1113"
|
||||||
- "1112"
|
- "1112"
|
||||||
- "2112"
|
|
||||||
- "2113"
|
- "2113"
|
||||||
networks:
|
networks:
|
||||||
app_net:
|
app_net:
|
||||||
aliases:
|
aliases:
|
||||||
- eventstore.local
|
- cluster.tests.node-eventstore-client.local
|
||||||
|
- node3.tests.node-eventstore-client.local
|
||||||
ipv4_address: 192.168.33.12
|
ipv4_address: 192.168.33.12
|
||||||
volumes:
|
volumes:
|
||||||
- type: volume
|
- eventstore3-data:/var/lib/eventstore-data
|
||||||
source: eventstore-volume-data3
|
- ./certs:/etc/eventstore/certs:ro
|
||||||
target: /var/lib/eventstore-data
|
|
||||||
- type: volume
|
|
||||||
source: eventstore-volume-index3
|
|
||||||
target: /var/lib/eventstore-index
|
|
||||||
- type: volume
|
|
||||||
source: eventstore-volume-logs3
|
|
||||||
target: /var/log/eventstore
|
|
||||||
|
|
||||||
nodejs:
|
nodejs:
|
||||||
image: node:14
|
image: node:14
|
||||||
working_dir: /var/code
|
working_dir: /var/build
|
||||||
volumes:
|
volumes:
|
||||||
- .:/var/code
|
- ./:/var/code:ro
|
||||||
- /var/code/node_modules
|
- ./build-and-test.sh:/var/build/build-and-test.sh:ro
|
||||||
|
- ./certs:/var/certs:ro
|
||||||
|
environment:
|
||||||
|
- NODE_EXTRA_CA_CERTS=/var/certs/ca/ca.crt
|
||||||
command: bash -c "tail -f /dev/null"
|
command: bash -c "tail -f /dev/null"
|
||||||
networks:
|
networks:
|
||||||
- app_net
|
app_net:
|
||||||
|
ipv4_address: 192.168.33.5
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
eventstore-volume-data:
|
eventstore1-data:
|
||||||
eventstore-volume-index:
|
eventstore2-data:
|
||||||
eventstore-volume-logs:
|
eventstore3-data:
|
||||||
eventstore-volume-data2:
|
|
||||||
eventstore-volume-index2:
|
|
||||||
eventstore-volume-logs2:
|
|
||||||
eventstore-volume-data3:
|
|
||||||
eventstore-volume-index3:
|
|
||||||
eventstore-volume-logs3:
|
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
app_net:
|
app_net:
|
||||||
ipam:
|
ipam:
|
||||||
driver: default
|
driver: default
|
||||||
config:
|
config:
|
||||||
- subnet: "192.168.33.0/24"
|
- subnet: "192.168.33.0/24"
|
||||||
|
|
|
@ -1,54 +1,54 @@
|
||||||
version: '3.4'
|
version: '3.4'
|
||||||
|
|
||||||
services:
|
services:
|
||||||
eventstore.db:
|
eventstore:
|
||||||
image: eventstore/eventstore:release-5.0.8
|
image: eventstore/eventstore:20.10.5-buster-slim
|
||||||
environment:
|
environment:
|
||||||
- EVENTSTORE_CLUSTER_SIZE=1
|
- EVENTSTORE_CLUSTER_SIZE=1
|
||||||
- EVENTSTORE_RUN_PROJECTIONS=All
|
- EVENTSTORE_RUN_PROJECTIONS=All
|
||||||
- EVENTSTORE_START_STANDARD_PROJECTIONS=True
|
- EVENTSTORE_START_STANDARD_PROJECTIONS=True
|
||||||
- EVENTSTORE_DB=/var/lib/eventstore-data
|
- EVENTSTORE_ENABLE_EXTERNAL_TCP=true
|
||||||
- EVENTSTORE_INDEX=/var/lib/eventstore-index
|
|
||||||
- EVENTSTORE_LOG=/var/log/eventstore
|
|
||||||
- EVENTSTORE_EXT_TCP_PORT=1113
|
- EVENTSTORE_EXT_TCP_PORT=1113
|
||||||
- EVENTSTORE_EXT_HTTP_PORT=2113
|
- EVENTSTORE_HTTP_PORT=2113
|
||||||
- EVENTSTORE_INT_IP=192.168.33.10
|
- EVENTSTORE_INT_IP=192.168.33.10
|
||||||
- EVENTSTORE_EXT_IP=192.168.33.10
|
- EVENTSTORE_EXT_IP=192.168.33.10
|
||||||
|
- EVENTSTORE_CERTIFICATE_FILE=/etc/eventstore/certs/node1/node1.crt
|
||||||
|
- EVENTSTORE_CERTIFICATE_PRIVATE_KEY_FILE=/etc/eventstore/certs/node1/node1.key
|
||||||
|
- EVENTSTORE_TRUSTED_ROOT_CERTIFICATES_PATH=/etc/eventstore/certs/ca
|
||||||
ports:
|
ports:
|
||||||
- "1113:1113"
|
- "1113:1113"
|
||||||
- "2113:2113"
|
- "2113:2113"
|
||||||
|
tmpfs:
|
||||||
|
- /var/log/eventstore
|
||||||
volumes:
|
volumes:
|
||||||
- type: volume
|
- eventstore-data:/var/lib/eventstore
|
||||||
source: eventstore-volume-data
|
- ./certs:/etc/eventstore/certs:ro
|
||||||
target: /var/lib/eventstore-data
|
|
||||||
- type: volume
|
|
||||||
source: eventstore-volume-index
|
|
||||||
target: /var/lib/eventstore-index
|
|
||||||
- type: volume
|
|
||||||
source: eventstore-volume-logs
|
|
||||||
target: /var/log/eventstore
|
|
||||||
networks:
|
networks:
|
||||||
app_net:
|
app_net:
|
||||||
|
aliases:
|
||||||
|
- node1.tests.node-eventstore-client.local
|
||||||
ipv4_address: 192.168.33.10
|
ipv4_address: 192.168.33.10
|
||||||
|
|
||||||
nodejs:
|
nodejs:
|
||||||
image: node:14
|
image: node:14
|
||||||
working_dir: /var/code
|
working_dir: /var/build
|
||||||
volumes:
|
volumes:
|
||||||
- .:/var/code
|
- ./:/var/code:ro
|
||||||
- /var/code/node_modules
|
- ./build-and-test.sh:/var/build/build-and-test.sh:ro
|
||||||
|
- ./certs:/var/certs:ro
|
||||||
|
environment:
|
||||||
|
- NODE_EXTRA_CA_CERTS=/var/certs/ca/ca.crt
|
||||||
command: bash -c "tail -f /dev/null"
|
command: bash -c "tail -f /dev/null"
|
||||||
networks:
|
networks:
|
||||||
- app_net
|
app_net:
|
||||||
|
ipv4_address: 192.168.33.5
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
eventstore-volume-data:
|
eventstore-data:
|
||||||
eventstore-volume-index:
|
|
||||||
eventstore-volume-logs:
|
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
app_net:
|
app_net:
|
||||||
ipam:
|
ipam:
|
||||||
driver: default
|
driver: default
|
||||||
config:
|
config:
|
||||||
- subnet: "192.168.33.0/24"
|
- subnet: "192.168.33.0/24"
|
||||||
|
|
9848
package-lock.json
generated
9848
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
21
package.json
21
package.json
|
@ -1,17 +1,18 @@
|
||||||
{
|
{
|
||||||
"name": "node-eventstore-client",
|
"name": "node-eventstore-client",
|
||||||
"version": "0.2.17",
|
"version": "20.10.0",
|
||||||
"description": "A port of the EventStore .Net ClientAPI to Node.js",
|
"description": "A port of the EventStore .Net ClientAPI to Node.js",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"types": "index.d.ts",
|
"types": "index.d.ts",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=5.10"
|
"node": ">=14",
|
||||||
|
"npm": ">=6"
|
||||||
},
|
},
|
||||||
"engineStrict": true,
|
"engineStrict": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"clean": "rm -f lib/dist.js",
|
"clean": "rm -f lib/dist.js",
|
||||||
"prebuild": "npm run clean",
|
"prebuild": "npm run clean",
|
||||||
"build": "webpack -o ./lib/dist.js",
|
"build": "webpack",
|
||||||
"pretest": "npm run build",
|
"pretest": "npm run build",
|
||||||
"test": "nodeunit",
|
"test": "nodeunit",
|
||||||
"test-debug": "TESTS_VERBOSE_LOGGING=1 nodeunit",
|
"test-debug": "TESTS_VERBOSE_LOGGING=1 nodeunit",
|
||||||
|
@ -23,10 +24,10 @@
|
||||||
"compose:cluster:start": "docker-compose -f docker-compose-cluster.yaml up --build -d",
|
"compose:cluster:start": "docker-compose -f docker-compose-cluster.yaml up --build -d",
|
||||||
"compose:single:stop": "docker-compose -f docker-compose-single.yaml down -v --remove-orphans",
|
"compose:single:stop": "docker-compose -f docker-compose-single.yaml down -v --remove-orphans",
|
||||||
"compose:cluster:stop": "docker-compose -f docker-compose-cluster.yaml down -v --remove-orphans",
|
"compose:cluster:stop": "docker-compose -f docker-compose-cluster.yaml down -v --remove-orphans",
|
||||||
"compose:wait": "while [[ \"$(curl -s -o /dev/null -w ''%{http_code}'' localhost:2113/ping)\" != \"200\" ]]; do sleep 5; done",
|
"compose:wait": "while [ \"$(curl -s -o /dev/null -w ''%{http_code}'' -k https://localhost:2113/ping)\" != \"200\" ]; do sleep 5; done",
|
||||||
"compose:single:test": "docker-compose -f docker-compose-single.yaml exec nodejs bash -c \"npm i && npm run build && EVENTSTORE_CONNECTION_TYPE=tcp EVENTSTORE_HOST=192.168.33.10 npm run test-debug\"",
|
"compose:single:test": "docker-compose -f docker-compose-single.yaml exec nodejs bash -c \"EVENTSTORE_CONNECTION_TYPE=tcp EVENTSTORE_HOST=192.168.33.10 ./build-and-test.sh\"",
|
||||||
"compose:cluster:test": "docker-compose -f docker-compose-cluster.yaml exec nodejs bash -c \"npm i && npm run build && EVENTSTORE_CONNECTION_TYPE=gossip EVENTSTORE_HOST=192.168.33.10 EVENTSTORE_HOST_1=192.168.33.10 EVENTSTORE_HOST_2=192.168.33.11 EVENTSTORE_HOST_3=192.168.33.12 npm run test-debug\"",
|
"compose:gossip:test": "docker-compose -f docker-compose-cluster.yaml exec nodejs bash -c \"EVENTSTORE_CONNECTION_TYPE=gossip EVENTSTORE_HOST=192.168.33.10 EVENTSTORE_HOST_1=192.168.33.10 EVENTSTORE_HOST_2=192.168.33.11 EVENTSTORE_HOST_3=192.168.33.12 ./build-and-test.sh\"",
|
||||||
"compose:gossip:test": "docker-compose -f docker-compose-cluster.yaml exec nodejs bash -c \"npm i && npm run build && EVENTSTORE_CONNECTION_TYPE=dns EVENTSTORE_HOST=192.168.33.10 npm run test-debug\"",
|
"compose:cluster:test": "docker-compose -f docker-compose-cluster.yaml exec nodejs bash -c \"EVENTSTORE_CONNECTION_TYPE=dns EVENTSTORE_HOST=cluster.tests.node-eventstore-client.local ./build-and-test.sh\"",
|
||||||
"prepublishOnly": "npm run build && npm run gendocs",
|
"prepublishOnly": "npm run build && npm run gendocs",
|
||||||
"gendocs": "rm -rf docs && jsdoc src -r -d docs"
|
"gendocs": "rm -rf docs && jsdoc src -r -d docs"
|
||||||
},
|
},
|
||||||
|
@ -66,10 +67,10 @@
|
||||||
"uuid": "^3.0.1"
|
"uuid": "^3.0.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"jest": "^26.4.2",
|
"jest": "^29.4.1",
|
||||||
"jsdoc": "^3.6.3",
|
"jsdoc": "^4.0.0",
|
||||||
"nodeunit": "^0.11.3",
|
"nodeunit": "^0.11.3",
|
||||||
"webpack": "^4.41.2",
|
"webpack": "^5.75.0",
|
||||||
"webpack-cli": "^3.3.10"
|
"webpack-cli": "^3.3.10"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -78,7 +78,7 @@ ClusterDiscoverer.prototype._getGossipCandidates = async function (managerExtern
|
||||||
this._settings.seeds && this._settings.seeds.length > 0
|
this._settings.seeds && this._settings.seeds.length > 0
|
||||||
? this._settings.seeds
|
? this._settings.seeds
|
||||||
: (await this._resolveDns(this._settings.clusterDns)).map(
|
: (await this._resolveDns(this._settings.clusterDns)).map(
|
||||||
(address) => new GossipSeed({ host: address, port: managerExternalHttpPort }, undefined)
|
(address) => new GossipSeed({ host: address, port: managerExternalHttpPort }, address, this._settings.clusterDns)
|
||||||
);
|
);
|
||||||
return shuffle(gossipSeeds);
|
return shuffle(gossipSeeds);
|
||||||
};
|
};
|
||||||
|
@ -109,12 +109,14 @@ ClusterDiscoverer.prototype._resolveDns = async function (clusterDns) {
|
||||||
* @returns {Promise.<ClusterInfo>}
|
* @returns {Promise.<ClusterInfo>}
|
||||||
*/
|
*/
|
||||||
ClusterDiscoverer.prototype._clusterInfo = async function (candidate, timeout) {
|
ClusterDiscoverer.prototype._clusterInfo = async function (candidate, timeout) {
|
||||||
|
var self = this;
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
const options = {
|
const options = {
|
||||||
host: candidate.endPoint.host,
|
host: candidate.endPoint.host,
|
||||||
port: candidate.endPoint.port,
|
port: candidate.endPoint.port,
|
||||||
path: '/gossip?format=json',
|
path: '/gossip?format=json',
|
||||||
timeout: timeout,
|
timeout: timeout,
|
||||||
|
rejectUnauthorized: self._settings.rejectUnauthorized
|
||||||
};
|
};
|
||||||
if (candidate.hostHeader) {
|
if (candidate.hostHeader) {
|
||||||
options.headers = {
|
options.headers = {
|
||||||
|
|
|
@ -2,16 +2,26 @@ const MemberInfo = require('./memberInfo.js');
|
||||||
|
|
||||||
const VNodeStates = Object.freeze({
|
const VNodeStates = Object.freeze({
|
||||||
Initializing: 0,
|
Initializing: 0,
|
||||||
Unknown: 1,
|
DiscoverLeader: 1,
|
||||||
PreReplica: 2,
|
Unknown: 2,
|
||||||
CatchingUp: 3,
|
PreReplica: 3,
|
||||||
Clone: 4,
|
CatchingUp: 4,
|
||||||
Slave: 5,
|
Clone: 5,
|
||||||
PreMaster: 6,
|
Follower: 6,
|
||||||
Master: 7,
|
Slave: 6,
|
||||||
Manager: 8,
|
PreLeader: 7,
|
||||||
ShuttingDown: 9,
|
PreMaster: 7,
|
||||||
Shutdown: 10
|
Leader: 8,
|
||||||
|
Master: 8,
|
||||||
|
Manager: 9,
|
||||||
|
ShuttingDown: 10,
|
||||||
|
Shutdown: 11,
|
||||||
|
ReadOnlyLeaderless: 12,
|
||||||
|
ReadOnlyMasterless: 12,
|
||||||
|
PreReadOnlyReplica: 13,
|
||||||
|
ReadOnlyReplica: 14,
|
||||||
|
ResigningLeader: 15,
|
||||||
|
ResigningMaster: 15,
|
||||||
});
|
});
|
||||||
|
|
||||||
function ClusterInfo(members) {
|
function ClusterInfo(members) {
|
||||||
|
@ -27,10 +37,10 @@ function ClusterInfo(members) {
|
||||||
|
|
||||||
ClusterInfo.prototype._getBestNode = function () {
|
ClusterInfo.prototype._getBestNode = function () {
|
||||||
return this._members
|
return this._members
|
||||||
.filter(member => member.isAlive && member.isAllowedToConnect)
|
.filter(member => member.isAlive && member.isAllowedToConnect && VNodeStates[member.state] <= VNodeStates.Master)
|
||||||
.sort(function (a, b) {
|
.sort(function (a, b) {
|
||||||
return VNodeStates[b.state] - VNodeStates[a.state];
|
return VNodeStates[b.state] - VNodeStates[a.state];
|
||||||
})[0];
|
})[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = ClusterInfo;
|
module.exports = ClusterInfo;
|
||||||
|
|
|
@ -6,6 +6,7 @@ var ensure = require('./common/utils/ensure');
|
||||||
|
|
||||||
const util = require('util');
|
const util = require('util');
|
||||||
const http = require('http');
|
const http = require('http');
|
||||||
|
const https = require('https');
|
||||||
const dns = require('dns');
|
const dns = require('dns');
|
||||||
|
|
||||||
const dnsService = {
|
const dnsService = {
|
||||||
|
@ -95,13 +96,14 @@ function createFromClusterDns(connectionSettings, clusterDns, externalGossipPort
|
||||||
managerExternalHttpPort: externalGossipPort,
|
managerExternalHttpPort: externalGossipPort,
|
||||||
maxDiscoverAttempts: mergedSettings.maxDiscoverAttempts,
|
maxDiscoverAttempts: mergedSettings.maxDiscoverAttempts,
|
||||||
discoverDelay: mergedSettings.discoverDelay,
|
discoverDelay: mergedSettings.discoverDelay,
|
||||||
gossipTimeout: mergedSettings.gossipTimeout
|
gossipTimeout: mergedSettings.gossipTimeout,
|
||||||
|
rejectUnauthorized: connectionSettings.useSslConnection ? connectionSettings.validateServer : undefined
|
||||||
};
|
};
|
||||||
var endPointDiscoverer = new ClusterDiscoverer(
|
var endPointDiscoverer = new ClusterDiscoverer(
|
||||||
mergedSettings.log,
|
mergedSettings.log,
|
||||||
clusterSettings,
|
clusterSettings,
|
||||||
dnsService,
|
dnsService,
|
||||||
http
|
connectionSettings.useSslConnection ? https : http
|
||||||
);
|
);
|
||||||
return new EventStoreNodeConnection(mergedSettings, clusterSettings, endPointDiscoverer, connectionName);
|
return new EventStoreNodeConnection(mergedSettings, clusterSettings, endPointDiscoverer, connectionName);
|
||||||
}
|
}
|
||||||
|
@ -116,13 +118,14 @@ function createFromGossipSeeds(connectionSettings, gossipSeeds, connectionName)
|
||||||
externalGossipPort: 0,
|
externalGossipPort: 0,
|
||||||
maxDiscoverAttempts: mergedSettings.maxDiscoverAttempts,
|
maxDiscoverAttempts: mergedSettings.maxDiscoverAttempts,
|
||||||
discoverDelay: mergedSettings.discoverDelay,
|
discoverDelay: mergedSettings.discoverDelay,
|
||||||
gossipTimeout: mergedSettings.gossipTimeout
|
gossipTimeout: mergedSettings.gossipTimeout,
|
||||||
|
rejectUnauthorized: connectionSettings.useSslConnection ? connectionSettings.validateServer : undefined
|
||||||
};
|
};
|
||||||
var endPointDiscoverer = new ClusterDiscoverer(
|
var endPointDiscoverer = new ClusterDiscoverer(
|
||||||
mergedSettings.log,
|
mergedSettings.log,
|
||||||
clusterSettings,
|
clusterSettings,
|
||||||
dnsService,
|
dnsService,
|
||||||
http
|
connectionSettings.useSslConnection ? https : http
|
||||||
);
|
);
|
||||||
return new EventStoreNodeConnection(mergedSettings, clusterSettings, endPointDiscoverer, connectionName);
|
return new EventStoreNodeConnection(mergedSettings, clusterSettings, endPointDiscoverer, connectionName);
|
||||||
}
|
}
|
||||||
|
@ -162,4 +165,4 @@ module.exports.create = function(settings, endPointOrGossipSeeds, connectionName
|
||||||
if (typeof endPointOrGossipSeeds === 'object') return createFromTcpEndpoint(settings, endPointOrGossipSeeds, connectionName);
|
if (typeof endPointOrGossipSeeds === 'object') return createFromTcpEndpoint(settings, endPointOrGossipSeeds, connectionName);
|
||||||
if (typeof endPointOrGossipSeeds === 'string') return createFromStringEndpoint(settings, endPointOrGossipSeeds, connectionName);
|
if (typeof endPointOrGossipSeeds === 'string') return createFromStringEndpoint(settings, endPointOrGossipSeeds, connectionName);
|
||||||
throw new TypeError('endPointOrGossipSeeds must be an object, a string or an array.');
|
throw new TypeError('endPointOrGossipSeeds must be an object, a string or an array.');
|
||||||
};
|
};
|
||||||
|
|
|
@ -15,9 +15,10 @@ function safeParseJson(json) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function ProjectionsClient(log, operationTimeout) {
|
function ProjectionsClient(log, operationTimeout, rejectUnauthorized) {
|
||||||
this._log = log;
|
this._log = log;
|
||||||
this._operationTimeout = operationTimeout;
|
this._operationTimeout = operationTimeout;
|
||||||
|
this._rejectUnauthorized = typeof rejectUnauthorized === 'undefined' ? true : !!rejectUnauthorized;
|
||||||
}
|
}
|
||||||
|
|
||||||
ProjectionsClient.prototype.enable = function(httpEndPoint, name, userCredentials) {
|
ProjectionsClient.prototype.enable = function(httpEndPoint, name, userCredentials) {
|
||||||
|
@ -118,6 +119,9 @@ ProjectionsClient.prototype.request = function(method, _url, data, userCredentia
|
||||||
if (userCredentials) {
|
if (userCredentials) {
|
||||||
options.auth = [userCredentials.username, userCredentials.password].join(':');
|
options.auth = [userCredentials.username, userCredentials.password].join(':');
|
||||||
}
|
}
|
||||||
|
if (!this._rejectUnauthorized) {
|
||||||
|
options.rejectUnauthorized = false;
|
||||||
|
}
|
||||||
var self = this;
|
var self = this;
|
||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
const timeout = setTimeout(function () {
|
const timeout = setTimeout(function () {
|
||||||
|
|
|
@ -6,12 +6,13 @@ const ProjectionsClient = require('./projectionsClient');
|
||||||
* @param {Logger} log Instance of Logger to use for logging.
|
* @param {Logger} log Instance of Logger to use for logging.
|
||||||
* @param {string} httpEndPoint HTTP endpoint of an Event Store server.
|
* @param {string} httpEndPoint HTTP endpoint of an Event Store server.
|
||||||
* @param {number} operationTimeout Operation timeout in milliseconds.
|
* @param {number} operationTimeout Operation timeout in milliseconds.
|
||||||
|
* @param {boolean} [rejectUnauthorized] Reject authorized SSL certs (if using SSL) - set to false if using self-signed certs
|
||||||
* @constructor
|
* @constructor
|
||||||
*/
|
*/
|
||||||
function ProjectionsManager(log, httpEndPoint, operationTimeout) {
|
function ProjectionsManager(log, httpEndPoint, operationTimeout, rejectUnauthorized) {
|
||||||
ensure.notNull(log, "log");
|
ensure.notNull(log, "log");
|
||||||
ensure.notNull(httpEndPoint, "httpEndPoint");
|
ensure.notNull(httpEndPoint, "httpEndPoint");
|
||||||
this._client = new ProjectionsClient(log, operationTimeout);
|
this._client = new ProjectionsClient(log, operationTimeout, rejectUnauthorized);
|
||||||
this._httpEndPoint = httpEndPoint;
|
this._httpEndPoint = httpEndPoint;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -211,4 +212,4 @@ ProjectionsManager.prototype.delete = function(name, deleteEmittedStreams, delet
|
||||||
return this._client.delete(this._httpEndPoint, name, deleteEmittedStreams, deleteStateStream, deleteCheckpointStream, userCredentials);
|
return this._client.delete(this._httpEndPoint, name, deleteEmittedStreams, deleteStateStream, deleteCheckpointStream, userCredentials);
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports = ProjectionsManager;
|
module.exports = ProjectionsManager;
|
||||||
|
|
|
@ -12,6 +12,7 @@ protobufJS.configure();
|
||||||
|
|
||||||
var settings = {
|
var settings = {
|
||||||
log: new NoopLogger(),
|
log: new NoopLogger(),
|
||||||
|
useSslConnection: true,
|
||||||
};
|
};
|
||||||
if (process.env.TESTS_VERBOSE_LOGGING === '1') {
|
if (process.env.TESTS_VERBOSE_LOGGING === '1') {
|
||||||
settings.verboseLogging = true;
|
settings.verboseLogging = true;
|
||||||
|
@ -53,7 +54,7 @@ function setUpWithGossipSeeds(cb) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function setUpWithDns(cb) {
|
function setUpWithDns(cb) {
|
||||||
var clusterDns = 'discover://eventstore.local:2113';
|
var clusterDns = 'discover://' + process.env.EVENTSTORE_HOST + ':2113';
|
||||||
this.log = settings.log;
|
this.log = settings.log;
|
||||||
this.testStreamName = 'test-' + uuid.v4();
|
this.testStreamName = 'test-' + uuid.v4();
|
||||||
var connected = false;
|
var connected = false;
|
||||||
|
|
|
@ -27,7 +27,7 @@ switch(evenstStoreType){
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
conn.on('error', done);
|
conn.on('error', done);
|
||||||
|
|
||||||
function done(err) {
|
function done(err) {
|
||||||
conn.close();
|
conn.close();
|
||||||
if (err) return test.done(err);
|
if (err) return test.done(err);
|
||||||
|
@ -41,7 +41,7 @@ switch(evenstStoreType){
|
||||||
new GossipSeed({host: '1.2.3.4', port: 1113}),
|
new GossipSeed({host: '1.2.3.4', port: 1113}),
|
||||||
new GossipSeed({host: '2.3.4.5', port: 2113}),
|
new GossipSeed({host: '2.3.4.5', port: 2113}),
|
||||||
new GossipSeed({host: '3.4.5.6', port: 3113})
|
new GossipSeed({host: '3.4.5.6', port: 3113})
|
||||||
];
|
];
|
||||||
var conn = client.EventStoreConnection.create(testBase.settings({maxDiscoverAttempts: 1}), gossipSeeds);
|
var conn = client.EventStoreConnection.create(testBase.settings({maxDiscoverAttempts: 1}), gossipSeeds);
|
||||||
conn.connect()
|
conn.connect()
|
||||||
.catch(function (err) {
|
.catch(function (err) {
|
||||||
|
@ -62,7 +62,7 @@ switch(evenstStoreType){
|
||||||
case 'dns':
|
case 'dns':
|
||||||
module.exports['Connect to Cluster using dns discover'] = function (test) {
|
module.exports['Connect to Cluster using dns discover'] = function (test) {
|
||||||
test.expect(1);
|
test.expect(1);
|
||||||
var clusterDns = 'discover://eventstore.local:2113';
|
var clusterDns = 'discover://' + process.env.EVENTSTORE_HOST + ':2113';
|
||||||
var conn = client.EventStoreConnection.create(testBase.settings(), clusterDns);
|
var conn = client.EventStoreConnection.create(testBase.settings(), clusterDns);
|
||||||
conn.connect()
|
conn.connect()
|
||||||
.catch(function(err) {
|
.catch(function(err) {
|
||||||
|
@ -73,7 +73,7 @@ switch(evenstStoreType){
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
conn.on('error', done);
|
conn.on('error', done);
|
||||||
|
|
||||||
function done(err) {
|
function done(err) {
|
||||||
conn.close();
|
conn.close();
|
||||||
if (err) return test.done(err);
|
if (err) return test.done(err);
|
||||||
|
@ -83,7 +83,7 @@ switch(evenstStoreType){
|
||||||
|
|
||||||
module.exports['Connect To Cluster with bad dns discover'] = function (test) {
|
module.exports['Connect To Cluster with bad dns discover'] = function (test) {
|
||||||
test.expect(3);
|
test.expect(3);
|
||||||
var clusterDns = 'discover://eventstore-bad.local:2113';
|
var clusterDns = 'discover://abc.def.com:2113';
|
||||||
var conn = client.EventStoreConnection.create(testBase.settings({maxDiscoverAttempts: 1}), clusterDns);
|
var conn = client.EventStoreConnection.create(testBase.settings({maxDiscoverAttempts: 1}), clusterDns);
|
||||||
conn.connect()
|
conn.connect()
|
||||||
.catch(function (err) {
|
.catch(function (err) {
|
||||||
|
@ -91,6 +91,7 @@ switch(evenstStoreType){
|
||||||
});
|
});
|
||||||
conn.on('connected', function () {
|
conn.on('connected', function () {
|
||||||
test.ok(false, 'Should not be able to connect.');
|
test.ok(false, 'Should not be able to connect.');
|
||||||
|
conn.close();
|
||||||
});
|
});
|
||||||
conn.on('error', function (err) {
|
conn.on('error', function (err) {
|
||||||
test.ok(err.message.indexOf('Failed to discover candidate in 1 attempts') === 0, 'Wrong expected reason.');
|
test.ok(err.message.indexOf('Failed to discover candidate in 1 attempts') === 0, 'Wrong expected reason.');
|
||||||
|
@ -116,7 +117,7 @@ switch(evenstStoreType){
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
conn.on('error', done);
|
conn.on('error', done);
|
||||||
|
|
||||||
function done(err) {
|
function done(err) {
|
||||||
conn.close();
|
conn.close();
|
||||||
if (err) return test.done(err);
|
if (err) return test.done(err);
|
||||||
|
@ -144,7 +145,7 @@ switch(evenstStoreType){
|
||||||
test.done();
|
test.done();
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports['Create a connection with tcp://host:port string'] = function (test) {
|
module.exports['Create a connection with tcp://host:port string'] = function (test) {
|
||||||
var conn = client.createConnection({}, `tcp://${process.env.EVENTSTORE_HOST || 'localhost'}:1113`);
|
var conn = client.createConnection({}, `tcp://${process.env.EVENTSTORE_HOST || 'localhost'}:1113`);
|
||||||
conn.close();
|
conn.close();
|
||||||
|
|
|
@ -41,7 +41,7 @@ module.exports = {
|
||||||
done();
|
done();
|
||||||
}
|
}
|
||||||
var self = this;
|
var self = this;
|
||||||
this.conn.connectToPersistentSubscription(testStreamName, 'consumer-1', eventAppeared, subscriptionDropped)
|
this.conn.connectToPersistentSubscription(testStreamName, 'consumer-1', eventAppeared, subscriptionDropped, adminCredentials)
|
||||||
.then(function(subscription) {
|
.then(function(subscription) {
|
||||||
test.ok(subscription, "Subscription is null.");
|
test.ok(subscription, "Subscription is null.");
|
||||||
return self.conn.appendToStream(testStreamName, client.expectedVersion.any, [createRandomEvent(), createRandomEvent()]);
|
return self.conn.appendToStream(testStreamName, client.expectedVersion.any, [createRandomEvent(), createRandomEvent()]);
|
||||||
|
|
|
@ -2,7 +2,7 @@ const client = require('../lib/dist');
|
||||||
const userCredentials = new client.UserCredentials('admin', 'changeit');
|
const userCredentials = new client.UserCredentials('admin', 'changeit');
|
||||||
|
|
||||||
const log = new client.NoopLogger();
|
const log = new client.NoopLogger();
|
||||||
const httpEndpoint = `http://${process.env.EVENTSTORE_HOST || "localhost"}:2113`;
|
const httpEndpoint = `https://${process.env.EVENTSTORE_HOST || "localhost"}:2113`;
|
||||||
const operationTimeout = 5000;
|
const operationTimeout = 5000;
|
||||||
|
|
||||||
const simpleProjection = "\
|
const simpleProjection = "\
|
||||||
|
@ -21,7 +21,7 @@ fromStream('$stats-127.0.0.1:2113')\
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
setUp: function(cb) {
|
setUp: function(cb) {
|
||||||
this.projectionsManager = new client.ProjectionsManager(log, httpEndpoint, operationTimeout);
|
this.projectionsManager = new client.ProjectionsManager(log, httpEndpoint, operationTimeout, false);
|
||||||
cb();
|
cb();
|
||||||
},
|
},
|
||||||
'Create One Time Projection Happy Path': function(test) {
|
'Create One Time Projection Happy Path': function(test) {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user