Backlog Unificado
Projeto: RioNoTeatro. Fonte principal: /www/wwwroot/rionoteatro.com.br/docs/BACKLOG.md.
Modo read-only: ações de escrita ficam disponíveis apenas para o Cérebro.
Sem itens pendentes em /www/wwwroot/rionoteatro.com.br/docs/BACKLOG.md.
Especificações Disponíveis (fora da fila pendente)
- BK-136
- BK-137
- BK-138
- BK-147
- BK-148
- BK-149
- BK-150
- BK-151
- BK-156
- BK-158
- BK-159
- BK-160
- BK-161
- BK-162
- BK-163
- BK-164
- BK-165
- BK-166
- BK-170
- BK-171
- BK-172
- BK-177
- BK-183
- BK-186
- BK-187
- BK-189
- BK-190
- BK-191
- BK-192
- BK-193
- BK-195
- BK-196
- BK-197
- BK-198
- BK-199
- BK-201
- BK-205
- BK-207
- BK-208
- BK-209
- BK-210
- BK-211
- BK-212
- BK-213
- BK-214
- BK-215
- BK-216
- BK-217
- BK-218
- BK-219
- BK-220
- BK-221
- BK-229
- BK-230
- BK-231
- BK-232
- BK-233
- BK-234
- BK-235
- BK-236
- BK-239
- BK-240
- BK-241
- BK-242
- BK-243
- BK-244
- BK-245
- BK-246
- BK-248
- BK-249
- BK-250
- BK-251
- BK-252
- BK-253
- BK-254
- BK-255
- BK-256
- BK-257
- BK-258
- BK-259
- BK-260
- BK-261
- BK-262
- BK-263
- BK-264
- BK-265
- BK-266
- BK-267
- BK-268
- BK-269
- BK-270
- BK-271
- BK-272
- BK-275
- BK-276
- BK-277
- BK-278
- BK-279
- BK-280
- BK-295
- BK-313
Detalhe do BK Selecionado
/www/wwwroot/rionoteatro.com.br/docs/backlog/BK-212-monitor-mercadopago-integrity.md • 2026-04-07T17:26:19.547Z
BK-212 - Monitor de integridade Mercado Pago (baseline e alertas WhatsApp)
Objetivo
- registrar e documentar o ajuste de permissão no
.env, a re-selação da baseline e o estado atual do monitor para que qualquer drift fique rastreável. - deixar uma instrução operacional clara: ao voltar a consultar
AGENTS.mde perguntar pelos backlogs abertos, já rodarphp admin/cron/monitor_mercadopago_integrity.php --statuse revisar/root/.rnt_security/mercadopago_guard/guard.logpara confirmar se os alertas foram silenciados antes de responder ao usuário.
Atividades concluídas
- ajustei
.envpara640, conforme a expectativa do monitor (mp_guard_expected_metadata()), para evitar o alerta de permissão. - rodei
php admin/cron/monitor_mercadopago_integrity.php --seallogo em seguida para atualizar/root/.rnt_security/mercadopago_guard/baseline.jsoncom o hash atual dejs/checkout_pix.jse.env. - validei o estado com
php admin/cron/monitor_mercadopago_integrity.php --statuse confirmei no log (/root/.rnt_security/mercadopago_guard/guard.log) que o alerta mais recente foi enviado enquanto o drift ainda tinha hash diferente, e que depois do seal o monitor voltou a registrar apenas drifts suprimidos (sem novos alertas).
Estado operacional (atualizado 07/04/2026 12:40 -03)
- o monitor reporta
Baseline: SET,State: SET,Last OK: 2026-04-07 12:40:02. - o último alerta registrado permanece em
2026-04-07 04:36:02, referente ao drift de.envem644. - o
guard.logestá em sequência contínua deCHECK OK - nenhuma alteracao detectada, sem novoALERTA WHATSAPPdepois da correção. - procedimento a seguir antes de responder a alertas semelhantes: 1) rodar
php admin/cron/monitor_mercadopago_integrity.php --status; 2) examinar o log (últimos 20 registros) em/root/.rnt_security/mercadopago_guard/guard.logpara confirmar se o alerta continua sendo enviado; 3) só depois reportar o estado ao usuário.
Runbook atual para mudanças autorizadas
Regra operacional curta
- drift apenas de metadata esperada (
owner,group,perms) agora tende a ser corrigido pelo próprio--check/cron sem precisar novo--seal. - drift de conteúdo, hash de arquivo monitorado ou credencial alterada continua exigindo
--sealdepois que a mudança autorizada estiver validada. - o
.envcontinua com exigência de640; os demais arquivos monitorados continuam em644, sempre derivados do owner/group real do diretório do projeto.
Procedimento canônico quando a mudança for autorizada
- validar que a alteração é legítima e anotar quais arquivos monitorados ou credenciais foram mexidos.
- aplicar a mudança e validar o comportamento funcional do sistema antes de resealar.
- se a mudança tocar
.env, confirmar que ele terminou em640. - rodar
php admin/cron/monitor_mercadopago_integrity.php --seal. - se o
--sealfalhar, tratar a falha como erro real de convergência de metadata; corrigir owner/group/perms e repetir o comando. - rodar
php admin/cron/monitor_mercadopago_integrity.php --status. - revisar os últimos registros de
/root/.rnt_security/mercadopago_guard/guard.log. - só considerar a rodada encerrada quando
Baseline: SET,State: SETe o log voltar paraCHECK OK - nenhuma alteracao detectada.
Como interpretar o resultado
--sealbem-sucedido agora faz hardening antes de salvar a baseline e aborta se owner/group/perms esperados não convergirem.--sealtambém limpa ostate.jsonde drift/alerta anterior, para a retomada ficar coerente.--checktenta autoheal apenas quando o drift for exclusivamente de metadata; ele não encobre mudança de hash, conteúdo ou credencial.- se houver mudança autorizada de conteúdo e você não rodar
--seal, o monitor continuará vendo drift legítimo e pode voltar a alertar.
Procedimento de triagem antes de responder a um alerta
- rodar
php admin/cron/monitor_mercadopago_integrity.php --status. - olhar os últimos 20 a 30 registros de
/root/.rnt_security/mercadopago_guard/guard.log. - distinguir se o caso é:
- drift só de metadata, que pode já ter sido autohealed;
- drift real de hash/conteúdo, que exige validação humana e provável
--sealapós a mudança autorizada; - falha estrutural de
--seal, que exige correção de owner/group/perms antes de seguir.
- só responder ao usuário depois de confirmar qual desses três casos ocorreu.
Próximo passo
- manter esta documentação detalhada no backlog vivo enquanto o monitor segue em fase de teste e observação.
- se algumas semanas passarem sem recorrência, reduzir ou ocultar este detalhamento operacional por segurança, deixando exposto apenas o procedimento resumido.
Atualização de 2026-04-07 04:00 -03
- nova RCA do alerta recorrente recebida nesta sessão:
- o drift ativo atual não era alteração de credencial nem hash de código; era apenas
.envem644quando o monitor exige640; - o alerta mais ruidoso de
03:46refletia um estado transitório anterior com owner/group divergentes em arquivos críticos, mas a medição corrente já mostrou os arquivos monitorados novamente emwww:www, restando só a permissão do.env; - o cron roda somente
--check, portanto ele não corrige metadados sozinho; apenas detecta drift e reapresenta o mesmo alerta a cada janela de reenvio enquanto o drift permanecer. - ação aplicada para silenciar o ruído:
.envrestaurado para640;php admin/cron/monitor_mercadopago_integrity.php --checkvoltouOK;php admin/cron/monitor_mercadopago_integrity.php --sealexecutado com sucesso;- o
guard.logvoltou a registrarCHECK OK - nenhuma alteracao detectada. - hardening aplicado no código do monitor:
--sealagora valida se owner/group/perms esperados realmente convergiram antes de salvar a baseline;- se a convergência falhar, o comando aborta com erro explícito em vez de fingir sucesso;
- ao concluir com sucesso, o
state.jsoné limpo de drift/alert hash anterior para a retomada ficar coerente. - o
--checkagora tenta autoheal quando o drift for apenas de metadata esperada (owner/group/perms), evitando WhatsApp recorrente por ruído operacional sem esconder mudanças de hash/conteúdo. - validação complementar desta sessão:
- reproduzi manualmente o drift colocando
.envem644; - o
--checkcorrigiu automaticamente para640e retornouOK; - repeti a reprodução e deixei o cron de 1 minuto agir sozinho; o log registrou
CHECK AUTOHEAL OK - metadata normalizada automaticamentee o.envvoltou para640sem novoALERTA WHATSAPP.