import os from fastapi import FastAPI, Header, HTTPException, Request from pydantic import BaseModel from typing import Optional app = FastAPI() # Get the Secret from Hugging Face Settings API_KEY = os.getenv("API_KEY") class EncryptedSignal(BaseModel): recipient_id: str encrypted_blob: str # The E2EE data from AIDE type: str = "signal" @app.get("/") def health_check(): return {"status": "Teamer Python Server is Online", "blind": True} @app.post("/api/push") async def push_signal( signal: EncryptedSignal, x_api_key: Optional[str] = Header(None) ): # 1. Security Check if not x_api_key or x_api_key != API_KEY: print("Unauthorized access attempt blocked.") raise HTTPException(status_code=401, detail="Unauthorized") # 2. Blind Routing Logic # The server only sees who it is for, not what is inside. print(f"Routing encrypted payload to: {signal.recipient_id}") # In a full app, you would push this to a DB (like MongoDB or Supabase) return { "success": True, "message": "Blob routed", "timestamp": os.getloadavg() # Just a dummy metric } if __name__ == "__main__": import uvicorn # Hugging Face uses port 7860 by default port = int(os.getenv("PORT", 7860)) uvicorn.run(app, host="0.0.0.0", port=port)