SashenJayathilaka/Project-Management-App

19 errors, 21 warningsmaster

40 issues need attention.

19 errors and 21 warnings in the paths between 24 routes and 8 tables.

ROUTE FINDINGS17 of 24 · 7/7 rules
ROUTES
24
TABLES
8
FILES READ
120
RULES RUN
7/7

40 findings

  • GET /tasks/ can reach Task without authenticating.

    auth-before-dataGET /tasks/ → Task

  • POST /tasks/ can reach Task without authenticating.

    auth-before-dataPOST /tasks/ → Task

  • PATCH /tasks/:taskId/status can reach Task without authenticating.

    auth-before-dataPATCH /tasks/:taskId/status → Task

  • GET /tasks/user/:userId can reach Task without authenticating.

    auth-before-dataGET /tasks/user/:userId → Task

  • GET /search/ can reach User without authenticating.

    auth-before-dataGET /search/ → User

  • GET /search/ can reach Project without authenticating.

    auth-before-dataGET /search/ → Project

  • GET /search/ can reach Task without authenticating.

    auth-before-dataGET /search/ → Task

  • GET /users/ can reach User without authenticating.

    auth-before-dataGET /users/ → User

  • GET /users/:cognitoId can reach User without authenticating.

    auth-before-dataGET /users/:cognitoId → User

  • POST /users/ can reach User without authenticating.

    auth-before-dataPOST /users/ → User

  • POST /api/user can reach User without authenticating.

    auth-before-dataPOST /api/user → User

  • GET /teams/ can reach User without authenticating.

    auth-before-dataGET /teams/ → User

  • GET /teams/ can reach Team without authenticating.

    auth-before-dataGET /teams/ → Team

  • GET /projects/ can reach Project without authenticating.

    auth-before-dataGET /projects/ → Project

  • POST /projects/ can reach Project without authenticating.

    auth-before-dataPOST /projects/ → Project

  • GET /api/tasks/[projectId] can reach Task without authenticating.

    auth-before-dataGET /api/tasks/[projectId] → Task

  • PATCH /api/move/[taskId] can reach Task without authenticating.

    auth-before-dataPATCH /api/move/[taskId] → Task

  • DELETE /api/move/[taskId] can reach Task without authenticating.

    auth-before-dataDELETE /api/move/[taskId] → Task

  • DELETE /api/projects/[projectId] can reach Project without authenticating.

    auth-before-dataDELETE /api/projects/[projectId] → Project

  • GET / has no validator or rate limiter attached.

    public-entry-guarded

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

    public-entry-guarded

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

    public-entry-guarded

  • PATCH /tasks/:taskId/status has no validator or rate limiter attached.

    public-entry-guarded

  • GET /tasks/user/:userId has no validator or rate limiter attached.

    public-entry-guarded

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

    public-entry-guarded

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

    public-entry-guarded

  • GET /users/:cognitoId has no validator or rate limiter attached.

    public-entry-guarded

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

    public-entry-guarded

  • POST /api/user has no validator or rate limiter attached.

    public-entry-guarded

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

    public-entry-guarded

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

    public-entry-guarded

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

    public-entry-guarded

  • GET /api/tasks/[projectId] has no validator or rate limiter attached.

    public-entry-guarded

  • PATCH /api/move/[taskId] has no validator or rate limiter attached.

    public-entry-guarded

  • DELETE /api/move/[taskId] has no validator or rate limiter attached.

    public-entry-guarded

  • DELETE /api/projects/[projectId] has no validator or rate limiter attached.

    public-entry-guarded

  • ProjectTeam is not connected to anything.

    no-orphan-datastore

  • TaskAssignment is not connected to anything.

    no-orphan-datastore

  • Attachment is not connected to anything.

    no-orphan-datastore

  • Comment is not connected to anything.

    no-orphan-datastore

Part of this repository was not read, so this report is incomplete. Read 120 of 132 files, schemas and routes first. Point Wyro at a single service directory to read one in full.

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/SashenJayathilaka/Project-Management-App)](https://wyro.in/scan/SashenJayathilaka/Project-Management-App)

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.