zulip/zerver/lib
Alex Vandiver 8f8a9f6f04 sentry: Add frontend event monitoring.
Zulip already has integrations for server-side Sentry integration;
however, it has historically used the Zulip-specific `blueslip`
library for monitoring browser-side errors.  However, the latter sends
errors to email, as well optionally to an internal `#errors` stream.
While this is sufficient for low volumes of users, and useful in that
it does not rely on outside services, at higher volumes it is very
difficult to do any analysis or filtering of the errors.  Client-side
errors are exceptionally noisy, with many false positives due to
browser extensions or similar, so determining real real errors from a
stream of un-grouped emails or messages in a stream is quite
difficult.

Add a client-side Javascript sentry integration.  To provide useful
backtraces, this requires extending the pre-deploy hooks to upload the
source-maps to Sentry.  Additional keys are added to the non-public
API of `page_params` to control the DSN, realm identifier, and sample
rates.
2023-03-07 10:51:45 -08:00
..
markdown response: Implement ignored parameters with MutableJsonResponse class. 2023-03-06 10:33:13 -08:00
upload requirements: Upgrade Python requirements. 2023-03-05 14:46:28 -08:00
url_preview ruff: Fix RSE102 Unnecessary parentheses on raised exception. 2023-02-04 16:34:55 -08:00
webhooks ruff: Fix SIM102 nested `if` statements. 2023-01-23 11:18:36 -08:00
__init__.py
addressee.py black: Reformat with Black 23. 2023-02-02 10:40:13 -08:00
alert_words.py black: Reformat with Black 23. 2023-02-02 10:40:13 -08:00
async_utils.py requirements: Upgrade Python requirements. 2022-05-03 10:10:06 -07:00
attachments.py upload: Rename delete_message_image to use word "attachment". 2023-03-02 16:36:19 -08:00
avatar.py settings: Make DEFAULT_LOGO_URI/DEFAULT_AVATAR_URI use staticfiles. 2023-02-14 17:17:06 -05:00
avatar_hash.py black: Reformat with Black 23. 2023-02-02 10:40:13 -08:00
bot_config.py python: Import F, Q, QuerySet from their canonical module. 2023-03-05 14:46:28 -08:00
bot_lib.py black: Reformat with Black 23. 2023-02-02 10:40:13 -08:00
bot_storage.py python: Import F, Q, QuerySet from their canonical module. 2023-03-05 14:46:28 -08:00
bulk_create.py settings: Add backend code for using user email_address_visibility setting. 2023-02-10 17:35:49 -08:00
cache.py python: Import F, Q, QuerySet from their canonical module. 2023-03-05 14:46:28 -08:00
cache_helpers.py python: Import F, Q, QuerySet from their canonical module. 2023-03-05 14:46:28 -08:00
camo.py typing: Apply trivial none-checks with assertions as necessary. 2022-06-23 19:25:48 -07:00
ccache.py black: Reformat with Black 23. 2023-02-02 10:40:13 -08:00
compatibility.py ruff: Fix DTZ004 `datetime.datetime.utcfromtimestamp()`. 2023-01-04 16:25:07 -08:00
context_managers.py
create_user.py registration: Add code to set email_address_visibility during signup. 2023-02-24 09:23:34 -08:00
data_types.py black: Reformat with Black 23. 2023-02-02 10:40:13 -08:00
db.py black: Reformat with Black 23. 2023-02-02 10:40:13 -08:00
debug.py black: Reformat with Black 23. 2023-02-02 10:40:13 -08:00
dev_ldap_directory.py tests: Update tests to use example profile picture. 2022-10-31 14:36:54 -07:00
digest.py ruff: Fix C414 Unnecessary `list` call within `sorted()`. 2022-11-03 12:10:15 -07:00
display_recipient.py typing: Import ValuesQuerySet alias from django_stubs_ext. 2022-10-05 16:15:56 -07:00
domains.py
drafts.py typing: Remove ViewFuncT. 2022-08-22 15:46:16 -07:00
email_mirror.py upload: Rename upload_message_file to use word "attachment". 2023-03-02 16:36:19 -08:00
email_mirror_helpers.py
email_notifications.py email_notifications: Use stable, unhashed, URLs for emoji in emails. 2023-02-14 17:17:06 -05:00
email_validation.py black: Reformat with Black 23. 2023-02-02 10:40:13 -08:00
emoji.py emoji: Disallow `.` in custom emoji names. 2023-01-31 17:28:33 -08:00
error_notify.py blueslip: Report the built client version, as well as server version. 2023-03-07 10:51:45 -08:00
event_schema.py users: Always pass "delivery_email" field in user objects. 2023-02-10 17:35:49 -08:00
events.py i18n: Add new markup for lazy translation of giphy ratings. 2023-03-06 10:52:52 -08:00
exceptions.py exceptions: Accept lazy translation as JsonableError argument. 2023-02-03 16:36:54 -08:00
export.py ruff: Fix PIE810 Call `startswith` once with a `tuple`. 2023-02-08 16:40:35 -08:00
external_accounts.py typing: Import StrPromise alias from django_stubs_ext. 2022-10-05 16:15:56 -07:00
fix_unreads.py black: Reformat with Black 23. 2023-02-02 10:40:13 -08:00
generate_test_data.py black: Reformat with Black 23. 2023-02-02 10:40:13 -08:00
github.py ruff: Fix RSE102 Unnecessary parentheses on raised exception. 2023-02-04 16:34:55 -08:00
home.py sentry: Add frontend event monitoring. 2023-03-07 10:51:45 -08:00
hotspots.py ruff: Fix SIM118 Use `key in dict` instead of `key in dict.keys()`. 2023-01-04 16:25:07 -08:00
html_diff.py html_diff: Fix lxml import. 2023-03-05 14:46:28 -08:00
html_to_text.py
i18n.py django: Use HttpRequest.headers. 2022-05-13 20:42:20 -07:00
import_realm.py black: Reformat with Black 23. 2023-02-02 10:40:13 -08:00
initial_password.py initial_password: Add explicit development environment assertion. 2022-03-21 12:05:59 -07:00
integrations.py ruff: Fix C417 Unnecessary `map` usage. 2022-11-03 12:10:15 -07:00
logging_util.py ruff: Fix SIM105 Use `contextlib.suppress` instead of try-except-pass. 2023-01-23 11:18:36 -08:00
management.py black: Reformat with Black 23. 2023-02-02 10:40:13 -08:00
mdiff.py node_tests: Move to web/tests. 2023-02-23 16:04:17 -08:00
mention.py markdown: Update characters allowed before @ and stream mentions. 2022-08-06 19:29:39 -07:00
message.py settings: Add backend code for using user email_address_visibility setting. 2023-02-10 17:35:49 -08:00
migrate.py
mobile_auth_otp.py
muted_users.py muted users: Make file naming consistent. 2023-02-10 15:39:57 -08:00
name_restrictions.py name_restrictions: Add your-org.zulipchat.com as a reserved name. 2022-05-17 14:58:31 -07:00
narrow.py web: Move web app to ‘web’ directory. 2023-02-23 16:04:17 -08:00
notes.py notes: Separate __notes_map per-subclass. 2022-10-10 08:42:13 -07:00
notification_data.py message_send: Handle notifications for UNMUTED topic in a muted stream. 2023-03-06 19:15:45 -08:00
onboarding.py demo-orgs: Fix link to help center in Welcome bot message. 2023-02-28 16:52:20 -08:00
outgoing_http.py
outgoing_webhook.py outgoing-webhook: Update Slack outgoing webhook error for private messages. 2023-02-24 11:47:26 -08:00
presence.py black: Reformat with Black 23. 2023-02-02 10:40:13 -08:00
profile.py profile: Strengthen decorator types using ParamSpec. 2022-04-14 12:44:35 -07:00
push_notifications.py push-notifications: Update strings for private messages. 2023-02-24 11:47:26 -08:00
pysa.py
queue.py queue: Only set QOS on a newly-opened channel, once. 2023-02-23 11:47:43 -08:00
rate_limiter.py ruff: Fix RSE102 Unnecessary parentheses on raised exception. 2023-02-04 16:34:55 -08:00
realm_description.py
realm_icon.py settings: Make DEFAULT_LOGO_URI/DEFAULT_AVATAR_URI use staticfiles. 2023-02-14 17:17:06 -05:00
realm_logo.py settings: Make DEFAULT_LOGO_URI/DEFAULT_AVATAR_URI use staticfiles. 2023-02-14 17:17:06 -05:00
recipient_users.py private-messages: Update translated backend strings use "direct message". 2023-02-24 11:47:26 -08:00
redis_utils.py
remote_server.py remote_server: Check for missing ZULIP_ORG_ID, ZULIP_ORG_KEY. 2023-01-04 11:08:56 -08:00
request.py response: Implement ignored parameters with MutableJsonResponse class. 2023-03-06 10:33:13 -08:00
response.py response: Implement ignored parameters with MutableJsonResponse class. 2023-03-06 10:33:13 -08:00
rest.py ruff: Fix RSE102 Unnecessary parentheses on raised exception. 2023-02-04 16:34:55 -08:00
retention.py ruff: Fix SIM118 Use `key in dict` instead of `key in dict.keys()`. 2023-01-04 16:25:07 -08:00
safe_session_cached_db.py session: Enforce that changes cannot happen in a transaction. 2022-03-15 13:52:15 -07:00
scim.py mypy: Enable redundant-expr errors. 2022-06-23 19:22:12 -07:00
scim_filter.py
send_email.py docs: Document how to use SMTP without authentication. 2023-02-27 11:59:48 -08:00
server_initialization.py realms: Create default system user groups for internal realm. 2022-08-11 04:38:36 -07:00
sessions.py typing: Add none-checks for miscellaneous cases. 2022-05-31 09:43:55 -07:00
singleton_bmemcached.py cache: Instantiate only one BMemcached cache backend. 2022-05-02 17:41:49 -07:00
soft_deactivation.py python: Import F, Q, QuerySet from their canonical module. 2023-03-05 14:46:28 -08:00
sounds.py actions: Split out zerver.lib.sounds. 2022-04-14 14:26:40 -07:00
sqlalchemy_utils.py sqlalchemy_utils: Remove NonClosingPool.recreate override. 2022-02-10 11:59:41 -08:00
storage.py ruff: Fix PLE0101 Explicit return in `__init__`. 2023-02-23 11:47:08 -08:00
stream_color.py streams: Extract stream_color library. 2022-03-14 18:01:36 -07:00
stream_subscription.py black: Reformat with Black 23. 2023-02-02 10:40:13 -08:00
stream_topic.py message_send: Handle notifications for UNMUTED topic in a muted stream. 2023-03-06 19:15:45 -08:00
stream_traffic.py streams: Extract stream_traffic library. 2022-03-14 18:01:36 -07:00
streams.py python: Import F, Q, QuerySet from their canonical module. 2023-03-05 14:46:28 -08:00
string_validation.py email_mirror: Replace disallowed characters in incoming email subject. 2022-08-22 17:16:20 -07:00
subdomains.py settings: Allow customization of STATIC_URL. 2023-02-14 17:17:06 -05:00
subscription_info.py python: Import F, Q, QuerySet from their canonical module. 2023-03-05 14:46:28 -08:00
templates.py web: Move web app to ‘web’ directory. 2023-02-23 16:04:17 -08:00
test_classes.py tests: Update `assert_json_success` to check for ignored parameters. 2023-03-06 10:33:13 -08:00
test_console_output.py ruff: Fix N818 exception name should be named with an Error suffix. 2022-11-17 16:52:00 -08:00
test_data.source.txt
test_fixtures.py ruff: Fix ANN204 missing return type annotation for __init__. 2022-11-16 09:29:11 -08:00
test_helpers.py test_helpers: Rename reset_emails_in_zulip_realm. 2023-03-01 12:17:11 -08:00
test_runner.py avatars: Serve /user_avatars/ through Django, which offloads to nginx. 2023-01-09 18:23:58 -05:00
tex.py
thumbnail.py docs: Remove some outdated references to thumbnailing.md doc. 2022-07-12 17:44:24 -07:00
timeout.py ruff: Fix N818 exception name should be named with an Error suffix. 2022-11-17 16:52:00 -08:00
timestamp.py timestamp: Switch to a slightly faster datetime_to_timestamp. 2023-02-23 12:15:13 -08:00
timezone.py timezone: Improve tzdata parser’s compatibility with zic(8). 2022-09-20 16:58:31 -07:00
topic.py python: Import F, Q, QuerySet from their canonical module. 2023-03-05 14:46:28 -08:00
transfer.py uploads: Add LOCAL_AVATARS_DIR / LOCAL_FILES_DIR computed settings. 2023-01-09 18:23:58 -05:00
types.py streams: Refactor code to set group-based stream settings. 2023-02-22 12:17:46 -08:00
unminify.py unminify: Do not assume /static/ exists in the stacktrace. 2023-02-14 17:17:06 -05:00
url_encoding.py black: Reformat with Black 23. 2023-02-02 10:40:13 -08:00
url_redirects.py help: Update filenames "private message" -> "direct message". 2023-02-28 16:55:13 -08:00
user_agent.py
user_counts.py actions: Split out zerver.lib.user_counts. 2022-04-14 17:14:30 -07:00
user_groups.py streams: Allow changing can_remove_subscribers_group through API. 2023-02-05 14:46:36 -08:00
user_message.py actions: Split out zerver.lib.user_message. 2022-04-14 17:14:30 -07:00
user_status.py black: Reformat with Black 23. 2023-02-02 10:40:13 -08:00
user_topics.py user_topics: Refactor remove_topic_mute. 2023-03-06 19:15:45 -08:00
users.py python: Import F, Q, QuerySet from their canonical module. 2023-03-05 14:46:28 -08:00
utils.py
validator.py black: Reformat with Black 23. 2023-02-02 10:40:13 -08:00
widget.py
zcommand.py actions: Split out zerver.actions.user_settings. 2022-04-14 17:14:34 -07:00
zephyr.py