- Notifications
You must be signed in to change notification settings - Fork0
aldas/xroad-mock-proxy
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This is a mock or proxy or both servers for X-road services.
Usual X-road setup is following. You application communicates directly with X-road security server over http/https or TLS client certificate authentication.
This is all fine until you need to:
- a) test complex test cases in your system and need to custom responses from X-road (i.e. mock responses)
- b) use multiple X-road environments without modifying application code
Use case: I would like to use my default X-road server for all request except service X which I want to respond from my mock
Use case: I would like to use my Test X-road server for all request except service X,Y and Z which I want to respond from my DEV X-road server.
This repo compiles into single application that has 2 different parts.
- proxy - acts as a router. Accepts requests from APP and routes request based on configured rules to different servers. Contains REST API for to see proxied requests/responses andadd/modify/remove proxying rules.
- mock - responds configured SOAP messages to requests. Contains REST API to dynamically add/modify/remove rules/tempalates for responses.
The application should support/have:
- X-road security server with ClientCert authentication as a proxy target
- for serving proxy on HTTP or HTTPS or ClientCert authentication (as recommended for X-road)
- deciding server where to route request base on:
- requester IP
- request content (regex match)
- request X-road service name
- modifying proxied request body based on rules
- modifying proxied request response body based on rules
- REST API to add/modify/remove proxy rules
- REST API to add/modify/remove mock rules
- basic frontend for proxy:
- list of last N proxied requests/responses
- list of proxy rules
- add/modify/remove proxy rules
- basic frontend for mock:
- list of mock rules
- add/modify/remove mock rules
- nice fancy frontend
See example.xroad-mock-proxy-example.yaml
Application is configured from configuration file (yaml) or env variables. By default configuration is read from.xroad-mock-proxy.yaml
fromcurrent directory or read from file given with command line arg--config=
. For example:./xroad-mock-proxy --config=/opt/app/myconf.yaml
Environment variables can be used to overrideyaml
values during application startup. All ENV variables need to haveXMP_
prefix to work.For example mock address in yaml is configured as
mock:address:localhost:8082
to override it with ENV variable do
export XMP_MOCK_ADDRESS=localhost:6000./xroad-mock-proxy
Assuming you havego
andmake
installed.
Check/lint/test and build binary
make checkmake
Run binary
cp .xroad-mock-proxy-example.yaml .xroad-mock-proxy.yaml# edit `.xroad-mock-proxy.yaml`# start server./xroad-mock-proxy
make docker
Run in Docker
make docker run-docker
About
X-road mock proxy server
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors2
Uh oh!
There was an error while loading.Please reload this page.