Skip to content

Commit 65f34f3

Browse files
Merge pull request #40 from DataKitchen/release/2.12.4
Release/2.12.4
2 parents 7e383fc + 344e47a commit 65f34f3

File tree

8 files changed

+24
-20
lines changed

8 files changed

+24
-20
lines changed

.github/actions/publish_charts/action.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ runs:
1717
uses: azure/setup-helm@v4.2.0
1818

1919
- name: Run chart-releaser
20-
uses: helm/chart-releaser-action@v1.6.0
20+
uses: helm/chart-releaser-action@v1.7.0
2121
with:
2222
charts_dir: deploy/charts
2323
skip_existing: 'true'

common/api/base_view.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ def request_body(self) -> dict[str, Any]:
8686
request_body = json.loads(request.data)
8787
except json.JSONDecodeError as je:
8888
raise BadRequest("The request does not contain a valid JSON body") from je
89-
return request_body
89+
return request_body # type: ignore[no-any-return]
9090

9191
def parse_body(self, *, schema: Schema) -> Any:
9292
"""Parse the response body using the given schema."""

common/api/flask_ext/authentication/jwt_plugin.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
from flask import current_app, g, request
88
from jwt import decode, encode
9+
from jwt.types import Options
910
from peewee import DoesNotExist
1011
from werkzeug.exceptions import Unauthorized
1112

@@ -33,7 +34,7 @@ class JWTAuth(BaseAuthPlugin):
3334
header_name = "Authorization"
3435
header_prefix = "Bearer"
3536

36-
default_jwt_options: dict[str, object] = {"verify_signature": True, "verify_aud": False, "verify_exp": False}
37+
default_jwt_options: Options = {"verify_signature": True, "verify_aud": False, "verify_exp": False}
3738
"""Default options for decoding JWT values."""
3839

3940
default_jwt_expiration: timedelta = NotImplemented

deploy/charts/observability-app/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apiVersion: v2
22
name: dataops-observability-app
33
type: application
44
appVersion: "2"
5-
version: "3.0.1"
5+
version: "3.0.2"
66

77
description: DataOps Observability
88
home: https://datakitchen.io

deploy/charts/observability-app/values.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ observability:
1010
cors_domains: "localhost:*"
1111
services_secrets_name: external-service-keys
1212
keys_secrets_name: internal-keys
13-
pythonpath: /dk/lib/python3.12/site-packages
13+
pythonpath: /dk/lib/python3.13/site-packages
1414
image:
1515
repository: docker.io/datakitchen
1616
tag: "v2"

deploy/docker/observability-be.dockerfile

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# DEV NOTE: YOU MUST RUN `docker build` FROM THE TOP-LEVEL OF `observability-be` AND POINT TO THIS FILE.
22
ARG BASE_IMAGE_URL
3-
FROM ${BASE_IMAGE_URL}python:3.12.11-alpine3.22 AS build-image
3+
FROM ${BASE_IMAGE_URL}python:3.13-alpine3.23 AS build-image
44
LABEL maintainer="DataKitchen"
55

66
RUN apk update && apk upgrade && apk add --no-cache \
@@ -10,7 +10,7 @@ RUN apk update && apk upgrade && apk add --no-cache \
1010
make \
1111
cmake \
1212
musl-dev \
13-
librdkafka-dev=2.10.0-r0
13+
librdkafka-dev=2.12.1-r0
1414

1515
COPY pyproject.toml /tmp/dk/
1616
# -O: Strips asserts from the code which removes some unnecessary codepaths resulting in a small
@@ -21,7 +21,7 @@ RUN python3 -O -m pip install /tmp/dk --prefix=/dk
2121

2222
# Copy and build the actual application
2323
COPY . /tmp/dk/
24-
ENV PYTHONPATH=/dk/lib/python3.12/site-packages
24+
ENV PYTHONPATH=/dk/lib/python3.13/site-packages
2525
# --no-deps: The previous pip layer will have already installed the dependencies. This
2626
# will disable doing a second dependency resolution check.
2727
# -O: Strips asserts from the code which removes some unnecessary codepaths resulting in a small
@@ -30,9 +30,12 @@ ENV PYTHONPATH=/dk/lib/python3.12/site-packages
3030
# --prefix=/dk: The destination installation environment folder
3131
RUN python3 -O -m pip install --no-deps /tmp/dk --prefix=/dk
3232

33-
FROM ${BASE_IMAGE_URL}python:3.12.11-alpine3.22 AS runtime-image
33+
FROM ${BASE_IMAGE_URL}python:3.13-alpine3.23 AS runtime-image
3434

35-
RUN apk update && apk upgrade && apk add --no-cache librdkafka=2.10.0-r0 \
35+
RUN apk update && apk upgrade && apk add --no-cache librdkafka=2.12.1-r0 \
36+
&& apk del curl \
37+
&& apk upgrade --no-cache libcurl busybox busybox-binsh ssl_client \
38+
--repository=https://dl-cdn.alpinelinux.org/alpine/edge/main \
3639
&& pip install --no-cache-dir --upgrade pip
3740

3841
# Grab the pre-built app from the build-image. This way we don't have
@@ -47,7 +50,7 @@ COPY --from=build-image \
4750

4851
COPY --from=build-image /tmp/dk/deploy/migrations/ /dk/lib/migrations/
4952

50-
ENV PYTHONPATH=/dk/lib/python3.12/site-packages
53+
ENV PYTHONPATH=/dk/lib/python3.13/site-packages
5154
ENV PATH=${PATH}:/dk/bin
5255

5356
RUN addgroup -S observability && adduser -S observability -G observability

observability_api/endpoints/v1/project_settings.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class ProjectAlertsSettings(BaseEntityView):
2626
_project: Optional[Project]
2727

2828
def get_request_schema(self) -> Schema:
29-
return cast(Schema, Schema.from_dict(self.get_fields(), name=f"{self.__class__.__name__}Schema")())
29+
return Schema.from_dict(self.get_fields(), name=f"{self.__class__.__name__}Schema")() # type: ignore[arg-type]
3030

3131
@no_body_allowed
3232
def get(self, project_id: UUID) -> Response:

pyproject.toml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ classifiers = [
1414
"Intended Audience :: Developers",
1515
"Operating System :: OS Independent",
1616
"Programming Language :: Python",
17-
"Programming Language :: Python :: 3.12",
17+
"Programming Language :: Python :: 3.13",
1818
]
19-
requires-python = ">=3.12"
19+
requires-python = ">=3.13"
2020

2121
dependencies = [
2222
"arrow~=1.2.2",
@@ -25,17 +25,17 @@ dependencies = [
2525
"APScheduler~=3.10.0",
2626
"blinker~=1.9.0",
2727
"boltons~=23.0.0",
28-
"confluent-kafka==2.4.0",
28+
"confluent-kafka~=2.6.0",
2929
"cryptography~=46.0.5",
3030
"flask~=3.1.0",
3131
"gunicorn~=23.0.0",
3232
"log-color==2.0.0",
3333
"Marshmallow-Peewee~=3.4.3",
3434
"marshmallow~=3.26.2",
3535
"marshmallow-union==0.1.15.post1",
36-
"msgpack==1.0.4",
36+
"msgpack~=1.1.0",
3737
"oauthlib~=3.2",
38-
"peewee~=3.16.0",
38+
"peewee~=3.17.0",
3939
"PyJWT~=2.4",
4040
"PyMySQL==1.1.1",
4141
"pybars3~=0.9.7",
@@ -50,7 +50,7 @@ dependencies = [
5050
dev = [
5151
"ruff~=0.7.3",
5252
"invoke~=2.1.2",
53-
"lxml~=4.9.1",
53+
"lxml~=5.3.0",
5454
"mypy~=1.5.0",
5555
"pre-commit~=2.20.0",
5656
"pytest-cov~=4.0.0",
@@ -122,7 +122,7 @@ filterwarnings = [
122122
# for an explanation of their functionality.
123123
# WARNING: When changing mypy configurations, be sure to test them after removing your .mypy_cache
124124
[tool.mypy]
125-
python_version = "3.12"
125+
python_version = "3.13"
126126
check_untyped_defs = true
127127
disallow_untyped_decorators = true
128128
disallow_untyped_defs = true
@@ -249,7 +249,7 @@ module = "pybars"
249249
ignore_missing_imports = true
250250

251251
[tool.ruff]
252-
target-version = "py310"
252+
target-version = "py313"
253253
line-length = 120
254254

255255
[tool.ruff.lint]

0 commit comments

Comments
 (0)