577 Commits

Author SHA1 Message Date
chahinebrini
681356f0e9 Retrigger pipeline after secret fix
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
Deploy Staging / Build backend (Nitro) (push) Has been cancelled
Deploy Staging / Deploy zu Hetzner (push) Has been cancelled
Build ReBreak Magic Windows / NSIS Installer (x64) (push) Has been cancelled
2026-06-18 07:55:49 +02:00
chahinebrini
bbe2415757 chore: remove accidentally added embedded repo 2026-06-18 07:55:38 +02:00
chahinebrini
1878f6d10e feat(magic): continue to lock profile after enrollment, check icon, push fallback 2026-06-18 07:55:27 +02:00
chahinebrini
53f5b2a2f1 Add debug output for deploy key
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
Deploy Staging / Build backend (Nitro) (push) Has been cancelled
Deploy Staging / Deploy zu Hetzner (push) Has been cancelled
2026-06-18 07:52:49 +02:00
chahinebrini
3db9dd9326 Decode deploy key from base64 in pipeline
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
Deploy Staging / Build backend (Nitro) (push) Has been cancelled
Deploy Staging / Deploy zu Hetzner (push) Has been cancelled
2026-06-18 07:45:43 +02:00
chahinebrini
57b9b3a567 Use alpine:3.21 for deploy steps to fix OpenSSH key format
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
Deploy Staging / Build backend (Nitro) (push) Has been cancelled
Deploy Staging / Deploy zu Hetzner (push) Has been cancelled
2026-06-18 07:41:40 +02:00
chahinebrini
f83e5bf914 Remove broken submodule entry
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
Deploy Staging / Build backend (Nitro) (push) Has been cancelled
Deploy Staging / Deploy zu Hetzner (push) Has been cancelled
2026-06-18 07:38:07 +02:00
chahinebrini
6b1583efdc Remove broken submodule entry and ignore local research folder
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
Deploy Staging / Build backend (Nitro) (push) Has been cancelled
Deploy Staging / Deploy zu Hetzner (push) Has been cancelled
2026-06-18 07:37:12 +02:00
chahinebrini
b6ee2e9004 Trigger Woodpecker pipeline
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
Deploy Staging / Build backend (Nitro) (push) Has been cancelled
Deploy Staging / Deploy zu Hetzner (push) Has been cancelled
Build ReBreak Magic Windows / NSIS Installer (x64) (push) Has been cancelled
2026-06-18 07:35:09 +02:00
chahinebrini
da4a94da49 chore: remove accidentally added embedded repo 2026-06-18 07:25:51 +02:00
chahinebrini
c6035b97d9 feat(magic): inline enrollment in device card, remove preflight, align flag order 2026-06-18 07:25:43 +02:00
chahinebrini
abeb1462f4 Add Woodpecker CI pipeline for staging deploys
Some checks failed
Deploy Staging / Build backend (Nitro) (push) Has been cancelled
Deploy Staging / Deploy zu Hetzner (push) Has been cancelled
2026-06-18 07:24:35 +02:00
chahinebrini
709f8cb32e chore: remove accidentally added embedded repo
Some checks failed
Deploy Staging / Build backend (Nitro) (push) Has been cancelled
Deploy Staging / Deploy zu Hetzner (push) Has been cancelled
2026-06-18 07:10:27 +02:00
chahinebrini
e6fad4f51e fix(magic): always show supervised + lock profile true/false; company from exists 2026-06-18 07:10:12 +02:00
chahinebrini
dd84f8ec38 fix(backend): mdm.get must use status.enrolled, not hardcoded true 2026-06-18 06:47:05 +02:00
chahinebrini
0efdf2f8f1 fix(magic): show complete protection button for known disenrolled devices 2026-06-18 06:28:04 +02:00
chahinebrini
e14a36f95a fix(backend): keep mdmId when device exists but is disenrolled; add exists flag 2026-06-18 06:28:03 +02:00
chahinebrini
bb8e0d3f62 fix(backend): mdm.get always returns full status shape even when not enrolled 2026-06-18 06:10:33 +02:00
chahinebrini
ac7bd800bc fix(magic): inline iPhone search in device card instead of detect page 2026-06-18 06:03:04 +02:00
chahinebrini
5117c7b37c fix(backend): getMdmStatusByUdid must check enrollments.enabled 2026-06-18 06:03:01 +02:00
chahinebrini
2919ce45b8 feat(magic): sync current ReBreak Magic app state
Include recent Magic app work: Tauri native shell, iOS device detection
via supervise-magic sidecar, MDM client, local HTTP server, new pages
(detect, enroll, supervise, sideload, pair, preflight, configure, done),
and updated device section/status UI.
2026-06-18 05:23:26 +02:00
chahinebrini
b9dddc00e7 ci: remove temporary test workflows 2026-06-18 05:17:33 +02:00
chahinebrini
cb6dd0555a fix(magic): show backend MDM status even when iPhone is not connected via USB 2026-06-18 05:16:22 +02:00
chahinebrini
c1f5f5804d ci: add temporary ubuntu test workflow 2026-06-18 05:09:29 +02:00
chahinebrini
7d76c5168b ci: add temporary runner test workflow 2026-06-18 05:03:00 +02:00
chahinebrini
85cadd19a0 ci: use self-hosted runner raynis-builder for backend and admin deploys 2026-06-18 04:58:21 +02:00
chahinebrini
c8f5bfc82e fix(backend): make user_devices migration idempotent for fresh DBs
Add CREATE TABLE IF NOT EXISTS for rebreak.user_devices to the
hardware_id migration so fresh databases can migrate despite the
alphabetical ordering mismatch with 20260430_add_user_devices.
Also apply Prettier formatting to mdm.ts.
2026-06-18 04:04:05 +02:00
chahinebrini
7bf26a3138 test(backend): add unit tests for MDM health-check DB helpers 2026-06-18 03:53:26 +02:00
chahinebrini
15b4441deb feat(backend): add MDM health check cron 2026-06-18 03:42:18 +02:00
chahinebrini
74784fc4da feat(backend): add bulk MDM health status helpers
Add MdmEnrollmentStatus, UserDeviceMdmHealthRecord types and helpers:
- getLinkedUserDevices() to load iOS devices with NanoMDM UDIDs
- getMdmEnrollmentStatusesByUdids() for bulk NanoMDM lookups
- updateUserDeviceMdmHealth() to mirror status on UserDevice

Also fix PoolConfig option casing: queryTimeout -> query_timeout.
2026-06-18 03:36:13 +02:00
chahinebrini
b107262d60 feat(mdm): add NanoMDM health columns migration for UserDevice
Adds mdm_id, mdm_enrolled, mdm_supervised, mdm_last_seen_at and an
index on mdm_id. Uses IF NOT EXISTS to stay idempotent because mdm_id
was added manually before the migration was created.
2026-06-18 03:29:30 +02:00
chahinebrini
9065543b5a feat(backend): extend UserDevice with MDM health columns
Add mirrored NanoMDM enrollment, supervision and last-seen fields
(mdm_enrolled, mdm_supervised, mdm_last_seen_at) to UserDevice model.
Migration will follow in a separate task.
2026-06-18 03:15:09 +02:00
chahinebrini
943efe4b45 fix(backend): remove hardwareId references, use deviceId only 2026-06-18 00:06:39 +02:00
chahinebrini
a60def33d9 Merge feat/magic-ios-section into main 2026-06-17 23:51:29 +02:00
chahinebrini
6245fc4573 fix(magic): real MDM supervised state, mdmId matching, MDM status for unknown USB devices 2026-06-17 23:47:33 +02:00
chahinebrini
75d1b06105 feat(magic): iOS device card warning badge, USB hint, split backend/local cards and auto-sync 2026-06-17 23:32:41 +02:00
chahinebrini
b87ec08431 feat(mdm): remove mdm_lock type, derive lockProfileInstalled from nefilter state 2026-06-17 22:32:40 +02:00
chahinebrini
5b0a4d03d2 feat(magic): identify current device via hardwareId, migrate existing devices 2026-06-17 17:18:40 +02:00
chahinebrini
e4b28be5be feat(magic): dedicated iOS section in dashboard with on-demand sync 2026-06-17 07:44:24 +02:00
chahinebrini
48af756a86 tmp(magic): debug logging for current device matching 2026-06-17 03:19:10 +02:00
chahinebrini
10ca1c4bc5 tmp(backend): debug bypass code 000000 -> charioanouar session 2026-06-17 03:13:36 +02:00
chahinebrini
b829f9ba3e fix(magic): match current device by session deviceId, remove confusing overall status card 2026-06-17 03:06:38 +02:00
chahinebrini
4c46ac69c9 fix(magic): remove device-release from Magic sheet, Magic does not remove devices 2026-06-17 02:59:05 +02:00
chahinebrini
81c516b831 fix(magic): robust hostname matching for current device detection 2026-06-17 02:52:00 +02:00
chahinebrini
6b44fb2927 chore(prisma): add migration_lock.toml for deploy 2026-06-17 02:38:44 +02:00
chahinebrini
026c319b30 fix(magic): robust device parsing, dashboard only protects current device 2026-06-17 02:29:35 +02:00
chahinebrini
37f3173539 chore: add scripts/dev.sh for local app dev against server 2026-06-16 22:05:53 +02:00
chahinebrini
2f1d5ec83c fix(magic): use solid heroicon for star rating 2026-06-16 20:55:25 +02:00
chahinebrini
298a0089bb feat(magic): redesign status dashboard with hero cards and device sheet 2026-06-16 20:53:39 +02:00
chahinebrini
b5e89b5973 feat(magic): add DeviceDetailSheet component 2026-06-16 20:49:39 +02:00