Skip to content

Commit dd27890

Browse files
feat(fastapi):
- removed cors
1 parent 3fd4f51 commit dd27890

File tree

6 files changed

+48
-11
lines changed

6 files changed

+48
-11
lines changed

.env.example

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,6 @@ MONGO_PORT=27017
3939
MONGO_USERNAME="root"
4040
MONGO_PASSWORD="password"
4141

42+
# Auth
43+
# Used to handle authentication
44+
BRAINPAT_TOKEN="your_token"

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "brainapi2"
3-
version = "1.5.5-dev"
3+
version = "1.5.6-dev"
44
description = "Version 1.x.x of the BrainAPI memory layer."
55
authors = [
66
{name = "Christian",email = "[email protected]"}

src/config.py

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff 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

143138
config = Config()

src/services/api/app.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,18 @@
1414
from fastapi.middleware.cors import CORSMiddleware
1515
from uvicorn import run
1616

17+
from src.services.api.middlewares.auth import BrainPATMiddleware
1718
from src.services.api.routes.ingest import ingest_router
1819
from src.services.api.routes.retrieve import retrieve_router
1920
from src.services.api.routes.meta import meta_router
20-
from src.config import config
21+
2122

2223
app = FastAPI()
2324

25+
app.add_middleware(BrainPATMiddleware)
2426
app.add_middleware(
2527
CORSMiddleware,
26-
allow_origins=config.cors.origins,
28+
allow_origins=["*"],
2729
allow_credentials=True,
2830
allow_methods=["*"],
2931
allow_headers=["*"],
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
"""
2+
File: /__init__.py
3+
Created Date: Thursday November 27th 2025
4+
Author: Christian Nonis <[email protected]>
5+
-----
6+
Last Modified: Thursday November 27th 2025 10:19:56 pm
7+
Modified By: the developer formerly known as Christian Nonis at <[email protected]>
8+
-----
9+
"""
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
"""
2+
File: /auth.py
3+
Created Date: Thursday November 27th 2025
4+
Author: Christian Nonis <[email protected]>
5+
-----
6+
Last Modified: Thursday November 27th 2025 10:20:03 pm
7+
Modified By: the developer formerly known as Christian Nonis at <[email protected]>
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

0 commit comments

Comments
 (0)