Louis3797/express-ts-auth-service

9 errors, 22 warningsmain

31 issues need attention.

9 errors and 22 warnings in the paths between 9 routes and 5 tables.

ROUTE FINDINGS8 of 9 · 7/7 rules
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 → ResetToken

  • POST /reset-password/:token can reach ResetToken without authenticating.

    auth-before-dataPOST /reset-password/:token → ResetToken

  • POST /signup can reach EmailVerificationToken without authenticating.

    auth-before-dataPOST /signup → EmailVerificationToken

  • POST /login can reach EmailVerificationToken without authenticating.

    auth-before-dataPOST /login → EmailVerificationToken

  • POST /logout can reach EmailVerificationToken without authenticating.

    auth-before-dataPOST /logout → EmailVerificationToken

  • POST /refresh can reach EmailVerificationToken without authenticating.

    auth-before-dataPOST /refresh → EmailVerificationToken

  • POST /send-verification-email can reach User without authenticating.

    auth-before-dataPOST /send-verification-email → User

  • POST /send-verification-email can reach EmailVerificationToken without authenticating.

    auth-before-dataPOST /send-verification-email → EmailVerificationToken

  • POST /verify-email/:token can reach EmailVerificationToken without authenticating.

    auth-before-dataPOST /verify-email/:token → EmailVerificationToken

  • POST /forgot-password reaches User without auth, which is expected for an authentication endpoint.

    auth-entry-publicPOST /forgot-password → User

  • POST /forgot-password reaches RefreshToken without auth, which is expected for an authentication endpoint.

    auth-entry-publicPOST /forgot-password → RefreshToken

  • POST /reset-password/:token reaches User without auth, which is expected for an authentication endpoint.

    auth-entry-publicPOST /reset-password/:token → User

  • POST /reset-password/:token reaches RefreshToken without auth, which is expected for an authentication endpoint.

    auth-entry-publicPOST /reset-password/:token → RefreshToken

  • POST /signup reaches User without auth, which is expected for an authentication endpoint.

    auth-entry-publicPOST /signup → User

  • POST /signup reaches RefreshToken without auth, which is expected for an authentication endpoint.

    auth-entry-publicPOST /signup → RefreshToken

  • POST /login reaches User without auth, which is expected for an authentication endpoint.

    auth-entry-publicPOST /login → User

  • POST /login reaches RefreshToken without auth, which is expected for an authentication endpoint.

    auth-entry-publicPOST /login → RefreshToken

  • POST /logout reaches User without auth, which is expected for an authentication endpoint.

    auth-entry-publicPOST /logout → User

  • POST /logout reaches RefreshToken without auth, which is expected for an authentication endpoint.

    auth-entry-publicPOST /logout → RefreshToken

  • POST /refresh reaches User without auth, which is expected for an authentication endpoint.

    auth-entry-publicPOST /refresh → User

  • POST /refresh reaches RefreshToken without auth, which is expected for an authentication endpoint.

    auth-entry-publicPOST /refresh → RefreshToken

  • POST /verify-email/:token reaches User without auth, which is expected for an authentication endpoint.

    auth-entry-publicPOST /verify-email/:token → User

  • POST /forgot-password has no validator or rate limiter attached.

    public-entry-guarded

  • POST /reset-password/:token has no validator or rate limiter attached.

    public-entry-guarded

  • POST /signup has no validator or rate limiter attached.

    public-entry-guarded

  • POST /login has no validator or rate limiter attached.

    public-entry-guarded

  • POST /logout has no validator or rate limiter attached.

    public-entry-guarded

  • POST /refresh has no validator or rate limiter attached.

    public-entry-guarded

  • POST /send-verification-email has no validator or rate limiter attached.

    public-entry-guarded

  • POST /verify-email/:token has no validator or rate limiter attached.

    public-entry-guarded

  • Account 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

wyro architecture badge
[![wyro architecture](https://wyro.in/api/badge/Louis3797/express-ts-auth-service)](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.