Files
houseplan-card/docs/specs/043-private-support-report.md
T
Matysh 112c260314
Validate / hacs (push) Failing after 12s
Validate / hassfest (push) Failing after 13s
Validate / frontend (push) Successful in 3m2s
Validate / golden (push) Failing after 51s
Validate / backend (push) Failing after 6m50s
Validate / smoke (push) Failing after 13m44s
Validate / performance (push) Failing after 24m13s
Release v1.61.0-beta.1
2026-08-09 21:51:33 +03:00

61 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ТЗ #43 — Отчёт для поддержки без персональных данных
- Issue: https://github.com/Matysh/houseplan-card/issues/43
- Приоритет: P2
- Статус ТЗ: draft, privacy defaults нормативны
## Цель
Пользователь копирует воспроизводимый технический snapshot, предварительно
видя весь текст. Default report не содержит данных, по которым можно
восстановить дом, устройства или адреса.
## Формат
Versioned JSON/text envelope `houseplan_support_report: 1`:
- card, integration и HA versions;
- browser engine family/major и supported feature flags без user-agent string;
- model/config/layout schema versions и revisions;
- counts: spaces, rooms, room drafts, physical/open walls, partitions,
columns, openings по типу, decor по kind, markers по lifecycle/status;
- read-only validation result: stable codes + counts;
- optimizer/migration pending flags;
- active House Plan Repair issue ids/codes без descriptions/user values;
- registry authority level (`full|limited|unknown`) и last sync age bucket;
- checksum только структуры/schema, не raw config.
## Privacy allowlist
Report строится исключительно из typed allowlist projection. Запрещены:
space/room/device/entity names и ids, area/floor/config-entry ids, coordinates,
polygons, URLs, filenames/paths, descriptions, templates/live values, IP/host,
HA installation id, exact timestamps событий. Redaction после сериализации не
считается защитой.
Adversarial fixture заполняет каждое запрещённое поле уникальным sentinel;
ни один sentinel/его URL-encoded/base64 form не встречается в report.
## Архитектура
Backend read-only `houseplan/support/report` выполняет authoritative schema,
store и Repair projection; frontend добавляет card/browser flags. Command
доступен authenticated user, не делает writes/services и возвращает stable
error codes. Если backend старый, frontend создаёт reduced report и явно это
пишет.
## UX
General Settings → Maintenance → «Скопировать отчёт для поддержки». Открывается
wide `hp-dialog` с plain-text preview, предупреждением privacy и действиями
Copy/Download/Cancel. Clipboard failure предлагает `.json` download. Никакой
автоматической отправки/телеметрии.
## Приёмка
- sentinel privacy corpus зелёный frontend/backend;
- preview полностью равен copied/downloaded bytes;
- report работает при invalid config, limited registry и active Repairs;
- copy/download доступен keyboard/touch;
- документация перечисляет включённые и исключённые категории.