• Joined on 2026-03-17
marcel commented on issue marcel/mealprep#1 2026-04-03 09:30:04 +02:00
Add rate limiting on auth and invite endpoints

🔒 Sable — Security Engineer

This is the foundational defense layer. Without it, issues #2 (invite brute force) and the credential stuffing vector are wide open. Let me add the threat model…

marcel commented on issue marcel/mealprep#28 2026-04-03 09:29:53 +02:00
Frontend: C3 — Variety review (score breakdown)

🔐 Sable — Security Engineer

C3 is read-only and planner-only, which makes the attack surface smaller than D1 or J4. But there are a few things worth flagging given the score algorithm and…

marcel commented on issue marcel/mealprep#6 2026-04-03 09:29:51 +02:00
Swagger UI exposed to unauthenticated users in all environments

🧪 QA Engineer

Small security config change with targeted test needs. Here's the coverage I'd want:

Integration tests — profile-gating approach:

  • @ActiveProfiles("prod"): GET…
marcel commented on issue marcel/mealprep#1 2026-04-03 09:29:50 +02:00
Add rate limiting on auth and invite endpoints

🧪 QA Engineer

Rate limiting is deceptively tricky to test correctly. Here's the full test plan.

Unit tests:

  • Rate limiter allows N requests within the window → all succeed
  • Rate…
marcel commented on issue marcel/mealprep#24 2026-04-03 09:29:45 +02:00
Frontend: B2 — Recipe detail view

🎨 Atlas — UI/UX Designer

B2 is a well-structured spec but there are a few gaps in the visual system that need resolution before Kai implements the hero variants and the content layout.

**Her…

marcel commented on issue marcel/mealprep#1 2026-04-03 09:29:38 +02:00
Add rate limiting on auth and invite endpoints

🏗️ Backend Engineer — Spring Boot / PostgreSQL Specialist

Agreed this is critical. Let me lay out the implementation options with the tradeoffs clearly, since the issue mentions a few…

marcel commented on issue marcel/mealprep#6 2026-04-03 09:29:37 +02:00
Swagger UI exposed to unauthenticated users in all environments

🔧 Backend Engineer — Spring Boot / PostgreSQL Specialist

Good catch — permitAll() on Swagger in production is a common oversight. The two proposed fixes have different tradeoffs, and I'd…

marcel commented on issue marcel/mealprep#28 2026-04-03 09:29:33 +02:00
Frontend: C3 — Variety review (score breakdown)

🧪 QA Engineer — Test Coverage Plan for C3

C3 is a read-only display screen, which makes the frontend testing lighter — but the backend algorithm powering the scores needs rigorous coverage…

marcel commented on issue marcel/mealprep#24 2026-04-03 09:29:30 +02:00
Frontend: B2 — Recipe detail view

🔒 Sable — Security Engineer

B2 is a read-only screen but there are meaningful security considerations around resource access, image handling, and what data the API response exposes.

**Broken…

marcel commented on issue marcel/mealprep#14 2026-04-03 09:29:27 +02:00
createInvite has no role check — any member can invite

🎨 Atlas — UI/UX Designer

This is a backend authorization issue, but the design layer has a role to play in preventing confusion and misuse at the UI level.

Role-aware UI:

  • The invite…
marcel commented on issue marcel/mealprep#1 2026-04-03 09:29:27 +02:00
Add rate limiting on auth and invite endpoints

👨‍💻 Kai — Frontend Engineer

Rate limiting is a backend concern, but it surfaces directly in the frontend UX when limits are hit. Here's what I need to handle.

**Frontend implications of…

marcel commented on issue marcel/mealprep#6 2026-04-03 09:29:21 +02:00
Swagger UI exposed to unauthenticated users in all environments

👨‍💻 Kai — Frontend Engineer

Pure backend/security config change — no frontend code involved. But a couple of things worth thinking about from my side:

**Developer experience during local…

marcel commented on issue marcel/mealprep#14 2026-04-03 09:29:18 +02:00
createInvite has no role check — any member can invite

🔐 Sable — Security Engineer

This is broken access control — OWASP A01. The severity is labeled Low because it's a business-rule violation (least privilege), but the real-world impact could…

marcel commented on issue marcel/mealprep#24 2026-04-03 09:29:11 +02:00
Frontend: B2 — Recipe detail view

🧪 QA Engineer

B2 is a read-only screen so there are no mutation paths to test — but the two hero variants, the navigation links, and the ingredient scaling logic give me enough to build a…

marcel commented on issue marcel/mealprep#28 2026-04-03 09:29:10 +02:00
Frontend: C3 — Variety review (score breakdown)

🛠️ Backend Engineer — Variety Score API

C3 is a read-heavy, computation-heavy screen. The key backend question is whether the variety score and sub-scores are computed on-demand or cached.…

marcel commented on issue marcel/mealprep#2 2026-04-03 09:29:10 +02:00
Invite codes are brute-forceable (insufficient entropy)

🎨 Atlas — UI/UX Designer

This is a backend security fix, but the invite flow has clear UX implications that I want to think through while it's being touched.

**UX impact of switching to…

marcel commented on issue marcel/mealprep#7 2026-04-03 09:29:06 +02:00
Missing catch-all exception handler — stack traces leak to clients

🎨 Atlas — UI/UX Designer

Backend-only fix, but it has a direct UX consequence: what does the user see when an unexpected error occurs? That's a design concern.

**Error state UX for…

marcel commented on issue marcel/mealprep#14 2026-04-03 09:29:05 +02:00
createInvite has no role check — any member can invite

🧪 QA Engineer — createInvite Role Check (Issue #14)

Authorization gaps need to be tested at the integration level — a unit test of the service can verify the role check logic, but only an…

marcel commented on issue marcel/mealprep#10 2026-04-03 09:29:05 +02:00
No CORS configuration — will block frontend or risk misconfiguration

🎨 Atlas — UI/UX Designer

This is infrastructure work with no direct visual output, but CORS directly affects the development experience and some loading states in the UI.

**Developer…

marcel commented on issue marcel/mealprep#2 2026-04-03 09:28:58 +02:00
Invite codes are brute-forceable (insufficient entropy)

🔒 Sable — Security Engineer

This is correctly rated Critical. The math in the issue description undersells the risk slightly — let me sharpen it.

Why 41.4 bits is insufficient:

The…