mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 05:53:43 +00:00 
			
		
		
		
	Until now we were not documenting bouncer's REST API endpoints.
We plan to document the newly introduced "remotes/push/e2ee/register"
and "remotes/push/e2ee/notify" endpoints.
This commit does the prep work for documenting bouncer endpoints:
* mark the older endpoints related to sending non-E2EE push
  notifications as "intentionally_undocumented" - we'll remove
  them in future.
* the remaining endpoints are marked pending-to-document with
  helpful comments.
(cherry picked from commit 062a736097)
		
	
		
			
				
	
	
		
			72 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
from typing import Any
 | 
						|
 | 
						|
from django.conf.urls import include
 | 
						|
from django.urls import path
 | 
						|
 | 
						|
from corporate.views.remote_billing_page import remote_realm_billing_entry
 | 
						|
from zilencer.auth import remote_server_path
 | 
						|
from zilencer.views import (
 | 
						|
    deactivate_remote_server,
 | 
						|
    register_remote_push_device,
 | 
						|
    register_remote_push_device_for_e2ee_push_notification,
 | 
						|
    register_remote_server,
 | 
						|
    remote_server_check_analytics,
 | 
						|
    remote_server_notify_push,
 | 
						|
    remote_server_post_analytics,
 | 
						|
    remote_server_send_e2ee_push_notification,
 | 
						|
    remote_server_send_test_notification,
 | 
						|
    transfer_remote_server_registration,
 | 
						|
    unregister_all_remote_push_devices,
 | 
						|
    unregister_remote_push_device,
 | 
						|
    verify_registration_transfer_challenge_ack_endpoint,
 | 
						|
)
 | 
						|
 | 
						|
i18n_urlpatterns: Any = []
 | 
						|
 | 
						|
# Zilencer views following the REST API style
 | 
						|
# The endpoints marked "intentionally_undocumented" are part of the older system
 | 
						|
# for sending non-E2EE push notifications, and will be removed in the future.
 | 
						|
push_bouncer_patterns = [
 | 
						|
    remote_server_path(
 | 
						|
        "remotes/push/register", POST=(register_remote_push_device, {"intentionally_undocumented"})
 | 
						|
    ),
 | 
						|
    remote_server_path(
 | 
						|
        "remotes/push/e2ee/register", POST=register_remote_push_device_for_e2ee_push_notification
 | 
						|
    ),
 | 
						|
    remote_server_path(
 | 
						|
        "remotes/push/unregister",
 | 
						|
        POST=(unregister_remote_push_device, {"intentionally_undocumented"}),
 | 
						|
    ),
 | 
						|
    remote_server_path(
 | 
						|
        "remotes/push/unregister/all",
 | 
						|
        POST=(unregister_all_remote_push_devices, {"intentionally_undocumented"}),
 | 
						|
    ),
 | 
						|
    remote_server_path(
 | 
						|
        "remotes/push/notify", POST=(remote_server_notify_push, {"intentionally_undocumented"})
 | 
						|
    ),
 | 
						|
    remote_server_path("remotes/push/e2ee/notify", POST=remote_server_send_e2ee_push_notification),
 | 
						|
    remote_server_path(
 | 
						|
        "remotes/push/test_notification",
 | 
						|
        POST=(remote_server_send_test_notification, {"intentionally_undocumented"}),
 | 
						|
    ),
 | 
						|
    # Push signup doesn't use the REST API, since there's no auth.
 | 
						|
    path("remotes/server/register", register_remote_server),
 | 
						|
    path("remotes/server/register/transfer", transfer_remote_server_registration),
 | 
						|
    path(
 | 
						|
        "remotes/server/register/verify_challenge",
 | 
						|
        verify_registration_transfer_challenge_ack_endpoint,
 | 
						|
    ),
 | 
						|
    remote_server_path("remotes/server/deactivate", POST=deactivate_remote_server),
 | 
						|
    # For receiving table data used in analytics and billing
 | 
						|
    remote_server_path("remotes/server/analytics", POST=remote_server_post_analytics),
 | 
						|
    remote_server_path("remotes/server/analytics/status", GET=remote_server_check_analytics),
 | 
						|
]
 | 
						|
 | 
						|
billing_patterns = [remote_server_path("remotes/server/billing", POST=remote_realm_billing_entry)]
 | 
						|
 | 
						|
v1_api_bouncer_patterns = push_bouncer_patterns + billing_patterns
 | 
						|
 | 
						|
urlpatterns = [
 | 
						|
    path("api/v1/", include(v1_api_bouncer_patterns)),
 | 
						|
]
 |