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:
@@ -0,0 +1,3 @@
|
||||
[submodule "docs/reference/outline-openapi"]
|
||||
path = docs/reference/outline-openapi
|
||||
url = https://github.com/outline/openapi.git
|
||||
@@ -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
|
||||
|
||||
|
||||
Submodule
+1
Submodule docs/reference/outline-openapi added at 43d990d5ec
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user