from fastapi import FastAPI,Request,HTTPException,Response from pydantic import BaseModel from fastapi.responses import JSONResponse import uuid from fastapi.middleware.cors import CORSMiddleware import json import base64 from components.middleware import x401Kit from components.mongodbconnection import provideClient import hashlib import secrets app=FastAPI() dbclient=provideClient() db=dbclient["sdklogs_db"] col=db["sdklogs_col"] origins=["*"] app.add_middleware( CORSMiddleware, allow_origins=origins, allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) app.add_middleware( x401Kit, protected_paths=[ "/x401_auth" ] ) def generate_sha256_hex_challenge(): random_data = secrets.token_bytes(32) challenge = hashlib.sha256(random_data).hexdigest() return challenge @app.get("/x401_auth") def Auth401(request:Request): return {"token":""} @app.get("/x401_web_auth_challange") def WebAuthChallange(request:Request): challange=generate_sha256_hex_challenge() return {"challange":challange} @app.get("/sdklogs/{id}") def SDKLog(id): document=col.find_one({"owner":"system"}) details=None if document: logs=document["logs"] for data in logs: if data.signer==id: details=data return JSONResponse(content={"details":details})