From 742533e6e45d1612d6c12f661bc4e8eb111c1844 Mon Sep 17 00:00:00 2001 From: James Stevenson Date: Thu, 19 Feb 2026 13:08:47 -0500 Subject: [PATCH 1/2] feat: add spec version in serviceinfo --- src/anyvlm/schemas/common.py | 7 +++++-- tests/unit/test_restapi.py | 3 +++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/anyvlm/schemas/common.py b/src/anyvlm/schemas/common.py index d1b19a9..8bad574 100644 --- a/src/anyvlm/schemas/common.py +++ b/src/anyvlm/schemas/common.py @@ -1,14 +1,15 @@ """Define REST API schemas""" -from enum import Enum +from enum import StrEnum from typing import Literal +from anyvar.restapi.schema import ImplMetadata, SpecMetadata from pydantic import BaseModel from anyvlm import __version__ -class ServiceEnvironment(str, Enum): +class ServiceEnvironment(StrEnum): """Define current runtime environment.""" LOCAL = "local" @@ -54,3 +55,5 @@ class ServiceInfo(BaseModel): updatedAt: Literal["2025-06-01T00:00:00Z"] = "2025-06-01T00:00:00Z" # noqa: N815 environment: ServiceEnvironment version: str = __version__ + spec_metadata: SpecMetadata = SpecMetadata() + impl_metadata: ImplMetadata = ImplMetadata() diff --git a/tests/unit/test_restapi.py b/tests/unit/test_restapi.py index 6e6e2c8..7caae51 100644 --- a/tests/unit/test_restapi.py +++ b/tests/unit/test_restapi.py @@ -29,3 +29,6 @@ def test_service_info(restapi_client: TestClient, test_data_dir: Path): resolver = jsonschema.RefResolver.from_schema(spec) data = response.json() jsonschema.validate(instance=data, schema=resp_schema, resolver=resolver) + + assert data["spec_metadata"]["vrs_version"] is not None + assert data["impl_metadata"]["vrs_python_version"] is not None From e55ce22962b950b214ce027df9773e70e5c60a17 Mon Sep 17 00:00:00 2001 From: James Stevenson Date: Thu, 19 Feb 2026 14:44:23 -0500 Subject: [PATCH 2/2] add va --- src/anyvlm/schemas/common.py | 11 ++++++++++- tests/unit/test_restapi.py | 1 + 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/anyvlm/schemas/common.py b/src/anyvlm/schemas/common.py index 8bad574..6a01bb2 100644 --- a/src/anyvlm/schemas/common.py +++ b/src/anyvlm/schemas/common.py @@ -3,7 +3,9 @@ from enum import StrEnum from typing import Literal -from anyvar.restapi.schema import ImplMetadata, SpecMetadata +from anyvar.restapi.schema import ImplMetadata +from ga4gh.va_spec import VASPEC_VERSION +from ga4gh.vrs import VRS_VERSION from pydantic import BaseModel from anyvlm import __version__ @@ -37,6 +39,13 @@ class ServiceType(BaseModel): SERVICE_DESCRIPTION = "An AnyVLM instance" +class SpecMetadata(BaseModel): + """Define substructure for reporting specification metadata.""" + + vrs_version: str = VRS_VERSION + vaspec_version: str = VASPEC_VERSION + + class ServiceInfo(BaseModel): """Define response structure for GA4GH /service_info endpoint.""" diff --git a/tests/unit/test_restapi.py b/tests/unit/test_restapi.py index 7caae51..048f94a 100644 --- a/tests/unit/test_restapi.py +++ b/tests/unit/test_restapi.py @@ -31,4 +31,5 @@ def test_service_info(restapi_client: TestClient, test_data_dir: Path): jsonschema.validate(instance=data, schema=resp_schema, resolver=resolver) assert data["spec_metadata"]["vrs_version"] is not None + assert data["spec_metadata"]["vaspec_version"] is not None assert data["impl_metadata"]["vrs_python_version"] is not None