42af7a6551
- Gitea: NotificationTracker now exposes sender allowlist / blocklist filters via MultiEntitySelect, populated from Gitea /users/search merged with past EventLog senders so the picker is useful before the first webhook arrives. - Webhook providers (gitea, planka, webhook): stop scheduling interval polling jobs on tracker create/update/startup; hide the "every Xs" indicator in the tracker list since there is no polling. - Dashboard: stat cards are now <a> links that route to providers, trackers, targets, command-trackers, or scroll to the events panel. Provider deck rows highlight the target provider on click. - Command trackers / command configs: auto-reselect the right config when the provider type changes (matches notification-tracker behavior). - Migration: drop legacy batch_duration column from notification_tracker — the field is gone from the model but its NOT NULL constraint blocked inserts on older DBs. - Docs: refresh entity-relationships.md with current NotificationTracker fields (filters, adaptive_max_skip, default_*_config_id).
20 lines
1.3 KiB
Markdown
20 lines
1.3 KiB
Markdown
# Entity Relationships
|
|
|
|
```text
|
|
ServiceProvider → type: "immich" (inferred capabilities: notifications, commands)
|
|
NotificationTracker → provider_id, collection_ids, scan_interval, adaptive_max_skip, filters, default_tracking_config_id, default_template_config_id, enabled
|
|
NotificationTrackerTarget → notification_tracker_id, target_id, tracking_config_id, template_config_id, quiet_hours, enabled
|
|
TrackingConfig → provider_type, event flags, scheduling rules
|
|
TemplateConfig → provider_type, Jinja2 template slots per event type
|
|
NotificationTarget → type: "telegram"/"webhook", config JSON, chat_action (telegram only)
|
|
CommandConfig → provider_type, enabled_commands, locale, response_mode, default_count, rate_limits
|
|
CommandTracker → provider_id, command_config_id, enabled
|
|
CommandTrackerListener → command_tracker_id, listener_type ("telegram_bot"), listener_id
|
|
TelegramBot → token, update_mode, bot_username (used as notification target backend + commands listener)
|
|
```
|
|
|
|
- NotificationTrackerTarget links a tracker to a target with per-link tracking/template config and quiet hours
|
|
- CommandTrackerListener links a command tracker to a listener (e.g. TelegramBot) for slash-command handling
|
|
- `user_id=0` on TemplateConfig = system default (EN/RU seeded on first startup)
|
|
- DB: SQLite + async SQLAlchemy via sqlmodel, auto-created on startup with migrations
|