Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ test/cypress/screenshots

**/Cargo.lock

docker/layer8-volumes/influxdb2-data
docker/influxdb2-data
docker/layer8-volumes/pg-data

certs/ntor/*.pem
Expand Down
18 changes: 13 additions & 5 deletions docker/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ services:
depends_on:
auth-postgres:
condition: service_healthy
auth-influxdb2:
influxdb2:
condition: service_healthy
auth-telegraf:
condition: service_healthy
Expand All @@ -64,14 +64,22 @@ services:
layer8-network:
ipv4_address: 10.10.10.103

auth-influxdb2:
container_name: auth-influxdb2
influxdb2:
container_name: influxdb2
image: influxdb:2
restart: always
ports:
- 8086:8086
volumes:
- ./layer8-volumes/influxdb2-data:/var/lib/influxdb2
- ./influxdb2-data:/var/lib/influxdb2
environment:
- DOCKER_INFLUXDB_INIT_MODE=setup
- DOCKER_INFLUXDB_INIT_USERNAME=admin
- DOCKER_INFLUXDB_INIT_PASSWORD=12341234
- DOCKER_INFLUXDB_INIT_ORG=globeandcitizen
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seeing things like this, "ORG=globeandcitizen", always makes me smile.

- DOCKER_INFLUXDB_INIT_BUCKET=layer8-bucket
- DOCKER_INFLUXDB_INIT_ADMIN_TOKEN=layer8-admin-token
- DOCKER_INFLUXDB_INIT_RETENTION=30d
healthcheck:
test: [ "CMD", "curl", "-f", "http://localhost:8086/health" ]
interval: 5s
Expand Down Expand Up @@ -135,7 +143,7 @@ services:
depends_on:
auth-postgres:
condition: service_healthy
auth-influxdb2:
influxdb2:
condition: service_healthy
auth-telegraf:
condition: service_healthy
Expand Down
6 changes: 3 additions & 3 deletions docker/layer8-volumes/.env.docker
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@ INFLUXDB_URL=http://10.10.10.104:8086
INFLUXDB_URL_TELEGRAF=http://host.docker.internal:8086
INFLUXDB_USERNAME=admin
INFLUXDB_PASSWORD=somethingthatyoudontknow
INFLUXDB_ORG=layer8
INFLUXDB_BUCKET=layer8
INFLUXDB_TOKEN=DEFAULT_TOKEN_FOR_TESTING
INFLUXDB_ORG=globeandcitizen
INFLUXDB_BUCKET=layer8-bucket
INFLUXDB_TOKEN=layer8-admin-token
OTEL_EXPORTER_OTLP_ENDPOINT=10.10.10.105:4317

CREATE_TEST_USER=true
Expand Down
5 changes: 5 additions & 0 deletions forward-proxy/.env.dev
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,8 @@ CA_CERT="-----BEGIN CERTIFICATE-----\nMIIF0zCCA7ugAwIBAgIUQbJs4Jhd2NiSeL0Y+SZ4z7
CERT="-----BEGIN CERTIFICATE-----\nMIIFtTCCA52gAwIBAgIUXKLNUFsfUc3xSpmCKj35dAP3oe8wDQYJKoZIhvcNAQEL\nBQAwcTELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMRUwEwYDVQQHDAxTYW5GcmFu\nY2lzY28xGDAWBgNVBAoMD0dsb2JlQW5kQ2l0aXplbjEPMA0GA1UECwwGTGF5ZXI4\nMRMwEQYDVQQDDAptVExTUm9vdENBMB4XDTI1MDkyNDE5MTAyNVoXDTM1MDkyMjE5\nMTAyNVowdDELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMRUwEwYDVQQHDAxTYW5G\ncmFuY2lzY28xGDAWBgNVBAoMD0dsb2JlQW5kQ2l0aXplbjEPMA0GA1UECwwGTGF5\nZXI4MRYwFAYDVQQDDA1mb3J3YXJkLXByb3h5MIICIjANBgkqhkiG9w0BAQEFAAOC\nAg8AMIICCgKCAgEAq4JLgH1rmbSe2/6VFydzdxGsq0oDE9cKOagWxdd9lFqen+LL\nB+vDFV6d0n+CHDkhLsgi5ASGhSl5o232FI/Tgf4YqHQ0C3touGs2ysuI51WT2hzV\nPOFHemgveHNKk+yVHabZp5ypm4kYgMegknhFAtKytAC4g6IcHUX+t9gz+ucA0D8C\n+kuYJiaVd2IML8rF4RCGruZ6WuOcLeHF7byfucT/r9tT3IhdbHtLWOOw6mmtRuAl\nUexiXN+ipxmaAgSyAZrR9CwOo2xp9p5XL2Mn3VKHa6AGZya8QobnN16Dm+JOCoIl\n/C8b7w2H9mC6/GA2kmdxuD0+MyWFnK9DrbT+VYBgubXHeyKAR9mddn0ur7WNBeMl\ntNKufyS9J0Od3S8dERjw05Fl7jGJJj82B1zR/bKbq3v3IIteeTHm6sea2fV0vIw1\n2MBUF5ax60Jdeo71vHf4CVg01F3LBb9ar1LRVNgvrqThach6CDbvHPICXEFHV9OP\nil8PHIgUwon5iySfzfjPxIF0EnkGUR7B5iFYlcG1vSvbSW30sGQ67a9RWBfIll1m\nON1PhLZ5rnslgj6KxNReheaLSe/u4f17QxMrwLw/W3vwOm2SymUcMpwCAaLYtxd+\n6W6zaKy9g0wXeUaEbKBzaOdLqixJ4mL6NVYjEqlXJ5BuQ25iauafpRJz/vcCAwEA\nAaNCMEAwHQYDVR0OBBYEFHrJpAogeNfUj4GhwcrHVYMzXhMeMB8GA1UdIwQYMBaA\nFJOQTjwIZb078bHcHzxNnkUiCKW1MA0GCSqGSIb3DQEBCwUAA4ICAQBdQuPBEGma\nU4puro0xFlpIeOVOUf7eVMHeJuBCiDmBr8C+kae9XuShRYP/OMgGxQ7Y95BJo/C7\nTMwF5ugDQrsRod4EaTEO8ZXGcZq91v4YfegAJ9gQpR/OdniO5dDxfPMlY/VZEyK9\nwHIaUVUP+fiWk9yDwuTPZz+0xF3x2oujBO0JZTsHAbGaZ0CtNW1M5JwFF6aVD5Fs\nPave34wfDEbUg/7WKnZy6pNoxlkgdEsS1QThQ817pE9tTpGJS+9r+JjTSg9AL/W9\nQTvBB96WUsrRqJ2V+XXZ6FjDzPmWC4cfABh24S1NIdygB6uUJ6WLg8HN9tIjH+6O\noDvxCBjUE1444O6c9Z6cdxBvdICrIRN9wc1WhspBqRf4nXtRidFyrV2KDW9TMQXZ\nMOGXrhqgC1lwtKTc2iT8x74qQe8ARSArKNeTjJEiGwbc7+9wG8lf0b0zKWxwlTmg\nmAy8jVEkHmLvkZqKmaW59wUxkaAiBO2TNwjiwDkwPY8ET6DyGd/x4oG6QdocKF87\naOetHnMjTSpUj01sKFpveyTqoAF0UNilmJsUE2AO0BHsxj7Pe+ysLx1yUPiuKJX2\nUMHK/obbGgwu/5BGDXoafQlYu77ZyL/4oqnGYk/s7IGJaw/yVOrmGuuaF0h8RJfV\nOYxd3wTVC8r46A49VExTqvuYdwaAiovdaw==\n-----END CERTIFICATE-----"
KEY="-----BEGIN PRIVATE KEY-----\n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\n7zyoZqd4bAj7xvPuj8lMdThXtKSz86hK\n-----END PRIVATE KEY-----"

# influxDB
INFLUXDB_URL=http://localhost:8086
INFLUXDB_ORG=layer8
INFLUXDB_BUCKET=layer8
INFLUXDB_AUTH_TOKEN=DEFAULT_TOKEN_FOR_TESTING
9 changes: 8 additions & 1 deletion forward-proxy/.env.docker
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@ PATH_TO_SERVER_CONF="../server_conf.yml" # not yet used
LOG_LEVEL=trace
# default to "json" if not "plain"
LOG_FORMAT=plain
# "console" or folder path
# can be set to 'console' or a directory path
#LOG_PATH=/var/log/layer8
LOG_PATH=console
# leave empty if LOG_PATH is console
LOG_FILENAME=forward-proxy.log
Expand All @@ -23,3 +24,9 @@ ENABLE_TLS=true
CA_CERT="-----BEGIN CERTIFICATE-----\nMIIF0zCCA7ugAwIBAgIUQbJs4Jhd2NiSeL0Y+SZ4z7W6l7swDQYJKoZIhvcNAQEL\nBQAwcTELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMRUwEwYDVQQHDAxTYW5GcmFu\nY2lzY28xGDAWBgNVBAoMD0dsb2JlQW5kQ2l0aXplbjEPMA0GA1UECwwGTGF5ZXI4\nMRMwEQYDVQQDDAptVExTUm9vdENBMB4XDTI1MDkyNDE5MDQ1OFoXDTM1MDkyMjE5\nMDQ1OFowcTELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMRUwEwYDVQQHDAxTYW5G\ncmFuY2lzY28xGDAWBgNVBAoMD0dsb2JlQW5kQ2l0aXplbjEPMA0GA1UECwwGTGF5\nZXI4MRMwEQYDVQQDDAptVExTUm9vdENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A\nMIICCgKCAgEAmQsqgvtgfiQvhaziGzWMAZRzCViScRCrwkvmeE2U6Q/etk1PacuH\ndkJAvDQgLBsXCThg6G0hjw6BHX/i5seBQ6XHBNXEhAR70X3Y9VDCOoOLbqI22XAH\nZrX5gswBUzXbxxbxPrc7lK8N8s2M/LS4ADo9QWu4gtDnfr2eEWQR1P7o8llIn3z+\nGJStvzD0Jlfa39Gv9sIjPsoe7hvSpDiYqwGYDpeBLxn2SU39tyyyxDOH5NrpHG0z\nYMh20kK/0qkiVknd7/oqbSIv1EKfLLnw7p09LmsaHhlR+w+kQt6Z2Dzvae1qMj/D\nWnf1fgBOThZdnfUDznFGLjhPpGIvyjB8zk16wgYW7OIslqqbPPSLWm3ls3qpU0pl\nn2ROOWSLufXobh0Ly8vLLGVN8mwYeaTyXK4ELC0ScrpzBJbQ0mN3xulCMulk54iZ\nLy8KA1DtiwWyyV1cCvb36kfEPavU9zCYUgjvpVp3+fato0DBqe4ukMBUlb5C9qQ0\nKEkz/z75yWAe6bSVqXnYVuIihoxumM6oRMJwfOeOU0yyIfIkhwmDxw+yqeUDVibw\nseq5Ul4qVulocSAYPUX4ym/rPqC0SI+Z3EJZSLbiwjh1jmMiLbrsguYROSIOFrVO\noyYmjCUnc5Dxs04Q8VK80NuDFxCVEaK19esxFzCcFYDTiXoocem6EccCAwEAAaNj\nMGEwHQYDVR0OBBYEFJOQTjwIZb078bHcHzxNnkUiCKW1MB8GA1UdIwQYMBaAFJOQ\nTjwIZb078bHcHzxNnkUiCKW1MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD\nAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQAyCYD4IShYuU66OQAPz0/P4rVUr+mfKX0s\nYhnWRY+hLm4M0zp51/H9XGnHUZwGf3No3I0vWFDZHZShKt/GemCZy/WOJzjDGH71\ncNraMm/Bn2c7RXEqzK0qaKdgVo4vrS9inGExGtTRywEc+fLgH+myVR+Dy6JfxpeW\nFarMpu5AyoAWYRwUVaEQXotBF/XZHetaYr1mk9p3qNQkTEnv8zOWFF5Sv5R0I3XM\nABqk5Lz2WyRJIIL0g/9TdWZF88KrQhnr1q9JnTgAg3aTvyTR8c+Oik+BlRUe1zw1\n7TUvuVJkR50uEKZ0IVdWGtNCEzPl1PPMxzUAomozhZRh7vhuBk+yThaDByinaSvC\nxVzufk3hjrnPA0+ZyD4nVcMs3oivl5Vxli/KJrdYiQoErkbTmEgDCzSm0g/14BvJ\nHmlpITgolQGA1SFQCJcrioYn1Eyv4hSrnQtwP+t3t/G4OHbbEeu2pgqvZKEMngNL\naUGla0fwJtytoAqspWxuFwYxJWl5cse1xpsbrf5aiDphqCfSZARr8jzeYtYF8sex\n/8yzy1YmgDlSLng0kFqjLgP8SHLEgKMCOCP/haAHBaDqIu/9FMPofqlG0YJuqTB3\ndf0zohxxcIDZn17qElOVCRoUQVoz2rbYKHHZ8/MVWM7lPmUIqt2G6HlcMo1xYUa4\nfgCQMqEubg==\n-----END CERTIFICATE-----"
CERT="-----BEGIN CERTIFICATE-----\nMIIFtTCCA52gAwIBAgIUXKLNUFsfUc3xSpmCKj35dAP3oe8wDQYJKoZIhvcNAQEL\nBQAwcTELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMRUwEwYDVQQHDAxTYW5GcmFu\nY2lzY28xGDAWBgNVBAoMD0dsb2JlQW5kQ2l0aXplbjEPMA0GA1UECwwGTGF5ZXI4\nMRMwEQYDVQQDDAptVExTUm9vdENBMB4XDTI1MDkyNDE5MTAyNVoXDTM1MDkyMjE5\nMTAyNVowdDELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMRUwEwYDVQQHDAxTYW5G\ncmFuY2lzY28xGDAWBgNVBAoMD0dsb2JlQW5kQ2l0aXplbjEPMA0GA1UECwwGTGF5\nZXI4MRYwFAYDVQQDDA1mb3J3YXJkLXByb3h5MIICIjANBgkqhkiG9w0BAQEFAAOC\nAg8AMIICCgKCAgEAq4JLgH1rmbSe2/6VFydzdxGsq0oDE9cKOagWxdd9lFqen+LL\nB+vDFV6d0n+CHDkhLsgi5ASGhSl5o232FI/Tgf4YqHQ0C3touGs2ysuI51WT2hzV\nPOFHemgveHNKk+yVHabZp5ypm4kYgMegknhFAtKytAC4g6IcHUX+t9gz+ucA0D8C\n+kuYJiaVd2IML8rF4RCGruZ6WuOcLeHF7byfucT/r9tT3IhdbHtLWOOw6mmtRuAl\nUexiXN+ipxmaAgSyAZrR9CwOo2xp9p5XL2Mn3VKHa6AGZya8QobnN16Dm+JOCoIl\n/C8b7w2H9mC6/GA2kmdxuD0+MyWFnK9DrbT+VYBgubXHeyKAR9mddn0ur7WNBeMl\ntNKufyS9J0Od3S8dERjw05Fl7jGJJj82B1zR/bKbq3v3IIteeTHm6sea2fV0vIw1\n2MBUF5ax60Jdeo71vHf4CVg01F3LBb9ar1LRVNgvrqThach6CDbvHPICXEFHV9OP\nil8PHIgUwon5iySfzfjPxIF0EnkGUR7B5iFYlcG1vSvbSW30sGQ67a9RWBfIll1m\nON1PhLZ5rnslgj6KxNReheaLSe/u4f17QxMrwLw/W3vwOm2SymUcMpwCAaLYtxd+\n6W6zaKy9g0wXeUaEbKBzaOdLqixJ4mL6NVYjEqlXJ5BuQ25iauafpRJz/vcCAwEA\nAaNCMEAwHQYDVR0OBBYEFHrJpAogeNfUj4GhwcrHVYMzXhMeMB8GA1UdIwQYMBaA\nFJOQTjwIZb078bHcHzxNnkUiCKW1MA0GCSqGSIb3DQEBCwUAA4ICAQBdQuPBEGma\nU4puro0xFlpIeOVOUf7eVMHeJuBCiDmBr8C+kae9XuShRYP/OMgGxQ7Y95BJo/C7\nTMwF5ugDQrsRod4EaTEO8ZXGcZq91v4YfegAJ9gQpR/OdniO5dDxfPMlY/VZEyK9\nwHIaUVUP+fiWk9yDwuTPZz+0xF3x2oujBO0JZTsHAbGaZ0CtNW1M5JwFF6aVD5Fs\nPave34wfDEbUg/7WKnZy6pNoxlkgdEsS1QThQ817pE9tTpGJS+9r+JjTSg9AL/W9\nQTvBB96WUsrRqJ2V+XXZ6FjDzPmWC4cfABh24S1NIdygB6uUJ6WLg8HN9tIjH+6O\noDvxCBjUE1444O6c9Z6cdxBvdICrIRN9wc1WhspBqRf4nXtRidFyrV2KDW9TMQXZ\nMOGXrhqgC1lwtKTc2iT8x74qQe8ARSArKNeTjJEiGwbc7+9wG8lf0b0zKWxwlTmg\nmAy8jVEkHmLvkZqKmaW59wUxkaAiBO2TNwjiwDkwPY8ET6DyGd/x4oG6QdocKF87\naOetHnMjTSpUj01sKFpveyTqoAF0UNilmJsUE2AO0BHsxj7Pe+ysLx1yUPiuKJX2\nUMHK/obbGgwu/5BGDXoafQlYu77ZyL/4oqnGYk/s7IGJaw/yVOrmGuuaF0h8RJfV\nOYxd3wTVC8r46A49VExTqvuYdwaAiovdaw==\n-----END CERTIFICATE-----"
KEY="-----BEGIN PRIVATE KEY-----\nMIIJRAIBADANBgkqhkiG9w0BAQEFAASCCS4wggkqAgEAAoICAQCrgkuAfWuZtJ7b\n/pUXJ3N3EayrSgMT1wo5qBbF132UWp6f4ssH68MVXp3Sf4IcOSEuyCLkBIaFKXmj\nbfYUj9OB/hiodDQLe2i4azbKy4jnVZPaHNU84Ud6aC94c0qT7JUdptmnnKmbiRiA\nx6CSeEUC0rK0ALiDohwdRf632DP65wDQPwL6S5gmJpV3YgwvysXhEIau5npa45wt\n4cXtvJ+5xP+v21PciF1se0tY47Dqaa1G4CVR7GJc36KnGZoCBLIBmtH0LA6jbGn2\nnlcvYyfdUodroAZnJrxChuc3XoOb4k4KgiX8LxvvDYf2YLr8YDaSZ3G4PT4zJYWc\nr0OttP5VgGC5tcd7IoBH2Z12fS6vtY0F4yW00q5/JL0nQ53dLx0RGPDTkWXuMYkm\nPzYHXNH9spure/cgi155Mebqx5rZ9XS8jDXYwFQXlrHrQl16jvW8d/gJWDTUXcsF\nv1qvUtFU2C+upOFpyHoINu8c8gJcQUdX04+KXw8ciBTCifmLJJ/N+M/EgXQSeQZR\nHsHmIViVwbW9K9tJbfSwZDrtr1FYF8iWXWY43U+EtnmueyWCPorE1F6F5otJ7+7h\n/XtDEyvAvD9be/A6bZLKZRwynAIBoti3F37pbrNorL2DTBd5RoRsoHNo50uqLEni\nYvo1ViMSqVcnkG5DbmJq5p+lEnP+9wIDAQABAoICACmQw1GZk9lFf/abJXDeG8qw\nmuNMZaCKTi0ZAqPiDMpGiAkBwujhh38HVkJsqpDCe7tFv8b5Hczp91PXU3s6PC1V\n8o3o07AwsXl4amgNmdlO0S1cLYW6p0MQOuj7MAjXnm/4PumzOxu5xxl2yACXa0o6\n3Bppzk4AnMWvcAMIP9i/4V+W1dbpOS+NzE2JkqCGiRx5j9qVevPKE9C+1eQ/AYrZ\nJoptIk7hMZsX6nPZgsfc4qS5r/HB0zjk7huHRd7VWnqvFdESWF3c6XVefIy8gC3Q\nUYeQ2dxn89o/rYuquUSvPPCpCCGtHRz7b4cTfF2rx64FqfbXyNpGbrJBe6p+oeCb\nRnB0vnEmiEIvw4C0P0rGz9nOS69TaphTfRFVmDOFgwYDNzZz3DD/YdsQY1XMQ6pH\n+m4Nr7+EPjFk6AYSgvbmRLL8WGGI6Tv9/ezVvdflPClYLMjOGIyVPRfOldgad01T\nlI/vWDHITWJZqHwh4VBZvQaUeoRPcuabMeBIV3d7FBcsQqOwRbpbL/Piu8ydZJ8Y\n+5gUYfh/F7ouJGyuFm77R2uEhSjpbJMxu1Mku2SqG2gAime5YJBRxExUAXky9QyO\nXic4XxX67iFA4P3ATkFA5kQF3m+1uuwfYC3gIs+aiZuAuQuZ4OO5Ay3TxFCMeuTk\nfsS+COfEhsdXUG7Wn2aZAoIBAQDYClEGkfeftTvyXYbISRGeG/Nni3UUS4aNSIsv\nRNlAKnD+n60VwiBpOTr6IEP1MB1eseQvvNVqiemb5Oa8jaDV8Gkon0uBHTBQo62K\nFIRMsM8jsMGvO0RRtd/2iWRu1WnzqzA5TXX2sN/whjxeT0DUrnGKsqUI6PT8STjj\nQo/IHT7uulJPnbVZ+G+CZyQKjaBaOOy6VMYsDXhMm71zNQkM2AgzOYSLwpqtSAHM\nwHWHGkZGvetsVL6hHcLcWVxkuo7saeMcLMPfYBLkV8oX/HayZ0oc+x2RYslQwokq\ng7oFEsvQjb166MXD5gSaOjAkjb9FshBsxU5XKC3gA1xqbOo1AoIBAQDLO2Izu1Nu\nhsJ4UMWgfeYSf9/i8T5CXGYs9VytYNCFpBc530RQ4olu+SY9vrUt3+OW3xeDtWX/\nMm/pq0DxpjkvD5y5fYnsBI2Cd3o3L6WKEsqKnBOJbS5omrcwWSOO18z+8+BF9O55\n+RTR8dWHw+XxvajFTqzcLojtvExyvRwKI3WVaNtZWgU7YmsVxoQ93/PIYIKgdbhI\nv+tbc8DuxnbDA+qJhFipuTI07fclE/hupmgmd2sDiFjiyPbk85dXpLsxnAhlE9ZT\n2YSBhVQz0a68CRiVUcoWv7FsMKlgJtfICmzDH3qrB00Dp7FhXinlubrgMWy+kw5v\n6k/h2WqZhIn7AoIBAQDMOPRfQZzTXH9OnRrMOkZtL/7n4uzKQpru86SfCnZUMcqe\n6FK2Psxkq7UUvWuAW/tniMIsXlVgYP50X+2+UCO6GYlO3UaCxxTlJdTmsn5eAMXO\n90ggXeY3V7ZfV4GZRCTkMu9jO9ZHXOxUcpCelkyywDSU6EsaIR11X8JnEoTYpszW\n30rv+CV252KB4v4u+7KZlzYw7fJnslQGFzL/tSLZAV6/DaA+fbe6FledNlHjZPMJ\n7H6f6XxK0ddidRbiIXj6Ax6tg6OlhSxWrqZcBkwuWXW176wDw16K+Vqw1dUC9sG0\nZEi551EL3mR7ZoYcB+LH/4uHRvzHZzP2jzbNZCgBAoIBAQCEuVN41W23UOrQCHAI\nUDBhBIICg+pVDGLuGY9c601C+dbxRI4pBMkcYDpJOLK6Mu0/KpMAwQbLkvTjdaQE\nLLpLsbZ4rTPVn2OLQNvgDo3djkgYHbXkmhkk12WrfYtrTiPinQJqrXrQzYp7UaRR\n9e3F4kbGFItvgDSMjdyfUkFtnZq86K3XvKKOFcg5gFv8zLU4t06X3EltuWjLYN0v\nEw2cboJNLNF6hifzyTUOUex81tBNzs9kjzb9ZKFZBHxiEILv8ybIXBwsxnFy5NAI\nx3eF9arIWZHRKX+FWIJE+RkS2zwMchJ6f1ocePeuzwAttw4EPEL4crGLBUsGBCdJ\n+vThAoIBAQC1KrUB170d08W6WMdK8sbzL67M5pj8B44yp6650nNAVJhXMRuw846X\nH1KqUzV1elQdmvKJDogkUYllRVByHGX05Lr5BGAkmDxBMqYxUn56IhEfQ18ejy6x\nzUFwg4hLLWZzNqkIwGNb5B9wFzHFy39vwIlsy1mMIswxjucsH/lENRaPF2Lr5Tia\n1VRDJqXSZ2ytGyKsgBhFXsZUXmnxBNmjFuI62ROhOlrYJ3bwfTRDwkqQQWxPDj7f\nfTK7R5D69flh4CBEM6oSIZm7KEMXW/C5AkYc/jjW3/bDNuVy7JpZ/aokTxHCqW8e\n7zyoZqd4bAj7xvPuj8lMdThXtKSz86hK\n-----END PRIVATE KEY-----"

# influxDB
INFLUXDB_URL=http://localhost:8086
INFLUXDB_ORG=layer8
INFLUXDB_BUCKET=layer8
INFLUXDB_AUTH_TOKEN=DEFAULT_TOKEN_FOR_TESTING
4 changes: 3 additions & 1 deletion forward-proxy/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ clap = { version = "3.2.25", features = ["derive"] }
serde = { version = "1.0.219", features = ["derive"] }
serde_json = "1.0.140"
chrono = "0.4.40"
reqwest = { version="0.11", default-features=false, features=["json", "rustls-tls"] }
reqwest = { version = "0.11", default-features = false, features = ["json", "rustls-tls"] }
tokio = { version = "1.44.2", features = ["rt-multi-thread", "macros"] }
pingora = { version = "0.5.0", features = ["lb", "boringssl"] }
jsonwebtoken = "9.3.1"
Expand All @@ -24,3 +24,5 @@ utils = { path = "../utils", version = "0.1.0" }
hex = "0.4.3"
envy = "0.4.2"
tracing = "0.1.41"
influxdb2 = { version = "0.5.2", default-features = false, features = ["rustls"] }

2 changes: 0 additions & 2 deletions forward-proxy/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ RUN apt-get update && apt-get install -y \
WORKDIR /usr/src/app

# Copy source code
COPY ./certs ./certs
COPY ./pingora-router ./pingora-router
COPY ./utils ./utils
COPY ./forward-proxy ./forward-proxy
Expand All @@ -44,7 +43,6 @@ RUN useradd -m layer8

# Copy only the built binary from the builder stage
COPY --from=builder /usr/src/app/forward-proxy/target/release/forward-proxy /usr/local/bin/forward-proxy
COPY --from=builder /usr/src/app/certs /usr/local/certs

# Switch to non-root user
USER layer8
Expand Down
12 changes: 11 additions & 1 deletion forward-proxy/src/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,9 @@ pub struct FPConfig {
#[serde(flatten)]
pub tls_config: TlsConfig,
#[serde(flatten)] // This flattens the HandlerConfig fields into this struct
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Interesting...

pub handler_config: HandlerConfig
pub handler_config: HandlerConfig,
#[serde(flatten)]
pub influxdb_config: InfluxDBConfig,
}

#[derive(Debug, Deserialize)]
Expand Down Expand Up @@ -42,4 +44,12 @@ pub struct TlsConfig {
pub ca_cert: String,
pub cert: String,
pub key: String,
}

#[derive(Debug, Deserialize)]
pub struct InfluxDBConfig {
pub influxdb_url: String,
pub influxdb_org: String,
pub influxdb_bucket: String,
pub influxdb_auth_token: String,
}
67 changes: 29 additions & 38 deletions forward-proxy/src/handler/consts.rs
Original file line number Diff line number Diff line change
@@ -1,48 +1,28 @@
// can be replaced by constants, will see
pub enum HeaderKeys {
#[allow(dead_code)]
IntRpJwtKey,
IntFpJwtKey,
FpRpJwtKey
}
pub struct HeaderKeys;

impl HeaderKeys {
pub fn as_str(&self) -> &'static str {
match self {
HeaderKeys::IntRpJwtKey => "int_rp_jwt",
HeaderKeys::IntFpJwtKey => "int_fp_jwt",
HeaderKeys::FpRpJwtKey => "fp_rp_jwt",
}
}
}

pub enum CtxKeys {
NTorServerId,
NTorStaticPublicKey,
UpstreamAddress,
UpstreamSNI,
#[allow(dead_code)]
IntRPJwt,
#[allow(dead_code)]
IntFPJwt,
FpRpJwt,
pub const INT_RP_JWT: &'static str = "int_rp_jwt";
pub const INT_FP_JWT: &'static str = "int_fp_jwt";
pub const FP_RP_JWT: &'static str = "fp_rp_jwt";
}

pub struct CtxKeys;

impl CtxKeys {
pub fn to_string(&self) -> String {
match self {
CtxKeys::NTorServerId => "ntor_server_id".to_string(),
CtxKeys::NTorStaticPublicKey => "ntor_static_public_key".to_string(),
CtxKeys::UpstreamAddress => "upstream_address".to_string(),
CtxKeys::UpstreamSNI => "upstream_sni".to_string(),
CtxKeys::IntRPJwt => "int_rp_jwt".to_string(),
CtxKeys::IntFPJwt => "int_fp_jwt".to_string(),
CtxKeys::FpRpJwt => "fp_rp_jwt".to_string(),
}
}
pub const NTOR_SERVER_ID: &'static str = "ntor_server_id";
pub const NTOR_STATIC_PUBLIC_KEY: &'static str = "ntor_static_public_key";
pub const UPSTREAM_ADDRESS: &'static str = "upstream_address";
pub const UPSTREAM_SNI: &'static str = "upstream_sni";
#[allow(dead_code)]
pub const INT_RP_JWT: &'static str = "int_rp_jwt";
#[allow(dead_code)]
pub const INT_FP_JWT: &'static str = "int_fp_jwt";
pub const FP_RP_JWT: &'static str = "fp_rp_jwt";
pub const BACKEND_AUTH_CLIENT_ID: &'static str = "backend_auth_client_id";
}

pub struct LogTypes {}
pub struct LogTypes;

impl LogTypes {
pub const ACCESS_LOG: &'static str = "ACCESS_LOG";
Expand All @@ -51,4 +31,15 @@ impl LogTypes {
pub const HANDLE_CLIENT_REQUEST: &'static str = "HANDLE_CLIENT_REQUEST";
pub const HANDLE_UPSTREAM_RESPONSE: &'static str = "HANDLE_UPSTREAM_RESPONSE";
pub const HEALTHCHECK: &'static str = "HEALTHCHECK";
}
pub const INFLUXDB: &'static str = "INFLUXDB";
pub const AUTHENTICATION_SERVER: &'static str = "AUTHENTICATION_SERVER";
}

pub struct RequestPaths;

impl RequestPaths {
pub const PROXY: &'static str = "/proxy";
pub const INIT_TUNNEL: &'static str = "/init-tunnel";
pub const HEALTHCHECK: &'static str = "/healthcheck";
}

Loading
Loading