r"^_static/(?:(?P<version>\d{10}|[a-f0-9]{32,40})/)?(?P<module>[^/]+)/(?P<path>.*)$", generic.static_media, name="sentry-media", ), # Javascript SDK Loader url( r"^js-sdk-loader/(?P<public_key>[^/\.]+)(?:(?P<minified>\.min))?\.js$", JavaScriptSdkLoader.as_view(), name="sentry-js-sdk-loader", ), # Versioned API url(r"^api/0/", include("sentry.api.urls")), # Legacy unversioned endpoints url( r"^api/hooks/mailgun/inbound/", MailgunInboundWebhookView.as_view(), name="sentry-mailgun-inbound-hook", ), url( r"^api/hooks/release/(?P<plugin_id>[^/]+)/(?P<project_id>[^/]+)/(?P<signature>[^/]+)/", ReleaseWebhookView.as_view(), name="sentry-release-hook", ), url(r"^api/embed/error-page/$", ErrorPageEmbedView.as_view(), name="sentry-error-page-embed"), # OAuth url( r"^oauth/", include( [ url(r"^authorize/$", OAuthAuthorizeView.as_view()), url(r"^token/$", OAuthTokenView.as_view()),
url(r'^api/store/$', api.StoreView.as_view(), name='sentry-api-store'), url(r'^api/(?P<project_id>[\w_-]+)/store/$', api.StoreView.as_view(), name='sentry-api-store'), url(r'^api/(?P<project_id>\d+)/csp-report/$', api.CspReportView.as_view(), name='sentry-api-csp-report'), url(r'^api/(?P<project_id>[\w_-]+)/crossdomain\.xml$', api.crossdomain_xml, name='sentry-api-crossdomain-xml'), # The static version is either a 10 digit timestamp, a sha1, or md5 hash url(r'^_static/(?:(?P<version>\d{10}|[a-f0-9]{32,40})/)?(?P<module>[^/]+)/(?P<path>.*)$', generic.static_media, name='sentry-media'), # API url(r'^api/0/', include('sentry.api.urls')), url(r'^api/hooks/mailgun/inbound/', MailgunInboundWebhookView.as_view(), name='sentry-mailgun-inbound-hook'), url(r'^api/hooks/release/(?P<plugin_id>[^/]+)/(?P<project_id>[^/]+)/(?P<signature>[^/]+)/', ReleaseWebhookView.as_view(), name='sentry-release-hook'), url(r'^api/embed/error-page/$', ErrorPageEmbedView.as_view(), name='sentry-error-page-embed'), # OAuth url(r'^oauth/authorize/$', OAuthAuthorizeView.as_view()), url(r'^oauth/token/$', OAuthTokenView.as_view()), # Auth url(r'^auth/link/(?P<organization_slug>[^/]+)/$', AuthOrganizationLoginView.as_view(), name='sentry-auth-link-identity'), url(r'^auth/login/$', AuthLoginView.as_view(), name='sentry-login'),
'', # Store endpoints first since they are the most active url(r'^api/store/$', api.StoreView.as_view(), name='sentry-api-store'), url(r'^api/(?P<project_id>[\w_-]+)/store/$', api.StoreView.as_view(), name='sentry-api-store'), url(r'^api/(?P<project_id>\d+)/csp-report/$', api.CspReportView.as_view(), name='sentry-api-csp-report'), # The static version is either a 10 digit timestamp, a sha1, or md5 hash url(r'^_static/(?:(?P<version>\d{10}|[a-f0-9]{32,40})/)?(?P<module>[^/]+)/(?P<path>.*)$', generic.static_media, name='sentry-media'), # API url(r'^api/0/', include('sentry.api.urls')), url(r'^api/hooks/mailgun/inbound/', MailgunInboundWebhookView.as_view(), name='sentry-mailgun-inbound-hook'), url(r'^api/hooks/release/(?P<plugin_id>[^/]+)/(?P<project_id>[^/]+)/(?P<signature>[^/]+)/', ReleaseWebhookView.as_view(), name='sentry-release-hook'), url(r'^api/embed/error-page/$', ErrorPageEmbedView.as_view(), name='sentry-error-page-embed'), # Auth url(r'^auth/link/(?P<organization_slug>[^/]+)/$', AuthOrganizationLoginView.as_view(), name='sentry-auth-link-identity'), url(r'^auth/login/$', AuthLoginView.as_view(), name='sentry-login'), url(r'^auth/login/(?P<organization_slug>[^/]+)/$', AuthOrganizationLoginView.as_view(), name='sentry-auth-organization'), url(r'^auth/2fa/$', TwoFactorAuthView.as_view(), name='sentry-2fa-dialog'),
name='sentry-api-crossdomain-xml' ), url(r'^api/store/schema$', api.StoreSchemaView.as_view(), name='sentry-api-store-schema'), # The static version is either a 10 digit timestamp, a sha1, or md5 hash url( r'^_static/(?:(?P<version>\d{10}|[a-f0-9]{32,40})/)?(?P<module>[^/]+)/(?P<path>.*)$', generic.static_media, name='sentry-media' ), # API url(r'^api/0/', include('sentry.api.urls')), url( r'^api/hooks/mailgun/inbound/', MailgunInboundWebhookView.as_view(), name='sentry-mailgun-inbound-hook' ), url( r'^api/hooks/release/(?P<plugin_id>[^/]+)/(?P<project_id>[^/]+)/(?P<signature>[^/]+)/', ReleaseWebhookView.as_view(), name='sentry-release-hook' ), url(r'^api/embed/error-page/$', ErrorPageEmbedView.as_view(), name='sentry-error-page-embed'), # OAuth url(r'^oauth/authorize/$', OAuthAuthorizeView.as_view()), url(r'^oauth/token/$', OAuthTokenView.as_view()), # SAML
urlpatterns += patterns( "", # Store endpoints first since they are the most active url(r"^api/store/$", api.StoreView.as_view(), name="sentry-api-store"), url(r"^api/(?P<project_id>[\w_-]+)/store/$", api.StoreView.as_view(), name="sentry-api-store"), url(r"^api/(?P<project_id>\d+)/csp-report/$", api.CspReportView.as_view(), name="sentry-api-csp-report"), # The static version is either a 10 digit timestamp, a sha1, or md5 hash url( r"^_static/(?:(?P<version>\d{10}|[a-f0-9]{32,40})/)?(?P<module>[^/]+)/(?P<path>.*)$", generic.static_media, name="sentry-media", ), # API url(r"^api/0/", include("sentry.api.urls")), url(r"^api/hooks/mailgun/inbound/", MailgunInboundWebhookView.as_view(), name="sentry-mailgun-inbound-hook"), url( r"^api/hooks/release/(?P<plugin_id>[^/]+)/(?P<project_id>[^/]+)/(?P<signature>[^/]+)/", ReleaseWebhookView.as_view(), name="sentry-release-hook", ), url(r"^api/embed/error-page/$", ErrorPageEmbedView.as_view(), name="sentry-error-page-embed"), # Auth url( r"^auth/link/(?P<organization_slug>[^/]+)/$", AuthOrganizationLoginView.as_view(), name="sentry-auth-link-identity", ), url(r"^auth/login/$", AuthLoginView.as_view(), name="sentry-login"), url( r"^auth/login/(?P<organization_slug>[^/]+)/$",