Louis3797/express-ts-auth-service
31 issues need attention.
9 errors and 22 warnings in the paths between 9 routes and 5 tables.
- ROUTES
- 9
- TABLES
- 5
- FILES READ
- 30
- RULES RUN
- 7/7
31 findings
POST /forgot-password can reach ResetToken without authenticating.
auth-before-dataPOST /forgot-password → ResetTokenPOST /reset-password/:token can reach ResetToken without authenticating.
auth-before-dataPOST /reset-password/:token → ResetTokenPOST /signup can reach EmailVerificationToken without authenticating.
auth-before-dataPOST /signup → EmailVerificationTokenPOST /login can reach EmailVerificationToken without authenticating.
auth-before-dataPOST /login → EmailVerificationTokenPOST /logout can reach EmailVerificationToken without authenticating.
auth-before-dataPOST /logout → EmailVerificationTokenPOST /refresh can reach EmailVerificationToken without authenticating.
auth-before-dataPOST /refresh → EmailVerificationTokenPOST /send-verification-email can reach User without authenticating.
auth-before-dataPOST /send-verification-email → UserPOST /send-verification-email can reach EmailVerificationToken without authenticating.
auth-before-dataPOST /send-verification-email → EmailVerificationTokenPOST /verify-email/:token can reach EmailVerificationToken without authenticating.
auth-before-dataPOST /verify-email/:token → EmailVerificationTokenPOST /forgot-password reaches User without auth, which is expected for an authentication endpoint.
auth-entry-publicPOST /forgot-password → UserPOST /forgot-password reaches RefreshToken without auth, which is expected for an authentication endpoint.
auth-entry-publicPOST /forgot-password → RefreshTokenPOST /reset-password/:token reaches User without auth, which is expected for an authentication endpoint.
auth-entry-publicPOST /reset-password/:token → UserPOST /reset-password/:token reaches RefreshToken without auth, which is expected for an authentication endpoint.
auth-entry-publicPOST /reset-password/:token → RefreshTokenPOST /signup reaches User without auth, which is expected for an authentication endpoint.
auth-entry-publicPOST /signup → UserPOST /signup reaches RefreshToken without auth, which is expected for an authentication endpoint.
auth-entry-publicPOST /signup → RefreshTokenPOST /login reaches User without auth, which is expected for an authentication endpoint.
auth-entry-publicPOST /login → UserPOST /login reaches RefreshToken without auth, which is expected for an authentication endpoint.
auth-entry-publicPOST /login → RefreshTokenPOST /logout reaches User without auth, which is expected for an authentication endpoint.
auth-entry-publicPOST /logout → UserPOST /logout reaches RefreshToken without auth, which is expected for an authentication endpoint.
auth-entry-publicPOST /logout → RefreshTokenPOST /refresh reaches User without auth, which is expected for an authentication endpoint.
auth-entry-publicPOST /refresh → UserPOST /refresh reaches RefreshToken without auth, which is expected for an authentication endpoint.
auth-entry-publicPOST /refresh → RefreshTokenPOST /verify-email/:token reaches User without auth, which is expected for an authentication endpoint.
auth-entry-publicPOST /verify-email/:token → UserPOST /forgot-password has no validator or rate limiter attached.
public-entry-guardedPOST /reset-password/:token has no validator or rate limiter attached.
public-entry-guardedPOST /signup has no validator or rate limiter attached.
public-entry-guardedPOST /login has no validator or rate limiter attached.
public-entry-guardedPOST /logout has no validator or rate limiter attached.
public-entry-guardedPOST /refresh has no validator or rate limiter attached.
public-entry-guardedPOST /send-verification-email has no validator or rate limiter attached.
public-entry-guardedPOST /verify-email/:token has no validator or rate limiter attached.
public-entry-guardedAccount is not connected to anything.
no-orphan-datastore
Free account, no card. The repository opens as an editable graph.
Add this check to the README
[](https://wyro.in/scan/Louis3797/express-ts-auth-service)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.