-
Notifications
You must be signed in to change notification settings - Fork 48
fix(storage): native read transport, governance extraction, and SQLite dataset isolation #481
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
16 commits
Select commit
Hold shift + click to select a range
cb6db3e
fix(storage): resolve the SQLite file from the dataset identity
guangyu-reflexio 52cd1d7
refactor: extract share_links and governance-erasure service to enter…
guangyu-reflexio 8974086
feat: make background-work payloads project-aware and scope failures …
guangyu-reflexio 1be41da
feat: bind the durable-learning job's project and escalate scope fail…
guangyu-reflexio d1ac41d
test: prove the durable-learning worker binds its job's project
guangyu-reflexio 22c4aaf
fix(tests): repair the type-level fallout of the project-aware payloads
guangyu-reflexio eac7cb9
Merge commit 'cb6db3eeb897de6915c7ec75336436504ae7c3a8' into integrat…
guangyu-reflexio 19c40dc
Merge commit '52cd1d77b3f1365f3ed97ff101d23a639cccca2a' into integrat…
guangyu-reflexio 3cf572e
fix(tenancy): give the retention throttle a project component
guangyu-reflexio cd872f7
feat(config): add get_org_config so config writes skip any caller ove…
guangyu-reflexio ab1d33f
Merge project-scoped config resolution into the retention-throttle line
guangyu-reflexio b5ad82d
fix(api): stop validation errors 500ing, and stop them echoing secrets
guangyu-reflexio 0b57836
fix(tests): teach the config mock about get_org_config
guangyu-reflexio 0696255
docs: correct the stale tagging debounce key in the module docstring
guangyu-reflexio b2425a8
Merge the config-mock fix and tagging docstring correction
guangyu-reflexio c654cdf
fix(storage): refuse a legacy file carrying another identity's erasur…
guangyu-reflexio File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,4 +1,3 @@ | ||
| from ..common import * # noqa: F401, F403 | ||
| from .entities import * # noqa: F401, F403 | ||
| from .enums import * # noqa: F401, F403 | ||
| from .governance import * # noqa: F401, F403 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🔒 Security & Privacy | 🟠 Major | ⚡ Quick win
🔎 Supported by static analysis
🏁 Script executed:
Repository: ReflexioAI/reflexio
Length of output: 19187
🤖 get_repo_knowledge executed:
get_repo_knowledge ReflexioAI/reflexio /tmp/coderabbit-repo-knowledge/reflexioai-reflexio-1bb80d92/architecture /tmp/coderabbit-repo-knowledge/reflexioai-reflexio-1bb80d92/conventions /tmp/coderabbit-repo-knowledge/reflexioai-reflexio-1bb80d92/learningsLength of output: 45410
🏁 Script executed:
Repository: ReflexioAI/reflexio
Length of output: 25193
🌐 Web query:
FastAPI request_validation_exception_handler exc.errors jsonable_encoder input field official source💡 Result:
In FastAPI, the
request_validation_exception_handleris the default exception handler used to processRequestValidationErrorinstances [1][2]. When a request contains invalid data, FastAPI internally raises this exception [3][4]. The official implementation of the default handler is as follows: async def request_validation_exception_handler( request: Request, exc: RequestValidationError) -> JSONResponse: return JSONResponse( status_code=422, content={"detail": jsonable_encoder(exc.errors)},) Key technical details: - exc.errors: This method returns a list of validation errors, each containing information such as the location of the error (loc), the error message (msg), and the error type [3][5]. - jsonable_encoder: This utility is used to convert complex objects (like Pydantic models or non-serializable types) into JSON-compatible Python data structures (e.g., dicts, lists, strings) before they are returned in the response [6][7]. - Overriding the handler: You can override this behavior by registering a custom handler using the@app.exception_handler(RequestValidationError) decorator [3][8]. When you do this, your custom handler replaces the default one [5]. It is common to use jsonable_encoder within custom handlers to ensure the structured error data is safely serialized for the JSON response [3][9]. For further implementation examples, such as customizing the output format or logging specific validation details, consult the official FastAPI documentation on Handling Errors [3][10].Citations:
Sanitize every validation response.
The default handler serializes raw
exc.errors(), including the submitted document in each error'sinputfield. This can expose passwords, API keys, and HMAC secrets. Returnsafe_validation_errors(errors)for everyRequestValidationErrorresponse.🤖 Prompt for AI Agents