{ "date": "2026-10-07", "source": "673e5ba", "authRequired": true, "denials": [ { "label": "anonymous", "method": "GET", "path": "backup", "status": 401, "error": "Unauthorized" }, { "label": "anonymous", "method": "POST", "path": "restore", "status": 401, "error": "Unauthorized" }, { "label": "settings-writer", "method": "GET", "path": "backup", "status": 403, "error": "Недостаточно прав: mm:settings:admin" }, { "label": "settings-writer", "method": "POST", "path": "restore", "status": 403, "error": "Недостаточно прав: mm:settings:admin" }, { "label": "wrong-app", "method": "GET", "path": "backup", "status": 403, "error": "Нет доступа к приложению MikrotikManager" }, { "label": "wrong-app", "method": "POST", "path": "restore", "status": 403, "error": "Нет доступа к приложению MikrotikManager" }, { "label": "wrong-issuer", "method": "GET", "path": "backup", "status": 401, "error": "Unauthorized" }, { "label": "wrong-issuer", "method": "POST", "path": "restore", "status": 401, "error": "Unauthorized" } ], "backup": { "status": 200, "bytes": 475225, "sha256": "a6b66402b28bdb146cae9712c384979aa1c1000fee19cbc97c0ec045b673c002", "signature": "PGDMP", "filename": "attachment; filename=\"mikrotik-manager_2026-10-07_15-31-18.dump\"", "outcome": {} }, "conflict": { "date": "2026-10-07", "scenario": "PG-5", "authRequired": false, "activeDump": [ { "application_name": "pg_dump", "wait_event_type": "Lock", "wait_event": "relation" } ], "second": { "method": "POST", "path": "restore", "status": 409, "body": { "error": "Операция с базой приложения уже выполняется" } }, "first": { "method": "GET", "path": "backup", "status": 200, "bytes": 478793, "signature": "PGDMP" } }, "controls": { "mmapp": { "servers": [ { "id": "1", "host": "194.226.121.150" }, { "id": "2", "host": "104.165.244.7" } ], "uptimeSettings": [ { "id": "1", "retention_days": 14 } ], "migrations": [ { "id": "0000_postgresql" }, { "id": "0002_compact_schema" }, { "id": "0003_backup_s3" }, { "id": "0004_geoip_settings" }, { "id": "0005_flow_facts" }, { "id": "0006_config_revisions" }, { "id": "0007_flow_buckets_nat" }, { "id": "0008_alert_outbox_outcomes" }, { "id": "0009_alert_outbox_resolution" } ], "speed": { "count": 5, "digest": "6d82b65f9ca64a309d5bf6a60163135a" }, "serversSequence": { "last_value": "2", "is_called": true } }, "mmapp_acceptance_20261007": { "servers": [ { "id": "1", "host": "194.226.121.150" }, { "id": "2", "host": "104.165.244.7" } ], "uptimeSettings": [ { "id": "1", "retention_days": 14 } ], "migrations": [ { "id": "0000_postgresql" }, { "id": "0002_compact_schema" }, { "id": "0003_backup_s3" }, { "id": "0004_geoip_settings" }, { "id": "0005_flow_facts" }, { "id": "0006_config_revisions" }, { "id": "0007_flow_buckets_nat" }, { "id": "0008_alert_outbox_outcomes" }, { "id": "0009_alert_outbox_resolution" } ], "speed": { "count": 5, "digest": "6d82b65f9ca64a309d5bf6a60163135a" }, "serversSequence": { "last_value": "2", "is_called": true } } }, "controlsMatch": true, "scratchRestore": { "database": "mmapp_acceptance_20261007", "exitCode": 0, "method": "pg_restore --single-transaction --exit-on-error", "apiRestoreTested": false }, "limits": [ "No live database restore performed", "PG-6 pending: scheduler jobs and flow flush are not awaited", "JWT generated in memory with test issuer; real Portal SSO not tested", "No pg_dump/pg_restore process tracing during denied requests; PG-7 only HTTP RBAC evidence", "Initial PG-5 observer reused transaction snapshot; rerun used separate observer connection", "Initial control query used incorrect table name; corrected to uptime_speed_test_runs" ], "archiveValidation": { "tocEntries": 907, "requiredObjects": { "servers": true, "uptime_settings": true, "uptime_speed_test_runs": true, "schema_migrations": true }, "clientVersion": "pg_restore (PostgreSQL) 18.6 (Debian 18.6-1.pgdg12+2)" } }