|
| 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