@volter/twin-sentry 0.1.36 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -134
- package/api/spec/SOURCE.md +15 -0
- package/api/spec/doc-examples.json +12 -0
- package/api/spec/openapi.json.gz +0 -0
- package/api/spec/patches.json +5350 -0
- package/api/spec/sources.json +122 -0
- package/api/src/fetch.ts +18 -0
- package/api/src/generated/surface.gen.json +1 -0
- package/api/src/generated/ui.gen.json +1 -0
- package/api/src/index.ts +3 -0
- package/api/src/manifest.ts +136 -0
- package/api/src/semantics/api.ts +246 -0
- package/api/src/semantics/around.ts +36 -0
- package/api/src/semantics/doors.ts +50 -0
- package/api/src/semantics/index.ts +19 -0
- package/api/src/semantics/shared.ts +35 -0
- package/api/src/semantics/states.ts +17 -0
- package/dist/api/spec/SOURCE.md +15 -0
- package/dist/api/spec/doc-examples.json +12 -0
- package/dist/api/spec/openapi.json.gz +0 -0
- package/dist/api/spec/patches.json +5350 -0
- package/dist/api/spec/sources.json +122 -0
- package/dist/api/src/fetch.d.ts +2 -0
- package/dist/api/src/fetch.js +17 -0
- package/dist/api/src/fetch.ts +18 -0
- package/dist/api/src/generated/surface.gen.json +1 -0
- package/dist/api/src/generated/ui.gen.json +1 -0
- package/dist/api/src/index.d.ts +2 -0
- package/dist/api/src/index.js +3 -0
- package/dist/api/src/index.ts +3 -0
- package/dist/api/src/manifest.d.ts +2 -0
- package/dist/api/src/manifest.js +135 -0
- package/dist/api/src/manifest.ts +136 -0
- package/dist/api/src/semantics/api.d.ts +13 -0
- package/dist/api/src/semantics/api.js +267 -0
- package/dist/api/src/semantics/api.ts +246 -0
- package/dist/api/src/semantics/around.d.ts +2 -0
- package/dist/api/src/semantics/around.js +41 -0
- package/dist/api/src/semantics/around.ts +36 -0
- package/dist/api/src/semantics/doors.d.ts +8 -0
- package/dist/api/src/semantics/doors.js +39 -0
- package/dist/api/src/semantics/doors.ts +50 -0
- package/dist/api/src/semantics/index.d.ts +2 -0
- package/dist/api/src/semantics/index.js +15 -0
- package/dist/api/src/semantics/index.ts +19 -0
- package/dist/api/src/semantics/shared.d.ts +15 -0
- package/dist/api/src/semantics/shared.js +27 -0
- package/dist/api/src/semantics/shared.ts +35 -0
- package/dist/api/src/semantics/states.d.ts +24 -0
- package/dist/api/src/semantics/states.js +17 -0
- package/dist/api/src/semantics/states.ts +17 -0
- package/dist/generated/pack-facts.json +87 -0
- package/dist/ingest/spec/SOURCE.md +30 -0
- package/dist/ingest/spec/authentication.mdx.gz +0 -0
- package/dist/ingest/spec/compression.mdx.gz +0 -0
- package/dist/ingest/spec/doc-examples.json +216 -0
- package/dist/ingest/spec/envelope-items.mdx.gz +0 -0
- package/dist/ingest/spec/envelopes.mdx.gz +0 -0
- package/dist/ingest/spec/openapi.json +178 -0
- package/dist/ingest/spec/rate-limiting.mdx.gz +0 -0
- package/dist/ingest/spec/sources.json +25 -0
- package/dist/ingest/spec/transport.mdx.gz +0 -0
- package/dist/ingest/spec/write-spec.ts +192 -0
- package/dist/ingest/src/fetch.d.ts +2 -0
- package/dist/ingest/src/fetch.js +15 -0
- package/dist/ingest/src/fetch.ts +16 -0
- package/dist/ingest/src/generated/surface.gen.json +1 -0
- package/dist/ingest/src/generated/ui.gen.json +1 -0
- package/dist/ingest/src/index.d.ts +2 -0
- package/dist/ingest/src/index.js +3 -0
- package/dist/ingest/src/index.ts +3 -0
- package/dist/ingest/src/manifest.d.ts +2 -0
- package/dist/ingest/src/manifest.js +34 -0
- package/dist/ingest/src/manifest.ts +39 -0
- package/dist/ingest/src/semantics/api.d.ts +2 -0
- package/dist/ingest/src/semantics/api.js +240 -0
- package/dist/ingest/src/semantics/api.ts +188 -0
- package/dist/ingest/src/semantics/around.d.ts +2 -0
- package/dist/ingest/src/semantics/around.js +6 -0
- package/dist/ingest/src/semantics/around.ts +7 -0
- package/dist/ingest/src/semantics/index.d.ts +2 -0
- package/dist/ingest/src/semantics/index.js +4 -0
- package/dist/ingest/src/semantics/index.ts +8 -0
- package/dist/ingest/src/semantics/shared.d.ts +4 -0
- package/dist/ingest/src/semantics/shared.js +2 -0
- package/dist/ingest/src/semantics/shared.ts +7 -0
- package/dist/ingest/src/semantics/states.d.ts +1 -0
- package/dist/ingest/src/semantics/states.js +2 -0
- package/dist/ingest/src/semantics/states.ts +2 -0
- package/dist/journeys/coverage.json +205 -0
- package/dist/journeys/customer-life.json +923 -0
- package/dist/journeys/customer-life.outline.md +51 -0
- package/dist/journeys/decisions.json +170 -0
- package/dist/journeys/demand.json +136 -0
- package/dist/journeys/score.json +231 -0
- package/dist/journeys/unreachable.json +29 -0
- package/dist/journeys/vendor-examples.json +474 -0
- package/dist/spec/sources.json +76 -0
- package/dist/src/cli.js +12 -27
- package/dist/src/fetch.d.ts +2 -0
- package/dist/src/fetch.js +9 -0
- package/dist/src/index.d.ts +5 -15
- package/dist/src/index.js +12 -75
- package/dist/src/manifest.d.ts +2 -0
- package/dist/src/manifest.js +34 -0
- package/dist/src/semantics/shared.d.ts +87 -0
- package/dist/src/semantics/shared.js +411 -0
- package/dist/src/server.d.ts +7 -0
- package/dist/src/server.js +7 -0
- package/generated/pack-facts.json +87 -0
- package/ingest/spec/SOURCE.md +30 -0
- package/ingest/spec/authentication.mdx.gz +0 -0
- package/ingest/spec/compression.mdx.gz +0 -0
- package/ingest/spec/doc-examples.json +216 -0
- package/ingest/spec/envelope-items.mdx.gz +0 -0
- package/ingest/spec/envelopes.mdx.gz +0 -0
- package/ingest/spec/openapi.json +178 -0
- package/ingest/spec/rate-limiting.mdx.gz +0 -0
- package/ingest/spec/sources.json +25 -0
- package/ingest/spec/transport.mdx.gz +0 -0
- package/ingest/spec/write-spec.ts +192 -0
- package/ingest/src/fetch.ts +16 -0
- package/ingest/src/generated/surface.gen.json +1 -0
- package/ingest/src/generated/ui.gen.json +1 -0
- package/ingest/src/index.ts +3 -0
- package/ingest/src/manifest.ts +39 -0
- package/ingest/src/semantics/api.ts +188 -0
- package/ingest/src/semantics/around.ts +7 -0
- package/ingest/src/semantics/index.ts +8 -0
- package/ingest/src/semantics/shared.ts +7 -0
- package/ingest/src/semantics/states.ts +2 -0
- package/journeys/coverage.json +205 -0
- package/journeys/customer-life.json +923 -0
- package/journeys/customer-life.outline.md +51 -0
- package/journeys/decisions.json +170 -0
- package/journeys/demand.json +136 -0
- package/journeys/score.json +231 -0
- package/journeys/unreachable.json +29 -0
- package/journeys/vendor-examples.json +474 -0
- package/package.json +16 -42
- package/spec/sources.json +76 -0
- package/src/cli.ts +12 -24
- package/src/fetch.ts +10 -0
- package/src/index.ts +12 -143
- package/src/manifest.ts +40 -0
- package/src/semantics/shared.ts +443 -0
- package/src/server.ts +8 -0
- package/client/sentry-mirror.css +0 -99
- package/client/sentry-mirror.tsx +0 -352
- package/dist/client/sentry-mirror.bundle.js +0 -388
- package/dist/client/sentry-mirror.css +0 -99
- package/dist/client/sentry-mirror.d.ts +0 -17
- package/dist/client/sentry-mirror.js +0 -156
- package/dist/client/sentry-mirror.tsx +0 -352
- package/dist/src/sentry-budget.d.ts +0 -50
- package/dist/src/sentry-budget.js +0 -145
- package/dist/src/sentry-capabilities.d.ts +0 -3
- package/dist/src/sentry-capabilities.js +0 -1180
- package/dist/src/sentry-conformance.d.ts +0 -22
- package/dist/src/sentry-conformance.js +0 -97
- package/dist/src/sentry-connector.d.ts +0 -77
- package/dist/src/sentry-connector.js +0 -226
- package/dist/src/sentry-events.d.ts +0 -54
- package/dist/src/sentry-events.js +0 -132
- package/dist/src/sentry-ingest.d.ts +0 -137
- package/dist/src/sentry-ingest.js +0 -387
- package/dist/src/sentry-mirror-ui.d.ts +0 -38
- package/dist/src/sentry-mirror-ui.js +0 -162
- package/dist/src/sentry-perform-harness.d.ts +0 -9
- package/dist/src/sentry-perform-harness.js +0 -20
- package/dist/src/sentry-server.d.ts +0 -14
- package/dist/src/sentry-server.js +0 -27
- package/dist/src/sentry-twin.d.ts +0 -17
- package/dist/src/sentry-twin.js +0 -1739
- package/dist/test-fixtures/sentry-openapi-operations.SOURCE.md +0 -24
- package/dist/test-fixtures/sentry-openapi-operations.json +0 -1837
- package/src/sentry-budget.ts +0 -171
- package/src/sentry-capabilities.ts +0 -1222
- package/src/sentry-conformance.ts +0 -110
- package/src/sentry-connector.ts +0 -260
- package/src/sentry-events.ts +0 -172
- package/src/sentry-ingest.ts +0 -471
- package/src/sentry-mirror-ui.ts +0 -162
- package/src/sentry-perform-harness.ts +0 -19
- package/src/sentry-server.ts +0 -35
- package/src/sentry-twin.ts +0 -1615
- package/test-fixtures/sentry-openapi-operations.SOURCE.md +0 -24
- package/test-fixtures/sentry-openapi-operations.json +0 -1837
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# sentry customer life: outline
|
|
2
|
+
|
|
3
|
+
Author: Contributor 93
|
|
4
|
+
|
|
5
|
+
## The customer
|
|
6
|
+
|
|
7
|
+
**Harbourline** runs Rallly (lukevella/rallly at `3e63239dbdec`) and Twenty (twentyhq/twenty at `1d561b8c73c9`) for its team,
|
|
8
|
+
and Postiz (gitroomhq/postiz-app at `e0a08a7d9592`) for its social channels, each reporting to Sentry (../journeys/demand.json):
|
|
9
|
+
|
|
10
|
+
- **Rallly**: `@sentry/nextjs` 10.38 on the server, edge and browser (errors, transactions, logs, Session Replay; the
|
|
11
|
+
browser envelopes directly to its DSN host (tunnelRoute is commented out)), and at build `withSentryConfig`, whose sentry-cli makes the release,
|
|
12
|
+
uploads the source maps in chunks, assembles them into an artifact bundle and finalizes the release.
|
|
13
|
+
- **Twenty**: `@sentry/nestjs` 10.73 on the server (errors, transactions, profiles), its cron jobs checked in as
|
|
14
|
+
monitors (`captureCheckIn` with the schedule).
|
|
15
|
+
|
|
16
|
+
Harbourline also runs Cal.com (calcom/cal.diy at `54343aa685ae`) for bookings. Its release script reads SENTRY_AUTH_TOKEN, makes its git HEAD release, associates local commits, injects source-map debug ids, uploads the bundle and finalizes. Postiz pins Sentry 10.56.0.
|
|
17
|
+
|
|
18
|
+
The World clock starts 2026-01-01.
|
|
19
|
+
|
|
20
|
+
## People and programs
|
|
21
|
+
|
|
22
|
+
| who | holds | how |
|
|
23
|
+
|---|---|---|
|
|
24
|
+
| Priya Raman, Harbourline's engineer | the harbourline organization | bootstrap sign-up; additional projects and keys through the API; token issuance door |
|
|
25
|
+
| Rallly and Cal builds | the bootstrap token and Cal CI token | sentry-cli 2.58.4 |
|
|
26
|
+
| Rallly, Twenty and Postiz in production | their projects' DSNs | the SDKs' envelopes |
|
|
27
|
+
|
|
28
|
+
## The arc
|
|
29
|
+
|
|
30
|
+
### 1. Setting up (Mon 5 Jan)
|
|
31
|
+
The bootstrap makes the organization, first auth token and rallly project/DSN. Priya issues Cal's CI auth token for SENTRY_AUTH_TOKEN. With her bootstrap token she creates twenty and postiz through createOrganizationProject, and reads their DSNs through listProjectKeys. She creates cal for the booking app.
|
|
32
|
+
|
|
33
|
+
### 2. Rallly's release (Tue 6 Jan, 10:00)
|
|
34
|
+
sentry-cli makes `rallly@4.2.0` (a retry answers 208), reads the chunk
|
|
35
|
+
options, finds its chunk missing, uploads it gzipped by its SHA-1, assembles the bundle (created, then ok), and
|
|
36
|
+
finalizes the release.
|
|
37
|
+
|
|
38
|
+
### 3. Production (Tue 6 Jan, 14:30)
|
|
39
|
+
A browser session; an unhandled rejection with its stack trace, and the same error for another visitor in a gzipped
|
|
40
|
+
envelope (one issue, two users); a transaction; a replay of the visitor who hit
|
|
41
|
+
the error; a Postiz user sends feedback from its configured widget; Postiz's post_created metric; the server's logs and minute of HTTP request-session aggregates; a client report for sampled-out transactions.
|
|
42
|
+
|
|
43
|
+
### 4. Twenty's cron (Wed 7 Jan, 03:00)
|
|
44
|
+
The cleanup job checks in in progress with its schedule (the monitor is made), then ok using the same check-in id and no explicit duration (checkin_margin 1, max_runtime 5); a worker
|
|
45
|
+
error through its configured exception handler. A sampled cleanup transaction carries its CPU profile. The next night's cleanup reports in_progress and error on the next night.
|
|
46
|
+
|
|
47
|
+
### 5. The next release (Mon 2 Feb)
|
|
48
|
+
Cal's full 40-hex git HEAD release; its shipped script uses `set-commits --auto --ignore-missing` and finds no repository. It reads the preceding release (200 {}, as none has commits) and attaches local git commits. Its source maps, after local debug-ID injection, are uploaded through chunk options, missing-chunk assembly, gzip upload, and assembly polling. Then the release is finalized.
|
|
49
|
+
|
|
50
|
+
## What the life does not do
|
|
51
|
+
Every other API operation (`unmodeled`); a repository's integration; symbolication with the uploaded source maps.
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
{
|
|
2
|
+
"about": "Demanded application SDK ingestion, release and source-map uploads, account setup and derived vendor-backed reads.",
|
|
3
|
+
"decisions": [
|
|
4
|
+
{
|
|
5
|
+
"operation": "listOrganizationProjects",
|
|
6
|
+
"mechanism": "core",
|
|
7
|
+
"demand": "Vendor-backed resource refresh.",
|
|
8
|
+
"why": "The spec names the stored resource and the derived core reads it; no application-specific read behavior is served."
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"operation": "getProjectEvent",
|
|
12
|
+
"mechanism": "core",
|
|
13
|
+
"demand": "Vendor-backed resource refresh.",
|
|
14
|
+
"why": "The spec names the stored resource and the derived core reads it; no application-specific read behavior is served."
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"operation": "createProjectRelease",
|
|
18
|
+
"mechanism": "handler",
|
|
19
|
+
"demand": "sentry-cli releases new for one project.",
|
|
20
|
+
"why": "sentry-cli releases new for one project.",
|
|
21
|
+
"sourceRules": [
|
|
22
|
+
{
|
|
23
|
+
"source": "https://raw.githubusercontent.com/getsentry/sentry/2efdd4760a75a3d395e3534b7f66a7fbb0c3f22e/src/sentry/releases/endpoints/project_releases.py",
|
|
24
|
+
"means": "Create a new release and/or associate a project with a release. A new association is created even when the organization release already exists."
|
|
25
|
+
}
|
|
26
|
+
]
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"operation": "updateProjectRelease",
|
|
30
|
+
"mechanism": "handler",
|
|
31
|
+
"demand": "sentry-cli releases finalize for one project.",
|
|
32
|
+
"why": "sentry-cli releases finalize for one project."
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"operation": "updateOrganizationRelease",
|
|
36
|
+
"mechanism": "handler",
|
|
37
|
+
"demand": "sentry-cli set-commits associates repository refs.",
|
|
38
|
+
"why": "sentry-cli set-commits associates repository refs."
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"operation": "listOrganizationRepos",
|
|
42
|
+
"mechanism": "handler",
|
|
43
|
+
"demand": "sentry-cli set-commits --auto reads available repositories.",
|
|
44
|
+
"why": "sentry-cli set-commits --auto reads available repositories."
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"operation": "getChunkUploadOptions",
|
|
48
|
+
"mechanism": "handler",
|
|
49
|
+
"demand": "sentry-cli discovers chunk uploads for source maps.",
|
|
50
|
+
"why": "sentry-cli discovers chunk uploads for source maps."
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"operation": "uploadChunks",
|
|
54
|
+
"mechanism": "handler",
|
|
55
|
+
"demand": "sentry-cli uploads the source map bundle chunks.",
|
|
56
|
+
"why": "sentry-cli uploads the source map bundle chunks."
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"operation": "assembleArtifactBundle",
|
|
60
|
+
"mechanism": "handler",
|
|
61
|
+
"demand": "sentry-cli polls artifact bundle assembly.",
|
|
62
|
+
"why": "sentry-cli polls artifact bundle assembly."
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"operation": "sendEnvelope",
|
|
66
|
+
"mechanism": "handler",
|
|
67
|
+
"demand": "The pinned Sentry SDKs send envelopes from the demanded applications.",
|
|
68
|
+
"why": "Envelope authentication, parsing and item effects are vendor semantics."
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"operation": "door:appCredentials",
|
|
72
|
+
"mechanism": "door",
|
|
73
|
+
"demand": "The World issues application credentials and the customer configures its account.",
|
|
74
|
+
"why": "The bootstrap creates the account, first credential and project/key named by application env.",
|
|
75
|
+
"lane": "api"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"operation": "door:organizations",
|
|
79
|
+
"mechanism": "door",
|
|
80
|
+
"demand": "The World issues application credentials and the customer configures its account.",
|
|
81
|
+
"why": "Account setup that no served customer operation reaches.",
|
|
82
|
+
"lane": "api"
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"operation": "door:authTokens",
|
|
86
|
+
"mechanism": "door",
|
|
87
|
+
"demand": "The World issues application credentials and the customer configures its account.",
|
|
88
|
+
"why": "Account setup that no served customer operation reaches.",
|
|
89
|
+
"lane": "api"
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"operation": "createOrganizationProject",
|
|
93
|
+
"mechanism": "handler",
|
|
94
|
+
"demand": "The customer creates additional account projects through the vendor API.",
|
|
95
|
+
"why": "The customer creates additional account projects through the vendor API."
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"operation": "listProjectKeys",
|
|
99
|
+
"mechanism": "handler",
|
|
100
|
+
"demand": "The customer reads the created project client key and DSN through the vendor API.",
|
|
101
|
+
"why": "The customer reads the created project client key and DSN through the vendor API."
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"operation": "listOrganizations",
|
|
105
|
+
"mechanism": "handler",
|
|
106
|
+
"demand": "Vendor-backed resource refresh.",
|
|
107
|
+
"why": "Read-back of stored vendor state through its documented API."
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"operation": "listOrganizationReleases",
|
|
111
|
+
"mechanism": "handler",
|
|
112
|
+
"demand": "Vendor-backed resource refresh.",
|
|
113
|
+
"why": "Read-back of stored vendor state through its documented API."
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"operation": "listOrganizationMonitors",
|
|
117
|
+
"mechanism": "core",
|
|
118
|
+
"demand": "Vendor-backed resource refresh.",
|
|
119
|
+
"why": "The spec names the stored resource and the derived core reads it; no application-specific read behavior is served.",
|
|
120
|
+
"sourceRules": [
|
|
121
|
+
{
|
|
122
|
+
"source": "https://raw.githubusercontent.com/getsentry/sentry/2efdd4760a75a3d395e3534b7f66a7fbb0c3f22e/src/sentry/monitors/serializers.py",
|
|
123
|
+
"means": "MonitorSerializerResponse"
|
|
124
|
+
}
|
|
125
|
+
]
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"operation": "listProjectMonitorCheckins",
|
|
129
|
+
"mechanism": "core",
|
|
130
|
+
"demand": "Vendor-backed resource refresh.",
|
|
131
|
+
"why": "The spec names the stored resource and the derived core reads it; no application-specific read behavior is served.",
|
|
132
|
+
"sourceRules": [
|
|
133
|
+
{
|
|
134
|
+
"source": "https://raw.githubusercontent.com/getsentry/sentry/2efdd4760a75a3d395e3534b7f66a7fbb0c3f22e/src/sentry/monitors/serializers.py",
|
|
135
|
+
"means": "MonitorCheckInSerializerResponse"
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
"source": "https://raw.githubusercontent.com/getsentry/sentry/2efdd4760a75a3d395e3534b7f66a7fbb0c3f22e/src/sentry/monitors/endpoints/project_monitor_checkin_index.py",
|
|
139
|
+
"means": "404: RESPONSE_NOT_FOUND"
|
|
140
|
+
}
|
|
141
|
+
]
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"operation": "getPreviousReleaseWithCommits",
|
|
145
|
+
"mechanism": "handler",
|
|
146
|
+
"demand": "Cal set-commits local-git fallback (apps/web/scripts/create-sentry-release.js:22).",
|
|
147
|
+
"why": "sentry-cli reads the preceding release before choosing its commit range.",
|
|
148
|
+
"sourceRules": [
|
|
149
|
+
{
|
|
150
|
+
"source": "https://raw.githubusercontent.com/getsentry/sentry/2efdd4760a75a3d395e3534b7f66a7fbb0c3f22e/src/sentry/issues/endpoints/organization_release_previous_commits.py",
|
|
151
|
+
"means": "raise ResourceDoesNotExist"
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
"source": "https://raw.githubusercontent.com/getsentry/sentry/2efdd4760a75a3d395e3534b7f66a7fbb0c3f22e/src/sentry/issues/endpoints/organization_release_previous_commits.py",
|
|
155
|
+
"means": "return Response({})"
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
"source": "https://raw.githubusercontent.com/getsentry/sentry/2efdd4760a75a3d395e3534b7f66a7fbb0c3f22e/src/sentry/issues/endpoints/organization_release_previous_commits.py",
|
|
159
|
+
"means": "projects__id__in=project_ids"
|
|
160
|
+
}
|
|
161
|
+
]
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
"operation": "getOrganizationIssue",
|
|
165
|
+
"mechanism": "core",
|
|
166
|
+
"demand": "Known issue refresh.",
|
|
167
|
+
"why": "The vendored organization issue operation reads stored issues in a vendor-backed World."
|
|
168
|
+
}
|
|
169
|
+
]
|
|
170
|
+
}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
{
|
|
2
|
+
"measured": "Application calls and optional settings are recorded below at the cited commits.",
|
|
3
|
+
"applications": [
|
|
4
|
+
{
|
|
5
|
+
"name": "gitroomhq/postiz-app",
|
|
6
|
+
"commit": "e0a08a7d9592fdc1ef1e82cb7cb781489fceade3",
|
|
7
|
+
"client": "@sentry/nextjs 10.56.0 feedbackIntegration; the SDK envelope transport",
|
|
8
|
+
"frontend": [
|
|
9
|
+
{
|
|
10
|
+
"call": "A Postiz user sends feedback through the shipped feedback button; its message, contact and user context are sent as a feedback envelope item",
|
|
11
|
+
"operation": "sendEnvelope",
|
|
12
|
+
"evidence": "apps/frontend/src/components/new-layout/sentry.feedback.component.tsx:13-24,30-38; libraries/react-shared-libraries/src/sentry/initialize.sentry.client.ts:34-38"
|
|
13
|
+
}
|
|
14
|
+
],
|
|
15
|
+
"gate": "The shipped button attaches the SDK feedback widget when its DSN is supplied; there is no separate install or feature/provider selection (apps/frontend/src/components/new-layout/sentry.feedback.component.tsx:13-24,30-38; libraries/react-shared-libraries/src/sentry/initialize.sentry.client.ts:34-38)."
|
|
16
|
+
}
|
|
17
|
+
],
|
|
18
|
+
"notDemanded": "every other operation of Sentry's API (dashboards, alerts, detectors, members, teams, integrations, issue changes, the organization's events and discover queries, replays' and profiles' reads, release files, deploys): no application here calls them.",
|
|
19
|
+
"optional": [
|
|
20
|
+
{
|
|
21
|
+
"commit": "3e63239dbdec9949ea0b4c82e28828c5498464a0",
|
|
22
|
+
"client": "@sentry/nextjs 10.38 (bundler plugin 4.9, sentry-cli 2.58.4)",
|
|
23
|
+
"backend": [
|
|
24
|
+
{
|
|
25
|
+
"call": "errors, transactions and logs from the server and edge; errors and Session Replay from the browser",
|
|
26
|
+
"operation": "sendEnvelope",
|
|
27
|
+
"evidence": "apps/web/sentry.server.config.ts:9"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"call": "withSentryConfig at build: release, source maps, finalize",
|
|
31
|
+
"operation": "createProjectRelease; getChunkUploadOptions; uploadChunks; assembleArtifactBundle; updateProjectRelease",
|
|
32
|
+
"evidence": "apps/web/next.config.ts:194"
|
|
33
|
+
}
|
|
34
|
+
],
|
|
35
|
+
"application": "lukevella/rallly",
|
|
36
|
+
"what": "@sentry/nextjs 10.38 (bundler plugin 4.9, sentry-cli 2.58.4)",
|
|
37
|
+
"setting": "Configuration: operator instrumentation is a setting that turns the reporting provider on; operator error reporting uses SENTRY_DSN/NEXT_PUBLIC_SENTRY_DSN; no person uses the reporting flow (apps/web/instrumentation-client.ts:9-12).",
|
|
38
|
+
"evidence": "apps/web/instrumentation-client.ts:9-12"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"commit": "e0a08a7d9592fdc1ef1e82cb7cb781489fceade3",
|
|
42
|
+
"client": "@sentry/nestjs, @sentry/nextjs and @sentry/react 10.56.0 with profiling (bundler plugin 5.3, sentry-cli 2.58.5)",
|
|
43
|
+
"backend": [
|
|
44
|
+
{
|
|
45
|
+
"call": "errors, transactions and profiles from the backend, with its logs",
|
|
46
|
+
"operation": "sendEnvelope",
|
|
47
|
+
"evidence": "libraries/nestjs-libraries/src/sentry/initialize.sentry.ts:34"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"call": "the frontend: Session Replay and browser profiling (user feedback is a separate demanded frontend call)",
|
|
51
|
+
"operation": "sendEnvelope",
|
|
52
|
+
"evidence": "libraries/react-shared-libraries/src/sentry/initialize.sentry.client.ts:34"
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"call": "metrics: counters, gauges and distributions (Sentry.metrics)",
|
|
56
|
+
"operation": "sendEnvelope",
|
|
57
|
+
"evidence": "libraries/nestjs-libraries/src/database/prisma/posts/posts.service.ts:994"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"call": "withSentryConfig at build: release, source maps, finalize",
|
|
61
|
+
"operation": "createProjectRelease; getChunkUploadOptions; uploadChunks; assembleArtifactBundle; updateProjectRelease",
|
|
62
|
+
"evidence": "apps/frontend/next.config.js:60"
|
|
63
|
+
}
|
|
64
|
+
],
|
|
65
|
+
"application": "gitroomhq/postiz-app",
|
|
66
|
+
"what": "@sentry/nestjs, @sentry/nextjs and @sentry/react 10.56.0 with profiling (bundler plugin 5.3, sentry-cli 2.58.5)",
|
|
67
|
+
"setting": "Configuration: operator instrumentation is a setting that turns the reporting provider on; operator error, replay, profile and metrics reporting uses NEXT_PUBLIC_SENTRY_DSN (libraries/react-shared-libraries/src/sentry/initialize.sentry.next.basic.ts:4-7). The shipped feedback button using the same SDK is separately demand; supplying its DSN is a credential, not a provider-selection setting.",
|
|
68
|
+
"evidence": "docker-compose.yaml:89; (apps/frontend/src/instrumentation.ts:2"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"commit": "1d561b8c73c984058a5121ec229f4805a2424a91",
|
|
72
|
+
"client": "@sentry/nestjs and @sentry/node 10.73 with profiling, @sentry/react 10.59.0 (lockfile resolution of ^10.51.0)",
|
|
73
|
+
"backend": [
|
|
74
|
+
{
|
|
75
|
+
"call": "errors, transactions and profiles from the server",
|
|
76
|
+
"operation": "sendEnvelope",
|
|
77
|
+
"evidence": "packages/twenty-server/src/instrument.ts:67"
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"call": "its cron jobs as monitors: check-ins in progress, ok or error, with the schedule (captureCheckIn)",
|
|
81
|
+
"operation": "sendEnvelope",
|
|
82
|
+
"evidence": "packages/twenty-server/src/engine/core-modules/cron/sentry-cron-monitor.decorator.ts:29"
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"call": "the front: errors and Session Replay",
|
|
86
|
+
"operation": "sendEnvelope",
|
|
87
|
+
"evidence": "packages/twenty-front/src/modules/error-handler/components/SentryInitEffect.tsx:51"
|
|
88
|
+
}
|
|
89
|
+
],
|
|
90
|
+
"application": "twentyhq/twenty",
|
|
91
|
+
"what": "@sentry/nestjs and @sentry/node 10.73 with profiling, @sentry/react 10.59.0 (lockfile resolution of ^10.51.0)",
|
|
92
|
+
"setting": "Configuration: operator instrumentation is a setting that turns the reporting provider on; EXCEPTION_HANDLER_DRIVER=SENTRY replaces CONSOLE; optional frontend DSN configures operator error reporting (packages/twenty-server/src/engine/core-modules/twenty-config/config-variables.ts:1224-1225; packages/twenty-server/src/instrument.ts:61).",
|
|
93
|
+
"evidence": "packages/twenty-server/.env.example:50-51; packages/twenty-server/src/instrument.ts:61; packages/twenty-server/src/engine/core-modules/twenty-config/config-variables.ts:1224-1225"
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"commit": "54343aa685ae8f33159d2f485ec4a57bad5c574a",
|
|
97
|
+
"client": "@sentry/nextjs 10.33, @sentry/nestjs and @sentry/node 9.46 with @sentry/profiling-node; sentry-cli in its release script",
|
|
98
|
+
"backend": [
|
|
99
|
+
{
|
|
100
|
+
"call": "errors and transactions from the web app (server, edge, browser): event and transaction items, with sessions and client reports from the browser",
|
|
101
|
+
"operation": "sendEnvelope",
|
|
102
|
+
"evidence": "apps/web/sentry.server.config.ts:9"
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"call": "the API v2 service: errors, transactions and profiles",
|
|
106
|
+
"operation": "sendEnvelope",
|
|
107
|
+
"evidence": "apps/api/v2/src/instrument.ts:9"
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"call": "sentry-cli releases new (one project: the project release path)",
|
|
111
|
+
"operation": "createProjectRelease",
|
|
112
|
+
"evidence": "apps/web/scripts/create-sentry-release.js:19"
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"call": "sentry-cli releases set-commits --auto --ignore-missing: the organization repositories, then the refs",
|
|
116
|
+
"operation": "listOrganizationRepos; getPreviousReleaseWithCommits; updateOrganizationRelease",
|
|
117
|
+
"evidence": "apps/web/scripts/create-sentry-release.js:22"
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"call": "sentry-cli sourcemaps upload: chunk options, chunks, the artifact bundle assembled",
|
|
121
|
+
"operation": "getChunkUploadOptions; uploadChunks; assembleArtifactBundle",
|
|
122
|
+
"evidence": "apps/web/scripts/create-sentry-release.js:31"
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"call": "sentry-cli releases finalize",
|
|
126
|
+
"operation": "updateProjectRelease",
|
|
127
|
+
"evidence": "apps/web/scripts/create-sentry-release.js:39"
|
|
128
|
+
}
|
|
129
|
+
],
|
|
130
|
+
"application": "calcom/cal.diy",
|
|
131
|
+
"what": "@sentry/nextjs 10.33, @sentry/nestjs and @sentry/node 9.46 with @sentry/profiling-node; sentry-cli in its release script",
|
|
132
|
+
"setting": "Configuration: operator instrumentation is a setting that turns the reporting provider on; operator error reporting requires DSN/sampling; the plain callback is the default (packages/lib/sentryWrapper.ts:27; .env.example:165-166).",
|
|
133
|
+
"evidence": ".env.example:165-166"
|
|
134
|
+
}
|
|
135
|
+
]
|
|
136
|
+
}
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
{
|
|
2
|
+
"vendor": "sentry",
|
|
3
|
+
"life": {
|
|
4
|
+
"steps": 50,
|
|
5
|
+
"verdict": "unjudged",
|
|
6
|
+
"judge": null,
|
|
7
|
+
"authors": []
|
|
8
|
+
},
|
|
9
|
+
"failures": [],
|
|
10
|
+
"flags": [],
|
|
11
|
+
"coverage": {
|
|
12
|
+
"vendor": "sentry",
|
|
13
|
+
"missing": 11,
|
|
14
|
+
"stale": [],
|
|
15
|
+
"code": {
|
|
16
|
+
"lines": 919,
|
|
17
|
+
"run": 900,
|
|
18
|
+
"recorded": 8,
|
|
19
|
+
"missing": 11
|
|
20
|
+
},
|
|
21
|
+
"state": {
|
|
22
|
+
"declared": 2,
|
|
23
|
+
"reached": 2,
|
|
24
|
+
"recorded": 0,
|
|
25
|
+
"missing": [],
|
|
26
|
+
"undeclared": []
|
|
27
|
+
},
|
|
28
|
+
"files": [
|
|
29
|
+
{
|
|
30
|
+
"file": "semantics/shared.ts",
|
|
31
|
+
"lines": {
|
|
32
|
+
"found": 279,
|
|
33
|
+
"hit": 277
|
|
34
|
+
},
|
|
35
|
+
"missing": []
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"file": "manifest.ts",
|
|
39
|
+
"lines": {
|
|
40
|
+
"found": 33,
|
|
41
|
+
"hit": 33
|
|
42
|
+
},
|
|
43
|
+
"missing": []
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"file": "index.ts",
|
|
47
|
+
"lines": {
|
|
48
|
+
"found": 10,
|
|
49
|
+
"hit": 10
|
|
50
|
+
},
|
|
51
|
+
"missing": []
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"file": "server.ts",
|
|
55
|
+
"lines": {
|
|
56
|
+
"found": 4,
|
|
57
|
+
"hit": 2
|
|
58
|
+
},
|
|
59
|
+
"missing": []
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"file": "fetch.ts",
|
|
63
|
+
"lines": {
|
|
64
|
+
"found": 6,
|
|
65
|
+
"hit": 6
|
|
66
|
+
},
|
|
67
|
+
"missing": []
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"file": "../api/src/semantics/doors.ts",
|
|
71
|
+
"lines": {
|
|
72
|
+
"found": 27,
|
|
73
|
+
"hit": 23
|
|
74
|
+
},
|
|
75
|
+
"missing": []
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"file": "../api/src/semantics/states.ts",
|
|
79
|
+
"lines": {
|
|
80
|
+
"found": 9,
|
|
81
|
+
"hit": 9
|
|
82
|
+
},
|
|
83
|
+
"missing": []
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"file": "../api/src/semantics/api.ts",
|
|
87
|
+
"lines": {
|
|
88
|
+
"found": 164,
|
|
89
|
+
"hit": 157
|
|
90
|
+
},
|
|
91
|
+
"missing": [
|
|
92
|
+
{
|
|
93
|
+
"from": 38,
|
|
94
|
+
"to": 41,
|
|
95
|
+
"fn": "makeRelease"
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"from": 222,
|
|
99
|
+
"to": 224,
|
|
100
|
+
"fn": "listOrganizationReleases"
|
|
101
|
+
}
|
|
102
|
+
]
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"file": "../api/src/semantics/shared.ts",
|
|
106
|
+
"lines": {
|
|
107
|
+
"found": 17,
|
|
108
|
+
"hit": 17
|
|
109
|
+
},
|
|
110
|
+
"missing": []
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"file": "../api/src/semantics/around.ts",
|
|
114
|
+
"lines": {
|
|
115
|
+
"found": 27,
|
|
116
|
+
"hit": 23
|
|
117
|
+
},
|
|
118
|
+
"missing": [
|
|
119
|
+
{
|
|
120
|
+
"from": 27,
|
|
121
|
+
"to": 30,
|
|
122
|
+
"fn": "around"
|
|
123
|
+
}
|
|
124
|
+
]
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"file": "../api/src/semantics/index.ts",
|
|
128
|
+
"lines": {
|
|
129
|
+
"found": 15,
|
|
130
|
+
"hit": 15
|
|
131
|
+
},
|
|
132
|
+
"missing": []
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"file": "../api/src/manifest.ts",
|
|
136
|
+
"lines": {
|
|
137
|
+
"found": 112,
|
|
138
|
+
"hit": 112
|
|
139
|
+
},
|
|
140
|
+
"missing": []
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"file": "../api/src/index.ts",
|
|
144
|
+
"lines": {
|
|
145
|
+
"found": 2,
|
|
146
|
+
"hit": 2
|
|
147
|
+
},
|
|
148
|
+
"missing": []
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
"file": "../api/src/fetch.ts",
|
|
152
|
+
"lines": {
|
|
153
|
+
"found": 14,
|
|
154
|
+
"hit": 14
|
|
155
|
+
},
|
|
156
|
+
"missing": []
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
"file": "../ingest/src/semantics/api.ts",
|
|
160
|
+
"lines": {
|
|
161
|
+
"found": 153,
|
|
162
|
+
"hit": 153
|
|
163
|
+
},
|
|
164
|
+
"missing": []
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"file": "../ingest/src/semantics/shared.ts",
|
|
168
|
+
"lines": {
|
|
169
|
+
"found": 2,
|
|
170
|
+
"hit": 2
|
|
171
|
+
},
|
|
172
|
+
"missing": []
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"file": "../ingest/src/semantics/around.ts",
|
|
176
|
+
"lines": {
|
|
177
|
+
"found": 3,
|
|
178
|
+
"hit": 3
|
|
179
|
+
},
|
|
180
|
+
"missing": []
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
"file": "../ingest/src/semantics/index.ts",
|
|
184
|
+
"lines": {
|
|
185
|
+
"found": 4,
|
|
186
|
+
"hit": 4
|
|
187
|
+
},
|
|
188
|
+
"missing": []
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
"file": "../ingest/src/manifest.ts",
|
|
192
|
+
"lines": {
|
|
193
|
+
"found": 24,
|
|
194
|
+
"hit": 24
|
|
195
|
+
},
|
|
196
|
+
"missing": []
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
"file": "../ingest/src/index.ts",
|
|
200
|
+
"lines": {
|
|
201
|
+
"found": 2,
|
|
202
|
+
"hit": 2
|
|
203
|
+
},
|
|
204
|
+
"missing": []
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
"file": "../ingest/src/fetch.ts",
|
|
208
|
+
"lines": {
|
|
209
|
+
"found": 12,
|
|
210
|
+
"hit": 12
|
|
211
|
+
},
|
|
212
|
+
"missing": []
|
|
213
|
+
}
|
|
214
|
+
]
|
|
215
|
+
},
|
|
216
|
+
"examples": {
|
|
217
|
+
"done": false,
|
|
218
|
+
"replayed": false,
|
|
219
|
+
"verdict": "unjudged",
|
|
220
|
+
"failures": [
|
|
221
|
+
"FAIL listOrganizations published account response [EXAMPLE] .0.features has 34 items, the published answer has 5"
|
|
222
|
+
],
|
|
223
|
+
"line": "examples: 204 published, 0 of patch-removed operations, 175 of operations the twin does not serve, 21 replayed, 8 recorded; 1 failing done: no"
|
|
224
|
+
},
|
|
225
|
+
"breadth": {
|
|
226
|
+
"operations": 253,
|
|
227
|
+
"handler": 13,
|
|
228
|
+
"gap": 235,
|
|
229
|
+
"core": 5
|
|
230
|
+
}
|
|
231
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"code": [
|
|
3
|
+
{
|
|
4
|
+
"file": "server.ts",
|
|
5
|
+
"declarations": [
|
|
6
|
+
"createSentryTwinServer"
|
|
7
|
+
],
|
|
8
|
+
"world": "host-process",
|
|
9
|
+
"why": "The journey drives the fetch in-process; serveHttp belongs to the owning host process."
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"file": "../api/src/semantics/doors.ts",
|
|
13
|
+
"declarations": [
|
|
14
|
+
"organizations"
|
|
15
|
+
],
|
|
16
|
+
"world": "door",
|
|
17
|
+
"why": "Additional account signup belongs only to the World account door; the application account uses descriptor bootstrap."
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"file": "semantics/shared.ts",
|
|
21
|
+
"declarations": [
|
|
22
|
+
"reissueHeldToken"
|
|
23
|
+
],
|
|
24
|
+
"world": "door",
|
|
25
|
+
"why": "Repeat bootstrap at World boot rederives the held credential from custody; application calls issue their token once."
|
|
26
|
+
}
|
|
27
|
+
],
|
|
28
|
+
"state": []
|
|
29
|
+
}
|