De volgende settings van de BRP Reisdocumenten Proxy kunnen worden aangepast:
Standaard is de BRP Reisdocumenten Proxy geconfigureerd om bevragingen door te sturen naar de mock van de BRP Reisdocumenten Web API GBA variant.
De Downstream configuratie van de BRP Reisdocumenten Proxy moet worden aangepast om bevragingen door te sturen naar een andere instantie van de BRP Reisdocumenten Web API GBA variant.
De volgende environment variabelen moet worden opgenomen in de configuratie van de Proxy in het docker compose bestand:
In het volgende voorbeeld is de Proxy geconfigureerd om bevragingen door te sturen naar de proef omgeving van de BRP Reisdocumenten Web API GBA variant
reisdocumentproxy:
container_name: reisdocumentproxy
image: ghcr.io/brp-api/haal-centraal-reisdocument-bevragen-proxy:latest
environment:
- ASPNETCORE_ENVIRONMENT=Release
- ASPNETCORE_URLS=http://+:5000
- Routes__0__DownstreamScheme=https
- Routes__0__DownstreamHostAndPorts__0__Host=proefomgeving-gba.haalcentraal.nl
- Routes__0__DownstreamHostAndPorts__0__Port=443
ports:
- "5002:5000"
networks:
- reisdocumenten-api-network
Een andere mogelijkheid is om de routering configuratie te definieren in een json bestand en met behulp van een volume mount te monteren aan een container instantie.
In het volgende voorbeeld is de configuratie van de routering naar de proef omgeving van de BRP Reisdocumenten Web API GBA variant gespecificeerd. Dit configuratie bestand is ook te vinden in de BRP Reisdocumenten GitHub repository.
{
"Routes": [
{
"UpstreamPathTemplate": "/haalcentraal/api/reisdocumenten/reisdocumenten",
"DownstreamPathTemplate": "/haalcentraal/api/reisdocumenten/reisdocumenten",
"DownstreamScheme": "https",
"DownstreamHostAndPorts": [
{
"Host": "proefomgeving-gba.haalcentraal.nl",
"Port": "443"
}
]
}
]
}
Het configuratie bestand wordt vervolgens met behulp van een volume mount gemonteerd aan een BRP Reisdocumenten Proxy instantie. In onderstaand voorbeeld wordt het ocelot.json bestand in de src/config/ReisdocumentProxy/configuration map gemonteerd aan een BRP Reisdocumenten Proxy instantie.
reisdocumentproxy:
container_name: reisdocumentproxy
image: ghcr.io/brp-api/haal-centraal-reisdocument-bevragen-proxy:latest
environment:
- ASPNETCORE_ENVIRONMENT=Release
- ASPNETCORE_URLS=http://+:5000
ports:
- "5002:5000"
volumes:
- ./src/config/ReisdocumentProxy/configuration/ocelot.json:/app/configuration/ocelot.json
networks:
- reisdocumenten-api-network
De volgende environment variabelen moet worden opgenomen in de configuratie van de Proxy in het reisdocument proxy deployment bestand:
In het volgende voorbeeld is de Proxy geconfigureerd om bevragingen door te sturen naar de proef omgeving van de BRP Reisdocumenten Web API GBA variant
containers:
- name: reisdocumentproxy
image: ghcr.io/brp-api/haal-centraal-reisdocument-bevragen-proxy:latest
env:
- name: ASPNETCORE_ENVIRONMENT
value: Release
- name: ASPNETCORE_URLS
value: http://+:5000
- name: Routes__0__DownstreamScheme
value: https
- name: Routes__0__DownstreamHostAndPorts__0__Host
value: proefomgeving-gba.haalcentraal.nl
- name: Routes__0__DownstreamHostAndPorts__0__Port
value: "443"
ports:
- name: http-reisdocumentproxy
containerPort: 5000
Een andere mogelijkheid is om de routering configuratie te definieren in een json bestand en met behulp van een volume mount te monteren aan een container instantie.
In het volgende voorbeeld is de configuratie van de routering naar de proef omgeving van de BRP Reisdocumenten Web API GBA variant gespecificeerd. Dit configuratie bestand is ook te vinden in de BRP Reisdocumenten GitHub repository.
{
"Routes": [
{
"UpstreamPathTemplate": "/haalcentraal/api/reisdocumenten/reisdocumenten",
"DownstreamPathTemplate": "/haalcentraal/api/reisdocumenten/reisdocumenten",
"DownstreamScheme": "https",
"DownstreamHostAndPorts": [
{
"Host": "proefomgeving-gba.haalcentraal.nl",
"Port": "443"
}
]
}
]
}
Het configuratie bestand wordt vervolgens met behulp van een volume mount gemonteerd aan een BRP Reisdocumenten Proxy instantie. In onderstaand voorbeeld wordt het ocelot.json bestand in de src/config/ReisdocumentProxy/configuration map gemonteerd aan een BRP Reisdocumenten Proxy instantie.
containers:
- name: reisdocumentproxy
image: ghcr.io/brp-api/haal-centraal-reisdocument-bevragen-proxy:latest
env:
- name: ASPNETCORE_ENVIRONMENT
value: Release
- name: ASPNETCORE_URLS
value: http://+:5000
ports:
- name: http-reisdocumentproxy
containerPort: 5000
volumeMounts:
- name: reisdocumentproxy-routing-configuration
mountPath: /app/configuration
volumes:
- name: reisdocumentproxy-routing-configuration
hostPath:
path: <host-path>/Haal-Centraal-Reisdocumenten-bevragen/src/config/ReisdocumentProxy/configuration
waarbij host-path gelijk is aan
Standaard is de BRP Reisdocumenten Proxy geconfigureerd met Log level Warning
. Bij deze Log level wordt alleen ongeldige bevragingen (bevragingen die resulteren in een 4XX en 5XX HTTP status response) gelogd.
Om alle bevragingen te loggen moet de Log level op Information
worden gezet. De Log level wordt gezet met behulp van de Serilog__MinimumLevel__Override__Serilog environment variabele.
In de volgende voorbeelden wordt de Log level gezet op Information
.
Docker Compose variant:
reisdocumentproxy:
container_name: reisdocumentproxy
image: ghcr.io/brp-api/haal-centraal-reisdocument-bevragen-proxy:latest
environment:
- ASPNETCORE_ENVIRONMENT=Release
- ASPNETCORE_URLS=http://+:5000
- Serilog__MinimumLevel__Override__Serilog=Information
ports:
- "5002:5000"
networks:
- reisdocumenten-api-network
Kubernetes variant:
containers:
- name: reisdocumentproxy
image: ghcr.io/brp-api/haal-centraal-reisdocument-bevragen-proxy:latest
env:
- name: ASPNETCORE_ENVIRONMENT
value: Release
- name: ASPNETCORE_URLS
value: http://+:5000
- name: Serilog__MinimumLevel__Override__Serilog
value: Information
ports:
- name: http-reisdocumentproxy
containerPort: 5000
De BRP Reisdocumenten Proxy kan log regels wegschrijven naar de volgende log providers:
Standaard wordt in de console (in Docker Desktop de Logs tab van de container) gelogd naar welke log providers er wordt gelogd.
Ten behoeve van debugging is het mogelijk om de requests te laten loggen naar de console. Hiervoor moet de waarde van de Serilog__MinimumLevel__Override__Serilog environment worden gezet op Debug. Omdat loggen naar de console impact kan hebben op de performance, wordt het niet aangeraden om loggen naar de console in productie te gebruiken.
Om naar een Seq server te laten loggen moet de url naar de Seq server worden opgegeven met behulp van de Seq__ServerUrl environment variabele.
reisdocumentproxy:
container_name: reisdocumentproxy
image: ghcr.io/brp-api/haal-centraal-reisdocument-bevragen-proxy:latest
environment:
- ASPNETCORE_ENVIRONMENT=Release
- ASPNETCORE_URLS=http://+:5000
- Seq__ServerUrl=http://seq:5341
ports:
- "5002:5000"
networks:
- reisdocumenten-api-network
Om naar een bestand te laten loggen moet het volledig pad van het log bestand worden opgegeven met behulp van de Ecs__Path environment variabele. De log regels worden in Elasticsearch Common Schema (ECS) formaat naar het bestand geschreven.
reisdocumentproxy:
container_name: reisdocumentproxy
image: ghcr.io/brp-api/haal-centraal-reisdocument-bevragen-proxy:latest
environment:
- ASPNETCORE_ENVIRONMENT=Release
- ASPNETCORE_URLS=http://+:5000
- Ecs__Path=/var/log/api/reisdocumentproxy.txt
ports:
- "5002:5000"
networks:
- reisdocumenten-api-network
Om de communicatie tussen de BRP Reisdocumenten Proxy tussen een API Gateway of de BRP Reisdocumenten Web API GBA variant bij RvIG over mTLS te laten plaatsvinden, moet de BRP Reisdocumenten Proxy moet de volgende environment variabelen worden gezet:
Ook moet de map waar de client certificaat staat met behulp van een volume mount worden gemonteerd met /app/certificates. In onderstaand voorbeeld zijn de client certificaat settings toegevoegd aan de Proxy configuratie.
reisdocumentproxy:
container_name: reisdocumentproxy
image: ghcr.io/brp-api/haal-centraal-reisdocument-bevragen-proxy:latest
environment:
- ASPNETCORE_ENVIRONMENT=Release
- ASPNETCORE_URLS=http://+:5000
- Serilog__MinimumLevel__Override__Serilog=Information
- ClientCertificate__Name=xxx
- ClientCertificate__Password=yyy
ports:
- "5002:5000"
volumes:
- <pad client certificaat map>:/app/certificates
networks:
- reisdocumenten-api-network