Skip to content

Commit 1e05f19

Browse files
committed
Add a todo list.
1 parent 271078a commit 1e05f19

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

Todo.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
#### Template name incompatibility
2+
We map ProcessWire templates as types in GraphQL and create fields that corrspond
3+
to them. The name of those fields are the names of the templates. While ProcessWire
4+
allows us to create template names that start with numbers and has '-' symbol in it
5+
while GraphQL does not allows that. Thus we need to make sure user cannot assign
6+
incompatible templates names as legalTemplates in ProcessGraphQL by disabling the
7+
checkbox choice for the incompatible templates and adding some note for user describing
8+
what's happening. We alos need to track the template name change and remove the templates
9+
from legalTemplates when their name change to incompatible ones.
10+
11+
#### Template name collision
12+
We provide additional fields with our GraphQL api like `me`, `debug`, `pages` and
13+
probably more. Those names will be overwritten by template fields that has the same
14+
name. This should be prevented or at least the user should be warned about it.
15+
There probably should be list of reserved words for it, to prevent breaking changes
16+
in the future.
17+
18+
#### N+1 Problem
19+
It is very convinient to request additional data for Page fields. E.g. request skyscraper'same
20+
title, year, height and also request title for each page in architect field. While this works
21+
currently it will make ProcessWire make [N+1 requests][n1-problem] to database and make
22+
response slow. We need to solve it.
23+
24+
#### Limit the query complexity
25+
We need to make sure the user is able to request queries only for couple levels deep
26+
to prevent the CPU intensive requests.
27+
28+
29+
30+
[n1-problem]: https://secure.phabricator.com/book/phabcontrib/article/n_plus_one/

0 commit comments

Comments
 (0)