07403cbd9d
fix(seed): don't create a duplicate admin on restart after email migration
kitos
2026-07-23 15:24:59 +02:00
504dfc52f5
feat(auth): make email the unique login identifier
kitos
2026-07-23 14:39:36 +02:00
0a6cb5510c
fix(install): generate PLATFORM_URL in install.sh, backfill on existing .env
kitos
2026-07-23 10:38:13 +02:00
d932134975
feat(users): admin can permanently delete users, fix set-password redirect bug
kitos
2026-07-23 08:58:17 +02:00
545a84b137
fix(config): require PLATFORM_URL explicitly, no hardcoded domain default
kitos
2026-07-22 16:19:27 +02:00
3cd0f6fd99
fix(users): admin can never strip their own admin permission
kitos
2026-07-22 10:52:46 +02:00
66951086fb
fix(auth): refresh cached user after self-role edit so RoleSwitcher shows up
kitos
2026-07-22 09:41:52 +02:00
06c913955c
fix(campaigns,ui): remove admin from campaign-from-threat-actor gate, bump red/blue label saturation
kitos
2026-07-20 16:18:27 +02:00
e4f768962f
fix(email): use client-native fonts instead of forcing Segoe UI/Arial
kitos
2026-07-20 16:08:51 +02:00
d25d876c2c
fix(email): wire PLATFORM_URL into prod compose, was always falling back to localhost
kitos
2026-07-20 14:00:26 +02:00
91442ede60
feat(email): HTML branded templates with inline logo, wire remaining notification types
kitos
2026-07-20 11:49:21 +02:00
1d0d880929
feat(email): generic webhook for all notification emails, hide SMTP UI
kitos
2026-07-20 10:24:15 +02:00
bbe7f49c86
feat(tests,users): blocking procedure-suggestion review on test detail, multi-role switcher, Power Automate webhook payload
kitos
2026-07-20 09:29:36 +02:00
4dea19cae9
feat(users): passwordless user creation via emailed set-password link, display full name instead of username
kitos
2026-07-17 16:58:25 +02:00
60ab2e558f
fix(campaigns,tests): admin cannot create campaigns, manager can delete unstarted tests, intensify red/blue team colors
kitos
2026-07-17 14:34:14 +02:00
82ac9c7014
feat(templates,campaigns): validate MITRE technique IDs, surface template suggestions first, manager can re-approve rejected campaigns
kitos
2026-07-16 14:29:01 +02:00
4809c4a662
feat(manager): allow manager to create auto-approved campaigns and tests from templates
kitos
2026-07-16 12:57:20 +02:00
c753797019
feat(test-catalog): add template creation and lead-approval workflow
kitos
2026-07-16 12:08:23 +02:00
cf4a6c3cde
fix(campaigns): defer Jira ticket creation to start_date, gate recurring campaigns behind manager approval
kitos
2026-07-16 11:09:10 +02:00
0b60531677
fix(users): grant manager Review Queue access, restrict Webhooks to admin
kitos
2026-07-16 10:31:21 +02:00
0002601b50
feat(templates): add pagination with total counts to catalog and campaign picker
kitos
2026-07-16 10:01:20 +02:00
f87959369b
fix(tests): remove blind visibility, both teams always see each other's fields
kitos
2026-07-14 13:36:19 +02:00
bdc6579c10
fix(jira): stop sending numeric hours to Time to Detect/Contain (datetime fields)
kitos
2026-07-14 12:48:14 +02:00
92d65374ef
fix(tests): stop requiring Containment Time when result is Not Contained
kitos
2026-07-14 12:00:53 +02:00
9d66c30127
feat(tests): add team queue overview section for leads
kitos
2026-07-14 11:03:17 +02:00
c6bdded3f6
fix(jira): keep BT Start Date across reopens, resolve Jira accounts on the fly everywhere
kitos
2026-07-14 10:23:30 +02:00
814cfa9671
feat(jira): label standalone tests, include round data in submission comments
kitos
2026-07-14 08:37:40 +02:00
6d6f87b968
fix(jira,tests): send real datetime to RT/BT date fields, resolve assignee usernames for operators
kitos
2026-07-13 16:53:31 +02:00
4221d2858b
fix(jira): store execution times as real UTC, fix RT date fields, label reopens
kitos
2026-07-13 14:57:42 +02:00
b48de743b6
fix(tests): keep free-text round fields in place on reopen, only blank verdicts
kitos
2026-07-13 12:46:46 +02:00
8fe38dc661
feat(tests): archive round history on reopen, stop pausing from setting Jira On Hold
kitos
2026-07-13 12:08:45 +02:00
0bb34f6834
fix(tests): pause reopen timer, lock edits to assignee, restore Jira operator on reopen
kitos
2026-07-13 10:53:10 +02:00
a3f86c7b31
fix(permissions): admin can no longer operate tests — start/submit/edit/create, view only
kitos
2026-07-13 09:27:43 +02:00
337faf824d
fix(jira): clear stale assignee on hand-off to blue team / dual validation
kitos
2026-07-10 16:49:16 +02:00
0fc2427f71
feat(review): review queue for leads + manual reviewer reassignment
kitos
2026-07-10 16:19:14 +02:00
be2a3fdced
fix: multiple test-workflow bugs — draft wipe, dark date pickers, Jira status strings, Tempo gate, hold timer
kitos
2026-07-10 15:24:19 +02:00
997b38d333
fix(ui): fit all 9 test-state stat cards in a single row on Tests page
kitos
2026-07-10 14:08:29 +02:00
1535ddaa5d
fix(jira): honor jira_email override in account-id lookup, not just email
kitos
2026-07-10 13:42:33 +02:00
a46aa157f3
fix(assign): exclude admin from assignable operators; sync Jira on assign even for first-time users
kitos
2026-07-10 13:08:23 +02:00
5d22514f7f
fix(ui): remove stray backslash left before the em dash in technique line
kitos
2026-07-10 12:39:47 +02:00
58c0143304
feat(permissions): admin no longer acts on the test workflow; managers coordinate operators
kitos
2026-07-10 10:28:04 +02:00
f32f636f05
fix(jira): expose non-admin jira-config, drop security-test label; catalog paging
kitos
2026-07-10 10:24:13 +02:00
2afb886cd9
feat(assign): let leads manually assign operators + sync Jira; send platform as Jira label
kitos
2026-07-10 08:44:14 +02:00
119db6f91d
fix(jira): wrap select-field values in {value: ...} for Jira REST API
kitos
2026-07-09 17:08:53 +02:00
d726e3adfe
fix(jira): correct Data Sensitivity field ID and replicate Jira's real classification scheme
kitos
2026-07-09 16:33:41 +02:00