Segurança e permissões

Fase 13 — perfis de acesso, matriz de permissões e auditoria de bloqueios

Status de segurança

Esta fase usa o usuário interno ativo da Fase 12 e aplica permissões por perfil. Enquanto o banco não estiver inicializado, o sistema não bloqueia telas para evitar travamento inicial.

Segurança carregada.

Usuário ativo e perfil

Altere o perfil do usuário para testar como cada área da aplicação fica liberada ou bloqueada.

Matriz de permissões por perfil

Escolha um perfil, marque as permissões desejadas e salve. A tela será bloqueada quando o usuário ativo não tiver a permissão correspondente.

Resumo por perfil

Visão rápida das permissões ativas em cada perfil.

Bloqueios registrados

Quando um usuário tenta acessar uma tela sem permissão, o bloqueio fica registrado para auditoria.

Diagnóstico JSON

{
    "ok": true,
    "message": "Segurança carregada.",
    "db_status": {
        "ok": true,
        "message": "Banco SQLite inicializado.",
        "mode": "sqlite",
        "pdo_available": true,
        "pdo_sqlite_available": true,
        "storage_dir": "/var/www/html/storage",
        "storage_exists": true,
        "storage_writable": true,
        "db_path": "/var/www/html/storage/fluxo_caixa_crti.sqlite",
        "db_exists": true,
        "json_dir": "/var/www/html/storage/jsondb",
        "json_exists": false,
        "tables": [
            "access_denied_log",
            "app_users",
            "audit_log",
            "endpoint_cache",
            "normalization_history",
            "profile_permissions",
            "saved_views_server",
            "scenarios_server",
            "sqlite_sequence"
        ],
        "active_user": null
    },
    "active_user": null,
    "profiles": {
        "ti": "TI / BI",
        "gestor": "Gestor",
        "financeiro": "Financeiro",
        "diretoria": "Diretoria",
        "consulta": "Consulta"
    },
    "permissions": {
        "connection": {
            "area": "Sistema",
            "label": "Conexão com ERP",
            "description": "Configurar ou trocar a credencial de acesso ao ERP."
        },
        "endpoints": {
            "area": "Técnico",
            "label": "Testar endpoints",
            "description": "Executar testes diretos dos endpoints da API."
        },
        "normalizacao": {
            "area": "Dados",
            "label": "Normalização",
            "description": "Carregar dados da API e gerar a fato_fluxo_caixa."
        },
        "dashboard": {
            "area": "Gestão",
            "label": "Dashboard",
            "description": "Ver cards, gráficos e resumo operacional."
        },
        "drilldown": {
            "area": "Gestão",
            "label": "Drill-down",
            "description": "Abrir detalhes por documento, pessoa, conta e filial."
        },
        "bi": {
            "area": "Gestão",
            "label": "Exploração BI",
            "description": "Usar filtros e agrupamentos avançados."
        },
        "visoes": {
            "area": "Usuário",
            "label": "Visões salvas",
            "description": "Salvar e restaurar visões de análise."
        },
        "relatorios": {
            "area": "Gestão",
            "label": "Relatórios",
            "description": "Gerar relatórios, PDF do navegador, CSV e JSON."
        },
        "auditoria": {
            "area": "Governança",
            "label": "Auditoria de dados",
            "description": "Ver alertas de qualidade, vencidos, duplicidades e completude."
        },
        "cenarios": {
            "area": "Planejamento",
            "label": "Cenários e simulações",
            "description": "Criar cenários locais sem alterar o ERP."
        },
        "database": {
            "area": "Administração",
            "label": "Banco & usuários",
            "description": "Gerenciar usuários internos e histórico."
        },
        "admin": {
            "area": "Administração",
            "label": "Administração técnica",
            "description": "Executar diagnósticos de SSL, endpoints e ambiente."
        },
        "security": {
            "area": "Segurança",
            "label": "Segurança e permissões",
            "description": "Gerenciar perfis e matriz de permissões."
        },
        "performance": {
            "area": "Performance",
            "label": "Performance, cache e cargas",
            "description": "Gerenciar cache de endpoints, reuso de dados e cargas incrementais."
        },
        "homologacao": {
            "area": "Produção",
            "label": "Homologação final",
            "description": "Executar checklist final de aderência, UX e preparação para produção."
        },
        "history_save": {
            "area": "Banco",
            "label": "Salvar histórico",
            "description": "Salvar normalizações no banco do servidor."
        },
        "history_restore": {
            "area": "Banco",
            "label": "Restaurar histórico",
            "description": "Restaurar normalizações salvas para a sessão."
        },
        "history_delete": {
            "area": "Banco",
            "label": "Excluir histórico",
            "description": "Excluir normalizações salvas."
        },
        "export": {
            "area": "Saída",
            "label": "Exportar dados",
            "description": "Exportar CSV/JSON ou imprimir relatório."
        }
    },
    "matrix": {
        "ti": [
            "admin",
            "auditoria",
            "bi",
            "cenarios",
            "connection",
            "dashboard",
            "database",
            "drilldown",
            "endpoints",
            "export",
            "history_delete",
            "history_restore",
            "history_save",
            "homologacao",
            "normalizacao",
            "performance",
            "relatorios",
            "security",
            "visoes"
        ],
        "gestor": [
            "auditoria",
            "bi",
            "cenarios",
            "connection",
            "dashboard",
            "database",
            "drilldown",
            "export",
            "history_delete",
            "history_restore",
            "history_save",
            "homologacao",
            "normalizacao",
            "performance",
            "relatorios",
            "security",
            "visoes"
        ],
        "financeiro": [
            "auditoria",
            "bi",
            "cenarios",
            "dashboard",
            "drilldown",
            "export",
            "history_restore",
            "history_save",
            "homologacao",
            "normalizacao",
            "performance",
            "relatorios",
            "visoes"
        ],
        "diretoria": [
            "bi",
            "cenarios",
            "dashboard",
            "drilldown",
            "export",
            "history_restore",
            "homologacao",
            "relatorios",
            "visoes"
        ],
        "consulta": [
            "bi",
            "dashboard",
            "export",
            "history_restore",
            "homologacao",
            "relatorios"
        ]
    },
    "users": [
        {
            "id": 1,
            "nome": "Usuário padrão",
            "email": "",
            "perfil": "gestor",
            "ativo": 1,
            "created_at": "2026-05-17T23:15:39+00:00",
            "updated_at": null
        }
    ],
    "denied_log": [
        {
            "id": 2,
            "user_id": 1,
            "profile": "gestor",
            "permission_key": "admin",
            "page": "admin.php",
            "created_at": "2026-05-17T23:49:46+00:00",
            "usuario_nome": "Usuário padrão",
            "detalhes": []
        },
        {
            "id": 1,
            "user_id": 1,
            "profile": "gestor",
            "permission_key": "endpoints",
            "page": "endpoints.php",
            "created_at": "2026-05-17T23:49:27+00:00",
            "usuario_nome": "Usuário padrão",
            "detalhes": []
        }
    ],
    "audit": [
        {
            "id": 20,
            "user_id": null,
            "acao": "migracao_seguranca",
            "area": "security",
            "created_at": "2026-06-15T11:58:28-03:00",
            "usuario_nome": null,
            "detalhes": {
                "message": "Tabelas e permissões de segurança atualizadas."
            }
        },
        {
            "id": 19,
            "user_id": null,
            "acao": "migracao_seguranca",
            "area": "security",
            "created_at": "2026-06-06T21:30:00-03:00",
            "usuario_nome": null,
            "detalhes": {
                "message": "Tabelas e permissões de segurança atualizadas."
            }
        },
        {
            "id": 18,
            "user_id": null,
            "acao": "migracao_seguranca",
            "area": "security",
            "created_at": "2026-05-27T15:10:40-03:00",
            "usuario_nome": null,
            "detalhes": {
                "message": "Tabelas e permissões de segurança atualizadas."
            }
        },
        {
            "id": 17,
            "user_id": null,
            "acao": "migracao_seguranca",
            "area": "security",
            "created_at": "2026-05-27T15:10:40-03:00",
            "usuario_nome": null,
            "detalhes": {
                "message": "Tabelas e permissões de segurança atualizadas."
            }
        },
        {
            "id": 16,
            "user_id": null,
            "acao": "migracao_banco",
            "area": "database",
            "created_at": "2026-05-27T11:55:31-03:00",
            "usuario_nome": null,
            "detalhes": {
                "message": "Migração executada.",
                "mode": "sqlite"
            }
        },
        {
            "id": 15,
            "user_id": null,
            "acao": "migracao_seguranca",
            "area": "security",
            "created_at": "2026-05-17T21:47:21-03:00",
            "usuario_nome": null,
            "detalhes": {
                "message": "Tabelas e permissões de segurança atualizadas."
            }
        },
        {
            "id": 14,
            "user_id": null,
            "acao": "migracao_seguranca",
            "area": "security",
            "created_at": "2026-05-17T21:47:21-03:00",
            "usuario_nome": null,
            "detalhes": {
                "message": "Tabelas e permissões de segurança atualizadas."
            }
        },
        {
            "id": 13,
            "user_id": null,
            "acao": "migracao_banco",
            "area": "database",
            "created_at": "2026-05-17T21:33:56-03:00",
            "usuario_nome": null,
            "detalhes": {
                "message": "Migração executada.",
                "mode": "sqlite"
            }
        },
        {
            "id": 12,
            "user_id": 1,
            "acao": "migracao_seguranca",
            "area": "security",
            "created_at": "2026-05-17T23:49:48+00:00",
            "usuario_nome": "Usuário padrão",
            "detalhes": {
                "message": "Tabelas e permissões de segurança atualizadas."
            }
        },
        {
            "id": 11,
            "user_id": 1,
            "acao": "migracao_seguranca",
            "area": "security",
            "created_at": "2026-05-17T23:49:47+00:00",
            "usuario_nome": "Usuário padrão",
            "detalhes": {
                "message": "Tabelas e permissões de segurança atualizadas."
            }
        },
        {
            "id": 10,
            "user_id": 1,
            "acao": "acesso_negado",
            "area": "security",
            "created_at": "2026-05-17T23:49:46+00:00",
            "usuario_nome": "Usuário padrão",
            "detalhes": {
                "permission": "admin",
                "page": "admin.php"
            }
        },
        {
            "id": 9,
            "user_id": 1,
            "acao": "migracao_seguranca",
            "area": "security",
            "created_at": "2026-05-17T23:49:43+00:00",
            "usuario_nome": "Usuário padrão",
            "detalhes": {
                "message": "Tabelas e permissões de segurança atualizadas."
            }
        },
        {
            "id": 8,
            "user_id": 1,
            "acao": "migracao_seguranca",
            "area": "security",
            "created_at": "2026-05-17T23:49:43+00:00",
            "usuario_nome": "Usuário padrão",
            "detalhes": {
                "message": "Tabelas e permissões de segurança atualizadas."
            }
        },
        {
            "id": 7,
            "user_id": 1,
            "acao": "acesso_negado",
            "area": "security",
            "created_at": "2026-05-17T23:49:27+00:00",
            "usuario_nome": "Usuário padrão",
            "detalhes": {
                "permission": "endpoints",
                "page": "endpoints.php"
            }
        },
        {
            "id": 6,
            "user_id": null,
            "acao": "migracao_banco",
            "area": "database",
            "created_at": "2026-05-17T23:29:32+00:00",
            "usuario_nome": null,
            "detalhes": {
                "message": "Migração executada.",
                "mode": "sqlite"
            }
        },
        {
            "id": 5,
            "user_id": null,
            "acao": "migracao_seguranca",
            "area": "security",
            "created_at": "2026-05-17T23:29:27+00:00",
            "usuario_nome": null,
            "detalhes": {
                "message": "Tabelas e permissões de segurança atualizadas."
            }
        },
        {
            "id": 4,
            "user_id": null,
            "acao": "migracao_seguranca",
            "area": "security",
            "created_at": "2026-05-17T23:29:26+00:00",
            "usuario_nome": null,
            "detalhes": {
                "message": "Tabelas e permissões de segurança atualizadas."
            }
        },
        {
            "id": 3,
            "user_id": null,
            "acao": "migracao_seguranca",
            "area": "security",
            "created_at": "2026-05-17T23:29:26+00:00",
            "usuario_nome": null,
            "detalhes": {
                "message": "Tabelas e permissões de segurança atualizadas."
            }
        },
        {
            "id": 2,
            "user_id": null,
            "acao": "migracao_banco",
            "area": "database",
            "created_at": "2026-05-17T23:29:24+00:00",
            "usuario_nome": null,
            "detalhes": {
                "message": "Migração executada.",
                "mode": "sqlite"
            }
        },
        {
            "id": 1,
            "user_id": null,
            "acao": "migracao_banco",
            "area": "database",
            "created_at": "2026-05-17T23:15:39+00:00",
            "usuario_nome": null,
            "detalhes": {
                "message": "Migração executada.",
                "mode": "sqlite"
            }
        }
    ]
}