WEB-617 · Задача · — · web
SEC-068 [Low] Runtime DB role лишена требуемых sequence privileges
Закрыт
P2
ведёт: —
эпик: WEB-515
Суть
# SEC-068 — Runtime DB role лишена требуемых sequence privileges
## 1. Суть и условие дефекта
Runtime-роль БД должна иметь требуемые sequence privileges, сохраняя остальные запреты (least-privilege).
## 2. МЕХАНИКА
`ops/sql/web078_roles.sql:155-182` (гранты роли), `docs/runbooks/DB-LEAST-PRIVILEGE-ROLES.md:8-28`. **Корень:** runtime-роль была лишена sequence privileges. Фикс `025814f8` (repair 3355). Приложение переведено с суперпользователя на роль `web` (web=14, noteclone=0) 12.09 22:15Z.
## 3. ЧТО СДЕЛАНО
1. **10.09** — триаж BACKLOG64 (база `49bc58dcc`): карточка заведена из отчёта R09; условие подтверждено, независимая приёмка 3319SEC068ACCEPTANCE-REPORT.md (a2) — NO-GO.
2. **10.09** — repair-волна 3355 написала фикс `025814f8`; независимая source-приёмка 3361 — GO.
3. **10–11.09** — интеграция 3473 → 3488 (все 26 кандидатов, HEAD `d95fd864`, 201/201 миграций, P19 negative blocksStartup).
4. **12.09** — посадки на прод: l115f-r2 (18:02Z, source `92f7ae807`, artifact `1353e969b`) → l115g (`9c8a9762`) → l115h (`f0777c4d`, 23:47Z).
5. **13.09** — l115i (`6aac3421`, 06:37Z); получено живое доказательство (см. ниже) → карточка переведена в done. Эпик WEB-515 закрыт.
## 4. ЧЕМ ДОКАЗАНО ЖИВЬЁМ
Чекер ролей БД → **PASS 2224 (FAIL 0 / UNKNOWN 0)**. Приложение переведено на роль web (web=14, noteclone=0); sequence privileges присутствуют при сохранении запретов.
Матрица: `/home/ubuntu/sec-checks-3592/out/matrix.txt`.
## 5. КАРТА ДОКУМЕНТОВ
- Repair-волна: A2 `/home/ubuntu/waves/3355REPAIRDBROLES-REPORT.md`
- Независимая source-приёмка: A1 `/home/wave/waves/3361INDEPENDENTDBROLES-REPORT.md`
- Приёмка условия (триаж): `/Users/annakorin/nc-ops-scripts/run-l115b-luna/acceptance-results/a2/3319SEC068ACCEPTANCE-REPORT.md`
- Живая матрица гейтов: `/home/ubuntu/sec-checks-3592/out/matrix.txt` (A2) = `/Users/milamarty/waves/inputs/3639/matrix-l115i.txt` (M4).
- Карта закрытия эпика: `WEB515-CLOSING-MAP.md` — `/Users/milamarty/waves/inputs/3639/WEB515-CLOSING-MAP.md` (M4) и `nc-ops-scripts/shift-20260912-resume/3604/collected/out/WEB515-CLOSING-MAP.md` (Intel).
- Канон: `/Users/milamarty/waves/inputs/3639/canon449.json` (WEB-449).
- Исходник R09 (мастер-разбор): `/Users/poolpooly/audit/inbox/2813-BLOCK24-PROVIDER-SPEND-WIRING-REPORT.md` (SHA `26816992…`).
- Все 28 карточек: `/Users/milamarty/waves/inputs/3639/sec28.json`.
## 6. ОСТАТОК
нет
## 7. КАК ПЕРЕПРОВЕРИТЬ
```
bash ops/sql/web078_roles_test.sh # sequence privileges runtime-роли
# + проверка analytics_readonly: SELECT разрешён, любая запись fail-closed.
```
## История (триаж 10.09)
Правила обогащения: WEB-449. Parent WEB-515. BACKLOG64-TRIAGE-20260910. Дата UTC: 2026-09-10T17:07:52.835164+00:00.
## ДЛЯ ТИКЕТА — SEC-068
**Условие:** Runtime DB role лишена требуемых sequence privileges.
**Состояние:** подтверждено в изученных стендовых свидетельствах воркера на указанной базе; независимая приёмка на Нео ещё не выполнена. Это не объявление дефекта живого l115a. Исходный NO-GO относится к полному scope и может одновременно содержать незавершённые группы.
**Исследованные байты:** `5701c436097e10240a2b8cdd5d87a786b1014def`. Базовая ветка — указанная в исходном отчёте; рабочее дерево lead `/Users/poolpooly/audit/nc` не используется вместо этой версии. **Файл:строка:** ops/sql/web078_roles.sql:155-182; docs/runbooks/DB-LEAST-PRIVILEGE-ROLES.md:8-28.
**Доказательство и controls:** Actual disposablePG rolepolicy: tableINSERT=true,sequenceUSAGE/SELECT=false; permittedBIGSERIALinsert exit1before row. Migrator/backup/DMLcontrolsPASS.
**CVSS 3.1:** 1.9 Low — `CVSS:3.1/AV:L/AC:H/PR:H/UI:N/S:U/C:N/I:N/A:L` (предварительно).
Предварительно: приустановкеэтогот emplate и runtimewebrole; currentgrantsUNKNOWN.
Числа пересчитаны по FIRST CVSS3.1, а не скопированы из заголовков: https://www.first.org/cvss/v3.1/specification-document#7-1-Base-Metrics-Equations . При неполных предпосылках оценка не становится окончательной. N/A/UNKNOWN не означает Low или нулевой риск.
**Предложение исправления:** Согласовать sequencegrant/defaultprivileges сзаявленным runtimecontract; добавить serial/identitypositive и отрицательные DDL/writebackupchecks.
**Сданные изменения:** Не представлен в этом возврате.
**Связи/дедупликация:** WEB-078 Старые условия SEC-001…048 не регистрируются заново. Эта карточка описывает отдельное условие, а не повтор счёта того же отчёта.
## KNOWN ISSUES / ТРАБЛШУТИНГ
Симптом → Runtime DB role лишена требуемых sequence privileges.
Проверка → воспроизвести указанный actual-module/PG fixture с положительным разрешённым контролем; сверить SHA исходников и хеши артефактов. Мок транспорта допустим, мок самой проверяемой проверки — нет. Report file получен и хеширован лидом; исходные raw artifacts вне inbox ещё не объявляются независимо проверенными.
Причина → ops/sql/web078_roles.sql:155-182; docs/runbooks/DB-LEAST-PRIVILEGE-ROLES.md:8-28.
Лечение/статус → Согласовать sequencegrant/defaultprivileges сзаявленным runtimecontract; добавить serial/identitypositive и отрицательные DDL/writebackupchecks. Приёмка/актуальность l115a пока pending. Если условие уже устранено позднейшим коммитом, зафиксировать точный fix→release mapping и принять существующий результат; повторный фикс не нужен.
## Три группы приёмки на Нео
1. **Байты и достижимость:** сравнить исследованную базу с переданным current candidate, проверить реальный entrypoint/инициализацию/feature flag и не подменять его вызовом недостижимого helper. Отдельно актуализировать policy/grants там, где это предпосылка.
2. **Поведение:** тот же безвредный red fixture на базе; нормальный positive control; после исправления — требуемый отказ/результат до side effect, повтор/конкурентный/отложенный вариант, точные счётчики. Для durable эффектов — одноразовый PostgreSQL, не только in-memory adapter.
3. **Независимость и сдача:** reviewer на Нео, не OpenAI; сверка diff/тестов/изменённых путей, bundle+SHA256, report с GO/NO-GO и отдельными UNKNOWN. Live/prod/host действия — только отдельная работа координатора. Не заявлять landing по наличию commit.
## Карта документов
- R47: /Users/poolpooly/audit/inbox/b37-04-B37-04-REPORT.md — SHA256 `29b6fcf9d1856be91f118966f099006584e32a18121b27ffbade0e227c5bf030`
- Мастер-разбор: /Users/poolpooly/audit/outbox/BACKLOG64-TRIAGE-20260910.md
- Данные: /Users/poolpooly/audit/evidence/backlog64-20260910/findings28.json
SEC-INDEPENDENT-GO:3361
2026-09-10: Независимая source-приёмка 3361: GO для SEC-068/069 на 025814f87a2449d7e1bd6a96f3a4069422e548a6; QA 86eea117c4d28912ab85c6519da828762ae1f47a. Полный отчёт и raw RED/GREEN прочитаны координатором: BASE sequence denial с 0 rows и readonly SQL syntax error; candidate 8/8 independent PG stages и 6/6 own runtime tests. Рабочие serial/identity INSERT сохранены, ledger/DDL/backup writes запрещены; ровно 10 readonly SELECT grants, repeated/deferred/concurrent writes оставляют 0 rows, missing secret не создаёт роль. Report/bundle/evidence сохранены на Intel; SHA256 47e3935e77593c41b24911036a16dd45f5b2ecdd57bb15b5a8a9d405ca848bad, bundle verify/ancestry PASS. Источник a1nc:/home/wave/waves/3361INDEPENDENTDBROLES-REPORT.md. DONE отсутствует, комплект проверен по файлам. Live role provisioning/grants, READONLY_DATABASE_URL и release mapping ещё впереди. Исправление не посажено.
CHECKPOINT3478:WEB-617 2026-09-10T23:30:08.650195+00:00
3473 активно объединяет 14 точных кандидатов для22 критериев. Этот кандидат dbroles 025814f87a2449d7e1bd6a96f3a4069422e548a6; критерии SEC-068,SEC-069. Входные hashes и git objects проверены до старта. Последний наблюдённый merge66a666e38 объединил манифест миграций; итогового integration verdict нет. SEC053/054 и062/064 вне этой партии. Предыдущий scoped GO не означает проверку конфликтов, сборку или посадку.
Полные отчёты и проверки SHA: /Users/annakorin/nc-ops-scripts/checkpoint-3478/snapshot.json; задания и SHA inputs: refill-20260911-0015,0025,0028,0030. Спецификация: /Users/annakorin/nc-ops-scripts/enterprise2-20260910/ENTERPRISE-2.md; цель: SHIFT-GOAL-20260911-8H.md.
CHECKPOINT3484:WEB-617 2026-09-10T23:46:59.374675+00:00
3473 integration GO: exact HEAD f9c514014fcedccdecc2cf9e7c39a79421b4655b, все 14 кандидатов/22 критерия сохранены; P19 и migration-set 200/200, дерево чистое, SHA и bundle проверены координатором. Кандидат dbroles 025814f87a2449d7e1bd6a96f3a4069422e548a6. Независимая 3484 Claude Opus доставлена на A1 с inputs SHA и exact BASE для merged-source/изолированной PG проверки. Пока подтверждена очередь, не выполнение тестов. Новых посадок нет; live flags/roles/scheduler/browser и post-QA впереди.
Доказательства: /Users/annakorin/nc-ops-scripts/checkpoint-3484/receipt.json, integration-manifest.json, focused-tests-summary.log, migration-gates.log и 3473SECURITYINTEGRATION-REPORT.md; доставка: refill-20260911-0050. Норматив: enterprise2-20260910/ENTERPRISE-2.md.
## HANDOFF-20260912T1721:WEB-617 — точка входа для нового агента
Правила обогащения: [[WEB-449]]. Наблюдение: 12.09.2026 18:21:36 Europe/Dublin / 17:21:36 UTC. Автор: координатор. История выше сохранена; эту запись читать как текущий handoff на указанное время.
**Задача.** SEC-068 [Low] Runtime DB role лишена требуемых sequence privileges
**Что подтверждено и что остаётся.** 3521 дал bounded source/isolated-PG GO при общем NO-GO;3525 закрыл узкий SOURCE_PG_HANDOFF и CHARGE_COMPLETENESS, сохранив RELEASE_RUNTIME=OPEN. Итог на реальном релизе для этой карточки не подтверждён.
**Как устроено / почему остановилось.** Runtime DB role: приложению доступны требуемые sequences при сохранении запретов; положительное штатное действие и отрицательные writes проверить из фактической runtime роли, не superuser.
**Следующая операция.** Общий переход релиза выполнять по [[WEB-515]]. Индивидуальный gate этой карточки: Runtime DB role: приложению доступны требуемые sequences при сохранении запретов; положительное штатное действие и отрицательные writes проверить из фактической runtime роли, не superuser. Зафиксировать exact deployed artifact, positive/negative, raw commands, exits и skips. Непройденный runtime gate не заменять повтором прежнего source suite.
**Исполнитель и приёмка.** Координатор даёт установленный artifact и исполняет хостовые операции; независимый security-приёмщик проверяет gate. Назначение не считать запущенным процессом.
**Условие закрытия.** Доказанный результат именно этой finding на установленной версии и соответствующий независимый вердикт; review остаётся до этого.
**КАРТА ДОКУМЕНТОВ**
- Intel: /Users/annakorin/nc-ops-scripts/tick-20260912-recovery/3521/3521ACCSECURITY26REPAIRED-REPORT.md
- Intel: /Users/annakorin/nc-ops-scripts/tick-20260912-recovery/3525/3525SECURITYHANDOFFGATES-REPORT.md
- Intel: /Users/annakorin/nc-ops-scripts/tick-20260912-recovery/3525/3525SECURITYHANDOFFGATES-evidence/GATES.md
- Intel: /Users/annakorin/nc-ops-scripts/release-l115f/r2/l115f-artifact.json
- Intel: /Users/annakorin/nc-ops-scripts/release-l115f/handoff-tickets/live-observation.json
**Релизная зависимость:** [[WEB-515]] — r2 staged/signed, compat BUILDING; prod l115e на времени наблюдения. Не путать SEC registry с количеством сегментов аудита.
SHIFT-STOP-20260912:R2:WEB-617
ТЕКУЩИЙ СРЕЗ ПЕРЕД ОСТАНОВКОЙ — WEB-617 / SEC-068
Задача: SEC-068 [Low] Runtime DB role лишена требуемых sequence privileges
Пакет l115f-r2 установлен на прод 2026-09-12T18:02:33.922654Z.
SOURCE=92f7ae807869bbaa8ae7ef6ca2ea622675e31af9
ARTIFACT_SHA256=1353e969b2a7a1a31ac702be361913c41cb53c104db49938a02f5fcd07766668
Runtime 18:15:34 UTC: оба backend ready=true, paidReady=true/enforce_ready; web A/B, indexing и extraction указывают на новый release; старых процессов 0. Таймеры indexing/extraction active.
Сборка, подпись с tamper-negative, совместимый rollback, dryrun и flip выполнены. Редактор: приложение HTTP200, список 58 документов, один документ открыт, новых ошибок после клика 0; при загрузке были две прерванные prefetch-загрузки и admin/agents403. Это не полная browser/security приёмка.
Один платный synthetic chat: HTTP200; operation terminal/succeeded, event APPLIED, 5/5 обязательных receipts нового identity. BILLING_PARITY=NO-GO: в ответе $0.000637, в LedgerEntry списано $0.039476, разница $0.038839, SETTLED_MAX/usage_untrusted. HTTP200 и paidReady не доказывают корректность суммы или ответа.
Владелец 18:13:55 UTC поручил сохранить готовое, обогатить тикеты, написать хендофф и остановить смену. Новые волны, сборки, paid requests, load/soak и security-вердикты не запускаются. Эпик остаётся открыт.
Откат после появления candidate receipts — только arm64-l115e-compat-20260912T172738Z, SHA ef4b7c2a6e8bcda45fc361f979076f43d37f4caf1256bcbbccf2188b2e2d092d. Plain l115e несовместим с новой identity; исторические receipts не переписывать.
ПРИЁМКА ЭТОЙ НАХОДКИ
ALL26 criterion: SEC-068 DB roles; source=GREEN inherited; PG=GREEN inherited. Evidence: `29-pg-db-roles.log`: seven role-policy stages, exit 0; repeated/deferred/concurrent writes denied, side effects 0. Оставшиеся gates при handoff: R, owner-applied live roles.
ТОЧНЫЙ ОСТАТОК / СЛЕДУЮЩИЙ ИСПОЛНИТЕЛЬ
Сверить реально применённые DB role/sequence grants; positive SELECT/required sequence use и repeated/deferred/concurrent write-denial для readonly. Исходник SQL не равен provisioning.
Координатор собирает runtime receipts; независимый security-приёмщик не на OpenAI выдаёт scoped verdict. Сейчас никто не назначается на новую волну. Review сохраняется: факт установки не превращает OPEN в PASS.
КАРТА ДОКУМЕНТОВ
Intel: /Users/annakorin/nc-ops-scripts/release-l115f/r2/{l115f-artifact.json,signature-receipt.json,runtime-stop-verified.log,editor-postqa-rerun.log,paid-probe-accounting-receipt.json,paid-probe-failure-detail.json}.
Source/QA: /Users/annakorin/nc-ops-scripts/tick-20260912-recovery/3521/3521ACCSECURITY26REPAIRED-REPORT.md; 3525/3525SECURITYHANDOFFGATES-evidence/GATES.md; 3530/3530ACCSECURITYGOOGLEFIXTURE-REPORT.md.
Merge: /Users/annakorin/nc-ops-scripts/tick-20260912-recovery/3526/3526INTEGRATESECURITYRELEASE-evidence/merge-manifest.json.
Transition: /Users/annakorin/nc-ops-scripts/release-l115f/{3534-collected,3536-collected,compat}.
Billing finding: [[WEB-650]].
Доказательства
ACCEPTANCE-3300-3327:3319SEC068ACCEPTANCE-REPORT.md:5569141683a07ef96f4a10a1f7c408d97bc66a56caa8c9c59e798f6749f0182f
/Users/annakorin/nc-ops-scripts/run-l115b-luna/acceptance-results/a2/3319SEC068ACCEPTANCE-REPORT.md
SHA256 5569141683a07ef96f4a10a1f7c408d97bc66a56caa8c9c59e798f6749f0182f
SEC-REPAIR-DISPATCH:3355:WEB-617
/home/ubuntu/waves/3355REPAIRDBROLES-REPORT.md
SEC-INDEPENDENT-GO:3361
2026-09-10: Независимая source-приёмка 3361: GO для SEC-068/069 на 025814f87a2449d7e1bd6a96f3a4069422e548a6; QA 86eea117c4d28912ab85c6519da828762ae1f47a. Полный отчёт и raw RED/GREEN прочитаны координатором: BASE sequence denial с 0 rows и readonly SQL syntax error; candidate 8/8 independent PG stages и 6/6 own runtime tests. Рабочие serial/identity INSERT сохранены, ledger/DDL/backup writes запрещены; ровно 10 readonly SELECT grants, repeated/deferred/concurrent writes оставляют 0 rows, missing secret не создаёт роль. Report/bundle/evidence сохранены на Intel; SHA256 47e3935e77593c41b24911036a16dd45f5b2ecdd57bb15b5a8a9d405ca848bad, bundle verify/ancestry PASS. Источник a1nc:/home/wave/waves/3361INDEPENDENTDBROLES-REPORT.md. DONE отсутствует, комплект проверен по файлам. Live role provisioning/grants, READONLY_DATABASE_URL и release mapping ещё впереди. Исправление не посажено.
CHECKPOINT3478:WEB-617 2026-09-10T23:30:08.650195+00:00
3473 активно объединяет 14 точных кандидатов для22 критериев. Этот кандидат dbroles 025814f87a2449d7e1bd6a96f3a4069422e548a6; критерии SEC-068,SEC-069. Входные hashes и git objects проверены до старта. Последний наблюдённый merge66a666e38 объединил манифест миграций; итогового integration verdict нет. SEC053/054 и062/064 вне этой партии. Предыдущий scoped GO не означает проверку конфликтов, сборку или посадку.
Полные отчёты и проверки SHA: /Users/annakorin/nc-ops-scripts/checkpoint-3478/snapshot.json; задания и SHA inputs: refill-20260911-0015,0025,0028,0030. Спецификация: /Users/annakorin/nc-ops-scripts/enterprise2-20260910/ENTERPRISE-2.md; цель: SHIFT-GOAL-20260911-8H.md.
CHECKPOINT3484:WEB-617 2026-09-10T23:46:59.374675+00:00
3473 integration GO: exact HEAD f9c514014fcedccdecc2cf9e7c39a79421b4655b, все 14 кандидатов/22 критерия сохранены; P19 и migration-set 200/200, дерево чистое, SHA и bundle проверены координатором. Кандидат dbroles 025814f87a2449d7e1bd6a96f3a4069422e548a6. Независимая 3484 Claude Opus доставлена на A1 с inputs SHA и exact BASE для merged-source/изолированной PG проверки. Пока подтверждена очередь, не выполнение тестов. Новых посадок нет; live flags/roles/scheduler/browser и post-QA впереди.
Доказательства: /Users/annakorin/nc-ops-scripts/checkpoint-3484/receipt.json, integration-manifest.json, focused-tests-summary.log, migration-gates.log и 3473SECURITYINTEGRATION-REPORT.md; доставка: refill-20260911-0050. Норматив: enterprise2-20260910/ENTERPRISE-2.md.
CHECKPOINT3484LIMIT:WEB-617 2026-09-10T23:52:07.659549+00:00
3484 не выполнила приёмку: A1 после ремонта TMPDIR отказала OAuth session expired; тот же exact candidate перенесён без дубля на A2, guard/SHA/BASE проверены. A2 запустила Claude Opus, затем WAVE_EXIT=1: weekly limit, resets Sep 12 16:00 UTC. Приёмка merged-source/PG BLOCKED_PROVIDER_LIMIT, результата нет. Кошелёк и OpenAI для security acceptance не подключались. 3473 остаётся integration-only GO для22 критериев, HEAD f9c514014fcedccdecc2cf9e7c39a79421b4655b. Посадки нет. Evidence: checkpoint-3484, refill-20260911-0052; A2 /home/ubuntu/waves/3484-acc-security-merged-pg-claude.log.
CHECKPOINT3488:WEB-617 2026-09-11T00:15:51.647210+00:00
Пять новых сдач проверены координатором: bundle verify, SHA256 и exact HEAD. 3427 сдала ingest cf64ed4074c8349c12ed10a3725797ec2c65ff75; source PG 23/23, component 33+3+20; ESLint UNKNOWN timeout, финальная security/live приёмка не выполнена. 3488 реально запущена на A1: объединяет 3473 (22 критерия), 3479 (tokens/types), 3427 (ingest), охватывая входы всех исходных26. Итогового merge verdict ещё нет. Security acceptance3484 остаётся BLOCKED_PROVIDER_LIMIT до12.09 16:00UTC; кошелёк не менялся. Новых посадок нет. Evidence: checkpoint-3488/snapshot.json; security-integration-3488/{3488-receipt.json,inputs/manifest.json}; полный3427 report.
CHECKPOINT3492:WEB-617 2026-09-11T00:32:55.179360+00:00
3488 завершила source integration: d95fd864292c2763e8125de62a08e8fd8c181cde. Все 26 строк матрицы и исходные 14 веток сохранены; 201/201 миграций, P19 negative blocksStartup, 123 activation rows сохранены. SHA256 d3bd60ef387de0cb79342522be849d9023365f96e33d69c866b3ab2598aa8e7d, exact HEAD/clean/bundle проверены и скопированы. Это не независимая security/PG/runtime приёмка. 3484 BLOCKED_PROVIDER_LIMIT до 2026-09-12 16:00 UTC; новых посадок нет. Evidence: checkpoint-3491/snapshot.json, полный 3488 REPORT и бандл; A1 3488SECURITYINTEGRATIONFINAL-evidence.
HANDOFF-20260912T1721:WEB-617 — автономный handoff добавлен в body: причина, механизм, подтверждённое/OPEN, следующая операция, ответственный, критерий закрытия и карта документов. Срез фактов 2026-09-12T17:21:36.454887+00:00. Исторические отказы и статусы сохранены. Полный аудит записи: Intel /Users/annakorin/nc-ops-scripts/release-l115f/handoff-tickets/.
SHIFT-STOP-20260912:R2:WEB-617
Installed source92f7ae807 / artifact1353e969; runtime-stop-verified.log; billing parity NO-GO [[WEB-650]]; per-finding remaining gates in body.
Замечен в сборке
l115f-r2 / 92f7ae807
Лента
2026-09-10T17:07:54.706Z · astra-securityBACKLOG64-TRIAGE-20260910-SEC-068 — 2026-09-10T17:07:54.705854+00:00 / IST=2026-09-10T22:37:54.705864+05:30
Новая карточка по возвратам R47.
Actual disposablePG rolepolicy: tableINSERT=true,sequenceUSAGE/SELECT=false; permittedBIGSERIALinsert exit1before row. Migrator/backup/DMLcontrolsPASS.
База 5701c436097e10240a2b8cdd5d87a786b1014def; CVSS3.1 1.9 Low — `CVSS:3.1/AV:L/AC:H/PR:H/UI:N/S:U/C:N/I:N/A:L` (предварительно). Приёмка Нео и current mapping pending. Предложение: Согласовать sequencegrant/defaultprivileges сзаявленным runtimecontract; добавить serial/identitypositive и отрицательные DDL/writebackupchecks.
Исходные отчёты:
- R47: /Users/poolpooly/audit/inbox/b37-04-B37-04-REPORT.md — SHA256 `29b6fcf9d1856be91f118966f099006584e32a18121b27ffbade0e227c5bf030`
2026-09-10T17:43:11.076Z · coordinator[2026-09-10T17:43:11.002Z] Маршрут изменён по прямому указанию владельца: 3319-sec068-acceptance-brief.md → Codex gpt-5.6-luna xhigh, A2. Предыдущий Claude-запуск завершился по weekly limit без отчёта; его бриф и лог сохранены. Повторно поставлен тот же номер волны. База current l115a и три исторических SHA проверены на хосте. Доставлены исходные отчёты с manifest SHA256; raw artifacts и effective host inputs не объявляются полностью полученными. Критерии независимости и доказательств сохранены. Постановка в очередь не является положительной приёмкой или посадкой.
2026-09-10T18:39:13.491Z · coordinatorACCEPTANCE-3300-3327:3319SEC068ACCEPTANCE-REPORT.md:5569141683a07ef96f4a10a1f7c408d97bc66a56caa8c9c59e798f6749f0182f
Независимый отчёт получен координатором. Проверенная база l115a 8d598d69a663cfa8977816d96bb20303e9a9650c; это не повторная проверка l115c.
Исправление требует выполнения; положительной приёмки исправленного кода нет.
SEC-068 / WEB-617 is an independent acceptance of the returned R47 condition,
not a new block and not a duplicate registration of SEC-001…048 or WEB-078.
Evolution:
1. WEB078/GATE-10 documented web as the runtime DML principal and required
sequence USAGE/SELECT for serial/identity-backed application writes.
2. Historical R47 at 5701c436097e10240a2b8cdd5d87a786b1014def applied the exact
policy in disposable PostgreSQL. It observed table INSERT true, sequence
USAGE/SELECT false, and a permitted BIGSERIAL insert exit 1 before a row
side effect. The delivered R47 report hash is
29b6fcf9d1856be91f118966f099006584e32a18121b27ffbade0e227c5bf030.
3. BACKLOG64 triage registered the separate SEC-068 / WEB-617 condition with
provisional CVSS 1.9 Low and vector
CVSS:3.1/AV:L/AC:H/PR:H/UI:N/S:U/C:N/I:N/A:L. The score is conditional on
the stated local role-policy and runtime-role assumptions; it is not a live
impact declaration.
4. A2 compared current BASE 8d598d69a663cfa8977816d96bb20303e9a9650c with the
historical source. Relevant source hashes and target-path diff are
identical. The exact role policy still omits the required web sequence grant.
5. Independent current and historical disposable fixtures reproduced the denied
serial write and demonstrated the proposed grant as a positive control.
Existing migrator, DDL, backup, and table-DML controls remained passing.
6. No fix was submitted in this return, no product tree was changed, and no
bundle was created because the acceptance worktree is clean. Current actual
grants and release mapping remain UNKNOWN_INPUT.
Ticket disposition: NO-GO for the reviewed source/fixture condition; UNKNOWN
for current live applicability. The next input should be a sanitized current
grants/role receipt plus an exact fixed candidate/release mapping. The
coordinator should then rerun the independent fixture, including serial and
identity positive controls, denied DDL/write/backup controls, and exact
side-effect counters. No production fix or deployment was performed here.
2026-09-10T19:23:44.868Z · coordinatorSEC-REPAIR-DISPATCH:3355:WEB-617
Назначено исправление: волна 3355 repair-dbroles, A2, Codex gpt-5.6-luna xhigh. Это разработка исправления; отдельная приёмка и посадка ещё впереди. База l115c 1ad52e16b. Входы доставлены и проверены по SHA256: /home/ubuntu/waves/inputs/security-repairs-20260910/dbroles.
Бриф: /home/ubuntu/waves/queue/3355-repair-dbroles-brief.md
Отчёт: /home/ubuntu/waves/3355REPAIRDBROLES-REPORT.md
Предыдущие результаты сохранены; 5 отсутствующих исторических кандидатов ищет координатор. Исполнитель обязан сначала проверить доступный кандидат; при отсутствии исправлять воспроизводимый дефект текущей базы и явно назвать новую реализацию.
Состояние на проверке: active.
2026-09-10T19:54:37.188Z · coordinatorSEC-INDEPENDENT-DISPATCH:3361:WEB-617
2026-09-10T19:54:22.234861+00:00 — Получен исходный repair 3355, коммит 025814f87a2449d7e1bd6a96f3a4069422e548a6. Отчёт автора: a2nc:/home/ubuntu/waves/3355REPAIRDBROLES-REPORT.md. Bundle SHA256: 9cd35bfd4bd7cef1474fc40eda590fb387f38da4314fd5d0d43e84953dcb54c4.
Отдельная независимая приёмка 3361 на A1, Codex gpt-5.6-luna xhigh; сессия подтверждена.
Проверка exact candidate с собственными RED/GREEN/negative tests; PostgreSQL там, где требуется durable/race proof. Входы проверены по SHA256, candidate objects импортированы и проверены.
Входы: /home/wave/waves/inputs/security-independent-20260910/3361
Бриф: /home/wave/waves/queue/3361-secaccept-dbroles-brief.md
Ожидаемый отчёт: /home/wave/waves/3361INDEPENDENTDBROLES-REPORT.md
Source repair GO автора не является независимым GO. Приёмка, интеграция, посадка и runtime proof ещё не получены. Итоговый статус после проверки; эта запись не закрывает находку.
2026-09-10T20:30:31.985Z · coordinatorSEC-INDEPENDENT-GO:3361
2026-09-10: Независимая source-приёмка 3361: GO для SEC-068/069 на 025814f87a2449d7e1bd6a96f3a4069422e548a6; QA 86eea117c4d28912ab85c6519da828762ae1f47a. Полный отчёт и raw RED/GREEN прочитаны координатором: BASE sequence denial с 0 rows и readonly SQL syntax error; candidate 8/8 independent PG stages и 6/6 own runtime tests. Рабочие serial/identity INSERT сохранены, ledger/DDL/backup writes запрещены; ровно 10 readonly SELECT grants, repeated/deferred/concurrent writes оставляют 0 rows, missing secret не создаёт роль. Report/bundle/evidence сохранены на Intel; SHA256 47e3935e77593c41b24911036a16dd45f5b2ecdd57bb15b5a8a9d405ca848bad, bundle verify/ancestry PASS. Источник a1nc:/home/wave/waves/3361INDEPENDENTDBROLES-REPORT.md. DONE отсутствует, комплект проверен по файлам. Live role provisioning/grants, READONLY_DATABASE_URL и release mapping ещё впереди. Исправление не посажено.
2026-09-10T23:33:43.998Z · coordinatorCHECKPOINT3478:WEB-617 2026-09-10T23:30:08.650195+00:00
3473 активно объединяет 14 точных кандидатов для22 критериев. Этот кандидат dbroles 025814f87a2449d7e1bd6a96f3a4069422e548a6; критерии SEC-068,SEC-069. Входные hashes и git objects проверены до старта. Последний наблюдённый merge66a666e38 объединил манифест миграций; итогового integration verdict нет. SEC053/054 и062/064 вне этой партии. Предыдущий scoped GO не означает проверку конфликтов, сборку или посадку.
Полные отчёты и проверки SHA: /Users/annakorin/nc-ops-scripts/checkpoint-3478/snapshot.json; задания и SHA inputs: refill-20260911-0015,0025,0028,0030. Спецификация: /Users/annakorin/nc-ops-scripts/enterprise2-20260910/ENTERPRISE-2.md; цель: SHIFT-GOAL-20260911-8H.md.
2026-09-10T23:46:59.850Z · coordinatorCHECKPOINT3484:WEB-617 2026-09-10T23:46:59.374675+00:00
3473 integration GO: exact HEAD f9c514014fcedccdecc2cf9e7c39a79421b4655b, все 14 кандидатов/22 критерия сохранены; P19 и migration-set 200/200, дерево чистое, SHA и bundle проверены координатором. Кандидат dbroles 025814f87a2449d7e1bd6a96f3a4069422e548a6. Независимая 3484 Claude Opus доставлена на A1 с inputs SHA и exact BASE для merged-source/изолированной PG проверки. Пока подтверждена очередь, не выполнение тестов. Новых посадок нет; live flags/roles/scheduler/browser и post-QA впереди.
Доказательства: /Users/annakorin/nc-ops-scripts/checkpoint-3484/receipt.json, integration-manifest.json, focused-tests-summary.log, migration-gates.log и 3473SECURITYINTEGRATION-REPORT.md; доставка: refill-20260911-0050. Норматив: enterprise2-20260910/ENTERPRISE-2.md.
2026-09-10T23:52:08.384Z · coordinatorCHECKPOINT3484LIMIT:WEB-617 2026-09-10T23:52:07.659549+00:00
3484 не выполнила приёмку: A1 после ремонта TMPDIR отказала OAuth session expired; тот же exact candidate перенесён без дубля на A2, guard/SHA/BASE проверены. A2 запустила Claude Opus, затем WAVE_EXIT=1: weekly limit, resets Sep 12 16:00 UTC. Приёмка merged-source/PG BLOCKED_PROVIDER_LIMIT, результата нет. Кошелёк и OpenAI для security acceptance не подключались. 3473 остаётся integration-only GO для22 критериев, HEAD f9c514014fcedccdecc2cf9e7c39a79421b4655b. Посадки нет. Evidence: checkpoint-3484, refill-20260911-0052; A2 /home/ubuntu/waves/3484-acc-security-merged-pg-claude.log.
2026-09-11T00:15:52.255Z · coordinatorCHECKPOINT3488:WEB-617 2026-09-11T00:15:51.647210+00:00
Пять новых сдач проверены координатором: bundle verify, SHA256 и exact HEAD. 3427 сдала ingest cf64ed4074c8349c12ed10a3725797ec2c65ff75; source PG 23/23, component 33+3+20; ESLint UNKNOWN timeout, финальная security/live приёмка не выполнена. 3488 реально запущена на A1: объединяет 3473 (22 критерия), 3479 (tokens/types), 3427 (ingest), охватывая входы всех исходных26. Итогового merge verdict ещё нет. Security acceptance3484 остаётся BLOCKED_PROVIDER_LIMIT до12.09 16:00UTC; кошелёк не менялся. Новых посадок нет. Evidence: checkpoint-3488/snapshot.json; security-integration-3488/{3488-receipt.json,inputs/manifest.json}; полный3427 report. 2026-09-11T00:32:55.800Z · coordinatorCHECKPOINT3492:WEB-617 2026-09-11T00:32:55.179360+00:00
3488 завершила source integration: d95fd864292c2763e8125de62a08e8fd8c181cde. Все 26 строк матрицы и исходные 14 веток сохранены; 201/201 миграций, P19 negative blocksStartup, 123 activation rows сохранены. SHA256 d3bd60ef387de0cb79342522be849d9023365f96e33d69c866b3ab2598aa8e7d, exact HEAD/clean/bundle проверены и скопированы. Это не независимая security/PG/runtime приёмка. 3484 BLOCKED_PROVIDER_LIMIT до 2026-09-12 16:00 UTC; новых посадок нет. Evidence: checkpoint-3491/snapshot.json, полный 3488 REPORT и бандл; A1 3488SECURITYINTEGRATIONFINAL-evidence.
2026-09-12T14:52:13.308Z · coordinatorTICK-3525-STALE-LIMIT-20260912:WEB-617
Старая отметка provider-limit снята: source/QA приёмка3521 и узкая3525 завершены. Неизменённые доказательства наследуются с точным SHA и указанными skips/границами; это не новые live тесты этой карточки. Посадка, соответствующие runtime/browser/provider gates остаются OPEN. Матрица26 и GATES.md привязаны к WEB-515; done не выставляется.
2026-09-12T18:22:02.212Z · coordinatorSHIFT-STOP-20260912:R2:WEB-617
ТЕКУЩИЙ СРЕЗ ПЕРЕД ОСТАНОВКОЙ — WEB-617 / SEC-068
Задача: SEC-068 [Low] Runtime DB role лишена требуемых sequence privileges
Пакет l115f-r2 установлен на прод 2026-09-12T18:02:33.922654Z.
SOURCE=92f7ae807869bbaa8ae7ef6ca2ea622675e31af9
ARTIFACT_SHA256=1353e969b2a7a1a31ac702be361913c41cb53c104db49938a02f5fcd07766668
Runtime 18:15:34 UTC: оба backend ready=true, paidReady=true/enforce_ready; web A/B, indexing и extraction указывают на новый release; старых процессов 0. Таймеры indexing/extraction active.
Сборка, подпись с tamper-negative, совместимый rollback, dryrun и flip выполнены. Редактор: приложение HTTP200, список 58 документов, один документ открыт, новых ошибок после клика 0; при загрузке были две прерванные prefetch-загрузки и admin/agents403. Это не полная browser/security приёмка.
Один платный synthetic chat: HTTP200; operation terminal/succeeded, event APPLIED, 5/5 обязательных receipts нового identity. BILLING_PARITY=NO-GO: в ответе $0.000637, в LedgerEntry списано $0.039476, разница $0.038839, SETTLED_MAX/usage_untrusted. HTTP200 и paidReady не доказывают корректность суммы или ответа.
Владелец 18:13:55 UTC поручил сохранить готовое, обогатить тикеты, написать хендофф и остановить смену. Новые волны, сборки, paid requests, load/soak и security-вердикты не запускаются. Эпик остаётся открыт.
Откат после появления candidate receipts — только arm64-l115e-compat-20260912T172738Z, SHA ef4b7c2a6e8bcda45fc361f979076f43d37f4caf1256bcbbccf2188b2e2d092d. Plain l115e несовместим с новой identity; исторические receipts не переписывать.
ПРИЁМКА ЭТОЙ НАХОДКИ
ALL26 criterion: SEC-068 DB roles; source=GREEN inherited; PG=GREEN inherited. Evidence: `29-pg-db-roles.log`: seven role-policy stages, exit 0; repeated/deferred/concurrent writes denied, side effects 0. Оставшиеся gates при handoff: R, owner-applied live roles.
ТОЧНЫЙ ОСТАТОК / СЛЕДУЮЩИЙ ИСПОЛНИТЕЛЬ
Сверить реально применённые DB role/sequence grants; positive SELECT/required sequence use и repeated/deferred/concurrent write-denial для readonly. Исходник SQL не равен provisioning.
Координатор собирает runtime receipts; независимый security-приёмщик не на OpenAI выдаёт scoped verdict. Сейчас никто не назначается на новую волну. Review сохраняется: факт установки не превращает OPEN в PASS.
КАРТА ДОКУМЕНТОВ
Intel: /Users/annakorin/nc-ops-scripts/release-l115f/r2/{l115f-artifact.json,signature-receipt.json,runtime-stop-verified.log,editor-postqa-rerun.log,paid-probe-accounting-receipt.json,paid-probe-failure-detail.json}.
Source/QA: /Users/annakorin/nc-ops-scripts/tick-20260912-recovery/3521/3521ACCSECURITY26REPAIRED-REPORT.md; 3525/3525SECURITYHANDOFFGATES-evidence/GATES.md; 3530/3530ACCSECURITYGOOGLEFIXTURE-REPORT.md.
Merge: /Users/annakorin/nc-ops-scripts/tick-20260912-recovery/3526/3526INTEGRATESECURITYRELEASE-evidence/merge-manifest.json.
Transition: /Users/annakorin/nc-ops-scripts/release-l115f/{3534-collected,3536-collected,compat}.
Billing finding: [[WEB-650]]. 2026-09-12T22:25:57.499Z · coordinator[12.09 22:25Z координатор] ОБОГАЩЕНИЕ 12.09 (3574-enrich-web515-b):
Сделано: роли БД (web/web_migrator/web_backup/web_owner/analytics_readonly) посажены на прод, приложению даны нужные sequence-privileges при сохранении запретов.
На проде: да. Checker на живой базе чистый (PASS 2224 / FAIL 0 / UNKNOWN 0), и 22:15Z приложение переведено с суперпользователя noteclone на роль web (web=14, noteclone=0).
Доказано: приёмка 3319, repair 3355, независимая 3361 (GO, 8/8 PG), checker-цепочка 3541→3545→3547→3551.
Осталось: миграции как web_migrator и hetzbk на web_backup — следующая линия l115h.
Кто следующий: линия l115h (kit). Статус keep (review).
Ссылки: /Users/annakorin/nc-ops-scripts/run-l115b-luna/acceptance-results/a2/3319SEC068ACCEPTANCE-REPORT.md (SHA 55691416…); /home/ubuntu/waves/3355REPAIRDBROLES-REPORT.md; commit: 025814f8; ops/sql/web078_roles.sql:155-182; docs/runbooks/DB-LEAST-PRIVILEGE-ROLES.md:8-28; sec-live-checks-l115f/db-roles-after-3551.txt (PASS 2224/0/0); [[WEB-650]]
Отчёт волны: /Users/milamarty/waves/3574ENRICH*-REPORT.md (M4), копия nc-ops-scripts/shift-20260912-resume/wash-20260912/enrich-collected/.
2026-09-13T06:21:02.894Z · coordinator[13.09 06:21Z координатор] ЖИВОЕ ДОКАЗАТЕЛЬСТВО ЕСТЬ → done. SEC-068: чекер ролей БД PASS 2224 (FAIL 0 / UNKNOWN 0); приложение переведено на роль web (web=14, noteclone=0)
Проверено на проде l115h (13.09, прогон раннера живых гейтов с копии боевого процесса на :3011 и QA-фикстурами; SEC-068/069 — чекером ролей БД, PASS 2224/0/0). Остатка по коду нет.
Матрица: /home/ubuntu/sec-checks-3592/out/matrix.txt; карта эпика: shift-20260912-resume/3604/collected/out/WEB515-CLOSING-MAP.md (волна 3604).
2026-09-13T09:05:32.721Z · coordinator[13.09 09:05Z координатор] ОБОГАЩЕНИЕ ПОД НУЛЕВОГО АГЕНТА (канон WEB-449, волна 3639): тело карточки переписано — суть, МЕХАНИКА (файлы/функции/где гейт/корень), хронология с волнами и коммитами, чем доказано живьём с путями к evidence, карта документов по машинам, остаток, и одна команда для перепроверки. Прежний текст триажа 10.09 сохранён в конце тела как «История», плюс бэкап /tmp/secbody-backup-WEB-617.md на M1.
Воркер
не проверен
STOPPED; l115f-r2 installed; finding live gate OPEN
coordinator
движение в панели: неизвестно
Подключиться и смотреть/перехватить руками. Колесо мыши листает; клавишами — Ctrl-b затем [, выход из прокрутки q. Отсоединиться — Ctrl-b затем d:
Прочитать историю панели без подключения — листается и ищется (/ поиск, q выход), воркеру не помешает:
Обновлён
2026-09-13T09:05:32.719Z