From b729866ea50ec5ebbbb81c5895241b2e07b1eb9f Mon Sep 17 00:00:00 2001 From: tomcrane Date: Wed, 5 Aug 2026 12:00:26 +0100 Subject: [PATCH 01/11] XC-02: name the key-creation 200 exception on customer.mdx#keys Session-0 ruling (2026-08-06): create-POSTs return 201 with exactly two named action-POST exceptions (key creation, application setup). The keys section now states the exception so the 200 is read as deliberate, not drift. Co-Authored-By: Claude Fable 5 --- src/src/content/docs/api-doc/customer.mdx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/src/content/docs/api-doc/customer.mdx b/src/src/content/docs/api-doc/customer.mdx index d2678a5..8914d5d 100644 --- a/src/src/content/docs/api-doc/customer.mdx +++ b/src/src/content/docs/api-doc/customer.mdx @@ -490,6 +490,8 @@ Api keys allocated to this customer. The accompanying secret is only available a | POST | Create a new key | - | vocab:Key (with secret, once) | 200 OK | | DELETE | Delete an individual key, at `/customers/{customer}/keys/{key}` | - | - | 204 No Content, 400 Bad request | +The POST here is a deliberate exception to the platform's usual convention that a create returns `201 Created`: it is an _action_ returning a one-time payload — the key and its secret — rather than the creation of a resource you can fetch again, so it returns `200 OK`. The secret is never available at any URL afterwards. + The returned collection has `vocab:key` members like this: ``` From d7b96518a30b8222b044684179c2d1c9384f1283 Mon Sep 17 00:00:00 2001 From: tomcrane Date: Wed, 5 Aug 2026 12:00:43 +0100 Subject: [PATCH 02/11] ACC-12 (remainder): custom-header PUT row gains its 404 UpdateCustomHeader returns WriteResult.NotFound when the header does not exist; the row listed only 200/400. This was the part of ACC-12 held back pending the ACC-15 ruling - now ruled (session 0, 2026-08-06): PUT-update returns 200 (protagonist hygiene/session-0 fixes the handler that returned 201), so the documented 200 stands. Co-Authored-By: Claude Fable 5 --- src/src/content/docs/api-doc/custom-headers.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/src/content/docs/api-doc/custom-headers.mdx b/src/src/content/docs/api-doc/custom-headers.mdx index 1c9de4c..45489c4 100644 --- a/src/src/content/docs/api-doc/custom-headers.mdx +++ b/src/src/content/docs/api-doc/custom-headers.mdx @@ -28,7 +28,7 @@ A `CustomHeader` resource is created by POSTing to the [customer.customHeaders]( | Method | Label | Expects | Returns | Status | |:---|:---|:---|:---|:---| | GET | Retrieve a custom header | - | vocab:CustomHeader | 200 OK, 404 Not Found | -| PUT | Update a custom header | vocab:CustomHeader | vocab:CustomHeader | 200 OK, 400 Bad Request | +| PUT | Update a custom header | vocab:CustomHeader | vocab:CustomHeader | 200 OK, 400 Bad Request, 404 Not Found | | DELETE | Delete a custom header | - | - | 204 No Content, 404 Not Found |