chahinebrini a95e66560d feat(magic): Hard-Lock + Geräte-UX (Push, Realtime, Detail-Sheet, Offline-Removal)
Devices/Magic:
- Offline-Profil-Enroll deaktiviert (410) — Lock-PW würde im Klartext im
  Download landen; stationärer Schutz läuft jetzt nur über Rebreak Magic
- Mac-DNS-Template: ProhibitDisablement (Filter nicht abschaltbar)
- Push "Neues Gerät verbunden" an mobile Geräte bei neuer Bindung
- Realtime auf user_devices → Settings aktualisiert Magic-Bindings live
- Geräte-Detail-Sheet (Tap auf Gerät): Status, verbunden-seit, Schutz-Donut

Hard-Lock (server-gehaltenes Removal-PW, User sieht es nie):
- magic_removal_password generiert/gespeichert + in Profil injiziert (Lazy-Backfill)
- Reveal NUR bei Account-Löschung (user/delete) + Kündigung (stripe webhook),
  per Resend-Mail + in-Response
- Signing config-gated (inaktiv ohne Cert; Lock greift auch unsigniert)

Migrations: user_devices-Realtime-Publication + magic_removal_password-Spalten

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-07 22:26:25 +02:00

20 lines
782 B
TypeScript

/**
* POST /api/devices/enroll — DEAKTIVIERT (410 Gone)
*
* Der manuelle Offline-Profil-Download ist abgeschaltet: Das Profil hätte das
* RemovalPassword im Klartext im heruntergeladenen .mobileconfig → Bypass-Risiko.
* Stationärer Schutz (Mac/Windows) läuft jetzt ausschließlich über Rebreak Magic
* (Server hält das Lock-Passwort, der User sieht es nie).
*
* Bestehende ProtectedDevices bleiben sichtbar/entfernbar (GET + DELETE), nur
* NEUE Enrollments über diesen Pfad sind gesperrt.
*/
export default defineEventHandler(() => {
throw createError({
statusCode: 410,
message:
"Der manuelle Profil-Download ist deaktiviert. Stationäre Geräte werden über Rebreak Magic verbunden.",
data: { error: "OFFLINE_ENROLL_DISABLED" },
});
});