summaryrefslogtreecommitdiffstats
path: root/packages/meshbay-hub/src/meshbay_hub/api/hub.py
blob: 6e2db9edd72c4e1de9bdd8d0d4eb4325cae775c8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
"""Hub info endpoints — /v1/hub/*"""

from fastapi import APIRouter
from meshbay_common import MNP_VERSION, MHP_VERSION
from meshbay_hub import __version__
from meshbay_hub.auth import hub_public_key_pem
from meshbay_hub.db.engine import get_engine

router = APIRouter(prefix="/v1/hub", tags=["hub"])


@router.get("/info")
async def hub_info():
    engine = get_engine()
    return {
        "hub_version": __version__,
        "mnp_version": MNP_VERSION,
        "mhp_version": MHP_VERSION,
        "db_dialect":  engine.dialect.name,
    }


@router.get("/pubkey")
async def hub_pubkey():
    """Hub Ed25519 public key PEM — cached by nodes on first contact."""
    return {"pk_hub_pem": hub_public_key_pem().decode()}


@router.get("/version")
async def hub_version():
    """Version check endpoint for clients to detect updates."""
    return {
        "hub": __version__,
        "mnp": MNP_VERSION,
        "mhp": MHP_VERSION,
    }