Shyam-Chen/Express-Starter

7 errors, 28 warningsmain

35 issues need attention.

7 errors and 28 warnings in the paths between 32 routes and 3 tables.

ROUTE FINDINGS26 of 32 · 7/7 rules
ROUTES
32
TABLES
3
FILES READ
42
RULES RUN
7/7

35 findings

  • GET / can reach lists without authenticating.

    auth-before-dataGET / → lists

  • GET /item/:id can reach lists without authenticating.

    auth-before-dataGET /item/:id → lists

  • GET /count can reach lists without authenticating.

    auth-before-dataGET /count → lists

  • GET /pagination can reach lists without authenticating.

    auth-before-dataGET /pagination → lists

  • PUT /:id can reach lists without authenticating.

    auth-before-dataPUT /:id → lists

  • DELETE /:id can reach lists without authenticating.

    auth-before-dataDELETE /:id → lists

  • DELETE / can reach lists without authenticating.

    auth-before-dataDELETE / → lists

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

    auth-entry-publicPOST /login → users

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

    public-entry-guarded

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

    public-entry-guarded

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

    public-entry-guarded

  • POST /login/2fa-send has no validator or rate limiter attached.

    public-entry-guarded

  • POST /login/2fa-verify has no validator or rate limiter attached.

    public-entry-guarded

  • GET /2fa/settings has no validator or rate limiter attached.

    public-entry-guarded

  • POST /2fa/setup has no validator or rate limiter attached.

    public-entry-guarded

  • POST /2fa/setup-send has no validator or rate limiter attached.

    public-entry-guarded

  • POST /2fa/setup-verify has no validator or rate limiter attached.

    public-entry-guarded

  • PUT /profile has no validator or rate limiter attached.

    public-entry-guarded

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

    public-entry-guarded

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

    public-entry-guarded

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

    public-entry-guarded

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

    public-entry-guarded

  • GET /facebook/login has no validator or rate limiter attached.

    public-entry-guarded

  • POST / has no validator or rate limiter attached.

    public-entry-guarded

  • GET / has no validator or rate limiter attached.

    public-entry-guarded

  • GET /item/:id has no validator or rate limiter attached.

    public-entry-guarded

  • GET /count has no validator or rate limiter attached.

    public-entry-guarded

  • GET /pagination has no validator or rate limiter attached.

    public-entry-guarded

  • PUT /:id has no validator or rate limiter attached.

    public-entry-guarded

  • DELETE /:id has no validator or rate limiter attached.

    public-entry-guarded

  • DELETE / has no validator or rate limiter attached.

    public-entry-guarded

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

    public-entry-guarded

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

    public-entry-guarded

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

    public-entry-guarded

  • refreshtokens is not connected to anything.

    no-orphan-datastore

Part of this repository was not read, so this report is incomplete. Unread: src/authentication/model.js, src/authentication/controller.js.

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/Shyam-Chen/Express-Starter)](https://wyro.in/scan/Shyam-Chen/Express-Starter)

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.