karrio-server 2025.5.1__py3-none-any.whl → 2025.5.3__py3-none-any.whl
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.
- karrio/server/VERSION +1 -1
- karrio/server/settings/apm.py +31 -16
- karrio/server/settings/base.py +7 -0
- karrio/server/settings/cache.py +3 -0
- karrio/server/settings/constance.py +9 -0
- {karrio_server-2025.5.1.dist-info → karrio_server-2025.5.3.dist-info}/METADATA +1 -1
- {karrio_server-2025.5.1.dist-info → karrio_server-2025.5.3.dist-info}/RECORD +10 -10
- {karrio_server-2025.5.1.dist-info → karrio_server-2025.5.3.dist-info}/WHEEL +0 -0
- {karrio_server-2025.5.1.dist-info → karrio_server-2025.5.3.dist-info}/entry_points.txt +0 -0
- {karrio_server-2025.5.1.dist-info → karrio_server-2025.5.3.dist-info}/top_level.txt +0 -0
karrio/server/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
2025.5.
|
|
1
|
+
2025.5.3
|
karrio/server/settings/apm.py
CHANGED
|
@@ -57,6 +57,7 @@ if POSTHOG_KEY:
|
|
|
57
57
|
# SENTRY_PROFILES_SAMPLE_RATE - Profile sampling rate 0.0-1.0 (default: 1.0)
|
|
58
58
|
# SENTRY_SEND_PII - Send personally identifiable information (default: true)
|
|
59
59
|
# SENTRY_DEBUG - Enable Sentry debug mode (default: false)
|
|
60
|
+
# SENTRY_TRACE_PROPAGATION_TARGETS - Regex patterns for distributed tracing (default: localhost)
|
|
60
61
|
#
|
|
61
62
|
# =============================================================================
|
|
62
63
|
|
|
@@ -64,10 +65,18 @@ sentry_sdk.utils.MAX_STRING_LENGTH = 4096
|
|
|
64
65
|
SENTRY_DSN = config("SENTRY_DSN", default=None)
|
|
65
66
|
SENTRY_ENVIRONMENT = config("SENTRY_ENVIRONMENT", default=config("ENV", default="production"))
|
|
66
67
|
SENTRY_RELEASE = config("SENTRY_RELEASE", default=config("VERSION", default=None))
|
|
67
|
-
|
|
68
|
-
|
|
68
|
+
# Lower default sample rates for better performance (was 1.0/100%)
|
|
69
|
+
SENTRY_TRACES_SAMPLE_RATE = config("SENTRY_TRACES_SAMPLE_RATE", default=0.1, cast=float) # 10% of transactions
|
|
70
|
+
SENTRY_PROFILES_SAMPLE_RATE = config("SENTRY_PROFILES_SAMPLE_RATE", default=0.0, cast=float) # Disabled by default
|
|
69
71
|
SENTRY_SEND_PII = config("SENTRY_SEND_PII", default=True, cast=bool)
|
|
70
72
|
SENTRY_DEBUG = config("SENTRY_DEBUG", default=False, cast=bool)
|
|
73
|
+
# Trace propagation targets for distributed tracing (internal services only)
|
|
74
|
+
# Comma-separated list of regex patterns; headers are NOT sent to carrier APIs
|
|
75
|
+
# Configure via env var for your domains (e.g., ".*\.yourdomain\.com,localhost")
|
|
76
|
+
SENTRY_TRACE_PROPAGATION_TARGETS = config(
|
|
77
|
+
"SENTRY_TRACE_PROPAGATION_TARGETS",
|
|
78
|
+
default=r"localhost",
|
|
79
|
+
)
|
|
71
80
|
|
|
72
81
|
|
|
73
82
|
def _sentry_before_send(event, hint):
|
|
@@ -136,8 +145,8 @@ if SENTRY_DSN:
|
|
|
136
145
|
integrations = [
|
|
137
146
|
DjangoIntegration(
|
|
138
147
|
transaction_style="url", # Use URL patterns for transaction names
|
|
139
|
-
middleware_spans=
|
|
140
|
-
signals_spans=
|
|
148
|
+
middleware_spans=False, # Disabled for performance (was True)
|
|
149
|
+
signals_spans=False, # Disabled for performance (was True)
|
|
141
150
|
),
|
|
142
151
|
]
|
|
143
152
|
|
|
@@ -174,6 +183,13 @@ if SENTRY_DSN:
|
|
|
174
183
|
except Exception:
|
|
175
184
|
pass # strawberry integration may not be available
|
|
176
185
|
|
|
186
|
+
# Parse trace propagation targets (comma-separated regex patterns)
|
|
187
|
+
trace_targets = [
|
|
188
|
+
pattern.strip()
|
|
189
|
+
for pattern in SENTRY_TRACE_PROPAGATION_TARGETS.split(",")
|
|
190
|
+
if pattern.strip()
|
|
191
|
+
]
|
|
192
|
+
|
|
177
193
|
sentry_sdk.init(
|
|
178
194
|
dsn=SENTRY_DSN,
|
|
179
195
|
integrations=integrations,
|
|
@@ -182,10 +198,14 @@ if SENTRY_DSN:
|
|
|
182
198
|
environment=SENTRY_ENVIRONMENT,
|
|
183
199
|
release=SENTRY_RELEASE,
|
|
184
200
|
|
|
185
|
-
# Performance monitoring
|
|
201
|
+
# Performance monitoring (lower sample rates for better performance)
|
|
186
202
|
traces_sample_rate=SENTRY_TRACES_SAMPLE_RATE,
|
|
187
|
-
|
|
188
|
-
profile_lifecycle
|
|
203
|
+
# Only enable profiling if explicitly configured (disabled by default)
|
|
204
|
+
**({"profile_session_sample_rate": SENTRY_PROFILES_SAMPLE_RATE, "profile_lifecycle": "trace"} if SENTRY_PROFILES_SAMPLE_RATE > 0 else {}),
|
|
205
|
+
|
|
206
|
+
# Distributed tracing - propagate trace headers to internal services
|
|
207
|
+
# Note: Headers are NOT sent to carrier APIs (they wouldn't understand them)
|
|
208
|
+
trace_propagation_targets=trace_targets,
|
|
189
209
|
|
|
190
210
|
# Privacy settings
|
|
191
211
|
send_default_pii=SENTRY_SEND_PII,
|
|
@@ -200,16 +220,11 @@ if SENTRY_DSN:
|
|
|
200
220
|
before_send=_sentry_before_send,
|
|
201
221
|
before_send_transaction=_sentry_before_send_transaction,
|
|
202
222
|
|
|
203
|
-
# Additional options
|
|
204
|
-
max_breadcrumbs=
|
|
223
|
+
# Additional options (reduced for performance)
|
|
224
|
+
max_breadcrumbs=25, # Reduced from 50 for lower memory usage
|
|
205
225
|
attach_stacktrace=True, # Attach stack traces to messages
|
|
206
|
-
include_source_context=
|
|
207
|
-
include_local_variables=
|
|
208
|
-
|
|
209
|
-
# Set custom tags
|
|
210
|
-
_experiments={
|
|
211
|
-
"record_sql_params": True, # Record SQL query parameters
|
|
212
|
-
},
|
|
226
|
+
include_source_context=False, # Disabled for performance (was True)
|
|
227
|
+
include_local_variables=False, # Disabled for performance (was True)
|
|
213
228
|
)
|
|
214
229
|
|
|
215
230
|
# Set default tags that will be applied to all events
|
karrio/server/settings/base.py
CHANGED
|
@@ -62,6 +62,9 @@ CORS_ALLOW_HEADERS = list(default_headers) + [
|
|
|
62
62
|
"x-org-id",
|
|
63
63
|
"x-tenant-id",
|
|
64
64
|
"x-request-id",
|
|
65
|
+
# Sentry distributed tracing headers
|
|
66
|
+
"sentry-trace",
|
|
67
|
+
"baggage",
|
|
65
68
|
]
|
|
66
69
|
|
|
67
70
|
# HTTPS configuration
|
|
@@ -203,6 +206,9 @@ WORKFLOW_MANAGEMENT = (
|
|
|
203
206
|
SHIPPING_RULES = (
|
|
204
207
|
importlib.util.find_spec("karrio.server.automation") is not None # type:ignore
|
|
205
208
|
)
|
|
209
|
+
SHIPPING_METHODS = (
|
|
210
|
+
importlib.util.find_spec("karrio.server.shipping") is not None # type:ignore
|
|
211
|
+
)
|
|
206
212
|
ADVANCED_ANALYTICS = (
|
|
207
213
|
importlib.util.find_spec("karrio.server.analytics") is not None # type:ignore
|
|
208
214
|
) and config("ADVANCED_ANALYTICS", default=(True if DEBUG else False), cast=bool)
|
|
@@ -223,6 +229,7 @@ FEATURE_FLAGS = [
|
|
|
223
229
|
("PERSIST_SDK_TRACING", bool),
|
|
224
230
|
("WORKFLOW_MANAGEMENT", bool),
|
|
225
231
|
("SHIPPING_RULES", bool),
|
|
232
|
+
("SHIPPING_METHODS", bool),
|
|
226
233
|
("ADVANCED_ANALYTICS", bool),
|
|
227
234
|
]
|
|
228
235
|
|
karrio/server/settings/cache.py
CHANGED
|
@@ -87,6 +87,9 @@ if REDIS_HOST is not None and not SKIP_DEFAULT_CACHE:
|
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
89
|
|
|
90
|
+
# Cache constance values to avoid N+1 queries on each config access
|
|
91
|
+
CONSTANCE_DATABASE_CACHE_BACKEND = "default"
|
|
92
|
+
|
|
90
93
|
# Django cache health check uses the cache backend directly
|
|
91
94
|
# Only add Redis health check if REDIS_URL environment variable is set
|
|
92
95
|
# When using granular params, the cache check is sufficient
|
|
@@ -132,6 +132,15 @@ FEATURE_FLAGS_CONFIG = {
|
|
|
132
132
|
if importlib.util.find_spec("karrio.server.automation") is not None
|
|
133
133
|
else None
|
|
134
134
|
),
|
|
135
|
+
"SHIPPING_METHODS": (
|
|
136
|
+
(
|
|
137
|
+
base.SHIPPING_METHODS,
|
|
138
|
+
"Shipping methods",
|
|
139
|
+
bool,
|
|
140
|
+
)
|
|
141
|
+
if importlib.util.find_spec("karrio.server.shipping") is not None
|
|
142
|
+
else None
|
|
143
|
+
),
|
|
135
144
|
"ADVANCED_ANALYTICS": (
|
|
136
145
|
(
|
|
137
146
|
base.ADVANCED_ANALYTICS,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
karrio/server/VERSION,sha256=
|
|
1
|
+
karrio/server/VERSION,sha256=95u0gDTVKbokfjKQBKsWdkx29sqtIic0o5yUkPSSQSk,8
|
|
2
2
|
karrio/server/__init__.py,sha256=iOEMwnlORWezdO8-2vxBIPSR37D7JGjluZ8f55vzxls,81
|
|
3
3
|
karrio/server/__main__.py,sha256=hy2-Zb2wSVe_Pu6zWZ-BhiM4rBaGZ3D16HSuhudygqg,632
|
|
4
4
|
karrio/server/asgi.py,sha256=LsZYMWo8U9zURVPdHnvUsziOhMjdCdQoD2-gMJbS2U0,462
|
|
@@ -6,10 +6,10 @@ karrio/server/workers.py,sha256=wOlWmXC7zRJV86IfbQnfUZsnCIvvWtXzFHH_EIkg1J0,179
|
|
|
6
6
|
karrio/server/wsgi.py,sha256=SpWqkEYlMsj89_znZ8p8IjH3EgTVRWRq_9eS8t64dMw,403
|
|
7
7
|
karrio/server/lib/otel_huey.py,sha256=6MP6vX6b6x6RPF2K1m8B8L8S9GK1Q3vANmLidsxh65k,5428
|
|
8
8
|
karrio/server/settings/__init__.py,sha256=iw-NBcReOnDYpnvSEBdYDfV7jC0040jYdupnmSdElec,866
|
|
9
|
-
karrio/server/settings/apm.py,sha256=
|
|
10
|
-
karrio/server/settings/base.py,sha256=
|
|
11
|
-
karrio/server/settings/cache.py,sha256=
|
|
12
|
-
karrio/server/settings/constance.py,sha256=
|
|
9
|
+
karrio/server/settings/apm.py,sha256=Zt8dP2y8DjPa_iNyv3ZywXTbHlULWc06SLPJhlTTA-A,19983
|
|
10
|
+
karrio/server/settings/base.py,sha256=9Rfe24fieBtwyU8FjBAC2tDMrUPl8Unz-1_zpjZ5Oj4,23144
|
|
11
|
+
karrio/server/settings/cache.py,sha256=UYBd6pG-5pWSUlu4d3PuWGWYCiiDBL2oc1hYzq131zY,4045
|
|
12
|
+
karrio/server/settings/constance.py,sha256=84Ldmwr_o_5WBy5awf-k5AWpYmpMt2dzO3xh6MoqEXU,8013
|
|
13
13
|
karrio/server/settings/debug.py,sha256=fFyK2XX47UGeK0eRNSV-9ZLaComay5QvJW0692vaH98,527
|
|
14
14
|
karrio/server/settings/email.py,sha256=bHBLKM_v3HTkmjrz_Msdj_Z7_kMzAb7i6pvJCZuzu1E,1403
|
|
15
15
|
karrio/server/settings/workers.py,sha256=-pe9u1J5HCF1ZMHIYnHYJfdgJXd0Ix6vCLTr94kmsJs,5672
|
|
@@ -75,8 +75,8 @@ karrio/server/templates/openapi/openapi.html,sha256=3ApCZ5pE6Wjv7CJllVbqD2WiDQuL
|
|
|
75
75
|
karrio/server/urls/__init__.py,sha256=SHmmXmVn9Hbf7eZ2wcL10hG84yQPBrcVaCsvi5cdrrA,2062
|
|
76
76
|
karrio/server/urls/jwt.py,sha256=QN2L-EpUEQCF2UGYPu_VVlA49Fc0BtcY7Ov3-xpp7_U,6772
|
|
77
77
|
karrio/server/urls/tokens.py,sha256=5slk9F0HPgV3dRnR9UipAl-R8837eiGqKJ31QnCdLnU,8215
|
|
78
|
-
karrio_server-2025.5.
|
|
79
|
-
karrio_server-2025.5.
|
|
80
|
-
karrio_server-2025.5.
|
|
81
|
-
karrio_server-2025.5.
|
|
82
|
-
karrio_server-2025.5.
|
|
78
|
+
karrio_server-2025.5.3.dist-info/METADATA,sha256=BpBTx3dl7Jr1jJvaWXXfw6FPkCCs9R8XTAIv-BokEC0,4303
|
|
79
|
+
karrio_server-2025.5.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
80
|
+
karrio_server-2025.5.3.dist-info/entry_points.txt,sha256=c2eftt6MpJjyp0OFv1OmO9nUYSDemt9fGq_RDdvpGLw,55
|
|
81
|
+
karrio_server-2025.5.3.dist-info/top_level.txt,sha256=D1D7x8R3cTfjF_15mfiO7wCQ5QMtuM4x8GaPr7z5i78,12
|
|
82
|
+
karrio_server-2025.5.3.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|