Files
MikrotikManager/docs/ux-ui/acceptance/pg-backup-auth-2026-10-07.json
T

235 lines
5.3 KiB
JSON

{
"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)"
}
}