fastapi-practices/fastapi-best-architecture
77 issues need attention.
77 warnings in the paths between 122 routes and 1 tables.
- ROUTES
- 122
- TABLES
- 1
- FILES READ
- 120
- RULES RUN
- 7/7
77 findings
GET /tasks/registered has no validator or rate limiter attached.
public-entry-guardedGET /task-results/{pk} has no validator or rate limiter attached.
public-entry-guardedGET /task-results has no validator or rate limiter attached.
public-entry-guardedGET /test has no validator or rate limiter attached.
public-entry-guardedGET /server has no validator or rate limiter attached.
public-entry-guardedPOST /login/swagger has no validator or rate limiter attached.
public-entry-guardedPOST /login has no validator or rate limiter attached.
public-entry-guardedGET /codes has no validator or rate limiter attached.
public-entry-guardedPOST /refresh has no validator or rate limiter attached.
public-entry-guardedPOST /logout has no validator or rate limiter attached.
public-entry-guardedGET /plugins has no validator or rate limiter attached.
public-entry-guardedGET /plugins/changed has no validator or rate limiter attached.
public-entry-guardedPOST /plugins has no validator or rate limiter attached.
public-entry-guardedDELETE /plugins/{plugin} has no validator or rate limiter attached.
public-entry-guardedPUT /plugins/{plugin}/status has no validator or rate limiter attached.
public-entry-guardedGET /plugins/{plugin} has no validator or rate limiter attached.
public-entry-guardedPOST /captcha has no validator or rate limiter attached.
public-entry-guardedGET /github has no validator or rate limiter attached.
public-entry-guardedGET /schedulers/all has no validator or rate limiter attached.
public-entry-guardedGET /schedulers/{pk} has no validator or rate limiter attached.
public-entry-guardedGET /schedulers has no validator or rate limiter attached.
public-entry-guardedGET /roles/all has no validator or rate limiter attached.
public-entry-guardedGET /roles/{pk}/menus has no validator or rate limiter attached.
public-entry-guardedGET /roles/{pk}/scopes has no validator or rate limiter attached.
public-entry-guardedGET /roles/{pk} has no validator or rate limiter attached.
public-entry-guardedGET /roles has no validator or rate limiter attached.
public-entry-guardedGET /google has no validator or rate limiter attached.
public-entry-guardedGET /menus/sidebar has no validator or rate limiter attached.
public-entry-guardedGET /menus/{pk} has no validator or rate limiter attached.
public-entry-guardedGET /menus has no validator or rate limiter attached.
public-entry-guardedGET /users/me has no validator or rate limiter attached.
public-entry-guardedGET /users/{pk} has no validator or rate limiter attached.
public-entry-guardedGET /users/{pk}/roles has no validator or rate limiter attached.
public-entry-guardedGET /users has no validator or rate limiter attached.
public-entry-guardedPOST /users has no validator or rate limiter attached.
public-entry-guardedPUT /users/{pk} has no validator or rate limiter attached.
public-entry-guardedPUT /users/{pk}/permissions has no validator or rate limiter attached.
public-entry-guardedPUT /users/me/password has no validator or rate limiter attached.
public-entry-guardedPUT /users/{pk}/password has no validator or rate limiter attached.
public-entry-guardedPUT /users/me/nickname has no validator or rate limiter attached.
public-entry-guardedPUT /users/me/avatar has no validator or rate limiter attached.
public-entry-guardedPUT /users/me/email has no validator or rate limiter attached.
public-entry-guardedGET /captcha has no validator or rate limiter attached.
public-entry-guardedGET /depts/{pk} has no validator or rate limiter attached.
public-entry-guardedGET /redis has no validator or rate limiter attached.
public-entry-guardedGET /me/bindings has no validator or rate limiter attached.
public-entry-guardedGET /me/binding has no validator or rate limiter attached.
public-entry-guardedDELETE /me/unbinding has no validator or rate limiter attached.
public-entry-guardedGET /data-rules/models has no validator or rate limiter attached.
public-entry-guardedGET /data-rules/models/{model}/columns has no validator or rate limiter attached.
public-entry-guardedGET /data-rules/value-template-variables has no validator or rate limiter attached.
public-entry-guardedGET /data-rules/all has no validator or rate limiter attached.
public-entry-guardedGET /data-rules/{pk} has no validator or rate limiter attached.
public-entry-guardedGET /data-rules has no validator or rate limiter attached.
public-entry-guardedGET /{pk} has no validator or rate limiter attached.
public-entry-guardedGET / has no validator or rate limiter attached.
public-entry-guardedGET /all has no validator or rate limiter attached.
public-entry-guardedGET /businesses/all has no validator or rate limiter attached.
public-entry-guardedGET /businesses/{pk} has no validator or rate limiter attached.
public-entry-guardedGET /businesses has no validator or rate limiter attached.
public-entry-guardedGET /businesses/{pk}/columns has no validator or rate limiter attached.
public-entry-guardedGET /columns/types has no validator or rate limiter attached.
public-entry-guardedGET /columns/{pk} has no validator or rate limiter attached.
public-entry-guardedGET /opera has no validator or rate limiter attached.
public-entry-guardedGET /type-codes/{code} has no validator or rate limiter attached.
public-entry-guardedGET /data-scopes/all has no validator or rate limiter attached.
public-entry-guardedGET /data-scopes/{pk} has no validator or rate limiter attached.
public-entry-guardedGET /data-scopes/{pk}/rules has no validator or rate limiter attached.
public-entry-guardedGET /data-scopes has no validator or rate limiter attached.
public-entry-guardedGET /sessions has no validator or rate limiter attached.
public-entry-guardedDELETE /sessions/{pk} has no validator or rate limiter attached.
public-entry-guardedGET /login has no validator or rate limiter attached.
public-entry-guardedGET /generations/tables has no validator or rate limiter attached.
public-entry-guardedGET /generations/{pk}/preview has no validator or rate limiter attached.
public-entry-guardedGET /generations/{pk}/paths has no validator or rate limiter attached.
public-entry-guardedGET /generations/{pk} has no validator or rate limiter attached.
public-entry-guardedsys_user_social is not connected to anything.
no-orphan-datastore
Part of this repository was not read, so this report is incomplete. Read 120 of 292 files, schemas and routes first. Point Wyro at a single service directory to read one in full. Unread: backend/common/model.py.
Free account, no card. The repository opens as an editable graph.
Add this check to the README
[](https://wyro.in/scan/fastapi-practices/fastapi-best-architecture)It updates itself whenever the repository changes and links back to this report.
What this is
Wyro reads the repository’s routes and data models and checks the paths between them: whether a route can reach a table without passing a guard, whether a datastore holding personal data is exposed to a public read, whether an endpoint that issues credentials requires the credentials it issues.
It is rule-based, not a model. The same commit produces the same result every time, and it does not guess at business rules it cannot see. A rule with nothing to look at is reported as not having run — never as a pass.
This check runs on public source through GitHub’s own API and needs no account. A free account adds the editable architecture canvas, private repositories on paid plans, and a CI gate. No card required.