summaryrefslogtreecommitdiffstats
path: root/packages/meshbay-hub/src/meshbay_hub/api/hub.py
diff options
context:
space:
mode:
Diffstat (limited to 'packages/meshbay-hub/src/meshbay_hub/api/hub.py')
-rw-r--r--packages/meshbay-hub/src/meshbay_hub/api/hub.py15
1 files changed, 11 insertions, 4 deletions
diff --git a/packages/meshbay-hub/src/meshbay_hub/api/hub.py b/packages/meshbay-hub/src/meshbay_hub/api/hub.py
index 4aef93d..8692995 100644
--- a/packages/meshbay-hub/src/meshbay_hub/api/hub.py
+++ b/packages/meshbay-hub/src/meshbay_hub/api/hub.py
@@ -1,22 +1,29 @@
"""Hub info endpoints — /v1/hub/*"""
-from fastapi import APIRouter
+from fastapi import APIRouter, Depends
+from sqlalchemy.ext.asyncio import AsyncSession
+
from meshbay_common import MNP_VERSION, MHP_VERSION
-from meshbay_hub import __version__
+from meshbay_hub import __version__, hub_settings
from meshbay_hub.auth import hub_public_key_pem
-from meshbay_hub.db.engine import get_engine
+from meshbay_hub.db.engine import get_db, get_engine
router = APIRouter(prefix="/v1/hub", tags=["hub"])
@router.get("/info")
-async def hub_info():
+async def hub_info(db: AsyncSession = Depends(get_db)):
engine = get_engine()
return {
"hub_version": __version__,
"mnp_version": MNP_VERSION,
"mhp_version": MHP_VERSION,
"db_dialect": engine.dialect.name,
+ # Instance policy the SPA needs before drawing the create-group form.
+ # Unauthenticated on purpose: it is not a secret, and the form is
+ # reachable before the group list loads. The hub enforces it regardless
+ # of what any client does with this flag.
+ "allow_public_groups": await hub_settings.public_groups_allowed(db),
}