zulip/templates/zerver/api/changelog.md

5.7 KiB

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: 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: Added zulip_feature_level, which can be used by clients to detect which of the features described in this changelog are supported.
  • POST /register: Added zulip_feature_level to the response if zulip_version is among the requested event_types.
  • GET /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}: Endpoint added.
  • GET /messages: Add support for string-format values for the anchor parameter, deprecating and replacing the use_first_unread_anchor parameter.
  • GET /messages and GET /events: 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: Replaced is_announcement_only boolean with stream_post_policy enum for specifying who can post to a stream.
  • PATCH /streams/{stream_id}: Replaced is_announcement_only boolean with stream_post_policy enum for specifying who can post to a stream.
  • GET /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: Added include_custom_profile_fields to request custom profile field data.
  • GET /users/me: Added avatar_url field, containing the user's avatar URL, to the response.
  • GET /users/me/subscriptions: 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: 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: Added wildcard_mentions_notify notification setting, with the same global-plus-stream-level-override model as other notification settings.
  • GET /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: Added support for using user IDs and stream IDs for specifying the recipients of a message.
  • POST /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: 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.