Skip to content

Stability: add global JSON body caps and per-field/cardinality limits #50

Description

@CryptoJones

Problem

Only /api/scrape and /api/account/import have explicit request-size checks. Ordinary authenticated JSON endpoints accept unbounded strings and arrays for applications, criteria, résumé data, and LLM settings.

Impact

A tenant can persist very large rows, build very large poller profiles, produce huge LLM prompts, or drive high memory/CPU use through normal authenticated endpoints.

References

  • api/ApplyTrack.Api/Program.cs — body caps only for scrape/import
  • api/ApplyTrack.Api/Data/AppFields.cs
  • api/ApplyTrack.Api/Data/Criteria.cs
  • api/ApplyTrack.Api/Data/Resume.cs

Acceptance criteria

  • Global JSON body size limit for API routes.
  • Field length caps for application fields and notes.
  • List/cardinality caps for criteria keywords, excluded locations, ATS boards, résumé experience, highlights, links, skills, and certifications.
  • Clear 400 responses when limits are exceeded.
  • Tests cover boundary and over-limit cases.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingstabilityReliability and failure-mode hardening

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions