mirror of https://github.com/zulip/zulip.git
119 lines
5.7 KiB
Markdown
119 lines
5.7 KiB
Markdown
|
# Changelog
|
||
|
|
||
|
This page documents changes to the Zulip Server API over time.
|
||
|
|
||
|
The recommended way for a client like the Zulip mobile or desktop apps
|
||
|
that needs to support interaction with a wide range of different Zulip
|
||
|
server versions is to check the `zulip_feature_level` parameter in the
|
||
|
`/register` and `/server_settings` responses to determine which of the
|
||
|
below features are supported.
|
||
|
|
||
|
## Changes in Zulip 2.2
|
||
|
|
||
|
**Feature level 2**:
|
||
|
|
||
|
* [`POST /messages/{message_id}/reactions`](/api/add-emoji-reaction):
|
||
|
The `emoji_type` parameter is optional; the server will guess the
|
||
|
emoji_type if it is not specified (checking custom emoji, then
|
||
|
unicode emoji for any with the provided name).
|
||
|
* `reactions` objects returned by the API (both in `GET /messages` and
|
||
|
in `GET /events`) now include the user who reacted in a top-level
|
||
|
`user_id` field. The legacy `user` dictionary (which had
|
||
|
inconsistent format between those two endpoints) is deprecated.
|
||
|
|
||
|
**Feature level 1**:
|
||
|
|
||
|
* [`GET /server_settings`](/api/server-settings): Added
|
||
|
`zulip_feature_level`, which can be used by clients to detect which
|
||
|
of the features described in this changelog are supported.
|
||
|
* [`POST /register`](/api/register-queue): Added `zulip_feature_level`
|
||
|
to the response if `zulip_version` is among the requested
|
||
|
`event_types`.
|
||
|
* [`GET /users`](/api/get-all-users): User objects for bots now
|
||
|
contain a `bot_owner_id`, replacing the previous `bot_owner` field
|
||
|
(which had the email address of the bot owner).
|
||
|
* [`GET /users/{user_id}`](/api/get-user): Endpoint added.
|
||
|
* [`GET /messages`](/api/get-messages): Add support for string-format
|
||
|
values for the `anchor` parameter, deprecating and replacing the
|
||
|
`use_first_unread_anchor` parameter.
|
||
|
* [`GET /messages`](/api/get-messages) and [`GET
|
||
|
/events`](/api/get-events-from-queue): Message objects now use
|
||
|
`topic_links` rather than `subject_links` to indicate links either
|
||
|
present in the topic or generated by Linkifiers applied to the topic.
|
||
|
* [`POST /users/me/subscriptions`](/api/add-subscriptions): Replaced
|
||
|
`is_announcement_only` boolean with `stream_post_policy` enum for
|
||
|
specifying who can post to a stream.
|
||
|
* [`PATCH /streams/{stream_id}`](/api/update-stream): Replaced
|
||
|
`is_announcement_only` boolean with `stream_post_policy` enum for
|
||
|
specifying who can post to a stream.
|
||
|
* [`GET /streams`](/api/get-all-streams): Replaced
|
||
|
`is_announcement_only` boolean with `stream_post_policy` enum for
|
||
|
specifying who can post to a stream.
|
||
|
* `GET /api/v1/user_uploads`: Added new endpoint for requesting a
|
||
|
temporary URL for an uploaded file that does not require
|
||
|
authentication to access (e.g. for passing from a Zulip desktop,
|
||
|
mobile, or terminal app to the user's default browser).
|
||
|
* Added `EMAIL_ADDRESS_VISIBILITY_NOBODY` possible value for
|
||
|
`email_address_visibility`.
|
||
|
* Added `private_message_policy` realm setting.
|
||
|
* `muted_topic` objects now are a 3-item tuple: (`stream_id`, `topic`,
|
||
|
`date_muted`). Previously, they were a 2-item tuple.
|
||
|
* `GitLab` authentication is now available.
|
||
|
* Added `None` as a video call provider option.
|
||
|
|
||
|
## Changes in Zulip 2.1
|
||
|
|
||
|
* [`GET /users`](/api/get-all-users): Added `include_custom_profile_fields`
|
||
|
to request custom profile field data.
|
||
|
* [`GET /users/me`](/api/get-profile): Added `avatar_url` field,
|
||
|
containing the user's avatar URL, to the response.
|
||
|
* [`GET /users/me/subscriptions`](/api/get-subscribed-streams): Added
|
||
|
`include_subscribers` parameter controlling whether data on the
|
||
|
other subscribers is included. Previous behavior was to always send
|
||
|
subscriber data.
|
||
|
* [`GET /users/me/subscriptions`](/api/get-subscribed-streams):
|
||
|
Stream-level notification settings like `push_notifications` were
|
||
|
changed to be nullable boolean fields (true/false/null), with `null`
|
||
|
meaning that the stream inherits the organization-level default.
|
||
|
Previously, the only values were true/false. A client communicates
|
||
|
support for this feature using `client_capabilities`.
|
||
|
* [`GET /users/me/subscriptions`](/api/get-subscribed-streams): Added
|
||
|
`wildcard_mentions_notify` notification setting, with the same
|
||
|
global-plus-stream-level-override model as other notification settings.
|
||
|
* [`GET /server_settings`](/api/server-settings): Added
|
||
|
`external_authentication_methods` structure, used to display login
|
||
|
buttons nicely in the mobile apps.
|
||
|
* Added `first_message_id` field to Stream objects. This is helpful
|
||
|
for determining whether the stream has any messages older than a
|
||
|
window cached in a client.
|
||
|
* Added `is_web_public` field to Stream objects. This field is
|
||
|
intended to support web-public streams.
|
||
|
* Added `/export/realm` endpoints for triggering a data export.
|
||
|
* `PATCH /realm`: Added `invite_to_stream_policy`,
|
||
|
`create_stream_policy`, `digest_emails_enabled`, `digest_weekday`,
|
||
|
`user_group_edit_policy`, and `avatar_changes_disabled` organization settings.
|
||
|
* Added `fluid_layout_width`, `desktop_icon_count_display`, and
|
||
|
`demote_inactive_streams` display settings.
|
||
|
* `enable_stream_sounds` was renamed to
|
||
|
`enable_stream_audible_notifications`.
|
||
|
* Deprecated `is_home_view`, replacing it with the more readable
|
||
|
`is_muted` (with the opposite meaning).
|
||
|
* Custom profile fields: Added `EXTERNAL_ACCOUNT` field type.
|
||
|
|
||
|
## Changes in Zulip 2.0
|
||
|
|
||
|
* [`POST /messages`](/api/send-message): Added support for using user
|
||
|
IDs and stream IDs for specifying the recipients of a message.
|
||
|
* [`POST /typing`](/api/typing): Added support for specifying the
|
||
|
recipients with user IDs, deprecating the original API of specifying
|
||
|
them using email addresses.
|
||
|
|
||
|
------------------
|
||
|
|
||
|
## Changes not yet stabilized
|
||
|
|
||
|
* [`POST /register`](/api/register-queue): Added `slim_presence`
|
||
|
parameter. Changes the format of presence events, but is still
|
||
|
being changed and should not be used by clients.
|
||
|
* `message_retention_days` field in stream objects.
|