From d6e97d51d0a274c13da1c9324f206fd21aed7c14 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 4 Aug 2026 06:28:02 +0000 Subject: [PATCH 1/7] chore(deps): bump requests from 2.31.0 to 2.33.0 Bumps [requests](https://github.com/psf/requests) from 2.31.0 to 2.33.0. - [Release notes](https://github.com/psf/requests/releases) - [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md) - [Commits](https://github.com/psf/requests/compare/v2.31.0...v2.33.0) --- updated-dependencies: - dependency-name: requests dependency-version: 2.33.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index cfba00d..559633c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -18,7 +18,7 @@ django-cors-headers==4.4.0 drf-yasg==1.21.7 whitenoise==6.7.0 django-filter==24.2 -requests==2.31.0 +requests==2.33.0 django-redis==5.4.0 boto3==1.37.13 django-silk==5.3.2 From 40cf67ebc614a7023be5550e68bbda74ee654f7b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 4 Aug 2026 06:28:03 +0000 Subject: [PATCH 2/7] chore(deps): bump django from 5.0.6 to 5.1.15 Bumps [django](https://github.com/django/django) from 5.0.6 to 5.1.15. - [Commits](https://github.com/django/django/compare/5.0.6...5.1.15) --- updated-dependencies: - dependency-name: django dependency-version: 5.1.15 dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index cfba00d..f527986 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ # Core -Django==5.0.6 +Django==5.1.15 django-environ==0.11.2 gunicorn==22.0.0 gevent==24.2.1 From b91155c39a7bfe18cd52283c97d079a4c8b16a7e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 4 Aug 2026 06:28:24 +0000 Subject: [PATCH 3/7] chore(deps): bump cryptography from 42.0.8 to 50.0.0 Bumps [cryptography](https://github.com/pyca/cryptography) from 42.0.8 to 50.0.0. - [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pyca/cryptography/compare/42.0.8...50.0.0) --- updated-dependencies: - dependency-name: cryptography dependency-version: 50.0.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index cfba00d..a6ed85c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,7 +5,7 @@ gunicorn==22.0.0 gevent==24.2.1 django_tenants==3.6.1 celery==5.4.0 -cryptography==42.0.8 +cryptography==50.0.0 python-dotenv==1.0.1 # For the persistence stores From 1bc67086d5f655b25de4ef104477a6ba97d4bf0b Mon Sep 17 00:00:00 2001 From: Phuoc Ho Date: Mon, 17 Aug 2026 09:07:11 +0700 Subject: [PATCH 4/7] ci: pin django-common-utils to the ref CI resolves --- Dockerfile | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 7be8c9c..e657319 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,9 +11,12 @@ RUN apk add --no-cache \ WORKDIR /install # install private repo +# Pinned by CI to the commit image-plan.py hashed into this image's content +# key. Defaults to dev so a hand build still works. +ARG COMMON_UTILS_REF=dev RUN --mount=type=secret,id=github_token \ pip install --no-cache-dir --prefix=/install \ - git+https://$(cat /run/secrets/github_token)@github.com/Space-DF/django-common-utils.git@dev + git+https://$(cat /run/secrets/github_token)@github.com/Space-DF/django-common-utils.git@${COMMON_UTILS_REF} # install python requirements COPY requirements.txt . From 8aae0db3023ec063ebb55dd6313654ebefb939d9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 18 Aug 2026 06:34:42 +0000 Subject: [PATCH 5/7] chore(deps): bump python-dotenv from 1.0.1 to 1.2.2 Bumps [python-dotenv](https://github.com/theskumar/python-dotenv) from 1.0.1 to 1.2.2. - [Release notes](https://github.com/theskumar/python-dotenv/releases) - [Changelog](https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md) - [Commits](https://github.com/theskumar/python-dotenv/compare/v1.0.1...v1.2.2) --- updated-dependencies: - dependency-name: python-dotenv dependency-version: 1.2.2 dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index bf11e18..22dcd8a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,7 +6,7 @@ gevent==24.2.1 django_tenants==3.6.1 celery==5.4.0 cryptography==50.0.0 -python-dotenv==1.0.1 +python-dotenv==1.2.2 # For the persistence stores psycopg2-binary==2.9.9 From 3ff97ec6fdc3939ac6e386a8cba70b73c5d5b25a Mon Sep 17 00:00:00 2001 From: ngovinh2k2 Date: Tue, 18 Aug 2026 13:41:03 +0700 Subject: [PATCH 6/7] chore: update python dependencies --- requirements.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/requirements.txt b/requirements.txt index eda45f8..1312064 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,9 +1,9 @@ # Core -Django==5.1.15 +Django==5.2.16 django-environ==0.11.2 gunicorn==22.0.0 gevent==24.2.1 -django_tenants==3.6.1 +django_tenants==3.10.2 celery==5.4.0 cryptography==50.0.0 python-dotenv==1.2.2 @@ -13,7 +13,7 @@ psycopg2-binary==2.9.9 # Rest apis djangorestframework==3.15.2 -djangorestframework_simplejwt==5.3.1 +djangorestframework_simplejwt==5.5.1 django-cors-headers==4.4.0 drf-yasg==1.21.7 whitenoise==6.7.0 From 59b042b467740f836f4950bb8071caf50567193d Mon Sep 17 00:00:00 2001 From: ngovinh2k2 Date: Wed, 19 Aug 2026 14:44:52 +0700 Subject: [PATCH 7/7] chore: add bearing to location updates --- apps/device/serializers.py | 1 + apps/device/tasks.py | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/apps/device/serializers.py b/apps/device/serializers.py index 8c82a28..b17deed 100644 --- a/apps/device/serializers.py +++ b/apps/device/serializers.py @@ -107,6 +107,7 @@ def create(self, validated_data): class LocationSerializer(serializers.Serializer): latitude = serializers.FloatField() longitude = serializers.FloatField() + bearing = serializers.FloatField(required=False, allow_null=True) class FormatDeviceSerializer(serializers.ModelSerializer): diff --git a/apps/device/tasks.py b/apps/device/tasks.py index 1cbb0a1..d49b18c 100644 --- a/apps/device/tasks.py +++ b/apps/device/tasks.py @@ -145,7 +145,9 @@ def device_upgrade_task(**kwargs): @tenant_shared_task(name="spacedf.tasks.update_device_location") -def update_device_location(device_id: str, latitude: float, longitude: float): +def update_device_location( + device_id: str, latitude: float, longitude: float, bearing: float +): try: device = Device.objects.get(id=device_id) except Device.DoesNotExist: @@ -157,5 +159,6 @@ def update_device_location(device_id: str, latitude: float, longitude: float): device.location = { "latitude": latitude, "longitude": longitude, + "bearing": bearing, } device.save(update_fields=["location", "updated_at"])