# Portabilität: UNIVERSAL
# Version: 1.0.0
# Zuletzt validiert: 2026-03-04

SETTINGS HANDLER
===============

HANDLER-NAME
============
settings

BESCHREIBUNG
============
Der Settings Handler verwaltet Systemeinstellungen in der BACH-Datenbank
(system_config Tabelle). Settings sind Schlüssel-Wert-Paare mit optionalen
Kategorien, Beschreibungen und Verteilungstypen (USER/TEMPLATE/CORE).

OPERATIONEN
===========

LIST
----
bach settings list
bach settings list --category=KATEGORIE

Alle gespeicherten Einstellungen anzeigen. Optional gefiltert nach Kategorie.
Ausgabe zeigt: Key, Value, Type, Category, Description, Dist-Type (USER/TMPL/CORE)

GET
---
bach settings get <key>

Einzelnen Wert lesen mit vollständigen Metadaten.
Zeigt: Key, Value, Type, Category, Description, Dist-Type, Updated-Timestamp

SET
---
bach settings set <key>=<value> [--category=CAT] [--desc=TEXT]

Neuen Wert setzen oder existierenden aktualisieren.
- Neue Settings erhalten dist_type=0 (USER)
- CORE-Settings (dist_type=2) können nicht geändert werden
- Option --category: Settings in Kategorie ablegen
- Option --desc: Beschreibung hinzufügen
- Startet Partner-MD-Update bei integration.*-Keys

RESET
-----
bach settings reset <key>

Setting löschen. CORE-Settings können nicht gelöscht werden.
Nur USER und TEMPLATE können entfernt werden.

EXPORT
------
bach settings export [dateiname]

Alle Settings als JSON exportieren. Ohne Dateinamen auf stdout ausgeben.
Format: {key: {value, type, category, description, dist_type}}

IMPORT
------
bach settings import <dateiname>

Settings aus JSON-Datei importieren. Überschreibt nur USER/TEMPLATE,
CORE-Settings bleiben unberuehrt. Zeigt Anzahl importiert/übersprungen.

CATEGORIES
----------
bach settings categories

Alle verfügbaren Kategorien mit Eintragszaehlung anzeigen.

BEISPIELE
=========

Alle Einstellungen auflisten:
$ bach settings list

Nach Kategorie filtern:
$ bach settings list --category=security

Setting lesen:
$ bach settings get db.backup_interval

Setting setzen (neue):
$ bach settings set log.level=DEBUG --category=behavior --desc="Logging Verbositaet"

Setting aktualisieren:
$ bach settings set log.level=INFO

Setting löschen:
$ bach settings reset log.level

Settings exportieren und speichern:
$ bach settings export settings_backup.json

Settings importieren:
$ bach settings import settings_backup.json

Kategorien auflisten:
$ bach settings categories

DATEIEN
=======
hub/settings.py          Handler-Implementierung (relativ: hub/settings.py)
bach.db (system_config)  Datenbank Tabelle (Pfad: BACH_DB)

VERWANDTE KATEGORIEN
====================
claude_permissions       Permission-Profile für Claude Code (siehe permissions.txt)

SIEHE AUCH
==========
hub/base.py              BaseHandler (relativ: hub/base.py)
hub/bach_paths.py        BACH_DB Konstante (relativ: hub/bach_paths.py)
hub/claude_permissions.py  Permissions Handler (relativ: hub/claude_permissions.py)
docs/BACH-SCHEMA.md      Database Schema (relativ: docs/BACH-SCHEMA.md)
permissions.txt          Claude Code Permission-Profile
