diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 27acee392a4ea095d84310b7a7276de95e746054..d64b23c46ab3dc18aa34faf9fa65d5fb785a38fd 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,70 +1,44 @@
-# This file is a template, and might need editing before it works on your project.
-# To contribute improvements to CI/CD templates, please follow the Development guide at:
-# https://docs.gitlab.com/ee/development/cicd/templates.html
-# This specific template is located at:
-# https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Python.gitlab-ci.yml
-
-# Official language image. Look for the different tagged releases at:
-# https://hub.docker.com/r/library/python/tags/
+# You can override the included template(s) by including variable overrides
+# SAST customization: https://docs.gitlab.com/ee/user/application_security/sast/#customizing-the-sast-settings
+# Secret Detection customization: https://docs.gitlab.com/ee/user/application_security/secret_detection/#customizing-settings
+# Dependency Scanning customization: https://docs.gitlab.com/ee/user/application_security/dependency_scanning/#customizing-the-dependency-scanning-settings
+# Container Scanning customization: https://docs.gitlab.com/ee/user/application_security/container_scanning/#customizing-the-container-scanning-settings
+# Note that environment variables can be set in several places
+# See https://docs.gitlab.com/ee/ci/variables/#cicd-variable-precedence
 image: python:latest
-
 stages:
-  - linting
-  - testing
-  - docs
-
-# Change pip's cache directory to be inside the project directory since we can
-# only cache local items.
+- linting
+- testing
+- docs
+- test
 variables:
   PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"
-
-# Pip's cache doesn't store the python packages
-# https://pip.pypa.io/en/stable/reference/pip_install/#caching
-#
-# If you want to also cache the installed packages, you have to install
-# them in a virtualenv and cache it as well.
 cache:
-  paths:
-#    - .cache/pip  # 
-#    - venv/   #
-
-  
+  paths: 
 before_script:
-  - python --version  # For debugging
-  - pip install -r requirements.txt  # install dependencies from file
-#  - pip install virtualenv
-#  - virtualenv venv
-#  - source venv/bin/activate
-
+- python --version
+- pip install -r requirements.txt
 PEP8:
   stage: linting
-  script: 
-    - pip install flake8
-    - flake8 --count . # PEP8 linting
-
-
+  script:
+  - pip install flake8
+  - flake8 --count .
 Pylint:
   stage: linting
-  # allow_failure: true
-  script: 
-    - pip install pylint
-    - find . -type f -name '*.py' | xargs pylint -rn --rcfile='plotid/.pylintrc' # Find all python files and check the code with pylint.
-
+  script:
+  - pip install pylint
+  - find . -type f -name '*.py' | xargs pylint -rn --rcfile='plotid/.pylintrc'
 test:
   stage: testing
-  tags: 
-    - docker
+  tags:
+  - docker
   script:
-#     - python -m unittest discover -s ./tests/ -p "test*" # deprecated unittest command
-      - python tests/runner_tests.py
-  coverage: '/TOTAL.*\s+(\d+\.\d+%)$/'
-#    - pip install tox flake8  # you can also use tox
-#    - tox -e py36,flake8
-
+  - python tests/runner_tests.py
+  coverage: "/TOTAL.*\\s+(\\d+\\.\\d+%)$/"
 pages:
   stage: docs
   script:
-  - pip install -U sphinx sphinx-autoapi sphinx_rtd_theme myst-parser # sphinx_panels
+  - pip install -U sphinx sphinx-autoapi sphinx_rtd_theme myst-parser
   - cd docs
   - make html
   - mv build/html/ ../public
@@ -72,17 +46,11 @@ pages:
     paths:
     - public
   rules:
-   - if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH
-   - when: manual
-
-# Commenting out all other stages and jobs
-#run:
-#  script:
-#    - python setup.py bdist_wheel
-#    # an alternative approach is to install and run:
-#    - pip install dist/*
-#    # run the command here
-#  artifacts:
-#    paths:
-#      - dist/*.whl
-
+  - if: "$CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH"
+  - when: manual
+sast:
+  variables:
+    SAST_EXCLUDED_PATHS: spec, test, tmp
+  stage: test
+include:
+- template: Security/SAST.gitlab-ci.yml