Source code for mindroot.coreplugins.jwt_auth.mod

from lib.providers.hooks import hook
from lib.route_decorators import public_route, public_routes
from starlette.routing import Mount, Route
import json
print("---  Hello from JWT mod ---")

[docs] @hook() async def startup(app, context): print('Running startup hook') print('Registering public routes:') def register_route(route_path, route_obj): """Helper function to register a route if it's marked as public""" if hasattr(route_obj, 'endpoint') and hasattr(route_obj.endpoint, '__public_route__'): print(f"Found public route: {route_path}") public_routes.add(route_path) return True return False def process_routes(routes, path_prefix=""): """Recursively process routes and sub-routes""" for route in routes: if isinstance(route, Mount): # Handle mounted sub-applications mount_path = path_prefix + route.path.rstrip('/') print(f"Processing mount: {mount_path}") # Process sub-routes within the mount if hasattr(route, 'routes'): for sub_route in route.routes: if isinstance(sub_route, Route): full_path = mount_path + sub_route.path if not register_route(full_path, sub_route): print(f"Skipping private route: {full_path}") else: print(f"Skipping non-route in mount: {sub_route}") elif isinstance(route, Route): # Handle direct routes full_path = path_prefix + route.path if not register_route(full_path, route): print(f"Skipping private route: {full_path}") else: print(f"Skipping unknown route type: {route}") # Process all routes process_routes(app.routes) print(f"Final public routes registered: {public_routes}")