Skip to content
This repository was archived by the owner on Sep 2, 2020. It is now read-only.

Latest commit

 

History

History
65 lines (39 loc) · 2.4 KB

File metadata and controls

65 lines (39 loc) · 2.4 KB

Backlog

See also the ideas backlog.

Key:

  • 🙏 Target for MVP
  • 💩 Technical debt (⚠️ = important)

Features: core

✅ All done.

Features: nice to have

  • Map sheet names
  • Child hills relation (with pagination)
  • Pagination enhancements
    • Allow skipping pages by number, rather than traversing cursors
    • Return total number of records
  • "In" multi-valued filtering operator, to complement the single-valued equals and includes

Documentation

Security

Keep it unauthenticated; API keys would be a barrier to usage. Revisit if abuse is a problem.

  • Sanitise returned error messages (except for helpful GraphQL ones e.g. syntax error in query)

Performance

  • Indices on filterable/sortable database fields
  • Set ETags based on query & variables (not the response), to allow returning not-modified without running the database query
  • 💩 Refactor database columns of type SET into multiple fields or separate table (FIND_IN_SET requires a table scan)

Operational

Production

  • Domain

Monitoring

  • ✅ AWS budget alarms

Technical

Move from DynamoDB to Aurora

  • 💩 Replace type definitions in population script with type inference (as done on the query side)

Improvements

  • Consider best practice for nullability
  • Fully configure rules for ESLint Jest plugin
  • Node.js 12 (LTS) is available on AWS Lambda as of November 2019. Switch to run on it, then convert to ES6 imports/exports (update lint rules), use promisified fs module, anything else new.
  • Structured logging into CloudWatch, there must be a way
  • Remove need to manually copy ARNs into database deployment scripts (needs serverless-pseudo-parameters#25) and Serverless offline environment variables (needs serverless-offline#388).

Further future