Skip to content

Commit f1bdeef

Browse files
committed
Merge branch 'dev-r85-v2-pull' into dev-backend-libs-upgrade
2 parents 15918da + 2c745fa commit f1bdeef

File tree

29 files changed

+511
-246
lines changed

29 files changed

+511
-246
lines changed

deployment/community/docker-compose.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ services:
2323
networks:
2424
- merginmaps
2525
server:
26-
image: lutraconsulting/merginmaps-backend:2025.2.2
26+
image: lutraconsulting/merginmaps-backend:2025.7.3
2727
container_name: merginmaps-server
2828
restart: always
2929
user: 901:999
@@ -39,7 +39,7 @@ services:
3939
networks:
4040
- merginmaps
4141
celery-beat:
42-
image: lutraconsulting/merginmaps-backend:2025.2.2
42+
image: lutraconsulting/merginmaps-backend:2025.7.3
4343
container_name: celery-beat
4444
restart: always
4545
env_file:
@@ -54,7 +54,7 @@ services:
5454
networks:
5555
- merginmaps
5656
celery-worker:
57-
image: lutraconsulting/merginmaps-backend:2025.2.2
57+
image: lutraconsulting/merginmaps-backend:2025.7.3
5858
container_name: celery-worker
5959
restart: always
6060
user: 901:999
@@ -73,7 +73,7 @@ services:
7373
networks:
7474
- merginmaps
7575
web:
76-
image: lutraconsulting/merginmaps-frontend:2025.2.2
76+
image: lutraconsulting/merginmaps-frontend:2025.7.3
7777
container_name: merginmaps-web
7878
restart: always
7979
depends_on:

deployment/enterprise/.env.template

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ LOCAL_PROJECTS=/data
117117

118118
# data download
119119

120-
#MAX_DOWNLOAD_ARCHIVE_SIZE=1024 * 1024 * 1024 # max total files size in bytes for archive download
120+
#MAX_DOWNLOAD_ARCHIVE_SIZE=1024 * 1024 * 1024 * 10 # max total files size in bytes for archive download
121121

122122
#USE_X_ACCEL=False # use nginx (in front of gunicorn) to serve files (https://www.nginx.com/resources/wiki/start/topics/examples/x-accel/)
123123
USE_X_ACCEL=1
@@ -214,12 +214,8 @@ VECTOR_TILES_URL=https://tiles-ee.merginmaps.com/data/default/{z}/{x}/{y}.pbf
214214

215215
VECTOR_TILES_STYLE_URL=https://tiles-ee.merginmaps.com//styles/default.json
216216

217-
#QGIS_EXTRACTOR_API_URL=http://mergin-qgis-extractor:8000
218-
219217
#WMTS_SERVER_URL=http://mergin-qgis-nginx:80
220218

221-
#QGIS_EXTRACTOR_TIMEOUT=60
222-
223219
#OVERVIEW_MAX_FILE_SIZE=1048576 # 1MB
224220

225221
### Diagnostic logs from Mobile and QGIS Plugin

deployment/enterprise/docker-compose.maps.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,16 @@ services:
3030
- ./qgis_nginx.conf:/etc/nginx/conf.d/default.conf
3131
qgis_extractor:
3232
container_name: mergin-qgis-extractor
33-
image: 433835555346.dkr.ecr.eu-west-1.amazonaws.com/mergin/qgis-extractor-ee:2025.1.0
33+
image: 433835555346.dkr.ecr.eu-west-1.amazonaws.com/mergin/qgis-extractor-ee:2025.3.0
3434
user: 901:999
3535
networks:
3636
- mergin-net
3737
environment:
3838
- OVERVIEWS_DATA_DIR=/data
3939
- MM_WMS_TILE_BUFFER=100
4040
- MM_WMS_AVOID_ARTIFACTS=1
41+
- BROKER_URL=redis://merginmaps-redis:6379/0
42+
- CELERY_RESULT_BACKEND=redis://merginmaps-redis:6379/0
43+
- 'CELERY_TASK_ROUTES={"src.maps.tasks.finish_overview": {"queue": "celery"}}'
4144
volumes:
4245
- ./map_data:/data

deployment/enterprise/docker-compose.yml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ networks:
55

66
services:
77
server:
8-
image: 433835555346.dkr.ecr.eu-west-1.amazonaws.com/mergin/mergin-ee-back:2025.5.1
8+
image: 433835555346.dkr.ecr.eu-west-1.amazonaws.com/mergin/mergin-ee-back:2025.7.3
99
container_name: merginmaps-server
1010
restart: always
1111
user: 901:999
@@ -22,7 +22,7 @@ services:
2222
networks:
2323
- mergin
2424
web:
25-
image: 433835555346.dkr.ecr.eu-west-1.amazonaws.com/mergin/mergin-ee-front:2025.5.1
25+
image: 433835555346.dkr.ecr.eu-west-1.amazonaws.com/mergin/mergin-ee-front:2025.7.3
2626
container_name: merginmaps-web
2727
restart: always
2828
depends_on:
@@ -52,7 +52,7 @@ services:
5252
- server
5353

5454
celery-beat:
55-
image: 433835555346.dkr.ecr.eu-west-1.amazonaws.com/mergin/mergin-ee-back:2025.5.1
55+
image: 433835555346.dkr.ecr.eu-west-1.amazonaws.com/mergin/mergin-ee-back:2025.7.3
5656
container_name: merginmaps-celery-beat
5757
restart: always
5858
user: 901:999
@@ -66,7 +66,7 @@ services:
6666
- mergin
6767

6868
celery-worker:
69-
image: 433835555346.dkr.ecr.eu-west-1.amazonaws.com/mergin/mergin-ee-back:2025.5.1
69+
image: 433835555346.dkr.ecr.eu-west-1.amazonaws.com/mergin/mergin-ee-back:2025.7.3
7070
container_name: merginmaps-celery-worker
7171
restart: always
7272
user: 901:999
@@ -76,6 +76,8 @@ services:
7676
- ./map_data:/overviews
7777
env_file:
7878
- .prod.env
79+
environment:
80+
- CELERY_ROUTES={ 'qgis-extractor.*':{'queue':'extractor'} }
7981
depends_on:
8082
- db
8183
- redis

server/mergin/auth/api.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -753,6 +753,11 @@ components:
753753
type: string
754754
format: date-time
755755
example: 2023-07-30T08:47:58Z
756+
last_signed_in:
757+
nullable: true
758+
type: string
759+
format: date-time
760+
example: 2025-12-18T08:47:58Z
756761
profile:
757762
$ref: "#/components/schemas/UserProfile"
758763
PaginatedUsers:

server/mergin/auth/controller.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -424,6 +424,9 @@ def register_user(): # pylint: disable=W0613,W0612
424424
@auth_required(permissions=["admin"])
425425
def get_user(username):
426426
user = User.query.filter(User.username == username).first_or_404()
427+
if not user.last_signed_in:
428+
last_signed_in = LoginHistory.get_users_last_signed_in([user.id])
429+
user.last_signed_in = last_signed_in.get(user.id)
427430
data = UserSchema().dump(user)
428431
return data, 200
429432

server/mergin/auth/models.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,7 @@ class UserProfile(db.Model):
268268
),
269269
)
270270

271-
def name(self):
271+
def name(self) -> Optional[str]:
272272
return f'{self.first_name if self.first_name else ""} {self.last_name if self.last_name else ""}'.strip()
273273

274274

server/mergin/auth/schemas.py

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

1212
class UserProfileSchema(ma.SQLAlchemyAutoSchema):
1313
name = ma.Function(
14-
lambda obj: f'{obj.first_name if obj.first_name else ""} {obj.last_name if obj.last_name else ""}'.strip(),
14+
lambda obj: obj.name(),
1515
dump_only=True,
1616
)
1717
storage = fields.Method("get_storage", dump_only=True)
@@ -70,6 +70,7 @@ class Meta:
7070
"profile",
7171
"scheduled_removal",
7272
"registration_date",
73+
"last_signed_in",
7374
)
7475
load_instance = True
7576

server/mergin/sync/config.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,3 +77,6 @@ class Configuration(object):
7777
)
7878
# whether client can pull using v2 apis
7979
V2_PULL_ENABLED = config("V2_PULL_ENABLED", default=True, cast=bool)
80+
EXCLUDED_CLONE_FILENAMES = config(
81+
"EXCLUDED_CLONE_FILENAMES", default="qgis_cfg.xml", cast=Csv()
82+
)

server/mergin/sync/models.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -339,6 +339,7 @@ def get_member(self, user_id: int) -> Optional[ProjectMember]:
339339
project_role=ProjectRole(member.role),
340340
workspace_role=self.workspace.get_user_role(member.user),
341341
role=ProjectPermissions.get_user_project_role(self, member.user),
342+
name=member.user.profile.name(),
342343
)
343344

344345
def members_by_role(self, role: ProjectRole) -> List[int]:
@@ -456,6 +457,7 @@ class ProjectMember:
456457
workspace_role: WorkspaceRole
457458
project_role: Optional[ProjectRole]
458459
role: ProjectRole
460+
name: Optional[str]
459461

460462

461463
@dataclass

0 commit comments

Comments
 (0)