Skip to main content

BrAPI proxy solution

A BrAPI server instance that functions as a proxy to merge and combine endpoints from existing BrAPI services.

Installation

  • Step 1: Install BrAPI Proxy
    • To install the BrAPI Proxy, run the following command:
      pip install brapi_proxy
      
  • Step 2: Test the Installation (Optional)
    • To ensure that the installation was successful, you can run the BrAPI Proxy in demo mode with the following command:
      brapi_proxy --demo
      
      This will start a service on port 8080 from a configuration based on the BrAPI Test Server

Usage

  • Step 1: Create Configuration File

    • Create a file named config.ini.
    • Populate this file with the necessary configuration settings.
  • Step 2: Start the Service

    • Start the service by running the command:
      brapi_proxy
      
    • If the config.ini file is located outside the working directory, use the --config option to specify its location. For example:
      brapi_proxy --config /path/to/config.ini
      

Currently Supported

BrAPI Versions

  • version 2.1

Endpoints

  • BrAPI-Core
    • /commoncropnames
    • /lists
    • /lists/{listDbId}
    • /locations
    • /locations/{locationDbId}
    • /people
    • /people/{personDbId}
    • /programs
    • /programs/{programDbId}
    • /seasons
    • /seasons/{seasonDbId}
    • /studies
    • /studies/{studyDbId}
    • /trials
    • /trials/{trialDbId}
  • BrAPI-Phenotyping
    • /methods
    • /methods/{methodDbId}
    • /observations
    • /observations/{observationDbId}
    • /observationunits
    • /observationunits/{observationUnitDbId}
    • /ontologies
    • /ontologies/{ontologyDbId}
    • /scales
    • /scales/{scaleDbId}
    • /traits
    • /traits/{traitDbId}
    • /variables
    • /variables{observationVariableDbId}
  • BrAPI-Genotyping
    • /allelematrix
    • /callsets
    • /callsets/{callSetDbId}
    • /plates
    • /plates/{plateDbId}
    • /references
    • /references/{referenceDbId}
    • /referencesets
    • /referencesets/{referenceSetDbId}
    • /samples
    • /samples/{sampleDbId}
    • /variants
    • /variants/{variantDbId}
    • /variantsets
    • /variantsets/{variantSetDbId}
  • BrAPI-Germplasm
    • /attributes
    • /attributes/{attributeDbId}
    • /attributevalues
    • /attributevalues/{attributeValueDbId}
    • /breedingmethods
    • /breedingmethods/{breedingMethodDbId}
    • /germplasm
    • /germplasm/{germplasmDbId}

ToDo

  • Implement additional endpoints

Structure Configuration File

Create a config.ini file with the necessary configuration settings.

Basic Configuration

Include at least the brapi section:

[brapi]
port=8080
host=0.0.0.0
location=/
threads=4
debug=False
version=1.2.3

Optional: Serverinfo

Optionally, provide serverinfo entries:

contactEmail=noreply@wur.nl
documentationURL=https://github.com/matthijsbrouwer/brapi-proxy/
location=Wageningen
organizationName=Wageningen University and Research
organizationURL=https://www.plantbreeding.wur.nl/
serverDescription=Demo-version proxy to combine multiple BrAPI services
serverName=BrAPI-Proxy

Optional: Authorization

Optionally, provide authentication tokens to restrict access in the authorization section:

[authorization]
john=tokenjohn123abc
mary=tokenmary456def

Server Definitions

Within sections prefixed with server., define the underlying servers:

[server.test1]
url=https://test-server.brapi.org/brapi/v2
calls=commoncropnames,variants,allelematrix
authorization=XXXX
prefix.variants=barley:
prefix.variantsets=barley:
prefix.references=barley:
prefix.referencesets=barley:
prefix.callsets=barley:

[server.test2]
url=https://test-server.brapi.org/brapi/v2
calls=commoncropnames,variants,allelematrix
prefix.variants=wheat:
prefix.variantsets=wheat:
prefix.references=wheat:
prefix.referencesets=wheat:
prefix.callsets=wheat:

[server.test3]
url=https://test-server.brapi.org/brapi/v2
calls=samples,studies,plates,callsets,variantsets,referencesets,references

To include all available and supported calls from a namespace:

[server.test3]
url=https://test-server.brapi.org/brapi/v2
calls=core.*

To include all available and supported calls:

[server.test3]
url=https://test-server.brapi.org/brapi/v2
calls=*

This software has been developed for the AGENT project

Metadata

Release files for brapi-proxy 0.9.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for brapi-proxy 0.9.0
File Size Uploaded Provenance Actions
brapi_proxy-0.9.0.tar.gz 29.5 kB Without provenance Details for brapi_proxy-0.9.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for brapi-proxy 0.9.0
File Interpreter ABI Platform Actions
brapi_proxy-0.9.0-py3-none-any.whl Python 3 none any Details for brapi_proxy-0.9.0-py3-none-any.whl

Total release size: 93.1 kB

Release files / brapi_proxy-0.9.0.tar.gz

Download URL brapi_proxy-0.9.0.tar.gz
Size 29.5 kB
Tags Source
SHA-256 checksum
How to use checksums
27b346e6af592c8e09e08bb176ef06610f6a486ec27d30f398a7e7efc6236b19
BLAKE2b-256 checksum
How to use checksums
7d5278dcd14fe37eea20a0f44c741cf0ef110b870ef2841b10af27be7ba05be5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.0 CPython/3.10.4

Release files / brapi_proxy-0.9.0-py3-none-any.whl

Download URL brapi_proxy-0.9.0-py3-none-any.whl
Size 63.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f877245f932f0ec1611c603364ed3a5794f10105ee2cdff92786847e2e9d884b
BLAKE2b-256 checksum
How to use checksums
8c04ece155548b3ba4e18bc781c989e501fb6dde841ac2601e6f13f363b17b83
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.0 CPython/3.10.4

Security for brapi-proxy 0.9.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page