diff options
| author | Christophe Besson <cbesson@gmail.com> | 2026-08-09 05:15:57 +0200 |
|---|---|---|
| committer | Christophe Besson <cbesson@gmail.com> | 2026-08-09 05:15:57 +0200 |
| commit | 1734c668406c66e2be63e0c6999b4b2af2f60808 (patch) | |
| tree | 3a537834f777d879993fde1f910e5a2e9c92505f /packages/meshbay-hub/src/meshbay_hub/app.py | |
| parent | 88cfc139333ac3fe5789f39f3970065181df9043 (diff) | |
| download | meshbay-1734c668406c66e2be63e0c6999b4b2af2f60808.tar.gz | |
feat: add revocation push (WebSocket hub→node) — 5.7
Hub: /v1/nodes/ws WebSocket endpoint for persistent node connections.
/v1/admin/revoke marks user/group revoked in DB, signs JWT revocation
token (EdDSA), broadcasts to all connected nodes.
Node: RevocationSubscriber maintains WS connection, verifies
incoming revocation tokens offline (hub Ed25519 PK), adds to
local blocklist (_revoked_users/_revoked_groups sets).
53/53 tests.
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'packages/meshbay-hub/src/meshbay_hub/app.py')
| -rw-r--r-- | packages/meshbay-hub/src/meshbay_hub/app.py | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/packages/meshbay-hub/src/meshbay_hub/app.py b/packages/meshbay-hub/src/meshbay_hub/app.py index 5897ce0..0254d08 100644 --- a/packages/meshbay-hub/src/meshbay_hub/app.py +++ b/packages/meshbay-hub/src/meshbay_hub/app.py @@ -20,11 +20,12 @@ from meshbay_hub import __version__ from meshbay_hub.auth import generate_hub_keypair, load_hub_keypair from meshbay_hub.config import HubConfig from meshbay_hub.db.engine import close_db, init_db -from meshbay_hub.api.hub import router as hub_router -from meshbay_hub.api.users import router as users_router, set_config as users_set_config -from meshbay_hub.api.nodes import router as nodes_router -from meshbay_hub.api.groups import router as groups_router -from meshbay_hub.api.webapp import router as webapp_router +from meshbay_hub.api.hub import router as hub_router +from meshbay_hub.api.users import router as users_router, set_config as users_set_config +from meshbay_hub.api.nodes import router as nodes_router +from meshbay_hub.api.groups import router as groups_router +from meshbay_hub.api.revocation import router as revocation_router +from meshbay_hub.api.webapp import router as webapp_router from meshbay_hub.api.middleware import limiter @@ -65,6 +66,7 @@ def create_app(cfg: HubConfig | None = None) -> FastAPI: app.include_router(users_router) app.include_router(nodes_router) app.include_router(groups_router) + app.include_router(revocation_router) app.include_router(webapp_router) return app |