Skip to content

Latest commit

 

History

History
67 lines (53 loc) · 2.32 KB

README.md

File metadata and controls

67 lines (53 loc) · 2.32 KB

npg_porch_cli

A command-line client and a simple client library to enable communication with the npg_porch JSON API.

Provides a Python script, npg_porch_client, and a Python client API.

NPG_PORCH_TOKEN environment variable should be set to the value of either the admin or project-specific token. The token should be pre-registered in the database that is used by the porch API server.

The project can be deployed with pip or poetry in a standard way.

Example of using a client API:

 from npg_porch_cli.api import PorchRequest
 
 pr = PorchRequest(porch_url="https://myporch.com")
 response = pr.send(action="list_pipelines")
 
 pr = PorchRequest(
    porch_url="https://myporch.com",
    pipeline_name="Snakemake_Cardinal",
    pipeline_url="https://github.com/wtsi-npg/snakemake_cardinal",
    pipeline_version="1.0",
 )
 response = pr.send(
    action="update_task",
    task_status="FAILED",
    task_input={"id_run": 409, "sample": "Valxxxx", "id_study": "65"},
 )

By default the client validates the certificate of the server's certification authority (CA). If the server's certificate is signed by a custom CA, set the SSL_CERT_FILE environment variable to the path of the CA's certificate. Python versions starting from 3.11 seem to have increased security precautions when validating certificates of custom CAs. It might be necessary to set the REQUESTS_CA_BUNDLE environmental variable, see details here.

 export NPG_PORCH_TOKEN='my_token'
 export SSL_CERT_FILE=/path_to/my.pem
 npg_porch_client list_pipelines --base_url https://myporch.com

It is possible, but not recommended, to disable this validation check.

 export NPG_PORCH_TOKEN='my_token'
 npg_porch_client list_pipelines --base_url https://myporch.com --no-validate_ca_cert

A valid JSON string is required for the --task_json script's argument, note double quotes in the example below.

 export NPG_PORCH_TOKEN='my_token'
 npg_porch_client update_task --base_url https://myporch.com \
   --pipeline Snakemake_Cardinal \
   --pipeline_url 'https://github.com/wtsi-npg/snakemake_cardinal' \
   --pipeline_version 1.0 \
   --task_json '{"id_run": 409, "sample": "Valxxxx", "id_study": "65"}' \
   --status FAILED