{
  "schema_version": 1,
  "channel": "homelab-runtime",
  "command_id": "HOMELAB-SKLADCHIK-MONITOR-COOKIE-CONTRACT-AUDIT-385",
  "status": "FAIL",
  "rc": 1,
  "host": "pve01",
  "mode": "read-only",
  "component": "cluster-audit",
  "started_at_utc": "2026-07-23T17:14:28Z",
  "finished_at_utc": "2026-07-23T17:14:28Z",
  "reference_register_checked": true,
  "reference_sha256": "5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e",
  "error_register_checked": true,
  "error_register_sha256": "08b3a769b8e38eaa1acec915352fb328180d70caa7ff6cd9d1ec0da426262752",
  "command_sha256": "8d86e9fa0ca4dbc0c7168504ca39d6f89f8514b4a3086e19417978e994901da1",
  "duplicate_failed_command_blocked": false,
  "block_reason": null,
  "execution_started": true,
  "changes_made": false,
  "sanitized": true,
  "secrets_included": false,
  "private_addresses_included": false,
  "raw_evidence_retained_locally": true,
  "raw_evidence_sha256": "f30a130cb16c9c0ddc2a8ca5bf99c1def8683ef0304b7caea324a6b0d7caea86",
  "sanitized_output_sha256": "f30a130cb16c9c0ddc2a8ca5bf99c1def8683ef0304b7caea324a6b0d7caea86",
  "output_truncated_in_json": false,
  "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt",
  "output": "DETAIL=INTEGRITY_FILE=/usr/local/sbin/homelab-chat-run-linked|SHA256=5e8725e129fd2055b36fe2fae13fc95fc4b3271074a0e0d4bb7347e7b2f270a1\nDETAIL=INTEGRITY_FILE=/usr/local/sbin/homelab-reader-result-publish|SHA256=9cb8f7f1e9f300176a87f1abc8a9c51c92aeb9bea3514c7a9d9019ec400d4fd7\nDETAIL=INTEGRITY_FILE=/usr/local/sbin/skladchik-reports-monitor-supervisor|SHA256=35c68ae0929ff3795be2bde40de334fc8e26413a3d8a620a137be90d1f2c164e\nDETAIL=INTEGRITY_FILE=/usr/local/sbin/skladchik-reports-monitor-status|SHA256=f902a61109efbac5918360f2235c2523bd10704ac484a4e8591e8a1c490faf5a\nDETAIL=INTEGRITY_FILE=/root/.skladchik-cookie-header-372.pending|SHA256=3c260f0622999b94e1c3b45d5042532fe001b8118dff0d326636b2ad8609d8c4\nDETAIL=PENDING_COOKIE_CONTRACT=PASS|FORMAT=RAW_COOKIE_VALUE|PAIR_COUNT=5|SECRET_OUTPUT=NONE\nDETAIL=SERVICE_LOADSTATE=loaded\nDETAIL=SERVICE_ACTIVESTATE=failed\nDETAIL=SERVICE_SUBSTATE=failed\nDETAIL=SERVICE_RESULT=exit-code\nDETAIL=SERVICE_EXECMAINSTATUS=1\nDETAIL=SERVICE_FRAGMENTPATH=/etc/systemd/system/skladchik-reports-monitor-supervisor.service\nDETAIL=SERVICE_USER=\nDETAIL=SERVICE_GROUP=\nDETAIL=SERVICE_WORKINGDIRECTORY=\nDETAIL=COOKIE_SOURCE=/usr/local/sbin/skladchik-reports-monitor-supervisor|META=0:0|755|20463|regular file|SHA256=35c68ae0929ff3795be2bde40de334fc8e26413a3d8a620a137be90d1f2c164e\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|124|test -s /opt/skladchik-reports-monitor/monitor.py && echo monitor_py=yes || echo monitor_py=no\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|125|test -s /etc/skladchik-reports-monitor/config.ini && echo config_ini=yes || echo config_ini=no\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|126|test -s /etc/skladchik-reports-monitor/secrets.env && echo secrets_env=yes || echo secrets_env=no\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|127|test -s /var/lib/skladchik-reports-monitor/cookies.jar && echo cookies_jar=yes || echo cookies_jar=no\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|128|[ -s /var/lib/skladchik-reports-monitor/cookies.jar ] && echo cookies_jar_bytes=$(stat -c %s /var/lib/skladchik-reports-monitor/cookies.jar 2>/dev/null) || echo cookies_jar_bytes=0\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|129|test -s /opt/skladchik-reports-monitor/operational_digest.py && echo operational_digest_py=yes || echo operational_digest_py=no\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|130|test -s /opt/skladchik-reports-monitor/event-selftest-runner.py && echo event_selftest_runner_py=yes || echo event_selftest_runner_py=no\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|131|test -s /opt/skladchik-reports-monitor/event-selftest-core && echo event_selftest_core=yes || echo event_selftest_core=no\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|150|    facts[\"monitor_open\"] = mon.get(\"open\", \"\")\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|151|    facts[\"monitor_resolved\"] = mon.get(\"resolved\", \"\")\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|152|    facts[\"monitor_smtp_configured\"] = mon.get(\"smtp_configured\", \"\")\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|153|    facts[\"session_keepalive\"] = mon.get(\"session_keepalive\", \"\")\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|154|    facts[\"cookie_jar\"] = mon.get(\"cookie_jar\", \"\")\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|155|    facts[\"cookie_jar_bytes\"] = mon.get(\"cookie_jar_bytes\", \"\")\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|156|    facts[\"cookie_expiry_status\"] = mon.get(\"cookie_expiry_status\", \"\")\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|157|    facts[\"cookie_expiry_utc\"] = mon.get(\"cookie_expiry_utc\", \"\")\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|158|    facts[\"cookie_expires_in_seconds\"] = mon.get(\"cookie_expires_in_seconds\", \"\")\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|165|        problems.append(\"monitor_health_stale\")\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|166|    if mon.get(\"reports\") in (\"\", \"0\"):\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|167|        problems.append(\"monitor_reports_zero_or_missing\")\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|168|    if mon.get(\"session_keepalive\") != \"persistent_cookie_jar\":\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|169|        problems.append(\"session_keepalive_not_persistent\")\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|170|    if mon.get(\"cookie_jar\") not in (\"yes\", \"empty\"):\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|171|        problems.append(\"monitor_cookie_jar_bad\")\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|172|    expiry_status = mon.get(\"cookie_expiry_status\", \"\")\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|173|    try:\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|174|        expires_in = int(mon.get(\"cookie_expires_in_seconds\", \"\"))\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|175|    except Exception:\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|176|        expires_in = None\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|177|    if expiry_status in (\"\", \"NO_COOKIE_JAR\", \"NO_PERSISTENT_COOKIE\", \"ERROR\"):\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|178|        problems.append(\"cookie_expiry_missing\")\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|179|    elif expiry_status == \"EXPIRED\" or (expires_in is not None and expires_in <= 0):\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|180|        problems.append(\"cookie_expiry_expired\")\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|210|    facts[\"backup_run_id\"] = backup.get(\"RUN_ID\", \"\")\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|211|    facts[\"backup_size_bytes\"] = backup.get(\"SIZE_BYTES\", \"\")\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|212|    facts[\"backup_version\"] = backup.get(\"BACKUP_VERSION\", \"\")\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|213|    facts[\"backup_cookie_jar_backed_up\"] = backup.get(\"COOKIE_JAR_BACKED_UP\", \"\")\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|214|    facts[\"backup_extension_health_files_backed_up\"] = backup.get(\"EXTENSION_HEALTH_FILES_BACKED_UP\", \"\")\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|215|    facts[\"backup_title_in_email_subject\"] = backup.get(\"TITLE_IN_EMAIL_SUBJECT\", \"\")\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|216|    facts[\"backup_health_age_seconds\"] = str(age_seconds_from_ts(backup.get(\"TS\")))\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|217|    if backup.get(\"STATUS\") != \"OK\":\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|218|        problems.append(\"backup_status_not_ok\")\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|219|    if backup.get(\"COOKIE_JAR_BACKED_UP\") != \"yes\":\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|220|        problems.append(\"backup_cookie_jar_not_marked\")\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|221|    if backup.get(\"BACKUP_VERSION\") != \"4\":\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|222|        problems.append(\"backup_version_not_4\")\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|223|    if backup.get(\"EXTENSION_HEALTH_FILES_BACKED_UP\") != \"yes\":\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|236|    facts[\"restore_status\"] = restore.get(\"STATUS\", \"MISSING\")\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|237|    facts[\"restore_run_id\"] = restore.get(\"RUN_ID\", \"\")\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|238|    facts[\"restore_health_age_seconds\"] = str(age_seconds_from_ts(restore.get(\"TS\")))\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|239|    for key in [\"CLOUD_1_STATUS\", \"CLOUD_2_STATUS\", \"SHA256_OK\", \"TAR_OK\", \"REQUIRED_FILES_OK\", \"COOKIE_JAR_OK\", \"EXTENSION_HEALTH_FILES_OK\", \"EXTENSION_SCRIPTS_OK\", \"EXTENSION_UNITS_OK\", \"SQLITE_OK\", \"PY_COMPILE_OK\"]:\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|240|        facts[key.lower()] = restore.get(key, \"\")\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|241|    if restore.get(\"STATUS\") != \"OK\":\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|242|        problems.append(\"restore_status_not_ok\")\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|245|    for key in [\"CLOUD_1_STATUS\", \"CLOUD_2_STATUS\"]:\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|246|        if restore.get(key) != \"OK\":\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|247|            problems.append(key.lower() + \"_bad\")\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|248|    for key in [\"SHA256_OK\", \"TAR_OK\", \"REQUIRED_FILES_OK\", \"COOKIE_JAR_OK\", \"EXTENSION_HEALTH_FILES_OK\", \"EXTENSION_SCRIPTS_OK\", \"EXTENSION_UNITS_OK\", \"SQLITE_OK\", \"PY_COMPILE_OK\"]:\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|249|        if restore.get(key) != \"yes\":\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|250|            problems.append(key.lower() + \"_bad\")\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|251|\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|282|        f\"- открытые/назначенные: {facts.get('monitor_open')}\",\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|283|        f\"- закрытые: {facts.get('monitor_resolved')}\",\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|284|        f\"- возраст health, сек: {facts.get('monitor_health_age_seconds')}\",\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|285|        f\"- автопродление авторизации: {facts.get('session_keepalive')}\",\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|286|        f\"- cookie jar: {facts.get('cookie_jar')} / {facts.get('cookie_jar_bytes')} байт\",\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|287|        f\"- постоянная cookie действует до UTC: {facts.get('cookie_expiry_utc') or 'не определено'}\",\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|288|        f\"- осталось дней по cookie: <redacted> or 'не определено'}\",\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|289|        f\"- статус срока cookie: <redacted> or 'не определено'}\",\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|290|        f\"- NetBird route: {facts.get('netbird_route')}\",\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|291|        \"\",\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|292|        \"Бэкап:\",\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|293|        f\"- статус: {facts.get('backup_status')}\",\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|294|        f\"- последний RUN_ID: {facts.get('backup_run_id')}\",\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|295|        f\"- размер архива, байт: {facts.get('backup_size_bytes')}\",\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|296|        f\"- cookie jar в бэкапе: {facts.get('backup_cookie_jar_backed_up')}\",\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|297|        f\"- health-файлы расширений в бэкапе: {facts.get('backup_extension_health_files_backed_up')}\",\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|298|        f\"- название жалобы в теме письма: {facts.get('backup_title_in_email_subject')}\",\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|299|        f\"- возраст health, сек: {facts.get('backup_health_age_seconds')}\",\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|302|        f\"- статус: {facts.get('restore_status')}\",\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|303|        f\"- последний RUN_ID: {facts.get('restore_run_id')}\",\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|304|        f\"- cloud1/cloud2: {facts.get('cloud_1_status')}/{facts.get('cloud_2_status')}\",\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|305|        f\"- sha256/tar/cookie/sqlite/python: {facts.get('sha256_ok')}/{facts.get('tar_ok')}/{facts.get('cookie_jar_ok')}/{facts.get('sqlite_ok')}/{facts.get('py_compile_ok')}\",\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|306|        f\"- health/scripts/units расширений: {facts.get('extension_health_files_ok')}/{facts.get('extension_scripts_ok')}/{facts.get('extension_units_ok')}\",\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|307|        \"\",\nDETAIL=COOKIE_SOURCE_LINE=/usr/local/sbin/skladchik-reports-monitor-supervisor|308|        \"Проблемы:\",\nDETAIL=COOKIE_TARGET_REFERENCE=/tar/cookie/sqlite/python:|STATE=ABSENT\nDETAIL=COOKIE_TARGET_REFERENCE=/var/lib/skladchik-reports-monitor/cookies.jar|STATE=ABSENT\nFAILURE_REASON=COOKIE_TARGET_PARENT_INVALID\n"
}
