Repository: cal-itp/benefits

Issue:
Local Eligibility Server fails to start
The local Eligibility Server fails to start both when starting with the devcontainer, and from the command line:

```bash
docker compose up server
```

Part of this will be fixed when cal-itp/eligibility-server#137 is resolved.

We also need to update the [devcontainer configuration for the server](https://github.com/cal-itp/benefits/tree/dev/.devcontainer/server) to take advantage of the new settings configuration introduced in cal-itp/eligibility-server#119

Note that the published Docker image _does not contain_ the sample configuration, keys, or data -- so this must be loaded/available via Benefits for local testing.

This will be slightly easier once cal-itp/eligibility-server#136 is merged, as we can just point to the sample keys in the Server repo.


Discussion:

Resolving patch:
diff --git a/.devcontainer/server/settings.py b/.devcontainer/server/settings.py
new file mode 100644
--- /dev/null
+++ b/.devcontainer/server/settings.py
@@ -0,0 +1,22 @@
+# App settings
+
+LOG_LEVEL = "DEBUG"
+
+# Eligibility Verification settings
+
+CLIENT_KEY_PATH = "https://raw.githubusercontent.com/cal-itp/eligibility-server/main/keys/client.pub"
+SERVER_PRIVATE_KEY_PATH = "https://raw.githubusercontent.com/cal-itp/eligibility-server/main/keys/server.key"
+SERVER_PUBLIC_KEY_PATH = "https://raw.githubusercontent.com/cal-itp/eligibility-server/main/keys/server.pub"
+SUB_FORMAT_REGEX = r".+"
+
+# Data settings
+
+IMPORT_FILE_PATH = "/.devcontainer/server/data.csv"
+INPUT_HASH_ALGO = ""
+
+# CSV-specific settings
+
+CSV_DELIMITER = ";"
+CSV_NEWLINE = ""
+CSV_QUOTING = 3
+CSV_QUOTECHAR = ""
diff --git a/benefits/core/migrations/0002_sample_data.py b/benefits/core/migrations/0002_sample_data.py
--- a/benefits/core/migrations/0002_sample_data.py
+++ b/benefits/core/migrations/0002_sample_data.py
@@ -92,7 +92,7 @@ def load_sample_data(app, *args, **kwargs):
 
     verifier1 = EligibilityVerifier.objects.create(
         name="Test Eligibility Verifier 1",
-        api_url="http://server:5000/verify",
+        api_url="http://server:8000/verify",
         api_auth_header="X-Server-API-Key",
         api_auth_key="server-auth-token",
         eligibility_type=type1,
@@ -123,7 +123,7 @@ def load_sample_data(app, *args, **kwargs):
 
     verifier2 = EligibilityVerifier.objects.create(
         name="Test Eligibility Verifier 2",
-        api_url="http://server:5000/verify",
+        api_url="http://server:8000/verify",
         api_auth_header="X-Server-API-Key",
         api_auth_key="server-auth-token",
         eligibility_type=type2,
@@ -171,11 +171,11 @@ def load_sample_data(app, *args, **kwargs):
 
     payment_processor = PaymentProcessor.objects.create(
         name="Test Payment Processor",
-        api_base_url="http://server:5000",
+        api_base_url="http://server:8000",
         api_access_token_endpoint="access-token",
         api_access_token_request_key="request_access",
         api_access_token_request_val="REQUEST_ACCESS",
-        card_tokenize_url="http://localhost:5000/static/tokenize.js",
+        card_tokenize_url="http://server:8000/static/tokenize.js",
         card_tokenize_func="tokenize",
         card_tokenize_env="test",
         client_cert=dummy_cert,


Test patch: