Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
ac29345
New stab at an API versioning policy
pcapriotti Apr 14, 2022
3ee515b
Add some client examples
pcapriotti Apr 19, 2022
d03b4d8
Add header in version middleware
pcapriotti Apr 19, 2022
9a4feda
Add current swagger descriptions for v0 and v1
pcapriotti Apr 19, 2022
b060bb7
Add Servant combinators for versioning
pcapriotti Apr 19, 2022
681b4ed
Remove deprecated Brig endpoints in latest version
pcapriotti Apr 19, 2022
423af3a
Extract general version utilities
pcapriotti Apr 19, 2022
49da712
WIP: federation api versioning
pcapriotti Apr 19, 2022
52f08f0
Set up versioning and negotiation for fed API
pcapriotti Apr 20, 2022
d6b8628
Fix federator unit tests
pcapriotti Apr 20, 2022
b4e5e31
fixup! New stab at an API versioning policy
pcapriotti Apr 21, 2022
6098784
Add API fetch test in federator
pcapriotti Apr 21, 2022
608b3e3
Implement remote api-version as a normal RPC
pcapriotti Apr 22, 2022
20b65de
Add API version fetch test
pcapriotti Apr 25, 2022
5b56624
Get rid of api-version special cases in federator
pcapriotti Apr 25, 2022
92aaf93
Simplify brig federation client definitions
pcapriotti Apr 25, 2022
5675711
Fix integration test
pcapriotti Apr 26, 2022
2d32fbf
Fix API versioning tests
pcapriotti Apr 26, 2022
f97046a
Start galley V2 API
pcapriotti Apr 29, 2022
597b63f
Explain client versioning approach in docs
pcapriotti Apr 26, 2022
e821bf9
Start cargohold V2 API
pcapriotti Apr 26, 2022
bfa8b3a
Serve old swagger versions
pcapriotti Apr 29, 2022
88d57a5
Replace brig custom setup with file-embed-lzma
pcapriotti Apr 29, 2022
a681afe
Add API version federation endpoint test
pcapriotti Apr 29, 2022
4252992
Always run version negotiation on Brig
pcapriotti May 2, 2022
b495733
Update and reformat old swaggers
pcapriotti May 2, 2022
8c88545
Add CHANGELOG entry
pcapriotti May 2, 2022
376a90c
Fix integration test assertion
pcapriotti May 2, 2022
947e6fe
Add development field to public API version info
pcapriotti May 2, 2022
ea97569
Fix typo in CHANGELOG entry
pcapriotti May 3, 2022
33ef13a
Small clarification in api versioning docs
pcapriotti May 3, 2022
d38f3ca
Grammar
pcapriotti May 3, 2022
c68c7dc
Note about clients ignoring development versions
pcapriotti May 3, 2022
6a10696
Do not advertise development versions by default
pcapriotti May 3, 2022
d2ee0f6
Add more CHANGELOG entries
pcapriotti May 3, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions changelog.d/1-api-changes/api-versioning
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
Start version 2 of the public API. Main changes:

- Asset endpoints have lost their `v3` and `v4` suffixes. So for example
`/assets/v3` has been replaced by `/assets`.
- `GET /conversations/:conv/assets/:id` and `GET
/conversations/:conv/otr/assets/:id` have been removed.
- `GET /assets/:key/v3` has been removed. Use the qualified endpoint `GET
/assets/:domain/:key` instead.
- `DELETE /assets/:key/v3` has been removed. Use the qualified endpoint
`DELETE /assets/:domain/:key` instead.
- `GET /connections` has been removed. Use `POST /list-connections` instead.
- `POST /connections` has been removed. Use `POST /connections/:domain/:user` instead.
- `PUT /connections/:domain/:user` has been removed: use `POST` instead.
- `GET /conversations` has been removed. Use `POST /conversations/list-ids`
followed by `POST /conversations/list` instead.
- `POST /conversations/list/v2` has been replaced by `POST
/conversations/list`.
- `POST /conversations/:domain/:conv/members/v2` has lost its `v2` suffix, so
it is now `POST /conversations/:domain/:conv/members`.
- `GET /users`, `GET /users/by-handle` and `GET /users/handles` have been
removed. Use `POST /search/contacts` instead.
- `GET /users/:id` has been removed. Use the qualified endpoint `GET
/users/:domain/:id` instead.
- `GET /users/:id/clients` has been removed. Use the qualified endpoint `GET
/users/:domain/:id/clients` instead.
- `GET /users/:id/clients/:client` has been removed. Use the qualified
endpoint `GET /users/:domain/:id/clients/:client` instead.

Swagger documentation for the previous version of the API can be accessed at
`/v1/api/swagger-ui`.
8 changes: 8 additions & 0 deletions changelog.d/1-api-changes/development-version
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
A new field `development` has been added to the object returned by `GET
/api-version`. Versions listed there are considered in flux, meaning that the
corresponding API contracts can change arbitrarily over time. Clients are free
to use development versions, as long as they are also listed in `supported`,
and failures due to incompatibilities are acceptable (e.g. in testing
environments). Backends are the authoritative source on whether a development
version can be used at all. If a development version should not be used, the
backend will not list it among the supported versions at all.
1 change: 1 addition & 0 deletions changelog.d/6-federation/api-versioning
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
We now fetch version information from other backends and negotiate a version to use.
Loading