diff --git a/.gitignore b/.gitignore index 379ef0b2a8..be9a500782 100644 --- a/.gitignore +++ b/.gitignore @@ -50,4 +50,4 @@ coverage.xml /.env # post run dev -integrations/malware_tools_analyzers/clamav/sigs \ No newline at end of file +integrations/malware_tools_analyzers/clamav/sigsintel_owl/settings/local.py diff --git a/api_app/serializers/elastic.py b/api_app/serializers/elastic.py index 6f9fde5c54..bd76ecf4e8 100644 --- a/api_app/serializers/elastic.py +++ b/api_app/serializers/elastic.py @@ -14,9 +14,9 @@ supported_plugin_name_list = [ - AnalyzerConfig.plugin_name.lower(), - ConnectorConfig.plugin_name.lower(), - PivotConfig.plugin_name.lower(), + "analyzer", + "connector", + "pivot", ] diff --git a/api_app/serializers/job.py b/api_app/serializers/job.py index 4e600cf82b..87b07e596e 100644 --- a/api_app/serializers/job.py +++ b/api_app/serializers/job.py @@ -598,6 +598,7 @@ class Meta: "received_request_time", "finished_analysis_time", "process_time", + "tlp", "warnings", "errors", ) diff --git a/docker/infrastructure.yml b/docker/infrastructure.yml new file mode 100644 index 0000000000..b058b7d893 --- /dev/null +++ b/docker/infrastructure.yml @@ -0,0 +1,30 @@ +services: + postgres: + image: postgres:14-alpine + container_name: intelowl_postgres + restart: unless-stopped + env_file: + - env_file_postgres + volumes: + - postgres_data:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U user"] + interval: 5s + timeout: 5s + retries: 5 + + redis: + image: redis:7-alpine + container_name: intelowl_redis + restart: unless-stopped + volumes: + - redis_data:/data + healthcheck: + test: ["CMD", "redis-cli", "ping"] + interval: 5s + timeout: 3s + retries: 5 + +volumes: + postgres_data: + redis_data: \ No newline at end of file diff --git a/frontend/src/components/common/TLPTag.jsx b/frontend/src/components/common/TLPTag.jsx index 45bb056114..38bf87d8c4 100644 --- a/frontend/src/components/common/TLPTag.jsx +++ b/frontend/src/components/common/TLPTag.jsx @@ -7,11 +7,17 @@ import { TlpChoices } from "../../constants/advancedSettingsConst"; export function TLPTag(props) { const { value, ...rest } = props; + + // Handle case where value is undefined/null + if (!value) { + return No TLP; + } + const badgeId = `tlptag-badge__${value}`; const color = TLPColors?.[value] || "#dfe1e2"; const tooltipText = TLPDescriptions?.[value] || "invalid"; - return value ? ( + return ( - ) : null; + ); } TLPTag.propTypes = { diff --git a/frontend/src/components/jobs/result/JobInfoCard.jsx b/frontend/src/components/jobs/result/JobInfoCard.jsx index 9ff991b6c9..145076faaf 100644 --- a/frontend/src/components/jobs/result/JobInfoCard.jsx +++ b/frontend/src/components/jobs/result/JobInfoCard.jsx @@ -34,6 +34,7 @@ export function JobInfoCard({ job, relatedInvestigationNumber }) { const [isOpenJobInfoCard, setIsOpenJobInfoCard] = React.useState(false); const [isOpenJobWarnings, setIsOpenJobWarnings] = React.useState(false); const [isOpenJobErrors, setIsOpenJobErrors] = React.useState(false); + const investigationTimeRange = 30; const endDateRelatedInvestigation = new Date(); @@ -43,7 +44,6 @@ export function JobInfoCard({ job, relatedInvestigationNumber }) { startDateRelatedInvestigation.setDate( startDateRelatedInvestigation.getDate() - investigationTimeRange, ); - return (
@@ -195,14 +195,13 @@ export function JobInfoCard({ job, relatedInvestigationNumber }) { , ], [ "Tags", job.tags.length ? ( job.tags.map((tag) => ( - + )) ) : ( None diff --git a/intel_owl/settings/__init__.py b/intel_owl/settings/__init__.py index 2e38d51f2a..552385a1a8 100644 --- a/intel_owl/settings/__init__.py +++ b/intel_owl/settings/__init__.py @@ -76,3 +76,16 @@ from .security import * # lgtm [py/polluting-import] from .storage import * # lgtm [py/polluting-import] from .websocket import * # lgtm [py/polluting-import] + +# Load local development settings if available (overrides above) +try: + from .local import * # lgtm [py/polluting-import] +except ImportError: + pass + + +# Load local development settings if available (overrides above) +try: + from .local import * # lgtm [py/polluting-import] +except ImportError: + pass