Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
21 changes: 13 additions & 8 deletions .env.development.example
Original file line number Diff line number Diff line change
@@ -1,12 +1,17 @@
DEBUG=True
SECRET_KEY=dev-secret-key
ALLOWED_HOSTS=127.0.0.1,localhost
DATABASE_URL=postgresql://isms:isms@db:5432/isms
RUST_BACKEND_BIND=0.0.0.0:9000
RUST_BACKEND_URL=http://app:9000
ISCY_HTTP_PORT=9000
ISCY_MEDIA_ROOT=/app/media

POSTGRES_DB=isms
POSTGRES_USER=isms
POSTGRES_PASSWORD=isms
RUN_MIGRATIONS=1
RUN_SEEDS=1
RUN_COLLECTSTATIC=0
APP_SERVER=runserver
LOCAL_LLM_ENABLED=False

NVD_API_BASE_URL=https://services.nvd.nist.gov
NVD_API_KEY=

LOCAL_LLM_MODEL_NAME=iscy-rust-llm
LOCAL_LLM_N_CTX=8192
LOCAL_LLM_N_THREADS=4
LOCAL_LLM_GPU_LAYERS=0
62 changes: 13 additions & 49 deletions .env.example
Original file line number Diff line number Diff line change
@@ -1,53 +1,17 @@
DEBUG=True
SECRET_KEY=change-me
ALLOWED_HOSTS=127.0.0.1,localhost
CSRF_TRUSTED_ORIGINS=
USE_X_FORWARDED_HOST=False
TRUST_X_FORWARDED_PROTO=False
SECURE_SSL_REDIRECT=False
SESSION_COOKIE_SECURE=False
CSRF_COOKIE_SECURE=False
SECURE_HSTS_SECONDS=0
SECURE_HSTS_INCLUDE_SUBDOMAINS=False
SECURE_HSTS_PRELOAD=False

LOCAL_LLM_ENABLED=False
LOCAL_LLM_BACKEND=rust_service
LOCAL_LLM_MODEL_NAME=Qwen3-8B-GGUF
LOCAL_LLM_MODEL_PATH=
LOCAL_LLM_RUST_URL=http://rust-backend:9000
RUST_BACKEND_URL=http://rust-backend:9000
RUST_ONLY_MODE=True
RISK_SCORING_BACKEND=rust_service
GUIDANCE_SCORING_BACKEND=rust_service
REPORT_SUMMARY_BACKEND=rust_service
REPORT_SNAPSHOT_BACKEND=rust_service
DASHBOARD_SUMMARY_BACKEND=rust_service
CATALOG_BACKEND=rust_service
REQUIREMENTS_BACKEND=rust_service
ASSET_INVENTORY_BACKEND=rust_service
PROCESS_REGISTER_BACKEND=rust_service
RISK_REGISTER_BACKEND=rust_service
EVIDENCE_REGISTER_BACKEND=rust_service
ASSESSMENT_REGISTER_BACKEND=rust_service
ROADMAP_REGISTER_BACKEND=rust_service
WIZARD_RESULTS_BACKEND=rust_service
IMPORT_CENTER_BACKEND=rust_service
PRODUCT_SECURITY_BACKEND=rust_service
RUST_STRICT_MODE=True
LOCAL_LLM_N_CTX=8192
LOCAL_LLM_N_THREADS=4
LOCAL_LLM_GPU_LAYERS=0
LOCAL_LLM_VERBOSE_NATIVE=False
LOCAL_LLM_TEST_MAX_TOKENS=96
NVD_BASE_URL=https://services.nvd.nist.gov
NVD_API_KEY=

LOCAL_LLM_HF_REPO_ID=MaziyarPanahi/Qwen3-8B-GGUF
LOCAL_LLM_HF_FILENAME=Qwen3-8B.Q4_K_M.gguf
LOCAL_LLM_TARGET_DIR=models
DATABASE_URL=sqlite:///db.sqlite3
RUST_BACKEND_BIND=127.0.0.1:9000
RUST_BACKEND_URL=http://127.0.0.1:9000
ISCY_HTTP_PORT=9000
ISCY_MEDIA_ROOT=media

POSTGRES_DB=isms
POSTGRES_USER=isms
POSTGRES_PASSWORD=isms
DATABASE_URL=sqlite:///db.sqlite3

NVD_API_BASE_URL=https://services.nvd.nist.gov
NVD_API_KEY=

LOCAL_LLM_MODEL_NAME=iscy-rust-llm
LOCAL_LLM_N_CTX=8192
LOCAL_LLM_N_THREADS=4
LOCAL_LLM_GPU_LAYERS=0
45 changes: 11 additions & 34 deletions .env.production.example
Original file line number Diff line number Diff line change
@@ -1,43 +1,20 @@
DEBUG=False
SECRET_KEY=replace-me-with-a-long-random-secret
ALLOWED_HOSTS=localhost,127.0.0.1
CSRF_TRUSTED_ORIGINS=http://localhost,http://127.0.0.1
USE_X_FORWARDED_HOST=True
TRUST_X_FORWARDED_PROTO=False
SECURE_SSL_REDIRECT=False
SESSION_COOKIE_SECURE=False
CSRF_COOKIE_SECURE=False
SECURE_HSTS_SECONDS=0
SECURE_HSTS_INCLUDE_SUBDOMAINS=False
SECURE_HSTS_PRELOAD=False
DATABASE_URL=postgresql://isms:isms@db:5432/isms
DATABASE_URL=postgresql://isms:change-me@db:5432/isms
RUST_BACKEND_BIND=0.0.0.0:9000
RUST_BACKEND_URL=http://app:9000
ISCY_MEDIA_ROOT=/app/media

POSTGRES_DB=isms
POSTGRES_USER=isms
POSTGRES_PASSWORD=change-me
RUN_MIGRATIONS=1
RUN_SEEDS=0
RUN_COLLECTSTATIC=1
APP_SERVER=gunicorn
GUNICORN_WORKERS=3
GUNICORN_TIMEOUT=120

NGINX_HOST=localhost
NGINX_CLIENT_MAX_BODY_SIZE=50m
NGINX_PROXY_READ_TIMEOUT=300
LOCAL_LLM_ENABLED=False
LOCAL_LLM_BACKEND=rust_service
LOCAL_LLM_MODEL_NAME=Qwen3-8B-GGUF
LOCAL_LLM_MODEL_PATH=
LOCAL_LLM_RUST_URL=http://rust-backend:9000
RUST_BACKEND_URL=http://rust-backend:9000
RISK_SCORING_BACKEND=rust_service
GUIDANCE_SCORING_BACKEND=rust_service
REPORT_SUMMARY_BACKEND=rust_service
RUST_STRICT_MODE=True

NVD_API_BASE_URL=https://services.nvd.nist.gov
NVD_API_KEY=

LOCAL_LLM_MODEL_NAME=iscy-rust-llm
LOCAL_LLM_N_CTX=8192
LOCAL_LLM_N_THREADS=8
LOCAL_LLM_GPU_LAYERS=0
LOCAL_LLM_VERBOSE_NATIVE=False
LOCAL_LLM_HF_REPO_ID=MaziyarPanahi/Qwen3-8B-GGUF
LOCAL_LLM_HF_FILENAME=Qwen3-8B.Q4_K_M.gguf
LOCAL_LLM_TARGET_DIR=models
NVD_API_KEY=
32 changes: 14 additions & 18 deletions .env.stage.example
Original file line number Diff line number Diff line change
@@ -1,24 +1,20 @@
DEBUG=False
SECRET_KEY=replace-me-stage-secret
ALLOWED_HOSTS=stage.localhost,localhost,127.0.0.1
CSRF_TRUSTED_ORIGINS=http://stage.localhost,http://127.0.0.1:8080
USE_X_FORWARDED_HOST=True
TRUST_X_FORWARDED_PROTO=False
SECURE_SSL_REDIRECT=False
SESSION_COOKIE_SECURE=False
CSRF_COOKIE_SECURE=False
SECURE_HSTS_SECONDS=0
SECURE_HSTS_INCLUDE_SUBDOMAINS=False
SECURE_HSTS_PRELOAD=False
DATABASE_URL=postgresql://isms:isms@db:5432/isms
DATABASE_URL=postgresql://isms:change-me@db:5432/isms
RUST_BACKEND_BIND=0.0.0.0:9000
RUST_BACKEND_URL=http://app:9000
ISCY_MEDIA_ROOT=/app/media

POSTGRES_DB=isms
POSTGRES_USER=isms
POSTGRES_PASSWORD=change-me
RUN_MIGRATIONS=1
RUN_SEEDS=0
RUN_COLLECTSTATIC=1
APP_SERVER=gunicorn

NGINX_HOST=stage.localhost
NGINX_CLIENT_MAX_BODY_SIZE=50m
NGINX_PROXY_READ_TIMEOUT=300
LOCAL_LLM_ENABLED=False

NVD_API_BASE_URL=https://services.nvd.nist.gov
NVD_API_KEY=

LOCAL_LLM_MODEL_NAME=iscy-rust-llm
LOCAL_LLM_N_CTX=8192
LOCAL_LLM_N_THREADS=8
LOCAL_LLM_GPU_LAYERS=0
58 changes: 0 additions & 58 deletions Dockerfile

This file was deleted.

29 changes: 8 additions & 21 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,26 +2,17 @@ COMPOSE_DEV=docker compose
COMPOSE_STAGE=docker compose -f docker-compose.yml -f docker-compose.stage.yml
COMPOSE_PROD=docker compose -f docker-compose.yml -f docker-compose.prod.yml
COMPOSE_PROD_LLM=docker compose -f docker-compose.yml -f docker-compose.prod.yml -f docker-compose.llm.yml
PYTHON_BIN=$(shell if [ -x .venv/bin/python ]; then echo .venv/bin/python; else echo python; fi)
TEAM_TEST_ENV=RUST_ONLY_MODE=False GUIDANCE_SCORING_BACKEND=local RISK_SCORING_BACKEND=local REPORT_SUMMARY_BACKEND=local REPORT_SNAPSHOT_BACKEND=local DASHBOARD_SUMMARY_BACKEND=local CATALOG_BACKEND=local REQUIREMENTS_BACKEND=local ASSET_INVENTORY_BACKEND=local PROCESS_REGISTER_BACKEND=local RISK_REGISTER_BACKEND=local EVIDENCE_REGISTER_BACKEND=local ASSESSMENT_REGISTER_BACKEND=local ROADMAP_REGISTER_BACKEND=local WIZARD_RESULTS_BACKEND=local IMPORT_CENTER_BACKEND=local PRODUCT_SECURITY_BACKEND=local RUST_BACKEND_URL=
RUST_BACKEND_MANIFEST=rust/iscy-backend/Cargo.toml

.PHONY: dev-up dev-down stage-up stage-down prod-up prod-down prod-up-llm llm-download backup restore health handbook-pdf local-bootstrap local-check local-test team-test docker-check docker-smoke easy-start prod-readiness rust-build rust-test rust-run rust-init rust-smoke canary-daily rust-import-collection rust-sync-recent rust-canary-parity rust-canary-trend rust-canary-import
.PHONY: dev-up dev-down stage-up stage-down prod-up prod-down prod-up-llm llm-download backup restore health local-bootstrap local-check local-test team-test docker-check docker-smoke easy-start prod-readiness rust-build rust-test rust-run rust-init rust-smoke canary-daily rust-import-collection rust-sync-recent rust-canary-parity rust-canary-trend rust-canary-import

local-bootstrap:
python3 -m venv .venv
mkdir -p static media staticfiles models
. .venv/bin/activate && python -m ensurepip --upgrade && python -m pip install --upgrade pip setuptools wheel && python -m pip install -r requirements.txt
local-bootstrap: rust-init

local-check:
. .venv/bin/activate && python manage.py check
local-check: rust-test

local-test:
. .venv/bin/activate && python manage.py test apps.core apps.reports apps.product_security
local-test: rust-test

team-test:
$(TEAM_TEST_ENV) $(PYTHON_BIN) manage.py check
$(TEAM_TEST_ENV) $(PYTHON_BIN) manage.py test apps.core apps.reports apps.product_security apps.guidance apps.dashboard apps.catalog apps.requirements_app apps.assets_app apps.processes apps.risks apps.evidence apps.assessments apps.roadmap apps.wizard apps.import_center apps.vulnerability_intelligence
team-test: rust-test rust-smoke

docker-check:
$(COMPOSE_DEV) config >/dev/null
Expand All @@ -30,9 +21,8 @@ docker-check:
$(COMPOSE_PROD_LLM) config >/dev/null

docker-smoke:
$(COMPOSE_DEV) up -d db
$(COMPOSE_DEV) run --rm web python manage.py migrate
$(COMPOSE_DEV) run --rm web python manage.py check
$(COMPOSE_DEV) up -d db app
$(COMPOSE_DEV) exec app wget -q -O /dev/null http://127.0.0.1:9000/health/live
$(COMPOSE_DEV) down

easy-start:
Expand Down Expand Up @@ -152,7 +142,4 @@ restore:
ENV_FILE=.env.production ./scripts/restore_compose.sh $(BACKUP)

health:
curl -fsS http://127.0.0.1/health/ready/

handbook-pdf:
python3 scripts/export_iscy_handbook_pdf.py
curl -fsS http://127.0.0.1:9000/health/ready
Loading
Loading