{
  "id": "admin-platform-admins",
  "titulo": "Platform Admins (Admin)",
  "tela": "/admin/platform-admins",
  "resumo": "A lista de quem tem a chave do Admin do seu servidor: quem pode mexer em tudo, quem só olha, quem precisa do código do celular e quem já perdeu o acesso.",
  "licoes": [
    {
      "id": "conhecendo-a-tela",
      "titulo": "Quem administra o servidor",
      "objetivo": "Entender o que é um administrador da plataforma, por que esta tela não tem botões de mudar e o que cada coluna da lista mostra.",
      "papel": "admin",
      "busca": [
        "platform admins",
        "administradores da plataforma",
        "quem administra o servidor",
        "quem tem acesso ao admin",
        "dono da instalação",
        "super admin",
        "acesso total ao sistema"
      ],
      "passos": [
        {
          "id": "p1",
          "titulo": "A lista de quem tem a chave do Admin",
          "texto": "No Admin, \"Platform Admins\" quer dizer administradores da plataforma: as pessoas que entram nesta área do Admin e enxergam todas as empresas do seu servidor, não só a clínica delas. Para chegar aqui, clique em \"Platform Admins\" no menu do Admin. A tela mostra quem tem essa chave hoje e quem já teve.",
          "dica": "Quem não está nesta lista, ou teve o acesso revogado, é mandado para uma tela de acesso negado ao tentar abrir o Admin. A faixa amarela \"Sem SMTP configurado\", no alto, é um aviso geral do Admin: o envio de e-mails ainda não está configurado. O item \"E-mail\" do menu leva ao ajuste.",
          "rota": "/admin/dashboard",
          "antes": [
            {
              "acao": "click",
              "alvo": {
                "role": "link",
                "nome": "Platform Admins",
                "exato": true,
                "dentro": {
                  "role": "navigation"
                }
              }
            },
            {
              "acao": "aguardar",
              "alvo": {
                "role": "row",
                "nome": "^helena@clinicabemviver",
                "regex": true
              }
            },
            {
              "acao": "esperar",
              "ms": 800
            },
            {
              "acao": "click",
              "alvo": {
                "role": "link",
                "nome": "Platform Admins",
                "exato": true,
                "dentro": {
                  "role": "navigation"
                }
              }
            },
            {
              "acao": "aguardar",
              "alvo": {
                "role": "heading",
                "nome": "Platform Admins",
                "exato": true
              }
            },
            {
              "acao": "aguardar",
              "alvo": {
                "role": "row",
                "nome": "^helena@clinicabemviver",
                "regex": true
              }
            },
            {
              "acao": "esperar",
              "ms": 800
            }
          ],
          "destaques": [
            {
              "alvo": {
                "role": "link",
                "nome": "Platform Admins",
                "exato": true,
                "dentro": {
                  "role": "navigation"
                }
              },
              "rotulo": "Platform Admins no menu do Admin",
              "tipo": "seta"
            },
            {
              "alvo": {
                "role": "heading",
                "nome": "Platform Admins",
                "exato": true
              },
              "rotulo": "Administradores da plataforma",
              "tipo": "caixa"
            }
          ]
        },
        {
          "id": "p2",
          "titulo": "Por que não há botão de mudar",
          "texto": "O aviso azul explica que esta tela só mostra. Não existe botão para incluir, tirar ou mudar ninguém aqui, de propósito: quem dá ou tira essa chave é a pessoa técnica que cuida do banco de dados do servidor (o \"DBA\" do aviso), direto no banco, e o aviso pede que ela deixe uma nota explicando a mudança no registro de auditoria. Assim, ninguém ganha acesso a todas as empresas com um clique.",
          "antes": [],
          "destaques": [
            {
              "alvo": {
                "role": "note"
              },
              "rotulo": "Esta tela só mostra",
              "tipo": "caixa"
            }
          ]
        },
        {
          "id": "p3",
          "titulo": "O que cada coluna diz",
          "texto": "Cada linha é uma pessoa, da chave mais nova para a mais antiga. \"Usuário\" mostra o e-mail e o nome. \"Concedido em\" diz há quanto tempo a chave foi dada, e \"Concedido por\" mostra o e-mail de quem deu. \"Scope\" diz o que a pessoa pode fazer, \"MFA\" diz se ela é obrigada a usar a verificação em duas etapas e \"Status\" diz se o acesso ainda vale. \"Motivo\" é a explicação escrita quando a chave foi dada.",
          "dica": "A próxima lição explica \"Scope\", \"MFA\" e \"Status\" com calma.",
          "antes": [],
          "destaques": [
            {
              "alvo": {
                "css": "thead"
              },
              "rotulo": "Colunas da lista",
              "tipo": "caixa"
            },
            {
              "alvo": {
                "role": "row",
                "nome": "^helena@clinicabemviver",
                "regex": true
              },
              "rotulo": "A dona da instalação",
              "tipo": "caixa"
            }
          ]
        },
        {
          "id": "p4",
          "titulo": "Lendo um motivo comprido",
          "texto": "Quando o motivo passa de 40 letras, ele aparece cortado, com \"…\" no fim e um sublinhado pontilhado. Pare o mouse em cima para ler o texto inteiro. O da Helena diz \"Bootstrap inicial do self-host (dono da instância)\": é a linha que o próprio sistema criou na instalação do servidor, dando a chave para a dona.",
          "antes": [
            {
              "acao": "hover",
              "alvo": {
                "css": "span.cursor-help"
              }
            },
            {
              "acao": "aguardar",
              "alvo": {
                "css": "[data-radix-popper-content-wrapper]"
              }
            },
            {
              "acao": "esperar",
              "ms": 500
            }
          ],
          "destaques": [
            {
              "alvo": {
                "css": "span.cursor-help"
              },
              "rotulo": "Motivo cortado",
              "tipo": "caixa"
            },
            {
              "alvo": {
                "css": "[data-radix-popper-content-wrapper]"
              },
              "rotulo": "O texto inteiro",
              "tipo": "seta"
            }
          ]
        }
      ]
    },
    {
      "id": "lendo-cada-acesso",
      "titulo": "O que cada acesso permite",
      "objetivo": "Diferenciar acesso total de acesso só de leitura, saber quem é obrigado a usar o código do celular e reconhecer um acesso revogado.",
      "papel": "admin",
      "busca": [
        "acesso só de leitura no admin",
        "scope full support_readonly",
        "verificação em duas etapas obrigatória",
        "mfa do administrador",
        "acesso revogado",
        "tirar acesso de administrador",
        "quem deu o acesso"
      ],
      "passos": [
        {
          "id": "p1",
          "titulo": "Acesso total ou só de leitura",
          "texto": "Abra \"Platform Admins\" no menu do Admin. A coluna \"Scope\" diz o tamanho da chave. \"full\" é acesso total: a pessoa vê e muda tudo no Admin, como criar ou suspender empresas. \"support_readonly\" é só de leitura: a pessoa abre o painel e vê tudo, mas qualquer tentativa de mudar algo é recusada. Aqui, o Carlos acompanha o painel sem poder alterar nada.",
          "rota": "/admin/dashboard",
          "antes": [
            {
              "acao": "click",
              "alvo": {
                "role": "link",
                "nome": "Platform Admins",
                "exato": true,
                "dentro": {
                  "role": "navigation"
                }
              }
            },
            {
              "acao": "aguardar",
              "alvo": {
                "role": "row",
                "nome": "^helena@clinicabemviver",
                "regex": true
              }
            },
            {
              "acao": "esperar",
              "ms": 800
            },
            {
              "acao": "click",
              "alvo": {
                "role": "link",
                "nome": "Platform Admins",
                "exato": true,
                "dentro": {
                  "role": "navigation"
                }
              }
            },
            {
              "acao": "aguardar",
              "alvo": {
                "role": "heading",
                "nome": "Platform Admins",
                "exato": true
              }
            },
            {
              "acao": "aguardar",
              "alvo": {
                "role": "row",
                "nome": "^helena@clinicabemviver",
                "regex": true
              }
            },
            {
              "acao": "esperar",
              "ms": 800
            }
          ],
          "destaques": [
            {
              "alvo": {
                "texto": "full",
                "exato": true,
                "dentro": {
                  "role": "row",
                  "nome": "^helena@clinicabemviver",
                  "regex": true
                }
              },
              "rotulo": "Acesso total",
              "tipo": "caixa"
            },
            {
              "alvo": {
                "texto": "support_readonly",
                "exato": true,
                "dentro": {
                  "role": "row",
                  "nome": "^carlos@clinicabemviver",
                  "regex": true
                }
              },
              "rotulo": "Só de leitura",
              "tipo": "caixa"
            }
          ]
        },
        {
          "id": "p2",
          "titulo": "Quem precisa do código do celular",
          "texto": "A coluna \"MFA\" fala da verificação em duas etapas: além da senha, um código de 6 números do aplicativo autenticador do celular. \"Sim\" quer dizer que a pessoa é obrigada: enquanto ela não cadastrar o código, o sistema não a deixa seguir, nem no Admin nem no resto do DeskComm. \"Não\" quer dizer que não é obrigada. Esse \"Sim\" ou \"Não\" também só muda direto no banco, como o resto desta tela.",
          "dica": "Mesmo com \"Não\", quem cadastrou a verificação por conta própria precisa digitar o código ao entrar.",
          "antes": [],
          "destaques": [
            {
              "alvo": {
                "texto": "Sim",
                "exato": true,
                "dentro": {
                  "role": "row",
                  "nome": "^carlos@clinicabemviver",
                  "regex": true
                }
              },
              "rotulo": "Obrigado a usar o código",
              "tipo": "caixa"
            },
            {
              "alvo": {
                "texto": "Não",
                "exato": true,
                "dentro": {
                  "role": "row",
                  "nome": "^helena@clinicabemviver",
                  "regex": true
                }
              },
              "rotulo": "Não obrigada",
              "tipo": "caixa"
            }
          ]
        },
        {
          "id": "p3",
          "titulo": "Acesso ativo e acesso revogado",
          "texto": "A coluna \"Status\" diz se a chave ainda vale. \"Ativo\": a pessoa entra no Admin normalmente. \"Revogado\": a chave foi tirada e ela não entra mais no Admin (cai na tela de acesso negado). A linha não some: ela fica na lista, mais apagada, como histórico. Aqui, o Marcos Teixeira, que cuidava da informática da clínica, perdeu o acesso. Atenção: a tela não mostra quando, por quem nem por que a chave foi tirada. O \"Motivo\" da linha continua sendo o de quando ela foi dada.",
          "antes": [],
          "destaques": [
            {
              "alvo": {
                "texto": "Ativo",
                "exato": true,
                "dentro": {
                  "role": "row",
                  "nome": "^carlos@clinicabemviver",
                  "regex": true
                }
              },
              "rotulo": "Chave valendo",
              "tipo": "caixa"
            },
            {
              "alvo": {
                "role": "row",
                "nome": "^marcos\\.teixeira@clinicabemviver",
                "regex": true
              },
              "rotulo": "Acesso revogado (linha mais clara)",
              "tipo": "caixa"
            }
          ]
        },
        {
          "id": "p4",
          "titulo": "Quando e por quem",
          "texto": "\"Concedido em\" diz há quanto tempo a chave foi dada, e \"Concedido por\" mostra o e-mail de quem deu, sem o final do endereço (\".com.br\"). A chave do Carlos foi dada pela Helena. Na linha da própria Helena, quem deu foi ela mesma: o sistema registra a dona como autora da chave criada na instalação.",
          "antes": [],
          "destaques": [
            {
              "alvo": {
                "texto": "^há ",
                "regex": true,
                "dentro": {
                  "role": "row",
                  "nome": "^carlos@clinicabemviver",
                  "regex": true
                }
              },
              "rotulo": "Há quanto tempo (Carlos)",
              "tipo": "caixa"
            },
            {
              "alvo": {
                "texto": "helena@clinicabemviver",
                "exato": true,
                "dentro": {
                  "role": "row",
                  "nome": "^helena@clinicabemviver",
                  "regex": true
                }
              },
              "rotulo": "A Helena deu a si mesma",
              "tipo": "caixa"
            }
          ]
        }
      ]
    }
  ]
}
