8 Commits

Author SHA1 Message Date
a2a34e568f docs: ADR-0013 Geräte-Lebenszyklus-Aktionen im Kundenportal
Dokumentiert nachträglich eine bereits deployte, live-verifizierte
Session-Arbeit: De-/Reprovisionieren (serverseitiger Credential-Entzug,
Agent-Self-Heal mit deprovisioned_at-Gate), Löschen als Soft
Delete/Archivierung, Hardware-/Log-Leseendpunkte. Bislang komplett
undokumentiert in platform-docs gewesen.

09-data-model-v1.md um devices.deprovisioned_at/archived_at ergänzt.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-12 21:08:29 +02:00
94c4ed69fd docs: Gruppen-Selfservice auch in 09-data-model-v1.md vermerken
Konsistent zur ADR-0012-Ergänzung - der Gruppe-Abschnitt erwähnte
bislang nicht, wie Gruppen verwaltet werden.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-12 21:04:35 +02:00
a375268b7b docs: ADR-0012 Organisationseinheiten + Gruppen, Datenmodell nachgezogen
Dokumentiert die in dieser Session umgesetzte Konfigurationsvererbung:
OEs als Baum mit exklusiver Geräte-Mitgliedschaft und geschützter
Standard-OE 'Neue Geräte', Gruppen flach mit Mehrfachmitgliedschaft,
Konfliktregel 'mehr gewinnt'. Bewusst nach der Umsetzung geschrieben statt
davor (abweichend vom sonstigen ADR-Vorher-Muster in diesem Repo, auf
Wunsch des Kunden für diese Iteration).

09-data-model-v1.md erweitert um Organisationseinheit, Gruppe, OE-/
Gruppen-Merkmal-Override als Kernobjekte, inkl. relationalem Schema und
Löschregeln.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-12 17:07:33 +02:00
38c04cd83a docs: fix Auftragskatalog default semantics in ADR-0010
The catalog isn't a second pool independent of workspaces - a
workspace is just a preset selection from catalog-eligible Merkmale.
Clarifies that the present/absent default for a catalog-eligible
Merkmal with no explicit device_merkmale row must follow workspace
membership, not hardcode to absent; an explicit row always overrides
that default in either direction. The first implementation got this
wrong (hardcoded absent default), which would have silently removed
any already workspace-composed Merkmal the moment it got flagged
catalog-eligible. Fixed in provisioning-server/app.py in the same
pass.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-04 10:06:19 +02:00
217f672ddd docs: design Auftragskatalog as ad-hoc, revocable Merkmal assignment
ADR-0010 decides that an Auftrag is technically a Merkmal, not a new
parallel entity: it reuses the existing Merkmal/Blueprint/ansible-role
mechanism from ADR-0002, but adds a device-level, independently
toggleable assignment path (device_merkmale) alongside the existing
workspace-level one. Deselecting an Auftrag needs to actually revert
it, so checkin will need to declare a full present/absent state per
catalog entry rather than just an additive list; that role-level and
API-level work is deferred, this only settles the data model.

Also adds a single generic, append-only event log
(device_merkmal_events) for both selection changes and agent-reported
execution results, instead of several purpose-specific tables, so
future event types don't require schema changes. Extends
09-data-model-v1.md and the glossary accordingly.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-03 23:29:12 +02:00
72e6fa7c2a docs: WLAN driver gap on netinstall forces rethink of the auto-mode boot flow
Real hardware test (Intel AX210) shows the tested Fedora Everything
netinstall initrd ships no iwlwifi driver at all -- three kickstart
variants all hung identically at dracut-initqueue regardless of syntax,
confirming the cause was never the kickstart itself. Documents the
kexec test series (ADR-0009), the DB-driven kickstart success on
netinstall, and the resulting architecture: a personalized installer
ISO per workspace/backend/media-variant with the kickstart baked in,
no live-session/kexec transition, WLAN and blueprint application moved
to the Provisioning Agent's first boot on the fully installed target
system instead of the constrained installer environment.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-30 13:27:53 +02:00
8ece25f954 docs: define Merkmal/Blueprint/Bereitstellungsvorlage model (ADR-0002)
Introduces the Merkmal-Backend-Blueprint realization model: a Merkmal
describes one distribution-independent workspace feature, a Blueprint
realizes exactly one Merkmal for exactly one backend (usually an
Ansible role applied post-first-boot via ansible-pull), and a
Bereitstellungsvorlage bundles workspace + backend + org-specific
installation directives (partitioning, encryption, secure boot).

Replaces the old flat profile model (profiles/profile.json/
distribution+version) throughout the provisioning API, data model,
interactive provisioning flow, and device enrollment docs with
templates/Bereitstellungsvorlage terminology. Moves 02-workspace-model.md
and 04-backend-model.md into architecture/, archives the superseded
flat organization-model.md.
2026-07-18 10:45:48 +02:00
40d9bc77a6 docs: document provisioning handshake and persistence model 2026-07-14 10:28:30 +02:00