Skip to content

Commit bf5f9fa

Browse files
committed
feat(objectstore): enable token generator in objectstore client
1 parent a222408 commit bf5f9fa

File tree

4 files changed

+28
-7
lines changed

4 files changed

+28
-7
lines changed

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ dependencies = [
5050
"mmh3>=4.0.0",
5151
"msgspec>=0.19.0",
5252
"msgpack>=1.1.0",
53-
"objectstore-client>=0.0.14",
53+
"objectstore-client>=0.0.15",
5454
"openai>=1.3.5",
5555
"orjson>=3.10.10",
5656
"p4python>=2025.1.2767466",

src/sentry/objectstore/__init__.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from urllib.parse import urlparse, urlunparse
44

55
from django.conf import settings
6-
from objectstore_client import Client, MetricsBackend, Session, TimeToLive, Usecase
6+
from objectstore_client import Client, MetricsBackend, Session, TimeToLive, TokenGenerator, Usecase
77
from objectstore_client.metrics import Tags
88

99
from sentry.utils import metrics as sentry_metrics
@@ -48,13 +48,27 @@ def create_client() -> Client:
4848
from sentry import options as options_store
4949

5050
options = options_store.get("objectstore.config")
51+
52+
# Initialize the `TokenGenerator` if key parameters are found.
53+
token_generator = None
54+
if signing_key_options := options.get("token_generator"):
55+
kid = signing_key_options.pop("kid")
56+
secret_key = signing_key_options.pop("secret_key")
57+
if kid and secret_key:
58+
token_generator = TokenGenerator(
59+
kid,
60+
secret_key,
61+
**signing_key_options,
62+
)
63+
5164
return Client(
5265
options["base_url"],
5366
metrics_backend=SentryMetricsBackend(),
5467
propagate_traces=options.get("propagate_traces", False),
5568
retries=options.get("retries", None),
5669
timeout_ms=options.get("timeout_ms", None),
5770
connection_kwargs=options.get("connection_kwargs", {}),
71+
token_generator=token_generator,
5872
)
5973

6074

src/sentry/options/defaults.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -388,6 +388,7 @@
388388
# - retries: int | None = None,
389389
# - timeout_ms: float | None = None,
390390
# - connection_kwargs: Mapping[str, Any] | None = None,
391+
# - token_generator: Mapping[str, Any] | None = None,
391392
#
392393
# For an always up-to-date list, see:
393394
# https://getsentry.github.io/objectstore/python/objectstore_client.html#objectstore_client.Client

uv.lock

Lines changed: 11 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)