See also the ideas backlog.
Key:
🙏 Target for MVP- 💩 Technical debt (
⚠️ = important)
✅ All done.
- 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
- Default query in the playground (needs graphql-playground/866)
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)
- 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
SETinto multiple fields or separate table (FIND_IN_SETrequires a table scan)
- Domain
- ✅ AWS budget alarms
- 💩 Replace type definitions in population script with type inference (as done on the query side)
- 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
fsmodule, 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).
- Do without Express (?); it's only used to allow
express-graphqlto be used. Needs express-graphql/559, or manual implementation of basic requirements for GraphQL over HTTP.