#genetics #http #api #jsonschema #validation

app beacon-verifier

Compliance tool to verify beacon implementations

19 releases

0.3.3 Dec 21, 2022
0.3.2 Nov 29, 2021
0.2.8 Oct 29, 2021
0.2.2 Sep 30, 2021
0.1.3 Jul 22, 2021

#101 in Testing

Download history 1/week @ 2022-11-30 1/week @ 2022-12-14 44/week @ 2022-12-21 3/week @ 2023-01-04 2/week @ 2023-01-11 3/week @ 2023-01-18 6/week @ 2023-01-25 6/week @ 2023-02-01 42/week @ 2023-02-08 38/week @ 2023-02-15 22/week @ 2023-02-22 39/week @ 2023-03-15

61 downloads per month

Apache-2.0

190KB
1K SLoC

Beacon verifier

beacon-verifier.001.png

Installation

Requirements: Rust Minimum Rust version: 1.56

cargo install beacon-verifier

Usage

You can specify one or multiple urls:

beacon-verifier https://beacon-url.com/

By default, the Beacon v2 model is being used. But you can provide your own model with the --model option. The model should follow the Beacon Framework.

beacon-verifier --model https://beacon-model.com/ https://beacon-url.com/

Alternatively, you can specify a local path for the model:

beacon-verifier --model file://$PWD/tests/BEACON-V2-Model https://beacon-url.com/

Output

The output is a JSON file written to stdout. You can redirect it to save it into a file.

beacon-verifier https://beacon-url.com/ > /path/to/output

Output example

[
    {
        "name": "Beacon Name",
        "url": "https://...",
        "entities": {
            "individuals": {
                "name": "Individuals",
                "url": "https://.../individuals",
                "valid": true,
                "error": null,
            },
            "variants": {
                "name": "Variants",
                "url": "https://.../variants",
                "valid": false,
                "error": "Bad schema"
            },
            "biosamples": {
                "name": "Biosamples",
                "url": "https://.../biosamples",
                "valid": null,
                "error": "Unresponsive endpoint"
            }
        }
    }
]

Output format

The output is a Vec<Beacon> with the following format:

struct Beacon {
    name: String,
    url: String,
    entities: Vec<Entity>
}

struct Entity {
    name: String,
    url: String,
    valid: Option<bool>,
    error: Option<VerifierError>
}

Dependencies

~20–30MB
~651K SLoC