Skip to content

Commit

Permalink
WIP
Browse files Browse the repository at this point in the history
  • Loading branch information
remvee committed Jan 29, 2024
1 parent 25f2a6a commit d502d8c
Show file tree
Hide file tree
Showing 4 changed files with 71 additions and 85 deletions.
18 changes: 13 additions & 5 deletions .github/workflows/e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ name: Run e2e tests

on:
workflow_dispatch:
push:

jobs:
e2e:
Expand All @@ -17,18 +18,25 @@ jobs:
with:
redis-version: 6.2

- name: Setup certificate stores
env:
KEYSTORE_JKS_B64: ${{ secrets.KEYSTORE_JKS_B64 }}
TRUSTSTORE_JKS_B64: ${{ secrets.TRUSTSTORE_JKS_B64 }}
run: |
echo "$KEYSTORE_JKS_B64" | base64 -d > keystore.jks
echo "$TRUSTSTORE_JKS_B64" | base64 -d > truststore.jks
- name: Run tests
env:
CLIENTS_INFO_PATH: ${{ secrets.CLIENTS_INFO_PATH }}
CLIENT_ID: ${{ secrets.CLIENT_ID }}
CLIENT_SECRET: ${{ secrets.CLIENT_SECRET }}
CLIENTS_INFO_PATH: ${{ secrets.CLIENTS_INFO_PATH }}
GATEWAY_PASSWORD: ${{ secrets.GATEWAY_PASSWORD }}
GATEWAY_ROOT_URL: ${{ secrets.GATEWAY_ROOT_URL }}
GATEWAY_USER: ${{ secrets.GATEWAY_USER }}
KEYSTORE: test/keystore.jks
KEYSTORE_ALIAS: ${{ secrets.KEYSTORE_ALIAS }}
KEYSTORE_JKS_B64: ${{ secrets.KEYSTORE_JKS_B64 }}
KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }}
KEYSTORE: test/keystore.jks
OS_AUTH_URL: ${{ secrets.OS_AUTH_URL }}
OS_CONTAINER_NAME: ${{ secrets.OS_CONTAINER_NAME }}
OS_PASSWORD: ${{ secrets.OS_PASSWORD }}
Expand All @@ -38,11 +46,11 @@ jobs:
RIO_RECIPIENT_OIN: ${{ secrets.RIO_RECIPIENT_OIN }}
RIO_SENDER_OIN: ${{ secrets.RIO_SENDER_OIN }}
RIO_UPDATE_URL: ${{ secrets.RIO_UPDATE_URL }}
STORE_HTTP_REQUESTS: true
SURF_CONEXT_CLIENT_ID: ${{ secrets.SURF_CONEXT_CLIENT_ID }}
SURF_CONEXT_CLIENT_SECRET: ${{ secrets.SURF_CONEXT_CLIENT_SECRET }}
SURF_CONEXT_INTROSPECTION_ENDPOINT: ${{ secrets.SURF_CONEXT_INTROSPECTION_ENDPOINT }}
TOKEN_ENDPOINT: ${{ secrets.TOKEN_ENDPOINT }}
TRUSTSTORE_JKS_B64: ${{ secrets.TRUSTSTORE_JKS_B64 }}
TRUSTSTORE_PASSWORD: ${{ secrets.TRUSTSTORE_PASSWORD }}
TRUSTSTORE: truststore.jks
TRUSTSTORE_PASSWORD: ${{ secrets.TRUSTSTORE_PASSWORD }}
run: lein test :e2e
43 changes: 0 additions & 43 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,49 +75,6 @@ jobs:
- name: Run tests with redis
run: lein test :redis

# FIXME: smoke test is currently too unstable
#
# smoketest:
# runs-on: ubuntu-latest
#
# steps:
# - uses: actions/checkout@v4
# - uses: actions/cache@v4
# with: { path: "~/.m2", key: "${{ runner.os }}-m2" }
#
# - name: Start Redis
# uses: supercharge/[email protected]
# with:
# redis-version: 6.2
#
# - name: Smoketest
# env:
# CLIENTS_INFO_PATH: ${{ secrets.CLIENTS_INFO_PATH }}
# CLIENT_ID: ${{ secrets.CLIENT_ID }}
# CLIENT_SECRET: ${{ secrets.CLIENT_SECRET }}
# GATEWAY_PASSWORD: ${{ secrets.GATEWAY_PASSWORD }}
# GATEWAY_ROOT_URL: ${{ secrets.GATEWAY_ROOT_URL }}
# GATEWAY_USER: ${{ secrets.GATEWAY_USER }}
# KEYSTORE_ALIAS: ${{ secrets.KEYSTORE_ALIAS }}
# KEYSTORE_JKS_B64: ${{ secrets.KEYSTORE_JKS_B64 }}
# KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }}
# RIO_RECIPIENT_OIN: ${{ secrets.RIO_RECIPIENT_OIN }}
# RIO_ROOT_URL: ${{ secrets.RIO_ROOT_URL }}
# RIO_SENDER_OIN: ${{ secrets.RIO_SENDER_OIN }}
# SURF_CONEXT_CLIENT_ID: ${{ secrets.SURF_CONEXT_CLIENT_ID }}
# SURF_CONEXT_CLIENT_SECRET: ${{ secrets.SURF_CONEXT_CLIENT_SECRET }}
# SURF_CONEXT_INTROSPECTION_ENDPOINT: ${{ secrets.SURF_CONEXT_INTROSPECTION_ENDPOINT }}
# TOKEN_ENDPOINT: ${{ secrets.TOKEN_ENDPOINT }}
# TRUSTSTORE_JKS_B64: ${{ secrets.TRUSTSTORE_JKS_B64 }}
# TRUSTSTORE_PASSWORD: ${{ secrets.TRUSTSTORE_PASSWORD }}
#
# TRUSTSTORE: truststore.jks
# KEYSTORE: keystore.jks
# run: |
# echo "$KEYSTORE_JKS_B64" | base64 -d > keystore.jks
# echo "$TRUSTSTORE_JKS_B64" | base64 -d > truststore.jks
# ./smoketest.sh

specs:
runs-on: ubuntu-latest

Expand Down
39 changes: 2 additions & 37 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ OOAPI objecten komen binnen als JSON.
Het gaat om de volgende top-level OOAPI objecten:

- EducationSpecification

- Education (met gerelateerde EducationOfferings)

We beginnen met de EducationSpecification want deze is het
Expand All @@ -52,7 +52,7 @@ eenvoudigst.

- RIO Data serialisatie naar RIO XML (misschien via hiccup-style
"tussen format")

- RIO XML valideren dmv XSD

- Post RIO XML naar API
Expand Down Expand Up @@ -226,41 +226,6 @@ Merk op dat `config.env` niet meegeleverd wordt en de configuration
bestanden via een "volume" (zie `-v` optie) beschikbaar moeten worden
gemaakt.

## End to End tests

Om de end-to-end tests te kunnen draaien moeten de volgende zaken geregeld zijn:

- RIO toegang (zie [test/test-clients.json](test/test-clients.json))

- SURFconext toegang voor client ID "rio-mapper-dev.jomco.nl" (zie ook [test/test-clients.json](test/test-clients.json))

- toegang tot SURF SWIFT Object Store

- een applicatie account op de test gateway welke toegang geeft tot bovenstaande Object Store

Als de mapper lokaal draait (gebeurd automatisch):

- er draait een lokaal toegankelijke *redis* server

Naast de eerder genoemde configuratie in dit document moet er ook toegang tot de SURF SWIFT Object Store geconfigureerd worden:

- `OS_USERNAME`
- `OS_PASSWORD`
- `OS_PROJECT_NAME`
- `OS_AUTH_URL`
- `OS_CONTAINER_NAME`

en SURFconext toegang voor de test client:

- `CLIENT_ID`
- `CLIENT_SECRET`
- `TOKEN_ENDPOINT`

Als het bovenstaande geregeld is kunnen de tests gedraaid worden met:

```sh
lein test :e2e
```

# Reporting vulnerabilities

Expand Down
56 changes: 56 additions & 0 deletions doc/e2e.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
## End to End tests

Om de end-to-end tests te kunnen draaien moeten de volgende zaken geregeld zijn:

- RIO toegang (zie [test/test-clients.json](test/test-clients.json))

- `CLIENTS_INFO_PATH` (= `test/test-clients.json`)

- `KEYSTORE` (met daarin rio_test_surfeduhub_surf_nl certificaat
met sleutel, zie ook de [README](../README.md) voor instructies voor het genereren)
- `KEYSTORE_ALIAS` (= `test-surf`)
- `KEYSTORE_PASSWORD`

- `TRUSTSTORE` (= `truststore.jks`, bestand staat al in deze repository)
- `TRUSTSTORE_PASSWORD` (= `xxxxxx`)

- `RIO_RECIPIENT_OIN`
- `RIO_SENDER_OIN`
- `RIO_READ_URL`
- `RIO_UPDATE_URL`

- SURFconext toegang voor client ID

- `SURF_CONEXT_CLIENT_ID`
- `SURF_CONEXT_CLIENT_SECRET`
- `SURF_CONEXT_INTROSPECTION_ENDPOINT`

- `CLIENT_ID` (= `rio-mapper-dev.jomco.nl`, SURFconext account met toegang to `SURF_CONEXT_CLIENT_ID`)
- `CLIENT_SECRET`
- `TOKEN_ENDPOINT` (URL naar SURFconext token endpoint)

- toegang tot SURF SWIFT Object Store voor opzetten van OOAPI test data

- `OS_USERNAME`
- `OS_PASSWORD`
- `OS_AUTH_URL`
- `OS_PROJECT_NAME`
- `OS_CONTAINER_NAME`

- een applicatie account op de test gateway welke toegang geeft tot bovenstaande Object Store

- `GATEWAY_ROOT_URL`
- `GATEWAY_USER`
- `GATEWAY_PASSWORD`

- er draait een lokaal toegankelijke *redis* server

Als het bovenstaande geregeld is kunnen de tests gedraaid worden met:

```sh
lein test :e2e
```

Tot slot is het verstandig om environment variabel
`STORE_HTTP_REQUESTS` op `true` te zetten omdat dat meer informatie
geeft over de gemaakte API calls door de mapper zelf.

0 comments on commit d502d8c

Please sign in to comment.