
# Dokumentation: CakePHP – Netzwerk & Datenstruktur

_Stand: 2025-05-09  
Modul: Crumbforest – Schnittstellen zu TTYD, RUST & Kind-API_

---

## 🍰 Übersicht: Architektur & Flow

**Frontend / Terminal Interface**
- ttyd (für Kinderfragen, Lernzugang, Debugging)
- CakePHP View-Templates (kinderfreundlich, markdown-fähig)

**Backend (CakePHP)**
- Version: PHP 8.3 (getestet)
- Framework: CakePHP 4.x
- Authentifizierung: implementiert (Custom UserProvider via MySQL)
- Logging: KrümelLog (Zeitstempel, Emoji, Quelle, Nachricht)

**Database (MariaDB/MySQL)**
- DB: `kuchenwald`
- User: `krümel_user` (mit Schreibrechten)
- Init-Script: `init.sql` (erstellt Tabellen & Seed-Benutzer)

**Routen & Controller**
- `/krümel/index` – Übersicht & Logs
- `/krümel/add` – Krümel-Eintrag via POST
- `/eule/view` – symbolisches Weisheitsmodul

**Middleware & Services**
- KrümelAuthComponent (CakePHP)
- Connection zur RUST-API via REST (`/bittrain`, `/echo`, `/eule`)
- Token-Passing in Planung (OAuth optional, zukunftssicher)

---

## 📊 Datenstruktur (Auszug)

**users**
```sql
CREATE TABLE users (
  id INT AUTO_INCREMENT PRIMARY KEY,
  username VARCHAR(50) NOT NULL UNIQUE,
  password_hash VARCHAR(255) NOT NULL,
  role ENUM('admin', 'child', 'observer') DEFAULT 'child',
  created DATETIME DEFAULT CURRENT_TIMESTAMP
);
```

**kruemel_logs**
```sql
CREATE TABLE kruemel_logs (
  id INT AUTO_INCREMENT PRIMARY KEY,
  created DATETIME DEFAULT CURRENT_TIMESTAMP,
  emoji CHAR(4),
  message TEXT,
  source VARCHAR(255)
);
```

---

## 🔌 Verbindung & API-Gateway

- Alle Shell-Aktivitäten (TTYD) werden symbolisch und technisch an CakePHP gemappt (via `shell_dispatcher.sh`)
- TTYD stellt Kommandozeilen-Zugang bereit für geschützte Umgebungen (z. B. mit `sudo -u krümel_user`)
- Brücke zu Rust wird über HTTP-POST & GET (`fetch`, `curl`, oder `HttpClient`) betrieben
- Logging erfolgt doppelt: in `KrümelLog` (DB) & `krümel_api_spec.rs` als Echo

---

## 🧠 To Do / Vision

- [ ] Child-Safe API Wrapper für Rust
- [ ] GraphQL für komplexe Datenabfragen (KrümelHistory, EulenDialoge)
- [ ] Admin-Dashboard für Pädagog:innen
- [ ] Frequenzbasierte Access-Kontrolle: Kind, Crew, Commander
- [ ] Export-Modul für Markdown, PDF, Audio

---

**Letzter Commit:** `curl -X POST /krümel -d '🌱 Neues Bit im Wald'`

🦉 **Fragen leiten wir an die Eule weiter.**
**Alles andere committed der Kuchen.**
