Skip to content

Commit 3173e95

Browse files
authored
fix: check uuid format before API call(#127)
* fix: id to UUID format * chore: add name to server docker-compose * fix: id to response UUID type format
1 parent 5561fee commit 3173e95

File tree

8 files changed

+35
-33
lines changed

8 files changed

+35
-33
lines changed

src/server/api/memobase_server/api_layer/blob.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,15 @@
55
from ..controllers import full as controllers
66

77
from ..env import TelemetryKeyName, TRACE_LOG
8-
from ..models.response import CODE
8+
from ..models.response import CODE, UUID
99
from ..models.utils import Promise
1010
from ..models import response as res
1111
from ..telemetry.capture_key import capture_int_key
1212

1313

1414
async def insert_blob(
1515
request: Request,
16-
user_id: str = Path(..., description="The ID of the user to insert the blob for"),
16+
user_id: UUID = Path(..., description="The ID of the user to insert the blob for"),
1717
wait_process: bool = Query(
1818
False, description="Whether to wait for the blob to be processed"
1919
),
@@ -100,8 +100,8 @@ async def insert_blob(
100100

101101
async def get_blob(
102102
request: Request,
103-
user_id: str = Path(..., description="The ID of the user"),
104-
blob_id: str = Path(..., description="The ID of the blob to retrieve"),
103+
user_id: UUID = Path(..., description="The ID of the user"),
104+
blob_id: UUID = Path(..., description="The ID of the blob to retrieve"),
105105
) -> res.BlobDataResponse:
106106
project_id = request.state.memobase_project_id
107107
p = await controllers.blob.get_blob(user_id, project_id, blob_id)
@@ -110,8 +110,8 @@ async def get_blob(
110110

111111
async def delete_blob(
112112
request: Request,
113-
user_id: str = Path(..., description="The ID of the user"),
114-
blob_id: str = Path(..., description="The ID of the blob to delete"),
113+
user_id: UUID = Path(..., description="The ID of the user"),
114+
blob_id: UUID = Path(..., description="The ID of the blob to delete"),
115115
) -> res.BaseResponse:
116116
project_id = request.state.memobase_project_id
117117
p = await controllers.blob.remove_blob(user_id, project_id, blob_id)

src/server/api/memobase_server/api_layer/buffer.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
from ..env import BufferStatus
21
from ..controllers import full as controllers
3-
from ..models.response import IdsData, IdsResponse
2+
from ..models.response import UUID, IdsResponse
43
from ..models.blob import BlobType
54
from ..models import response as res
65
from typing import Literal
@@ -10,7 +9,7 @@
109

1110
async def flush_buffer(
1211
request: Request,
13-
user_id: str = Path(..., description="The ID of the user"),
12+
user_id: UUID = Path(..., description="The ID of the user"),
1413
buffer_type: BlobType = Path(..., description="The type of buffer to flush"),
1514
wait_process: bool = Query(
1615
False, description="Whether to wait for the buffer to be processed"
@@ -51,7 +50,7 @@ async def flush_buffer(
5150

5251
async def get_processing_buffer_ids(
5352
request: Request,
54-
user_id: str = Path(..., description="The ID of the user"),
53+
user_id: UUID = Path(..., description="The ID of the user"),
5554
buffer_type: BlobType = Path(..., description="The type of buffer to flush"),
5655
status: Literal["idle", "processing", "failed", "done"] = Query(
5756
"processing", description="The status of the buffer to get"

src/server/api/memobase_server/api_layer/context.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
from ..controllers import full as controllers
44

5-
from ..models.response import CODE
5+
from ..models.response import CODE, UUID
66
from ..models.utils import Promise
77
from ..models import response as res
88
from fastapi import Request
@@ -11,7 +11,7 @@
1111

1212
async def get_user_context(
1313
request: Request,
14-
user_id: str = Path(..., description="The ID of the user"),
14+
user_id: UUID = Path(..., description="The ID of the user"),
1515
max_token_size: int = Query(
1616
1000,
1717
description="Max token size of returned Context",

src/server/api/memobase_server/api_layer/event.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
from ..controllers import full as controllers
22
from ..models import response as res
3+
from ..models.response import UUID
34
from fastapi import Request
45
from fastapi import Path, Query, Body
56

67

78
async def get_user_events(
89
request: Request,
9-
user_id: str = Path(..., description="The ID of the user"),
10+
user_id: UUID = Path(..., description="The ID of the user"),
1011
topk: int = Query(10, description="Number of events to retrieve, default is 10"),
1112
max_token_size: int = Query(
1213
None,
@@ -29,8 +30,8 @@ async def get_user_events(
2930

3031
async def delete_user_event(
3132
request: Request,
32-
user_id: str = Path(..., description="The ID of the user"),
33-
event_id: str = Path(..., description="The ID of the event"),
33+
user_id: UUID = Path(..., description="The ID of the user"),
34+
event_id: UUID = Path(..., description="The ID of the event"),
3435
) -> res.BaseResponse:
3536
project_id = request.state.memobase_project_id
3637
p = await controllers.event.delete_user_event(user_id, project_id, event_id)
@@ -39,8 +40,8 @@ async def delete_user_event(
3940

4041
async def update_user_event(
4142
request: Request,
42-
user_id: str = Path(..., description="The ID of the user"),
43-
event_id: str = Path(..., description="The ID of the event"),
43+
user_id: UUID = Path(..., description="The ID of the user"),
44+
event_id: UUID = Path(..., description="The ID of the event"),
4445
event_data: res.EventData = Body(..., description="Event data to update"),
4546
) -> res.BaseResponse:
4647
project_id = request.state.memobase_project_id
@@ -52,7 +53,7 @@ async def update_user_event(
5253

5354
async def search_user_events(
5455
request: Request,
55-
user_id: str = Path(..., description="The ID of the user"),
56+
user_id: UUID = Path(..., description="The ID of the user"),
5657
query: str = Query(..., description="The query to search for"),
5758
topk: int = Query(10, description="Number of events to retrieve, default is 10"),
5859
similarity_threshold: float = Query(
@@ -71,7 +72,7 @@ async def search_user_events(
7172

7273
async def search_user_event_gists(
7374
request: Request,
74-
user_id: str = Path(..., description="The ID of the user"),
75+
user_id: UUID = Path(..., description="The ID of the user"),
7576
query: str = Query(..., description="The query to search for"),
7677
topk: int = Query(10, description="Number of events to retrieve, default is 10"),
7778
similarity_threshold: float = Query(

src/server/api/memobase_server/api_layer/profile.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,15 @@
55
from ..controllers import full as controllers
66
from ..controllers.post_process.profile import filter_profiles_with_chats
77

8-
from ..models.response import CODE
8+
from ..models.response import CODE, UUID
99
from ..models.utils import Promise
1010
from ..models.blob import BlobType
1111
from ..models import response as res
1212

1313

1414
async def get_user_profile(
1515
request: Request,
16-
user_id: str = Path(..., description="The ID of the user to get profiles for"),
16+
user_id: UUID = Path(..., description="The ID of the user to get profiles for"),
1717
topk: int = Query(
1818
None, description="Number of profiles to retrieve, default is all"
1919
),
@@ -82,8 +82,8 @@ async def get_user_profile(
8282

8383
async def delete_user_profile(
8484
request: Request,
85-
user_id: str = Path(..., description="The ID of the user"),
86-
profile_id: str = Path(..., description="The ID of the profile to delete"),
85+
user_id: UUID = Path(..., description="The ID of the user"),
86+
profile_id: UUID = Path(..., description="The ID of the profile to delete"),
8787
) -> res.BaseResponse:
8888
"""Delete a profile"""
8989
project_id = request.state.memobase_project_id
@@ -93,8 +93,8 @@ async def delete_user_profile(
9393

9494
async def update_user_profile(
9595
request: Request,
96-
user_id: str = Path(..., description="The ID of the user"),
97-
profile_id: str = Path(..., description="The ID of the profile to update"),
96+
user_id: UUID = Path(..., description="The ID of the user"),
97+
profile_id: UUID = Path(..., description="The ID of the profile to update"),
9898
content: res.ProfileDelta = Body(
9999
..., description="The content of the profile to update"
100100
),
@@ -111,7 +111,7 @@ async def update_user_profile(
111111

112112
async def add_user_profile(
113113
request: Request,
114-
user_id: str = Path(..., description="The ID of the user"),
114+
user_id: UUID = Path(..., description="The ID of the user"),
115115
content: res.ProfileDelta = Body(
116116
..., description="The content of the profile to add"
117117
),
@@ -130,7 +130,7 @@ async def add_user_profile(
130130

131131
async def import_user_context(
132132
request: Request,
133-
user_id: str = Path(..., description="The ID of the user"),
133+
user_id: UUID = Path(..., description="The ID of the user"),
134134
content: res.UserContextImport = Body(
135135
..., description="The content of the user context to import"
136136
),

src/server/api/memobase_server/api_layer/roleplay.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,15 @@
33
from ..controllers.modal.roleplay import proactive_topics
44
from ..models.blob import BlobType
55
from ..models.utils import Promise, CODE
6+
from ..models.response import UUID
67
from ..models import response as res
78
from fastapi import Request
89
from fastapi import Body, Path, Query
910

1011

1112
async def infer_proactive_topics(
1213
request: Request,
13-
user_id: str = Path(..., description="The ID of the user"),
14+
user_id: UUID = Path(..., description="The ID of the user"),
1415
topk: int = Query(
1516
None, description="Number of profiles to retrieve, default is all"
1617
),

src/server/api/memobase_server/api_layer/user.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from ..controllers import full as controllers
22

3-
from ..models.response import BaseResponse
3+
from ..models.response import BaseResponse, UUID
44
from ..models.blob import BlobType
55
from ..models import response as res
66
from fastapi import Request
@@ -21,7 +21,7 @@ async def create_user(
2121

2222
async def get_user(
2323
request: Request,
24-
user_id: str = Path(..., description="The ID of the user to retrieve"),
24+
user_id: UUID = Path(..., description="The ID of the user to retrieve"),
2525
) -> res.UserDataResponse:
2626
project_id = request.state.memobase_project_id
2727
p = await controllers.user.get_user(user_id, project_id)
@@ -30,7 +30,7 @@ async def get_user(
3030

3131
async def update_user(
3232
request: Request,
33-
user_id: str = Path(..., description="The ID of the user to update"),
33+
user_id: UUID = Path(..., description="The ID of the user to update"),
3434
user_data: dict = Body(..., description="Updated user data"),
3535
) -> res.IdResponse:
3636
project_id = request.state.memobase_project_id
@@ -40,7 +40,7 @@ async def update_user(
4040

4141
async def delete_user(
4242
request: Request,
43-
user_id: str = Path(..., description="The ID of the user to delete"),
43+
user_id: UUID = Path(..., description="The ID of the user to delete"),
4444
) -> BaseResponse:
4545
project_id = request.state.memobase_project_id
4646
p = await controllers.user.delete_user(user_id, project_id)
@@ -49,7 +49,7 @@ async def delete_user(
4949

5050
async def get_user_all_blobs(
5151
request: Request,
52-
user_id: str = Path(..., description="The ID of the user to fetch blobs for"),
52+
user_id: UUID = Path(..., description="The ID of the user to fetch blobs for"),
5353
blob_type: BlobType = Path(..., description="The type of blobs to retrieve"),
5454
page: int = Query(0, description="Page number for pagination, starting from 0"),
5555
page_size: int = Query(10, description="Number of items per page, default is 10"),

src/server/docker-compose.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
name: memobase-server
12
services:
23
memobase-server-db:
34
image: pgvector/pgvector:pg17

0 commit comments

Comments
 (0)