File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -39,3 +39,6 @@ MONGO_PORT=27017
3939MONGO_USERNAME = " root"
4040MONGO_PASSWORD = " password"
4141
42+ # Auth
43+ # Used to handle authentication
44+ BRAINPAT_TOKEN = " your_token"
Original file line number Diff line number Diff line change 11[project ]
22name = " brainapi2"
3- version = " 1.5.5 -dev"
3+ version = " 1.5.6 -dev"
44description = " Version 1.x.x of the BrainAPI memory layer."
55authors = [
66 {name = " Christian" ,email = " alch.infoemail@gmail.com" }
Original file line number Diff line number Diff line change @@ -128,16 +128,11 @@ def __init__(self):
128128 self .milvus = MilvusConfig ()
129129 self .embeddings = EmbeddingsConfig ()
130130 self .mongo = MongoConfig ()
131- self .cors = CorsConfig ()
132131
132+ self .brainpat_token = os .getenv ("BRAINPAT_TOKEN" )
133133
134- class CorsConfig :
135- """
136- Configuration class for the Cors configuration.
137- """
138-
139- def __init__ (self ):
140- self .origins = os .getenv ("CORS_ORIGINS" , "*" ).split ("," )
134+ if not self .brainpat_token :
135+ raise ValueError ("BrainPAT token is not set" )
141136
142137
143138config = Config ()
Original file line number Diff line number Diff line change 1414from fastapi .middleware .cors import CORSMiddleware
1515from uvicorn import run
1616
17+ from src .services .api .middlewares .auth import BrainPATMiddleware
1718from src .services .api .routes .ingest import ingest_router
1819from src .services .api .routes .retrieve import retrieve_router
1920from src .services .api .routes .meta import meta_router
20- from src . config import config
21+
2122
2223app = FastAPI ()
2324
25+ app .add_middleware (BrainPATMiddleware )
2426app .add_middleware (
2527 CORSMiddleware ,
26- allow_origins = config . cors . origins ,
28+ allow_origins = [ "*" ] ,
2729 allow_credentials = True ,
2830 allow_methods = ["*" ],
2931 allow_headers = ["*" ],
Original file line number Diff line number Diff line change 1+ """
2+ File: /__init__.py
3+ Created Date: Thursday November 27th 2025
4+ Author: Christian Nonis <alch.infoemail@gmail.com>
5+ -----
6+ Last Modified: Thursday November 27th 2025 10:19:56 pm
7+ Modified By: the developer formerly known as Christian Nonis at <alch.infoemail@gmail.com>
8+ -----
9+ """
Original file line number Diff line number Diff line change 1+ """
2+ File: /auth.py
3+ Created Date: Thursday November 27th 2025
4+ Author: Christian Nonis <alch.infoemail@gmail.com>
5+ -----
6+ Last Modified: Thursday November 27th 2025 10:20:03 pm
7+ Modified By: the developer formerly known as Christian Nonis at <alch.infoemail@gmail.com>
8+ -----
9+ """
10+
11+ from fastapi import Request
12+ from fastapi .responses import JSONResponse
13+ from starlette .middleware .base import BaseHTTPMiddleware
14+ from starlette import status
15+
16+ from src .config import config
17+
18+
19+ class BrainPATMiddleware (BaseHTTPMiddleware ):
20+ async def dispatch (self , request : Request , call_next ):
21+ brainpat = request .headers .get ("BrainPAT" )
22+ if brainpat != config .brainpat_token :
23+ return JSONResponse (
24+ status_code = status .HTTP_401_UNAUTHORIZED ,
25+ content = {"detail" : "Invalid or missing BrainPAT header" },
26+ )
27+ response = await call_next (request )
28+ return response
You can’t perform that action at this time.
0 commit comments