Skip to content

[LOW] No API response compression (gzip/brotli) #128

Description

@kilodesodiq-arch

Engineering Gap

No response compression middleware configured in NestJS. Large JSON responses (campaign lists, claim exports) sent uncompressed over the network.

Codebase Evidence

  • app/backend/src/main.ts: Helmet, CORS, rate limiting configured but no compression
  • app/backend/package.json: No compression middleware dependency

Risk Profile

Higher bandwidth usage. Slower API responses on slow connections.

Remediation Strategy

Add compression middleware using NestJS compression package. Enable gzip and brotli. Exclude already-compressed types (images).

Success Conditions

  • Compression middleware added
  • gzip and brotli enabled
  • Response sizes reduced

Change Surface

Files: main.ts, package.json

Security Review

Compression can enable BREACH attack on reflected secrets — ensure no secrets in response bodies.

Completion Checklist

  • Implementation completed
  • Peer reviewed
  • Ready for merge

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions