Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
91c9236
Add data_export outline
cmanallen Sep 22, 2025
d5a6de3
No EAP export
cmanallen Sep 22, 2025
8522dce
Add coverage
cmanallen Sep 22, 2025
cab8b48
Add retry coverage
cmanallen Sep 22, 2025
7788809
Add notifications endpoint
cmanallen Sep 22, 2025
5d091a0
Add initial ClickHouse data export coverage
cmanallen Sep 22, 2025
2a5a76e
Assert rows are only returned within the range and for the project
cmanallen Sep 22, 2025
38faa47
Merge branch 'master' into cmanallen/replays-data-export
cmanallen Sep 23, 2025
705c3e3
Remove duplicated code and rename project_id to gcs_project_id for cl…
cmanallen Sep 23, 2025
a7dfebd
Remove notification config as a requirement
cmanallen Sep 23, 2025
0432faa
Refactor querying logic
cmanallen Sep 23, 2025
18c054a
Add data export impl
cmanallen Sep 23, 2025
79f6922
Update data export impl and add coverage
cmanallen Sep 25, 2025
3abfa4d
Add more comprehensive output coverage
cmanallen Sep 25, 2025
c40d8ab
Define storage writer
cmanallen Sep 25, 2025
540bc95
Add test for export_replay_blob_data
cmanallen Sep 25, 2025
b4db919
Hard code replay-id
cmanallen Sep 25, 2025
0404e49
Move retry policy to task
cmanallen Sep 25, 2025
24592ac
Add task chaining
cmanallen Sep 25, 2025
778afef
Add taskworker configs
cmanallen Sep 26, 2025
453e7a4
Naming
cmanallen Sep 26, 2025
ddb45a1
Add more coverage and change replay range discovery
cmanallen Sep 26, 2025
c8ebeed
Remove unused function
cmanallen Sep 26, 2025
ad01729
Remove notifications endpoint
cmanallen Sep 26, 2025
fbf820e
Restructure file to be more normal
cmanallen Sep 26, 2025
3bf9188
Add test coverage for tasks
cmanallen Sep 26, 2025
d12b663
Naming
cmanallen Sep 26, 2025
39a0bbb
More tests to juice the coverage
cmanallen Sep 26, 2025
fe00240
Add useless types to my test suite
cmanallen Sep 26, 2025
7d572c3
Fix assertion error message
cmanallen Sep 26, 2025
46bfdf6
Merge branch 'master' into cmanallen/replays-data-export
cmanallen Sep 29, 2025
dc78e15
:snowflake: re-freeze requirements
getsantry[bot] Sep 29, 2025
dfdd4b9
Add export referrer
cmanallen Sep 29, 2025
a59fd2b
Remove flakey tests
cmanallen Sep 29, 2025
a77ed4c
Remove type ignore
cmanallen Sep 29, 2025
ac5d365
Merge branch 'cmanallen/replays-data-export' of https://github.com/ge…
cmanallen Sep 29, 2025
36a7cc7
Add __name__ to getLogger call
cmanallen Sep 29, 2025
8c27985
Fix typos
cmanallen Sep 29, 2025
58ac869
Improve naming
cmanallen Sep 29, 2025
85346dc
Add extra log parameters
cmanallen Sep 29, 2025
2b56882
Extract default parameters to module constants
cmanallen Sep 29, 2025
96a37b8
Fix typo
cmanallen Sep 29, 2025
fef1a5e
Use referrer enum
cmanallen Sep 29, 2025
b1b7188
Code comments
cmanallen Sep 29, 2025
c6bdce6
Make description a passable argument
cmanallen Sep 30, 2025
ace82d1
Assert storage is GoogleCloudStorage
cmanallen Sep 30, 2025
2c60016
Rename sink to storage
cmanallen Sep 30, 2025
1feaed9
Rename to rows_to_csv
cmanallen Sep 30, 2025
908a383
Add max_rows_to_export parameter which caps the call chains length
cmanallen Sep 30, 2025
fc2ab6d
Add extra next_offset assertions
cmanallen Sep 30, 2025
610312b
Yield triple
cmanallen Sep 30, 2025
15113e2
Update call arguments
cmanallen Sep 30, 2025
ff366db
Update test coverage
cmanallen Sep 30, 2025
7155a61
Add more coverage
cmanallen Sep 30, 2025
cb46421
Renames and docstrings
cmanallen Sep 30, 2025
54054ed
Revert "Remove notifications endpoint"
cmanallen Sep 30, 2025
4e19523
Add deterministic and ordered file naming
cmanallen Sep 30, 2025
cd2e98d
Assert filename
cmanallen Sep 30, 2025
86a3989
Encode function state into the filename
cmanallen Sep 30, 2025
14ee26b
Remove limit as it can be inferred
cmanallen Sep 30, 2025
bacdc5a
Add retry endpoint for handling transfer-job failures
cmanallen Sep 30, 2025
1b284a7
POST is private
cmanallen Sep 30, 2025
268f8d5
Ignore type checker
cmanallen Sep 30, 2025
939ffbf
Update control silo routes
cmanallen Sep 30, 2025
fbc91f1
Set return value
cmanallen Sep 30, 2025
0be2d89
Update mock path
cmanallen Sep 30, 2025
04a02c4
Hard-code google-cloud as notification provider
cmanallen Oct 1, 2025
0f1d4b1
Update URLs
cmanallen Oct 1, 2025
1d4bb58
Fix URL
cmanallen Oct 1, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ dependencies = [
"google-cloud-pubsub>=2.23.0",
"google-cloud-spanner>=3.49.0",
"google-cloud-storage>=2.18.0",
"google-cloud-storage-transfer>=1.17.0",
"google-crc32c>=1.6.0",
"googleapis-common-protos>=1.63.2",
"grpc-google-iam-v1>=0.13.1",
Expand Down Expand Up @@ -287,6 +288,7 @@ module = [
"google.cloud.*",
"google.resumable_media.common.*",
"google.rpc.status_pb2.*",
"google.type.*",
"kombu.*",
"mistune.*",
"onelogin.saml2.auth.*",
Expand Down
6 changes: 6 additions & 0 deletions src/sentry/api/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -462,6 +462,7 @@
from sentry.relocation.api.endpoints.recover import RelocationRecoverEndpoint
from sentry.relocation.api.endpoints.retry import RelocationRetryEndpoint
from sentry.relocation.api.endpoints.unpause import RelocationUnpauseEndpoint
from sentry.replays.endpoints.data_export_notifications import DataExportNotificationsEndpoint
from sentry.replays.endpoints.organization_replay_count import OrganizationReplayCountEndpoint
from sentry.replays.endpoints.organization_replay_details import OrganizationReplayDetailsEndpoint
from sentry.replays.endpoints.organization_replay_events_meta import (
Expand Down Expand Up @@ -3567,6 +3568,11 @@ def create_group_urls(name_prefix: str) -> list[URLPattern | URLResolver]:
AcceptOrganizationInvite.as_view(),
name="sentry-api-0-organization-accept-organization-invite",
),
re_path(
r"^data-export/notifications/google-cloud/$",
DataExportNotificationsEndpoint.as_view(),
name="sentry-api-0-data-export-notifications",
),
re_path(
r"^accept-invite/(?P<member_id>[^/]+)/(?P<token>[^/]+)/$",
AcceptOrganizationInvite.as_view(),
Expand Down
Loading
Loading