pytrace/server/app/main.py

33 lines
1.0 KiB
Python
Raw Normal View History

2026-01-15 21:58:30 +08:00
from fastapi import FastAPI
from .nodes import register_builtin_nodes
from .api import endpoints_graph, endpoints_custom_nodes
2026-01-19 00:49:55 +08:00
from .services import trace_server
from pytrace.runtime.repository import NodeRepository
2026-01-15 21:58:30 +08:00
app = FastAPI(
title="TraceStudio Server",
description="The backend server for the TraceStudio workflow engine.",
version="2.0.0",
)
@app.on_event("startup")
async def startup_event():
2026-01-19 00:49:55 +08:00
# 1. Register Nodes
2026-01-15 21:58:30 +08:00
register_builtin_nodes()
2026-01-19 00:49:55 +08:00
# 2. Start Worker Socket Server
trace_server.start_background()
# 3. Configure NodeRepository with RemoteRegistry
NodeRepository.set_remote_registry(trace_server.remote_registry)
# 4. Expose trace_server to app state (for API endpoints)
app.state.trace_server = trace_server
2026-01-15 21:58:30 +08:00
app.include_router(endpoints_graph.router, prefix="/graph", tags=["Graph"])
app.include_router(endpoints_custom_nodes.router, prefix="/custom-nodes", tags=["Custom Nodes"])
@app.get("/")
async def read_root():
return {"message": "Welcome to TraceStudio Server"}