{ "_schema_documentation": { "description": "Developer notification definitions. Each notification is evaluated at sync time.", "fields": { "id": "[REQUIRED] Unique identifier (notification_key in database).", "notification_type": "[OPTIONAL] Type: 'version_update', 'setting_recommendation', 'announcement', 'warning', 'info'. Default: 'info'", "priority": "[OPTIONAL] Priority level: 'low', 'normal', 'high', 'critical'. Default: 'normal'", "title": "[REQUIRED] Notification title/heading.", "message": "[REQUIRED] Detailed notification message body.", "min_version": "[OPTIONAL] Minimum version (inclusive). null = no minimum. Example: '0.17.0'", "max_version": "[OPTIONAL] Maximum version (inclusive). null = no maximum. Example: '0.18.1'", "created_at": "[OPTIONAL] ISO timestamp when notification was created. For tracking only.", "expires_at": "[OPTIONAL] ISO timestamp when notification expires. null = never expires. Example: '2026-12-31T23:59:59Z'", "condition": "[OPTIONAL] Array of condition check names that must all pass. Empty/null = always show. Example: ['m3u_epg_network_insecure']", "user_level": "[OPTIONAL] User level required: 'all' or 'admin'. Default: 'all'", "action_url": "[OPTIONAL] Internal URL to navigate to when action button clicked. Example: '/settings#network-access'", "action_text": "[OPTIONAL] Text for action button. Required if action_url is set. Example: 'Review Settings'" }, "notes": [ "Notifications are synced from this file to database on startup and when relevant settings change", "Out-of-range versions are automatically removed from database", "Expired notifications are automatically removed from database", "Conditions are evaluated per-user at display time (see CONDITION_CHECKS in developer_notifications.py)" ] }, "notifications": [ { "id": "network_security_m3u_epg", "notification_type": "warning", "priority": "high", "title": "Network Access Security Warning", "message": "Your EPG/M3U output is accessible from any network. Consider restricting access to improve security.", "min_version": null, "max_version": null, "created_at": "2026-02-02T00:00:00Z", "expires_at": null, "condition": ["m3u_epg_network_insecure"], "user_level": "admin", "action_url": "/settings#network-access", "action_text": "Review Settings" } ] }