This website requires JavaScript.
8024f32954
feat(dashboard): auto-compute risk scores + refresh button on Critical Gaps
kitos
2026-05-28 15:58:49 +02:00
45b13bccde
feat(dashboard): sort Critical Gaps by risk score instead of MITRE ID
kitos
2026-05-28 15:42:52 +02:00
2e5b47a4a2
feat(campaigns): delete campaign button + defer Jira to Activate
kitos
2026-05-28 14:36:25 +02:00
664210be3d
fix(types): add tempo_worklog_id to Worklog interface
kitos
2026-05-28 14:10:58 +02:00
d3baa9c032
feat(tests): remove Time Log, move Tempo sync to Phase Timeline
kitos
2026-05-28 14:09:16 +02:00
986e91a88a
feat(evidence): inline preview for images and text/JSON files
kitos
2026-05-28 13:49:35 +02:00
cf5332f522
fix(evidence): use @model_validator(mode='before') so evidences appear in API responses
kitos
2026-05-28 13:37:18 +02:00
2ee74bf6c9
fix(tempo): fix EU base URL, trailing space in account ID, and tempo_synced tracking
kitos
2026-05-28 12:48:22 +02:00
0830b36cd6
fix(schemas): avoid lazy-load in TestOut.model_validate
kitos
2026-05-28 12:06:34 +02:00
e623a0887d
fix(tempo,evidence): fix SystemExit crash + evidence not shown in frontend
kitos
2026-05-28 11:57:52 +02:00
0955f35015
fix(tempo,jira,tests,ui): fix 4 pending issues
kitos
2026-05-28 11:38:29 +02:00
7111debd8f
fix(evidence): proxy download + fix Jira attachment signature
kitos
2026-05-28 11:26:01 +02:00
c886b6e8bb
fix(jira,evidence,tempo,settings): 4-issue fix batch
kitos
2026-05-28 11:06:31 +02:00
d8a0b0c449
fix(jira): correct ticket hierarchy — campaigns=Epic, all tests=Task
kitos
2026-05-27 16:29:50 +02:00
27184627f8
fix(jira): standalone tests as Sub-task under OFS-20798
kitos
2026-05-27 16:19:01 +02:00
323964ed9d
fix(settings): rename Campaign Parent Ticket label to Parent Ticket
kitos
2026-05-27 13:14:48 +02:00
eeee17d260
feat(jira+tests): 5 improvements from review
kitos
2026-05-27 13:07:46 +02:00
43c8b241dc
fix(timer): treat backend timestamps as UTC to fix 2h offset
kitos
2026-05-27 11:58:29 +02:00
398e279116
feat(tempo): blue team Tempo time from pick-up, not queue entry
kitos
2026-05-27 11:50:15 +02:00
0e6cec4d07
fix(tempo): only log red team execution time, use pre-computed duration
kitos
2026-05-27 11:38:44 +02:00
44ef4129a5
fix(tempo): use search_worklogs(authorIds) in test endpoint
kitos
2026-05-27 11:25:15 +02:00
bd0586d296
fix(jira): campaign=Task, campaign tests=Sub-task, standalone tests=Task
kitos
2026-05-27 11:10:03 +02:00
84a6590e17
fix(jira): create test tickets under campaign on activation
kitos
2026-05-27 10:53:39 +02:00
69d92f500a
feat(tempo): per-user Tempo API token — same pattern as Jira token
kitos
2026-05-27 10:46:38 +02:00
2337abe55e
fix(jira): correct browse URL, rename Procedure to Proof of Concept; feat(tempo): debug endpoint + UI
kitos
2026-05-27 10:33:57 +02:00
4a64ac1c8b
fix(jira): remove priority field from issue creation — OFS project has non-standard priorities
kitos
2026-05-27 10:18:16 +02:00
f17f0a8c10
feat(jira): implement full ticket hierarchy for campaigns and tests
kitos
2026-05-27 10:13:09 +02:00
5f6a098e6b
fix(jira): fallback connected_as to auth email, improve 401 error detail
kitos
2026-05-26 18:04:51 +02:00
a04d5308ab
fix(jira): always return HTTP 200 from jira-test + strip trailing slash
kitos
2026-05-26 17:42:12 +02:00
48a936d426
fix(jira): use model_validator(after) for jira_token_set + timeout on test
kitos
2026-05-26 17:36:35 +02:00
513a7b488b
fix(settings): update cache immediately on save instead of invalidating
kitos
2026-05-26 17:20:40 +02:00
fd4a625760
fix(settings): use useEffect for jira field init, fix token save UX
kitos
2026-05-26 17:04:22 +02:00
217c4c88b2
feat(jira): add editable jira_email field per user
kitos
2026-05-26 16:40:46 +02:00
f316a249cc
feat(settings): Jira config UI — admin config tab + per-user token in Profile
kitos
2026-05-26 16:23:24 +02:00
2675a4b7c2
fix(jira): correct down_revision id in b042 migration
kitos
2026-05-26 15:59:23 +02:00
c780ad1e78
feat(jira): per-user auth, lifecycle hooks, admin config endpoints
kitos
2026-05-26 15:56:28 +02:00
8bed3abc08
docs(wiki): add wiki creation script for Gitea
kitos
2026-05-22 14:30:21 +02:00
c45eed2801
test(qa): fix all test failures - 77/77 passing
kitos
2026-05-22 11:05:24 +02:00
cba9bfbab9
security(webhooks): restrict all webhook endpoints to admin-only
kitos
2026-05-22 10:56:15 +02:00
43ef4ea6a0
test(qa): add automated QA runner for all roles and access control
kitos
2026-05-22 10:30:54 +02:00
6f4901b611
security: fix 6 vulnerabilities identified in SDLC audit
kitos
2026-05-22 09:46:29 +02:00
f36c633d16
fix(scripts): fix verify_gaps.py Gap 1 check — call start_scheduler() before checking registered jobs
kitos
2026-05-21 17:28:34 +02:00
fc16675cf2
fix(alerts): import User model in operational_alert_service to fix NameError in _dispatch_inapp_notifications
kitos
2026-05-21 17:11:35 +02:00
d05aa94a01
test: gap verification script for Phase 13 gaps
kitos
2026-05-21 16:08:45 +02:00
97349a1d13
feat(alerts): close Phase 13 gaps — hourly job + webhook + in-app notifications
kitos
2026-05-21 15:57:41 +02:00
cfbf6a6ede
fix(dashboard): make KpiBlock.snapshot_id Optional to handle missing today snapshot
kitos
2026-05-21 15:27:26 +02:00
d4b147da7c
feat(alerts): Phase 13 — Operational Alert Engine
kitos
2026-05-21 15:25:55 +02:00
d81fc04b8f
feat(enterprise): Phase 14 — API Key Management + SSO/SAML 2.0
kitos
2026-05-20 16:43:57 +02:00
ab591d30c4
feat(dashboard): Phase 13 — Executive Dashboard
kitos
2026-05-20 16:20:21 +02:00
41a0c536bb
fix(risk): fix remaining t.technique_id → t.mitre_id in get_recommendations
kitos
2026-05-20 16:11:48 +02:00
7fae4783a2
fix(risk): Technique uses status_global and mitre_id (not status/technique_id)
kitos
2026-05-20 15:59:26 +02:00
084ea4c0b2
fix(risk): correct TechniqueConfidenceScore fields, TechniqueStatus values, Test.result usage
kitos
2026-05-20 15:58:03 +02:00
362a17aa1b
feat(risk): Phase 12 — Risk Intelligence [FASE-12]
kitos
2026-05-20 15:31:38 +02:00
0febbc67f1
fix(qa11): use relative version checks for idempotent runs
kitos
2026-05-20 15:26:38 +02:00
852adb6e4d
fix(qa11): make QA idempotent with cleanup step + robust error handling
kitos
2026-05-20 15:25:46 +02:00
4fba4152d9
fix(knowledge): use EntityNotFoundError/DuplicateEntityError instead of DomainError(status_code=)
kitos
2026-05-20 15:21:36 +02:00
9546ef8bc8
fix(qa11): use correct production credentials
kitos
2026-05-20 15:14:58 +02:00
e550ebb30f
fix(qa11): use production admin credentials
kitos
2026-05-20 14:31:46 +02:00
5e18db48d3
fix(qa11): fix get_token to use form data + fix check() bug
kitos
2026-05-20 14:27:41 +02:00
4f5370db89
feat(knowledge): Phase 11 — Knowledge Management (Playbooks + Lessons Learned) [FASE-11]
kitos
2026-05-20 13:39:05 +02:00
080ce56de7
feat(attack-paths): Phase 10 — Attack Paths & Advanced Purple Team [FASE-10]
kitos
2026-05-20 13:11:01 +02:00
4ece2293ec
fix(ownership): validate reason+priority in QueueItemCreate to return 422 not 500
kitos
2026-05-19 17:57:34 +02:00
f97b9e96b7
fix(migration): rewrite b035 with raw SQL to avoid SQLAlchemy DDL hook
kitos
2026-05-19 16:54:32 +02:00
36fe4aa250
fix(migration): use DO/EXCEPTION for idempotent enum creation in b035
kitos
2026-05-19 16:51:22 +02:00
a8b4518485
feat(ownership): Phase 9 — Ownership & Daily Operations [FASE-9]
kitos
2026-05-19 16:48:47 +02:00
89a951c2a2
fix(decay-engine): strip tzinfo from validated_at before datetime arithmetic
kitos
2026-05-19 16:35:02 +02:00
9a020f97ef
fix(detection-lifecycle): fix timezone naive/aware mismatch and duplicate technique mapping
kitos
2026-05-19 16:29:04 +02:00
1fe150963c
feat(dlm): Phase 8 — Detection Lifecycle Management [FASE-8]
kitos
2026-05-19 15:45:16 +02:00
0e1b8e2b39
feat(settings): Settings page with email, webhooks, notifications, profile [FASE-8]
kitos
2026-05-19 15:10:31 +02:00
93ebcf2b86
fix(users): add GET /users/me endpoint for current user profile
kitos
2026-05-19 14:04:42 +02:00
c1e06d4c0a
feat(phases): implement webhooks (6.1), email (7.1), user preferences (7.2)
kitos
2026-05-19 13:40:45 +02:00
d6df7fdc09
fix(audit): show UTC suffix on timestamp display
kitos
2026-05-19 13:05:08 +02:00
7312f9664b
fix(qa): CSP hash, remove pencil icon, fetch full template on modal open
kitos
2026-05-19 12:53:02 +02:00
63da22b77e
fix(qa): 5 bug fixes — audit dates, CSP, template modal, MITRE sync timeout, data source auto-sync
kitos
2026-05-19 12:05:35 +02:00
fd476ce460
fix(audit): timestamp Optional para evitar 500 con registros NULL
kitos
2026-05-19 10:09:47 +02:00
60183f704c
fix(deploy): pasa SECURE_COOKIES al backend en docker-compose.prod.yml
kitos
2026-05-19 09:55:00 +02:00
2495423790
fix(auth,frontend): secure cookie HTTP fix, technique links y CSP
kitos
2026-05-19 09:28:39 +02:00
1249391ef0
feat(snapshots): evolution API, tactic breakdown and dashboard trend chart [FASE-5.2]
Kitos
2026-05-18 15:07:12 +02:00
05b221a22d
feat(scoring): composite recency decay and severity weights persisted in DB [FASE-5.1]
Kitos
2026-05-18 15:07:12 +02:00
2ee59d4e18
test(intel): verify OSINT enrichment and stale coverage detection [FASE-4]
Kitos
2026-05-18 14:50:31 +02:00
bdeeed54e1
feat(compliance): data classification fields and retention policies job [FASE-3.5]
Kitos
2026-05-18 14:17:29 +02:00
3e854b7b79
feat(security): extend rate limits on sync, tests, evidence and reports [FASE-3.4]
Kitos
2026-05-18 14:16:53 +02:00
5b29c2fc56
fix(api): return 422 for validation errors with serializable payloads [FASE-3.3]
Kitos
2026-05-18 14:16:53 +02:00
6b076f52b2
feat(auth): audit login success and failure attempts [FASE-3.2]
Kitos
2026-05-18 14:16:53 +02:00
c0aff4cbeb
feat(audit): enhanced audit trail with IP, user-agent and integrity hash [FASE-3.1]
Kitos
2026-05-18 14:16:18 +02:00
a8a24b5429
fix(metrics): correct never-tested technique query [FASE-2.6]
Kitos
2026-05-18 14:00:48 +02:00
b6f23f385d
fix(analytics): restrict operators endpoint to admin [FASE-2.5]
Kitos
2026-05-18 14:00:47 +02:00
6ab950ec42
feat(reports): add quarterly and technique download routes [FASE-2.4]
Kitos
2026-05-18 14:00:46 +02:00
ed2c34ef28
feat(reports): extend report generation service [FASE-2.3]
Kitos
2026-05-18 14:00:42 +02:00
96fdd9fa85
feat(reports): add quarterly and technique HTML templates [FASE-2.2]
Kitos
2026-05-18 14:00:40 +02:00
c28a47c43b
test(reports): add ReportEngine unit tests [FASE-2.1]
Kitos
2026-05-18 14:00:37 +02:00
0d4c404f08
test(jira): add hourly sync job tests [FASE-1.7]
Kitos
2026-05-18 13:36:26 +02:00
03d7d1cc80
feat(tempo): harden worklog sync and add tests [FASE-1.4]
Kitos
2026-05-18 13:36:26 +02:00
b8c9c4ac6a
test(jira): add hourly sync job tests [FASE-1.7]
Kitos
2026-05-18 13:33:40 +02:00
73867d3990
test(jira): add jira_service unit tests [FASE-1.2]
Kitos
2026-05-18 13:33:27 +02:00
f45b7ea926
ci: add GitHub Actions lint and test pipeline [FASE-0.6]
Kitos
2026-05-18 13:19:29 +02:00
6b28934f05
test: stabilize Phase 0 API and workflow tests [FASE-0.4]
Kitos
2026-05-18 13:19:27 +02:00
6f35d85a97
feat(db): add Phase 0 composite indexes migration [FASE-0.3]
Kitos
2026-05-18 13:19:20 +02:00
c5eb6f6dc1
feat(auth): move JWT blacklist to Redis with TTL [FASE-0.2]
Kitos
2026-05-18 13:19:15 +02:00
9b70655b7e
feat(infra): add Redis service and client for Phase 0 [FASE-0.1]
Kitos
2026-05-18 13:18:45 +02:00