|
3 | 3 | <h1>GraphQL over HTTP audit report</h1>
|
4 | 4 |
|
5 | 5 | <ul>
|
6 |
| -<li><b>37</b> audits in total</li> |
7 |
| -<li><span style="font-family: monospace">✅</span> <b>31</b> pass</li> |
8 |
| -<li><span style="font-family: monospace">⚠️</span> <b>6</b> warnings (optional)</li> |
| 6 | +<li><b>60</b> audits in total</li> |
| 7 | +<li><span style="font-family: monospace">✅</span> <b>54</b> pass</li> |
| 8 | +<li><span style="font-family: monospace">💡</span> <b>3</b> notices (suggestions)</li> |
| 9 | +<li><span style="font-family: monospace">⚠️</span> <b>3</b> warnings (optional)</li> |
9 | 10 | </ul>
|
10 | 11 |
|
11 | 12 | <h2>Passing</h2>
|
|
19 | 20 | <li><code>78D5</code> MUST assume utf-8 in request if encoding is unspecified</li>
|
20 | 21 | <li><code>2C94</code> MUST accept POST requests</li>
|
21 | 22 | <li><code>9C48</code> MAY NOT allow executing mutations on GET requests</li>
|
| 23 | +<li><code>9ABE</code> MAY respond with 4xx status code if content-type is not supplied on POST requests</li> |
22 | 24 | <li><code>03D4</code> MUST accept application/json POST requests</li>
|
| 25 | +<li><code>A5BF</code> MAY use 400 status code when request body is missing on POST</li> |
| 26 | +<li><code>423L</code> MAY use 400 status code on missing {query} parameter</li> |
| 27 | +<li><code>LKJ0</code> MAY use 400 status code on object {query} parameter</li> |
| 28 | +<li><code>LKJ1</code> MAY use 400 status code on number {query} parameter</li> |
| 29 | +<li><code>LKJ2</code> MAY use 400 status code on boolean {query} parameter</li> |
| 30 | +<li><code>LKJ3</code> MAY use 400 status code on array {query} parameter</li> |
23 | 31 | <li><code>34A2</code> SHOULD allow string {query} parameter when accepting application/graphql-response+json</li>
|
24 | 32 | <li><code>13EE</code> MUST allow string {query} parameter when accepting application/json</li>
|
| 33 | +<li><code>6C00</code> MAY use 400 status code on object {operationName} parameter</li> |
| 34 | +<li><code>6C01</code> MAY use 400 status code on number {operationName} parameter</li> |
| 35 | +<li><code>6C02</code> MAY use 400 status code on boolean {operationName} parameter</li> |
| 36 | +<li><code>6C03</code> MAY use 400 status code on array {operationName} parameter</li> |
25 | 37 | <li><code>8161</code> SHOULD allow string {operationName} parameter when accepting application/graphql-response+json</li>
|
26 | 38 | <li><code>B8B3</code> MUST allow string {operationName} parameter when accepting application/json</li>
|
27 | 39 | <li><code>94B0</code> SHOULD allow null {variables} parameter when accepting application/graphql-response+json</li>
|
|
30 | 42 | <li><code>0221</code> MUST allow null {operationName} parameter when accepting application/json</li>
|
31 | 43 | <li><code>94B2</code> SHOULD allow null {extensions} parameter when accepting application/graphql-response+json</li>
|
32 | 44 | <li><code>0222</code> MUST allow null {extensions} parameter when accepting application/json</li>
|
| 45 | +<li><code>4760</code> MAY use 400 status code on string {variables} parameter</li> |
| 46 | +<li><code>4761</code> MAY use 400 status code on number {variables} parameter</li> |
| 47 | +<li><code>4762</code> MAY use 400 status code on boolean {variables} parameter</li> |
| 48 | +<li><code>4763</code> MAY use 400 status code on array {variables} parameter</li> |
33 | 49 | <li><code>2EA1</code> SHOULD allow map {variables} parameter when accepting application/graphql-response+json</li>
|
34 | 50 | <li><code>28B9</code> MUST allow map {variables} parameter when accepting application/json</li>
|
| 51 | +<li><code>58B0</code> MAY use 400 status code on string {extensions} parameter</li> |
| 52 | +<li><code>58B1</code> MAY use 400 status code on number {extensions} parameter</li> |
| 53 | +<li><code>58B2</code> MAY use 400 status code on boolean {extensions} parameter</li> |
| 54 | +<li><code>58B3</code> MAY use 400 status code on array {extensions} parameter</li> |
35 | 55 | <li><code>428F</code> SHOULD allow map {extensions} parameter when accepting application/graphql-response+json</li>
|
36 | 56 | <li><code>1B7A</code> MUST allow map {extensions} parameter when accepting application/json</li>
|
| 57 | +<li><code>B6DC</code> MAY use 4xx or 5xx status codes on JSON parsing failure</li> |
| 58 | +<li><code>BCF8</code> MAY use 400 status code on JSON parsing failure</li> |
| 59 | +<li><code>8764</code> MAY use 4xx or 5xx status codes if parameters are invalid</li> |
| 60 | +<li><code>3E3A</code> MAY use 400 status code if parameters are invalid</li> |
37 | 61 | <li><code>865D</code> SHOULD use 4xx or 5xx status codes on document parsing failure when accepting application/graphql-response+json</li>
|
38 | 62 | <li><code>556A</code> SHOULD use 400 status code on document parsing failure when accepting application/graphql-response+json</li>
|
39 | 63 | <li><code>D586</code> SHOULD not contain the data entry on document parsing failure when accepting application/graphql-response+json</li>
|
|
43 | 67 | <li><code>86EE</code> SHOULD use a status code of 400 on variable coercion failure when accepting application/graphql-response+json</li>
|
44 | 68 | </ol>
|
45 | 69 |
|
46 |
| -<h2>Warnings</h2> |
47 |
| -The server <i>SHOULD</i> support these, but is not required. |
| 70 | +<h2>Notices</h2> |
| 71 | +The server <i>MAY</i> support these, but are truly optional. These are suggestions following recommended conventions. |
48 | 72 | <ol>
|
49 | 73 | <li><code>5A70</code> MAY accept application/x-www-form-urlencoded formatted GET requests
|
50 | 74 | <details>
|
@@ -160,6 +184,11 @@ The server <i>SHOULD</i> support these, but is not required.
|
160 | 184 | </code></pre>
|
161 | 185 | </details>
|
162 | 186 | </li>
|
| 187 | +</ol> |
| 188 | + |
| 189 | +<h2>Warnings</h2> |
| 190 | +The server <i>SHOULD</i> support these, but is not required. |
| 191 | +<ol> |
163 | 192 | <li><code>572B</code> SHOULD use 200 status code on document parsing failure when accepting application/json
|
164 | 193 | <details>
|
165 | 194 | <summary>Response status code is not 200</summary>
|
|
0 commit comments