diff --git a/api/tacticalrmm/agents/views.py b/api/tacticalrmm/agents/views.py index e1cf38af..f3a2808d 100644 --- a/api/tacticalrmm/agents/views.py +++ b/api/tacticalrmm/agents/views.py @@ -987,6 +987,8 @@ def bulk(request): debug_info={"ip": request._client_ip}, ) + ht = "Check the History tab on the agent to view the results." + if request.data["mode"] == "command": if request.data["shell"] == "custom" and request.data["custom_shell"]: shell = request.data["custom_shell"] @@ -1001,7 +1003,7 @@ def bulk(request): username=request.user.username[:50], run_as_user=request.data["run_as_user"], ) - return Response(f"Command will now be run on {len(agents)} agents") + return Response(f"Command will now be run on {len(agents)} agents. {ht}") elif request.data["mode"] == "script": script = get_object_or_404(Script, pk=request.data["script"]) @@ -1016,7 +1018,7 @@ def bulk(request): env_vars=request.data["env_vars"], ) - return Response(f"{script.name} will now be run on {len(agents)} agents") + return Response(f"{script.name} will now be run on {len(agents)} agents. {ht}") elif request.data["mode"] == "patch": if request.data["patchMode"] == "install": diff --git a/api/tacticalrmm/requirements-dev.txt b/api/tacticalrmm/requirements-dev.txt index 3e2a82c1..af6bbf34 100644 --- a/api/tacticalrmm/requirements-dev.txt +++ b/api/tacticalrmm/requirements-dev.txt @@ -1,5 +1,5 @@ black -daphne==4.1.0 +daphne Werkzeug django-extensions isort diff --git a/api/tacticalrmm/requirements-test.txt b/api/tacticalrmm/requirements-test.txt index 81ab52b3..5b9d63a7 100644 --- a/api/tacticalrmm/requirements-test.txt +++ b/api/tacticalrmm/requirements-test.txt @@ -7,4 +7,4 @@ pytest-xdist pytest-cov refurb flake8 -daphne==4.1.0 \ No newline at end of file +daphne \ No newline at end of file diff --git a/api/tacticalrmm/requirements.txt b/api/tacticalrmm/requirements.txt index 3e1f35f6..14e6323b 100644 --- a/api/tacticalrmm/requirements.txt +++ b/api/tacticalrmm/requirements.txt @@ -1,46 +1,47 @@ -adrf==0.1.5 -asgiref==3.7.2 -celery==5.3.6 +adrf==0.1.6 +asgiref==3.8.1 +celery==5.4.0 certifi==2024.2.2 cffi==1.16.0 -channels==4.0.0 +channels==4.1.0 channels_redis==4.2.0 -cryptography==42.0.5 -Django==4.2.11 +cryptography==42.0.7 +Django==4.2.13 django-cors-headers==4.3.1 django-filter==24.2 django-rest-knox==4.2.0 djangorestframework==3.15.1 -drf-spectacular==0.27.1 +drf-spectacular==0.27.2 hiredis==2.3.2 +kombu==5.3.7 meshctrl==0.1.15 msgpack==1.0.8 nats-py==2.7.2 packaging==24.0 psutil==5.9.8 -psycopg[binary]==3.1.18 +psycopg[binary]==3.1.19 pycparser==2.21 pycryptodome==3.20.0 pyotp==2.9.0 pyparsing==3.1.2 python-ipware==2.0.2 qrcode==7.4.2 -redis==5.0.3 +redis==5.0.4 requests==2.31.0 six==1.16.0 -sqlparse==0.4.4 +sqlparse==0.5.0 twilio==8.13.0 urllib3==2.2.1 uvicorn[standard]==0.29.0 -uWSGI==2.0.24 +uWSGI==2.0.25.1 validators==0.24.0 vine==5.1.0 websockets==12.0 zipp==3.18.1 -pandas==2.2.1 +pandas==2.2.2 kaleido==0.2.1 -jinja2==3.1.3 +jinja2==3.1.4 markdown==3.6 -plotly==5.20.0 -weasyprint==61.2 +plotly==5.22.0 +weasyprint==62.1 ocxsect==0.1.5 \ No newline at end of file diff --git a/api/tacticalrmm/tacticalrmm/settings.py b/api/tacticalrmm/tacticalrmm/settings.py index ed9ee824..0a36bf02 100644 --- a/api/tacticalrmm/tacticalrmm/settings.py +++ b/api/tacticalrmm/tacticalrmm/settings.py @@ -21,21 +21,21 @@ MAC_UNINSTALL = BASE_DIR / "core" / "mac_uninstall.sh" AUTH_USER_MODEL = "accounts.User" # latest release -TRMM_VERSION = "0.18.2-dev" +TRMM_VERSION = "0.18.3-dev" # https://github.com/amidaware/tacticalrmm-web -WEB_VERSION = "0.101.43" +WEB_VERSION = "0.101.44" # bump this version everytime vue code is changed # to alert user they need to manually refresh their browser -APP_VER = "0.0.191" +APP_VER = "0.0.192" # https://github.com/amidaware/rmmagent LATEST_AGENT_VER = "2.7.0" MESH_VER = "1.1.21" -NATS_SERVER_VER = "2.10.12" +NATS_SERVER_VER = "2.10.14" # Install Nushell on the agent # https://github.com/nushell/nushell @@ -43,7 +43,7 @@ INSTALL_NUSHELL = True # GitHub version to download. The file will be downloaded from GitHub, extracted and installed. # Version to download. If INSTALL_NUSHELL_URL is not provided, the file will be downloaded from GitHub, # extracted and installed. -INSTALL_NUSHELL_VERSION = "0.91.0" +INSTALL_NUSHELL_VERSION = "0.92.1" # URL to download directly. This is expected to be the direct URL, unauthenticated, uncompressed, ready to be installed. # Use {OS}, {ARCH} and {VERSION} to specify the GOOS, GOARCH and INSTALL_NUSHELL_VERSION respectively. # Windows: The ".exe" extension will be added automatically. @@ -64,7 +64,7 @@ NUSHELL_ENABLE_CONFIG = False INSTALL_DENO = True # Version to download. If INSTALL_DENO_URL is not provided, the file will be downloaded from GitHub, # extracted and installed. -INSTALL_DENO_VERSION = "v1.41.3" +INSTALL_DENO_VERSION = "v1.42.1" # URL to download directly. This is expected to be the direct URL, unauthenticated, uncompressed, ready to be installed. # Use {OS}, {ARCH} and {VERSION} to specify the GOOS, GOARCH and INSTALL_DENO_VERSION respectively. # Windows: The ".exe" extension will be added automatically. diff --git a/backup.sh b/backup.sh index 23633092..cda39ed5 100755 --- a/backup.sh +++ b/backup.sh @@ -2,6 +2,8 @@ SCRIPT_VERSION="32" +export DEBIAN_FRONTEND=noninteractive + GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' @@ -78,7 +80,7 @@ mkdir ${tmp_dir}/opt POSTGRES_USER=$(/rmm/api/env/bin/python /rmm/api/tacticalrmm/manage.py get_config dbuser) POSTGRES_PW=$(/rmm/api/env/bin/python /rmm/api/tacticalrmm/manage.py get_config dbpw) -pg_dump --dbname=postgresql://"${POSTGRES_USER}":"${POSTGRES_PW}"@localhost:5432/tacticalrmm | gzip -9 >${tmp_dir}/postgres/db-${dt_now}.psql.gz +pg_dump --no-privileges --no-owner --dbname=postgresql://"${POSTGRES_USER}":"${POSTGRES_PW}"@localhost:5432/tacticalrmm | gzip -9 >${tmp_dir}/postgres/db-${dt_now}.psql.gz node /meshcentral/node_modules/meshcentral --dbexport # for import to postgres @@ -88,7 +90,7 @@ if grep -q postgres "/meshcentral/meshcentral-data/config.json"; then fi MESH_POSTGRES_USER=$(jq '.settings.postgres.user' /meshcentral/meshcentral-data/config.json -r) MESH_POSTGRES_PW=$(jq '.settings.postgres.password' /meshcentral/meshcentral-data/config.json -r) - pg_dump --dbname=postgresql://"${MESH_POSTGRES_USER}":"${MESH_POSTGRES_PW}"@localhost:5432/meshcentral | gzip -9 >${tmp_dir}/postgres/mesh-db-${dt_now}.psql.gz + pg_dump --no-privileges --no-owner --dbname=postgresql://"${MESH_POSTGRES_USER}":"${MESH_POSTGRES_PW}"@localhost:5432/meshcentral | gzip -9 >${tmp_dir}/postgres/mesh-db-${dt_now}.psql.gz else mongodump --gzip --out=${tmp_dir}/meshcentral/mongo fi diff --git a/docker/containers/tactical-nats/dockerfile b/docker/containers/tactical-nats/dockerfile index c1aa47ef..db8d7fef 100644 --- a/docker/containers/tactical-nats/dockerfile +++ b/docker/containers/tactical-nats/dockerfile @@ -1,4 +1,4 @@ -FROM nats:2.10.12-alpine +FROM nats:2.10.14-alpine ENV TACTICAL_DIR /opt/tactical ENV TACTICAL_READY_FILE ${TACTICAL_DIR}/tmp/tactical.ready diff --git a/install.sh b/install.sh index b4f21793..2436561c 100644 --- a/install.sh +++ b/install.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -SCRIPT_VERSION="83" +SCRIPT_VERSION="84" SCRIPT_URL="https://raw.githubusercontent.com/amidaware/tacticalrmm/master/install.sh" sudo apt install -y curl wget dirmngr gnupg lsb-release ca-certificates @@ -33,6 +33,8 @@ fi rm -f $TMP_FILE +export DEBIAN_FRONTEND=noninteractive + if [ -d /rmm/api/tacticalrmm ]; then echo -ne "${RED}ERROR: Existing trmm installation found. The install script must be run on a clean server.${NC}\n" exit 1 diff --git a/restore.sh b/restore.sh index fc9b4528..5bf5669e 100755 --- a/restore.sh +++ b/restore.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -SCRIPT_VERSION="57" +SCRIPT_VERSION="58" SCRIPT_URL='https://raw.githubusercontent.com/amidaware/tacticalrmm/master/restore.sh' sudo apt update @@ -29,6 +29,8 @@ fi rm -f $TMP_FILE +export DEBIAN_FRONTEND=noninteractive + if [ -d /rmm/api/tacticalrmm ]; then echo -ne "${RED}ERROR: Existing trmm installation found. The restore script must be run on a clean server, please re-read the docs.${NC}\n" exit 1 diff --git a/update.sh b/update.sh index fd67c37c..c27eac73 100644 --- a/update.sh +++ b/update.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -SCRIPT_VERSION="152" +SCRIPT_VERSION="153" SCRIPT_URL='https://raw.githubusercontent.com/amidaware/tacticalrmm/master/update.sh' LATEST_SETTINGS_URL='https://raw.githubusercontent.com/amidaware/tacticalrmm/master/api/tacticalrmm/tacticalrmm/settings.py' YELLOW='\033[1;33m' @@ -26,6 +26,8 @@ fi rm -f $TMP_FILE +export DEBIAN_FRONTEND=noninteractive + force=false if [[ $* == *--force* ]]; then force=true