docs(architecture): convert vendored OpenAPI spec to a git submodule

Was a flat copy — a submodule against outline/openapi tracks a real
pinned commit and can be refreshed with a normal git command
(git submodule update --remote) instead of manually re-downloading
and overwriting a file.
This commit is contained in:
2026-08-14 01:59:19 +01:00
parent cb37e6ac00
commit 733a5a582c
4 changed files with 7 additions and 7582 deletions
+3
View File
@@ -0,0 +1,3 @@
[submodule "docs/reference/outline-openapi"]
path = docs/reference/outline-openapi
url = https://github.com/outline/openapi.git
+3 -1
View File
@@ -8,7 +8,9 @@ Deeper technical reference backing `CLAUDE.md`. Update this as decisions are mad
- **Auth**: `Authorization: Bearer <API_KEY>` header. Keys are created per-user under Settings → API Keys on the Outline instance. Store in Keychain, scope a dedicated key to this app rather than reusing a personal one.
- **Core endpoints to wrap first**: `documents.info`, `documents.list`, `documents.search`, `documents.create`, `documents.update`, `collections.list`, `collections.info`, `users.info`.
- Full reference: your instance's `/developers` page (same docs as getoutline.com/developers, versioned per Outline release — check against your self-hosted version, not just the public docs).
- **Full OpenAPI spec, vendored**: [`docs/reference/outline-openapi-spec3.yml`](reference/outline-openapi-spec3.yml) — pulled from [`outline/openapi`](https://github.com/outline/openapi). Check this before adding any new `OutlineAPIClient` method — read the exact request/response shape here rather than guessing from prose docs. It's already caught real mismatches twice: `documents.search`'s `sort` field rejects `"relevance"` as an explicit value even though the field is documented as accepting it (server only treats it as the implicit default when omitted), and `documents.search_titles` doesn't work against this self-hosted instance at all despite being in the spec (see `DocumentTitleSearchViewModel`'s doc comment — likely server version drift, matching the risk already called out below). Re-pull from the source repo periodically since it can drift from what's actually deployed.
- **Full OpenAPI spec, vendored as a git submodule**: [`docs/reference/outline-openapi`](reference/outline-openapi) → [`outline/openapi`](https://github.com/outline/openapi), spec at `docs/reference/outline-openapi/spec3.yml`. Check this before adding any new `OutlineAPIClient` method — read the exact request/response shape here rather than guessing from prose docs. It's already caught real mismatches twice: `documents.search`'s `sort` field rejects `"relevance"` as an explicit value even though the field is documented as accepting it (server only treats it as the implicit default when omitted), and `documents.search_titles` doesn't work against this self-hosted instance at all despite being in the spec (see `DocumentTitleSearchViewModel`'s doc comment — likely server version drift, matching the risk already called out below).
- Fresh clone: `git submodule update --init --recursive`.
- Refresh to upstream's latest: `git submodule update --remote docs/reference/outline-openapi`.
## 2. Realtime collaboration transport
File diff suppressed because it is too large Load Diff