Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
49fca15
Don't allow SSO users update their profile (#416)
harminius Apr 2, 2025
fe34b9f
Send SSO connections for server in statistics
harminius Apr 2, 2025
0606136
Merge pull request #417 from MerginMaps/sso_statistics
MarcelGeo Apr 3, 2025
46f95c7
Add service id to `server check` command
MarcelGeo Apr 8, 2025
4131094
Merge pull request #419 from MerginMaps/add-service-id-to-server-check
MarcelGeo Apr 9, 2025
bfd28c3
Add possibility to lock a project
harminius Apr 10, 2025
d919799
Adjust error type and message
harminius Apr 11, 2025
28ca996
Initial version for zip download rework
varmar05 Apr 11, 2025
a5b7290
Make prpoerty optional for an external link
harminius Apr 11, 2025
aff5104
Merge pull request #425 from MerginMaps/boxy_link_to_admin
MarcelGeo Apr 14, 2025
6e07388
Add custom error for blocking push to locked project
harminius Apr 14, 2025
80340be
Merge pull request #422 from MerginMaps/frozen_remove_after
MarcelGeo Apr 14, 2025
70c0c7c
Merge remote-tracking branch 'origin/develop' into rewrite_zip_download
harminius Apr 14, 2025
7ce05d6
Move download() function to private api
harminius Apr 16, 2025
e09fe49
Add safecheck for inactive partials
harminius Apr 16, 2025
0b9fd20
Tests
harminius Apr 17, 2025
c8bc4b6
Rm legacy tests
harminius Apr 17, 2025
75e5255
Rm unused deps
harminius Apr 17, 2025
4b6a743
Fix marshmallow version
harminius Apr 17, 2025
d32fb67
Fix marshmallow version II
harminius Apr 17, 2025
a30aac2
initial version of fe
MarcelGeo Apr 22, 2025
a44e9ca
Merge pull request #431 from MerginMaps/master
MarcelGeo Apr 23, 2025
a8dcfc1
cleanup docker-compose
MarcelGeo Apr 24, 2025
f811c96
Merge remote-tracking branch 'origin/develop' into rewrite_zip_download
MarcelGeo Apr 24, 2025
9661ed2
Cleanup of version and more detailed description about /download endp…
MarcelGeo Apr 24, 2025
fbb56af
Introduce get_x_accel method to create valid accel url for nginx
MarcelGeo Apr 24, 2025
272ceef
add max 100 retries for download
MarcelGeo Apr 24, 2025
900902e
cancel using method + make retries maximum working properly
MarcelGeo Apr 24, 2025
ede4e3c
Cleanup of download progress
MarcelGeo Apr 24, 2025
2629588
Address review
harminius Apr 25, 2025
6bbd678
address comments @varmar05
MarcelGeo Apr 25, 2025
3f31b3f
Fix:
MarcelGeo Apr 25, 2025
ca448c6
200 response definition
harminius Apr 28, 2025
79739bb
Add configurable x accel buffering for project download
MarcelGeo Apr 28, 2025
fffe7ca
disable auth_required from project download as it was not possible to…
MarcelGeo Apr 28, 2025
ad0014f
Merge pull request #426 from MerginMaps/rewrite_zip_download
MarcelGeo Apr 28, 2025
baecca2
Merge remote-tracking branch 'origin/master' into dev-r19
MarcelGeo Apr 28, 2025
9686a76
Fix import
harminius Apr 29, 2025
149518a
bump version config to 2025.4.0
MarcelGeo Apr 29, 2025
897f296
Merge pull request #435 from MerginMaps/dev-r19
MarcelGeo Apr 29, 2025
176795f
Merge pull request #437 from MerginMaps/bump-2025.4.0
MarcelGeo Apr 29, 2025
0a763ef
Add test for abandoned partial zip
harminius Apr 29, 2025
308dd74
Merge pull request #433 from MerginMaps/fix_download_project_import
MarcelGeo Apr 29, 2025
c206f99
Fix link in project access request email
harminius Apr 30, 2025
da5ac28
Merge pull request #439 from MerginMaps/Mergin_base_url_in_invitations
MarcelGeo Apr 30, 2025
d3f069b
initial gradient
MarcelGeo Apr 30, 2025
28f664f
tweaks for default values for download
MarcelGeo Apr 30, 2025
04dec00
Update texts:
MarcelGeo Apr 30, 2025
d01812d
Return 400 instad 413 of large files
MarcelGeo Apr 30, 2025
6b09bb3
Add error message for large files to admin
MarcelGeo Apr 30, 2025
92c485c
Merge pull request #440 from MerginMaps/release-tweaks
MarcelGeo Apr 30, 2025
b70a218
Added primary and info severity. info is just fallback
MarcelGeo Apr 30, 2025
da78ad7
Send corresponding signal whenever new project member is added
varmar05 May 1, 2025
9dc0ad1
add severity as optional param
MarcelGeo May 2, 2025
1d45960
Merge pull request #441 from MerginMaps/add-severity-app-section-banner
MarcelGeo May 2, 2025
5b9dbfa
Merge pull request #443 from MerginMaps/fix_inconsistent_permissions
MarcelGeo May 2, 2025
8883296
call download project version properly from version details
MarcelGeo May 2, 2025
22bdbb3
preparing download and use downloadArchive polling
MarcelGeo May 2, 2025
24f6fab
add ) to text
MarcelGeo May 2, 2025
b76db66
Merge pull request #444 from MerginMaps/fix-download-version-rom-detail
MarcelGeo May 2, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 1 addition & 9 deletions LICENSES/EE-used-libs.json
Original file line number Diff line number Diff line change
Expand Up @@ -255,10 +255,6 @@
"library": "requests",
"version": "2.31.0"
},
{
"library": "requests-toolbelt",
"version": "0.9.1"
},
{
"library": "result",
"version": "0.5.0"
Expand Down Expand Up @@ -335,10 +331,6 @@
"library": "WTForms-JSON",
"version": "0.3.5"
},
{
"library": "zipfly",
"version": "6.0.3"
},
{
"library": "zipp",
"version": "3.17.0"
Expand Down Expand Up @@ -623,4 +615,4 @@
"library": "xml-utils",
"version": "1.7.0"
}
]
]
9 changes: 5 additions & 4 deletions deployment/common/nginx.conf
Original file line number Diff line number Diff line change
Expand Up @@ -27,16 +27,15 @@ server {

# proxy to backend
# we need to disable buffering for these endpoints which use stream (up or down)
# /v1/project/download/
location ~ /v1/project/download/ {
location ~ /app/projects/([^/]+)/download {
# unfortunately, proxy settings do not support inheritance within nested locations, hence copied set up from root location
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
# we don't want nginx trying to do something clever with
# redirects, we set the Host: header above already.
proxy_redirect off;
proxy_pass http://merginmaps-server:5000;
proxy_pass http://merginmaps-server:5000;

# disable buffering
client_max_body_size 0; # No maximum client body size
Expand All @@ -54,6 +53,8 @@ server {

location /download/ {
internal;
alias /data/; # we need to mount data from mergin server here
# We need to mount data from mergin server here.
# This should have the same path as LOCAL_PROJECTS env variable with slash at the end
alias /data/;
}
}
19 changes: 13 additions & 6 deletions deployment/community/.env.template
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
# This file should contain a set of Mergin Maps configuration definitions along with their default values

# Mind that any major change to this file MUST BE reflected in docs


FLASK_APP=application

Expand All @@ -22,9 +20,6 @@ MAINTENANCE_FILE=/data/MAINTENANCE
#TEMP_DIR=gettempdir() # trash dir for temp files being cleaned regularly
TEMP_DIR=/data/tmp

#VERSION=get_version()


# Mergin DB related

#DB_APPLICATION_NAME=mergin
Expand Down Expand Up @@ -117,11 +112,23 @@ MAIL_SUPPRESS_SEND=0

#MAX_CHUNK_SIZE=10 * 1024 * 1024 # 10485760 in bytes

#MAX_DOWNLOAD_ARCHIVE_SIZE=1024 * 1024 * 1024 # max total files size for archive download
# data download

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

#USE_X_ACCEL=False # use nginx (in front of gunicorn) to serve files (https://www.nginx.com/resources/wiki/start/topics/examples/x-accel/)
USE_X_ACCEL=1

#PARTIAL_ZIP_EXPIRATION=600 # in seconds

#PROJECTS_ARCHIVES_DIR=LOCAL_PROJECTS/projects_archives # where to store archives for download

# days for which archive is ready to download
# PROJECTS_ARCHIVES_EXPIRATION=7 # in days

# If use x-accel buffering by download (no/yes)
# PROJECTS_ARCHIVES_X_ACCEL_BUFFERING="no"

# geodif related

# where geodiff lib copies working files
Expand Down
18 changes: 14 additions & 4 deletions deployment/enterprise/.env.template
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,6 @@ TEMP_DIR=/data/tmp

#USER_SELF_REGISTRATION=True

#VERSION=get_version()


# Mergin DB related

Expand Down Expand Up @@ -108,10 +106,22 @@ MAIL_USERNAME=fix-me

#MAX_CHUNK_SIZE=10 * 1024 * 1024 # 10485760 in bytes

#MAX_DOWNLOAD_ARCHIVE_SIZE=1024 * 1024 * 1024 # max total files size for archive download
# data download

#MAX_DOWNLOAD_ARCHIVE_SIZE=1024 * 1024 * 1024 # max total files size in bytes for archive download

#USE_X_ACCEL=False # use nginx (in front of gunicorn) to serve files (https://www.nginx.com/resources/wiki/start/topics/examples/x-accel/)
USE_X_ACCEL=True
USE_X_ACCEL=1

#PARTIAL_ZIP_EXPIRATION=600 # in seconds

#PROJECTS_ARCHIVES_DIR=LOCAL_PROJECTS/projects_archives # where to store archives for download

# days for which archive is ready to download
# PROJECTS_ARCHIVES_EXPIRATION=7 # in days

# If use x-accel buffering by download (no/yes)
# PROJECTS_ARCHIVES_X_ACCEL_BUFFERING="no"

# celery

Expand Down
4 changes: 3 additions & 1 deletion development.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,12 +68,14 @@ If you want to run the whole stack locally, you can use the docker. Docker will
# Enter community edition deployment folder
cd deployment/community/

# Create .prod.env file from .env.template
cp .env.template .prod.env

# Run the docker composition with the current Dockerfiles
docker compose -f docker-compose.yml -f docker-compose.dev.yml up -d

# Give ownership of the ./projects folder to user that is running the gunicorn container
sudo chown 901:999 projects
sudo chown 101:999 logs

# init db and create user
docker exec -it merginmaps-server flask init-db
Expand Down
3 changes: 1 addition & 2 deletions server/Pipfile
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,13 @@ name = "pypi"
connexion = {extras = ["swagger-ui"],version = "==2.14.1"}
flask = "==2.2.5"
python-dateutil = "==2.8.2"
marshmallow = "==3.20.1"
flask-marshmallow = "==0.14.0"
marshmallow-sqlalchemy = "==1.1.0"
psycopg2-binary = "==2.9.9"
itsdangerous = "==2.2.0"
requests-toolbelt = "==1.0.0"
Flask-SQLAlchemy = "==2.5.1"
sqlalchemy = "==1.4.53"
zipfly = "==6.0.3"
gunicorn = {extras = ["gevent"],version = "==19.9"}
python-dotenv = "==0.20.0"
flask-login = "==0.6.2"
Expand Down
Loading
Loading