Commit Graph

  • dd9d817d5d fix(jira): correct ticket hierarchy — campaigns=Epic, all tests=Task kitos 2026-05-27 16:29:50 +02:00
  • cd9bdc7399 fix(jira): standalone tests as Sub-task under OFS-20798 kitos 2026-05-27 16:19:01 +02:00
  • b5a81b69ed fix(settings): rename Campaign Parent Ticket label to Parent Ticket kitos 2026-05-27 13:14:48 +02:00
  • aaff54f432 feat(jira+tests): 5 improvements from review kitos 2026-05-27 13:07:46 +02:00
  • e2b8e7e207 fix(timer): treat backend timestamps as UTC to fix 2h offset kitos 2026-05-27 11:58:29 +02:00
  • 3b20911c93 feat(tempo): blue team Tempo time from pick-up, not queue entry kitos 2026-05-27 11:50:15 +02:00
  • 851100d8ec fix(tempo): only log red team execution time, use pre-computed duration kitos 2026-05-27 11:38:44 +02:00
  • 06e45b098c fix(tempo): use search_worklogs(authorIds) in test endpoint kitos 2026-05-27 11:25:15 +02:00
  • 8968382731 fix(jira): campaign=Task, campaign tests=Sub-task, standalone tests=Task kitos 2026-05-27 11:10:03 +02:00
  • e9a3985a1f fix(jira): create test tickets under campaign on activation kitos 2026-05-27 10:53:39 +02:00
  • 3d8f445d1b feat(tempo): per-user Tempo API token — same pattern as Jira token kitos 2026-05-27 10:46:38 +02:00
  • 8577588a21 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
  • 001cefb882 fix(jira): remove priority field from issue creation — OFS project has non-standard priorities kitos 2026-05-27 10:18:16 +02:00
  • 1ce427db88 feat(jira): implement full ticket hierarchy for campaigns and tests kitos 2026-05-27 10:13:09 +02:00
  • 95b4c4ea65 fix(jira): fallback connected_as to auth email, improve 401 error detail kitos 2026-05-26 18:04:51 +02:00
  • 174b7e8d24 fix(jira): always return HTTP 200 from jira-test + strip trailing slash kitos 2026-05-26 17:42:12 +02:00
  • d307039a41 fix(jira): use model_validator(after) for jira_token_set + timeout on test kitos 2026-05-26 17:36:35 +02:00
  • aaa344ab79 fix(settings): update cache immediately on save instead of invalidating kitos 2026-05-26 17:20:40 +02:00
  • 1f08eb014b fix(settings): use useEffect for jira field init, fix token save UX kitos 2026-05-26 17:04:22 +02:00
  • e08d8a9beb feat(jira): add editable jira_email field per user kitos 2026-05-26 16:40:46 +02:00
  • e4342e1c3f feat(settings): Jira config UI — admin config tab + per-user token in Profile kitos 2026-05-26 16:23:24 +02:00
  • d3831b8ed9 fix(jira): correct down_revision id in b042 migration kitos 2026-05-26 15:59:23 +02:00
  • 87af1735ce feat(jira): per-user auth, lifecycle hooks, admin config endpoints kitos 2026-05-26 15:56:28 +02:00
  • f3109644cb docs(wiki): add wiki creation script for Gitea kitos 2026-05-22 14:30:21 +02:00
  • ee1c773073 test(qa): fix all test failures - 77/77 passing kitos 2026-05-22 11:05:24 +02:00
  • a294300052 security(webhooks): restrict all webhook endpoints to admin-only kitos 2026-05-22 10:56:15 +02:00
  • f72287984c test(qa): add automated QA runner for all roles and access control kitos 2026-05-22 10:30:54 +02:00
  • 8a51f98631 security: fix 6 vulnerabilities identified in SDLC audit kitos 2026-05-22 09:46:29 +02:00
  • 8e7ee1494e 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
  • 6f24d340d2 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
  • da89a9ae51 test: gap verification script for Phase 13 gaps kitos 2026-05-21 16:08:45 +02:00
  • 6665efd276 feat(alerts): close Phase 13 gaps — hourly job + webhook + in-app notifications kitos 2026-05-21 15:57:41 +02:00
  • 37f2d6daa6 fix(dashboard): make KpiBlock.snapshot_id Optional to handle missing today snapshot kitos 2026-05-21 15:27:26 +02:00
  • f2787bf860 feat(alerts): Phase 13 — Operational Alert Engine kitos 2026-05-21 15:25:55 +02:00
  • 21ed939569 feat(enterprise): Phase 14 — API Key Management + SSO/SAML 2.0 kitos 2026-05-20 16:43:57 +02:00
  • 3c077f971e feat(dashboard): Phase 13 — Executive Dashboard kitos 2026-05-20 16:20:21 +02:00
  • d9292fb3ff fix(risk): fix remaining t.technique_id → t.mitre_id in get_recommendations kitos 2026-05-20 16:11:48 +02:00
  • 6fad769c13 fix(risk): Technique uses status_global and mitre_id (not status/technique_id) kitos 2026-05-20 15:59:26 +02:00
  • d1443d1ffa fix(risk): correct TechniqueConfidenceScore fields, TechniqueStatus values, Test.result usage kitos 2026-05-20 15:58:03 +02:00
  • 9d0cb6d67d feat(risk): Phase 12 — Risk Intelligence [FASE-12] kitos 2026-05-20 15:31:38 +02:00
  • 3f174e7d89 fix(qa11): use relative version checks for idempotent runs kitos 2026-05-20 15:26:38 +02:00
  • 6c3f00f6e6 fix(qa11): make QA idempotent with cleanup step + robust error handling kitos 2026-05-20 15:25:46 +02:00
  • ed579fb8f7 fix(knowledge): use EntityNotFoundError/DuplicateEntityError instead of DomainError(status_code=) kitos 2026-05-20 15:21:36 +02:00
  • 612dec7a93 fix(qa11): use correct production credentials kitos 2026-05-20 15:14:58 +02:00
  • a138c7a8ed fix(qa11): use production admin credentials kitos 2026-05-20 14:31:46 +02:00
  • 6c4517c7f3 fix(qa11): fix get_token to use form data + fix check() bug kitos 2026-05-20 14:27:41 +02:00
  • dd1f0e472f feat(knowledge): Phase 11 — Knowledge Management (Playbooks + Lessons Learned) [FASE-11] kitos 2026-05-20 13:39:05 +02:00
  • 8c73377571 feat(attack-paths): Phase 10 — Attack Paths & Advanced Purple Team [FASE-10] kitos 2026-05-20 13:11:01 +02:00
  • ab50bcd90e fix(ownership): validate reason+priority in QueueItemCreate to return 422 not 500 kitos 2026-05-19 17:57:34 +02:00
  • b78593ca10 fix(migration): rewrite b035 with raw SQL to avoid SQLAlchemy DDL hook kitos 2026-05-19 16:54:32 +02:00
  • 0b81580b44 fix(migration): use DO/EXCEPTION for idempotent enum creation in b035 kitos 2026-05-19 16:51:22 +02:00
  • 95b46a95a8 feat(ownership): Phase 9 — Ownership & Daily Operations [FASE-9] kitos 2026-05-19 16:48:47 +02:00
  • b493f92f75 fix(decay-engine): strip tzinfo from validated_at before datetime arithmetic kitos 2026-05-19 16:35:02 +02:00
  • 61c26ddd0f fix(detection-lifecycle): fix timezone naive/aware mismatch and duplicate technique mapping kitos 2026-05-19 16:29:04 +02:00
  • 634abc289b feat(dlm): Phase 8 — Detection Lifecycle Management [FASE-8] kitos 2026-05-19 15:45:16 +02:00
  • 519ddfb7a0 feat(settings): Settings page with email, webhooks, notifications, profile [FASE-8] kitos 2026-05-19 15:10:31 +02:00
  • 7009fcabbf fix(users): add GET /users/me endpoint for current user profile kitos 2026-05-19 14:04:42 +02:00
  • b714b466c8 feat(phases): implement webhooks (6.1), email (7.1), user preferences (7.2) kitos 2026-05-19 13:40:45 +02:00
  • ca17675253 fix(audit): show UTC suffix on timestamp display kitos 2026-05-19 13:05:08 +02:00
  • 9552ba2f14 fix(qa): CSP hash, remove pencil icon, fetch full template on modal open kitos 2026-05-19 12:53:02 +02:00
  • c172a8af00 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
  • 83b74c5262 fix(audit): timestamp Optional para evitar 500 con registros NULL kitos 2026-05-19 10:09:47 +02:00
  • d6fce0bc4e fix(deploy): pasa SECURE_COOKIES al backend en docker-compose.prod.yml kitos 2026-05-19 09:55:00 +02:00
  • cdb5055193 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
  • 821c4ac5ec test(jira): add JiraLink model and jira_service tests [FASE-1.1] kitos 2026-05-18 12:02:21 +02:00
  • abef2a45e0 fix: production detection only triggers on AEGIS_ENV=production, not SECRET_KEY presence kitos 2026-02-20 17:20:48 +01:00
  • 309b3bc02d docs: finalize ARCHITECTURE.md with complete layered structure and zero remaining tech debt kitos 2026-02-20 16:16:22 +01:00
  • 0148bf28dc chore: clean repo for public release, remove internal audit docs and plan artifacts, update README kitos 2026-02-20 16:15:26 +01:00
  • 79a4772ab5 feat: make heatmap layers extensible via LayerRegistry (OCP) kitos 2026-02-20 16:07:36 +01:00
  • a9255e15ce refactor: remove db.commit() from audit_service.log_action, all callers use UoW kitos 2026-02-20 15:33:23 +01:00
  • 0c526c48f9 docs: update ARCHITECTURE.md, ARCHITECTURAL_ANALYSIS.md, and skill file with Tier 1-4 changes kitos 2026-02-20 15:14:07 +01:00
  • 0d211d5156 feat: add ThreatActorEntity domain entity with coverage analysis (Tier 4) kitos 2026-02-20 15:02:38 +01:00
  • 14d995b40c refactor: remove db.commit() from business services, callers use UnitOfWork (Tier 3) kitos 2026-02-20 14:42:20 +01:00
  • 339d669498 feat: move all remaining inline logic from routers to services (Tier 2) kitos 2026-02-20 14:34:24 +01:00
  • 9e22fde746 feat: extract advanced_metrics, analytics, test_templates, and auth to services (Tier 1 complete) kitos 2026-02-20 14:28:52 +01:00
  • bbc2dddd86 docs: update ARCHITECTURE.md and ARCHITECTURAL_ANALYSIS.md to reflect all low-priority items completed (LP-8) kitos 2026-02-20 13:39:55 +01:00
  • d77075272e feat: add ImportService protocol and registry for OCP-compliant import extensibility (LP-7) kitos 2026-02-20 13:31:18 +01:00