All Bento services implement an extended version of the
GA4GH /service-info endpoint specification,
which are then aggregated into a Bento Service Registry,
which extends the
GA4GH Service Registry specification.
A bento property has been added, which contains Bento service-specific information, e.g.:
{
// ...
"bento": {
"serviceKind": "metadata",
"dataService": true,
"gitRepository": "https://github.com/bento-platform/katsu",
"gitTag": "v10.0.0",
"gitBranch": "refact/discovery-config-model",
"gitCommit": "6862f22c462b8366abacdf42e01a5ddaff173143",
}
}The following properties are allowed in the bento object inside Bento /service-info responses:
serviceKind: string- A unique identifier for the kind of Bento service this is (e.g.,
drop-box,wes,service-registry, ...). Styled lowercase and with dashes as word-separators.
- A unique identifier for the kind of Bento service this is (e.g.,
dataService: boolean- Whether the service is a data-providing service and serves a Bento-compatible
/data-typesendpoint defining the "data types" it can store. Can be left out, which implicitly meansfalsehere.
- Whether the service is a data-providing service and serves a Bento-compatible
workflowProvider: boolean- Whether the service is a workflow-providing service and serves Bento-compatible
/workflows,/workflows/<id>, and/workflows/<id>.wdlendpoints. Implicitly defaults totrueifdataServiceistrue, andfalseotherwise.
- Whether the service is a workflow-providing service and serves Bento-compatible
gitRepository: string(URL)- The service's Git repository URL.
gitTag: string- If in local development mode, the most recent ancestor Git tag in the cloned service repository's current tree.
gitBranch: string- If in local development mode, the current branch of the cloned service repository.
gitCommit: string- If in local development mode, the most recent commit hash in the cloned service repository's current branch.
If, in another service, you need the URL or other information about a service, the best way is to instantiate an
instance of the bento_lib.service_info.ServiceManager class. The docstrings
of the class and its methods describe some possible interaction scenarios. If there are errors contacting the service
registry, a ServiceManagerError will be raised.