Release 0.8.1
This commit is contained in:
		@@ -13,12 +13,17 @@ EXPOSE 8000 8383 8005
 | 
			
		||||
RUN groupadd -g 1000 tactical && \
 | 
			
		||||
    useradd -u 1000 -g 1000 tactical
 | 
			
		||||
 | 
			
		||||
# Copy Dev python reqs
 | 
			
		||||
COPY ./requirements.txt /
 | 
			
		||||
# Copy nats-api file
 | 
			
		||||
COPY natsapi/bin/nats-api /usr/local/bin/
 | 
			
		||||
RUN chmod +x /usr/local/bin/nats-api
 | 
			
		||||
 | 
			
		||||
# Copy Docker Entrypoint
 | 
			
		||||
COPY ./entrypoint.sh /
 | 
			
		||||
# Copy dev python reqs
 | 
			
		||||
COPY .devcontainer/requirements.txt  /
 | 
			
		||||
 | 
			
		||||
# Copy docker entrypoint.sh
 | 
			
		||||
COPY .devcontainer/entrypoint.sh /
 | 
			
		||||
RUN chmod +x /entrypoint.sh
 | 
			
		||||
 | 
			
		||||
ENTRYPOINT ["/entrypoint.sh"]
 | 
			
		||||
 | 
			
		||||
WORKDIR ${WORKSPACE_DIR}/api/tacticalrmm
 | 
			
		||||
 
 | 
			
		||||
@@ -6,8 +6,8 @@ services:
 | 
			
		||||
    image: api-dev
 | 
			
		||||
    restart: always
 | 
			
		||||
    build:
 | 
			
		||||
      context: .
 | 
			
		||||
      dockerfile: ./api.dockerfile
 | 
			
		||||
      context: ..
 | 
			
		||||
      dockerfile: .devcontainer/api.dockerfile
 | 
			
		||||
    command: ["tactical-api"]
 | 
			
		||||
    environment:
 | 
			
		||||
      API_PORT: ${API_PORT}
 | 
			
		||||
@@ -127,9 +127,6 @@ services:
 | 
			
		||||
  init-dev:
 | 
			
		||||
    container_name: trmm-init-dev
 | 
			
		||||
    image: api-dev
 | 
			
		||||
    build:
 | 
			
		||||
      context: .
 | 
			
		||||
      dockerfile: ./api.dockerfile
 | 
			
		||||
    restart: on-failure
 | 
			
		||||
    command: ["tactical-init-dev"]
 | 
			
		||||
    environment:
 | 
			
		||||
@@ -156,9 +153,6 @@ services:
 | 
			
		||||
  celery-dev:
 | 
			
		||||
    container_name: trmm-celery-dev
 | 
			
		||||
    image: api-dev
 | 
			
		||||
    build:
 | 
			
		||||
      context: .
 | 
			
		||||
      dockerfile: ./api.dockerfile
 | 
			
		||||
    command: ["tactical-celery-dev"]
 | 
			
		||||
    restart: always
 | 
			
		||||
    networks:
 | 
			
		||||
@@ -174,9 +168,6 @@ services:
 | 
			
		||||
  celerybeat-dev:
 | 
			
		||||
    container_name: trmm-celerybeat-dev
 | 
			
		||||
    image: api-dev
 | 
			
		||||
    build:
 | 
			
		||||
      context: .
 | 
			
		||||
      dockerfile: ./api.dockerfile
 | 
			
		||||
    command: ["tactical-celerybeat-dev"]
 | 
			
		||||
    restart: always
 | 
			
		||||
    networks:
 | 
			
		||||
@@ -192,9 +183,6 @@ services:
 | 
			
		||||
  websockets-dev:
 | 
			
		||||
    container_name: trmm-websockets-dev
 | 
			
		||||
    image: api-dev
 | 
			
		||||
    build:
 | 
			
		||||
      context: .
 | 
			
		||||
      dockerfile: ./api.dockerfile
 | 
			
		||||
    command: ["tactical-websockets-dev"]
 | 
			
		||||
    restart: always
 | 
			
		||||
    networks:
 | 
			
		||||
@@ -234,9 +222,6 @@ services:
 | 
			
		||||
    container_name: trmm-mkdocs-dev
 | 
			
		||||
    image: api-dev
 | 
			
		||||
    restart: always
 | 
			
		||||
    build:
 | 
			
		||||
      context: .
 | 
			
		||||
      dockerfile: ./api.dockerfile
 | 
			
		||||
    command: ["tactical-mkdocs-dev"]
 | 
			
		||||
    ports:
 | 
			
		||||
      - "8005:8005"
 | 
			
		||||
 
 | 
			
		||||
@@ -644,7 +644,11 @@ def run_script(request):
 | 
			
		||||
        else:
 | 
			
		||||
            return notify_error("Custom Field was invalid")
 | 
			
		||||
 | 
			
		||||
        value = r if request.data["save_all_output"] else r.split("\n")[-1].strip()
 | 
			
		||||
        value = (
 | 
			
		||||
            r.strip()
 | 
			
		||||
            if request.data["save_all_output"]
 | 
			
		||||
            else r.strip().split("\n")[-1].strip()
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        field.save_to_field(value)
 | 
			
		||||
        return Response(r)
 | 
			
		||||
 
 | 
			
		||||
@@ -361,7 +361,6 @@ class TaskRunner(APIView):
 | 
			
		||||
 | 
			
		||||
    def patch(self, request, pk, agentid):
 | 
			
		||||
        from alerts.models import Alert
 | 
			
		||||
        from logs.models import AuditLog
 | 
			
		||||
 | 
			
		||||
        agent = get_object_or_404(Agent, agent_id=agentid)
 | 
			
		||||
        task = get_object_or_404(AutomatedTask, pk=pk)
 | 
			
		||||
 
 | 
			
		||||
@@ -413,9 +413,9 @@ class AutomatedTask(BaseAuditModel):
 | 
			
		||||
        agent_field = self.custom_field.get_or_create_field_value(self.agent)
 | 
			
		||||
 | 
			
		||||
        value = (
 | 
			
		||||
            self.stdout
 | 
			
		||||
            self.stdout.strip()
 | 
			
		||||
            if self.collector_all_output
 | 
			
		||||
            else self.stdout.split("\n")[-1].strip()
 | 
			
		||||
            else self.stdout.strip().split("\n")[-1].strip()
 | 
			
		||||
        )
 | 
			
		||||
        agent_field.save_to_field(value)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -15,16 +15,16 @@ EXE_DIR = os.path.join(BASE_DIR, "tacticalrmm/private/exe")
 | 
			
		||||
AUTH_USER_MODEL = "accounts.User"
 | 
			
		||||
 | 
			
		||||
# latest release
 | 
			
		||||
TRMM_VERSION = "0.8.0"
 | 
			
		||||
TRMM_VERSION = "0.8.1"
 | 
			
		||||
 | 
			
		||||
# bump this version everytime vue code is changed
 | 
			
		||||
# to alert user they need to manually refresh their browser
 | 
			
		||||
APP_VER = "0.0.142"
 | 
			
		||||
APP_VER = "0.0.143"
 | 
			
		||||
 | 
			
		||||
# https://github.com/wh1te909/rmmagent
 | 
			
		||||
LATEST_AGENT_VER = "1.6.0"
 | 
			
		||||
 | 
			
		||||
MESH_VER = "0.9.15"
 | 
			
		||||
MESH_VER = "0.9.16"
 | 
			
		||||
 | 
			
		||||
NATS_SERVER_VER = "2.3.3"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -265,7 +265,9 @@ def run_nats_api_cmd(mode: str, ids: list[str] = [], timeout: int = 30) -> None:
 | 
			
		||||
            "dbname": db["NAME"],
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    with tempfile.NamedTemporaryFile() as fp:
 | 
			
		||||
    with tempfile.NamedTemporaryFile(
 | 
			
		||||
        dir="/opt/tactical/tmp" if settings.DOCKER_BUILD else None
 | 
			
		||||
    ) as fp:
 | 
			
		||||
        with open(fp.name, "w") as f:
 | 
			
		||||
            json.dump(config, f)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -150,7 +150,7 @@ export default {
 | 
			
		||||
    // script form logic
 | 
			
		||||
    const script = props.script
 | 
			
		||||
      ? ref(Object.assign({}, props.script))
 | 
			
		||||
      : ref({ shell: "powershell", default_timeout: 90 });
 | 
			
		||||
      : ref({ shell: "powershell", default_timeout: 90, args: [] });
 | 
			
		||||
 | 
			
		||||
    if (props.clone) script.value.name = `(Copy) ${script.value.name}`;
 | 
			
		||||
    const code = ref("");
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user