Files
microdao-daarion/gateway-bot/app.py

63 lines
1.7 KiB
Python

"""FastAPI app instance for Gateway Bot."""
import logging
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from http_api import router as gateway_router
from http_api_doc import router as doc_router
from daarion_facade.invoke_api import router as invoke_router
from daarion_facade.registry_api import router as registry_router
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s [%(levelname)s] %(name)s: %(message)s"
)
app = FastAPI(
title="Bot Gateway with DAARWIZZ",
version="1.1.0",
description="Gateway service for Telegram/Discord bots + DAARION public facade"
)
# CORS for web UI clients (gateway only).
app.add_middleware(
CORSMiddleware,
allow_origins=[
"https://daarion.city",
"https://www.daarion.city",
"http://localhost:3000",
],
allow_origin_regex=r"https://.*\.lovable\.app",
allow_credentials=True,
allow_methods=["GET", "POST", "OPTIONS"],
allow_headers=["Authorization", "Content-Type"],
)
# Existing gateway routes.
app.include_router(gateway_router, prefix="", tags=["gateway"])
app.include_router(doc_router, prefix="", tags=["docs"])
# Public facade routes for DAARION.city UI.
app.include_router(registry_router)
app.include_router(invoke_router)
@app.get("/")
async def root():
return {
"service": "bot-gateway",
"version": "1.1.0",
"agent": "DAARWIZZ",
"endpoints": [
"POST /telegram/webhook",
"POST /discord/webhook",
"GET /v1/registry/agents",
"GET /v1/registry/districts",
"GET /v1/metrics",
"POST /v1/invoke",
"GET /v1/jobs/{job_id}",
"GET /health",
]
}