Skip to content

Commit 2872dac

Browse files
fix(brains)
1 parent 1b99532 commit 2872dac

File tree

8 files changed

+29
-19
lines changed

8 files changed

+29
-19
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,5 @@ __pycache__
55
*.excalidraw
66
dist
77
common.egg-info
8-
.venv
8+
.venv
9+
.env.development

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,4 +84,4 @@ HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 \
8484
CMD curl -f http://localhost:8000/docs || exit 1
8585

8686
# Default command
87-
CMD ["/app/.venv/bin/python", "-m", "uvicorn", "src.services.api.app:app", "--host", "0.0.0.0", "--port", "8000"]
87+
CMD ["/app/.venv/bin/python", "-m", "uvicorn", "src.services.api.app:app", "--host", "0.0.0.0", "--port", "8000", "--access-log", "--log-level", "info"]

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ delete-mongo-volumes:
4545
docker compose -f src/lib/mongo/docker-compose.yaml down -v --remove-orphans
4646

4747
start-api:
48-
poetry run uvicorn src.services.api.app:app --host 0.0.0.0 --port 8000
48+
ENV=development poetry run uvicorn src.services.api.app:app --host 0.0.0.0 --port 8000 --access-log --log-level info --reload
4949

5050
stop-api:
5151
pkill -f uvicorn

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.6.2-dev"
3+
version = "1.6.5-dev"
44
description = "Version 1.x.x of the BrainAPI memory layer."
55
authors = [
66
{name = "Christian",email = "alch.infoemail@gmail.com"}

src/services/api/app.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
import os
1212

13-
from fastapi import FastAPI
13+
from fastapi import FastAPI, Response
1414
from fastapi.middleware.cors import CORSMiddleware
1515
from uvicorn import run
1616

@@ -21,8 +21,7 @@
2121
from src.services.api.routes.meta import meta_router
2222
from src.services.api.routes.system import system_router
2323

24-
25-
app = FastAPI()
24+
app = FastAPI(debug=os.getenv("ENV") == "development")
2625

2726
app.add_middleware(BrainPATMiddleware)
2827
app.add_middleware(BrainMiddleware)
@@ -40,5 +39,11 @@
4039
app.include_router(meta_router)
4140
app.include_router(system_router)
4241

42+
43+
@app.get("/")
44+
async def root():
45+
return Response(content="ok", status_code=200)
46+
47+
4348
if __name__ == "__main__":
4449
run(app, host="0.0.0.0", port=8000, reload=os.getenv("ENV") == "development")

src/services/api/middlewares/auth.py

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -40,18 +40,20 @@ async def dispatch(self, request: Request, call_next):
4040
if not cached_brainpat and not use_only_system_pat:
4141
stored_brain = data_adapter.get_brain(name_key=brain_id)
4242
system_pat = os.getenv("BRAINPAT_TOKEN")
43-
if not stored_brain and brainpat != system_pat:
44-
return JSONResponse(
45-
status_code=status.HTTP_401_UNAUTHORIZED,
46-
content={"detail": "Invalid or missing BrainPAT header"},
43+
if not stored_brain:
44+
if brainpat != system_pat:
45+
return JSONResponse(
46+
status_code=status.HTTP_401_UNAUTHORIZED,
47+
content={"detail": "Invalid or missing BrainPAT header"},
48+
)
49+
cached_brainpat = system_pat
50+
else:
51+
cached_brainpat = stored_brain.pat
52+
cache_adapter.set(
53+
key=cachepat_key,
54+
value=stored_brain.pat,
55+
brain_id="system",
4756
)
48-
49-
cached_brainpat = stored_brain.pat
50-
cache_adapter.set(
51-
key=cachepat_key,
52-
value=stored_brain.pat,
53-
brain_id="system",
54-
)
5557
if not cached_brainpat and use_only_system_pat:
5658
system_pat = os.getenv("BRAINPAT_TOKEN")
5759
cached_brainpat = system_pat

src/services/api/middlewares/brains.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@
2020

2121
class BrainMiddleware(BaseHTTPMiddleware):
2222
async def dispatch(self, request: Request, call_next):
23+
if request.method == "POST" and request.url.path == "/system/brains":
24+
return await call_next(request)
25+
2326
brain_id = None
2427

2528
brain_id = request.headers.get("X-Brain-ID")

src/utils/logging.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import time
1414
from typing import Callable
1515

16-
logging.basicConfig(level=logging.INFO, format="%(levelname)s: %(message)s")
1716
logger = logging.getLogger(__name__)
1817

1918

0 commit comments

Comments
 (0)