A small python program that validates that a PFA document is:
- Syntaxically correct JSON
- Syntaxically correct PFA
- Semantically correct PFA
This project does not perform cross-validation on the PFA document.
The program can be run as a Python program or as a Docker container.
It may fetch the PFA document to validate from the file system or from a PostgreSQL database.
-
When fetching the PFA document from the file system, the program expects a
PFA_PATH
environment variable that contains the path to the PFA document to validate. -
When fetching the PFA document from a PostgreSQL database, the program expects the following environment variables:
INPUT_METHOD
that must be set toPOSTGRESQL
- the database's credentials:
DB_HOST
,DB_PORT
,DB_NAME
,DB_USER
andDB_PASSWORD
- the parameters of the query to perform:
DB_TABLE
DB_COLUMN
- the job ID (used to check the job_id column and get the right PFA document):
JOB_ID
In addition, the program will also need the following environment variables to be set up in order to get some
validation data: FEATURES_DB_HOST
, FEATURES_DB_PORT
, FEATURES_DB_NAME
, FEATURES_DB_USER
, FEATURES_DB_PASSWORD
and FEATURES_DB_TABLE
- Build the image:
docker build -t pfa-validator .
- Run a container based on that image:
docker run --volume $(pwd)/data:/data \
--env PFA_PATH="/data/example_01_valid/model.pfa" \
--env FEATURES_DB_HOST=db \
--env FEATURES_DB_PORT=5432 \
--env FEATURES_DB_NAME=sample \
--env FEATURES_DB_USER=sample \
--env FEATURES_DB_PASSWORD=... \
--env FEATURES_DB_TABLE=features \
hbpmip/pfa-validator:0.10.1-2
- Build the image:
docker build -t pfa-validator .
- Run a container based on that image:
docker run \
--env INPUT_METHOD=POSTGRESQL \
--env JOB_ID=1
--env DB_HOST=172.20.0.2 \
--env DB_PORT=5432 \
--env DB_NAME=woken \
--env DB_USER=woken \
--env DB_PASSWORD=... \
--env DB_TABLE=job_result \
--env DB_COLUMN=data \
--env FEATURES_DB_HOST=db \
--env FEATURES_DB_PORT=5432 \
--env FEATURES_DB_NAME=sample \
--env FEATURES_DB_USER=sample \
--env FEATURES_DB_PASSWORD=... \
--env FEATURES_DB_TABLE=features \
hbpmip/pfa-validator:0.10.1-2
NOTE: If you don't want to use Docker, you can install the dependencies with: pip install -r requirements.txt
and run this program using Python2. The environment variables still have to be set up.
- Allow validation of YAML formatted PFA document
This work has been funded by the European Union Seventh Framework Program (FP7/20072013) under grant agreement no. 604102 (HBP)
This work is part of SP8 of the Human Brain Project (SGA1).