Painéis de administração
O Fito tem dois painéis de administrador: Operations, que responde o Fito está funcionando, e Content, que responde o conteúdo está funcionando. Os dois leem um único fluxo de eventos, somente de acréscimo, e mais nada.
A maior parte de quem lê este guia não consegue abrir nenhum dos dois. Eles dependem de uma marca ativada à mão no banco de dados, e não existe pedido a fazer pela aplicação. Esta página os documenta mesmo assim, para que o guia cubra o que o Fito faz, e não só as partes que a maioria alcança.
Quem consegue abrir estas páginas
Seção intitulada “Quem consegue abrir estas páginas”Toda rota de administração pergunta a um mesmo portão — AdminGate — antes de
qualquer outra coisa. O portão lê a marca users.is_admin guardada e responde de
uma de duas formas:
| Resposta | Quando |
|---|---|
| 401 | As credenciais não nomeiam conta alguma. Entre de novo. |
| 403 | A conta existe e não carrega a marca. Nada que você faça com as suas credenciais muda isso. |
Nada na aplicação jamais grava essa marca. Não há cadastro de administrador, botão de promoção, variável de ambiente de inicialização nem semeadura. Um operador promove uma conta rodando uma instrução no banco de dados, e essa instrução mora na documentação de arquitetura do repositório, não aqui.
Um aprendiz que vá direto para /admin encontra a recusa, e não um painel
vazio:
This dashboard is for administrators. There is no request to make from here.
A recusa vem do servidor. A barra de navegação simplesmente não oferece a entrada Admin a uma conta sem a marca, então a interface nunca abre uma porta para uma recusa.
Onde ficam
Seção intitulada “Onde ficam”Dois endereços e uma barra de abas no alto dos dois.
| Aba | Endereço | Pergunta que responde |
|---|---|---|
| Operations | /admin |
O Fito está funcionando? |
| Content | /admin/content |
O conteúdo está funcionando? |
Operations
Seção intitulada “Operations”Três blocos, cada um declarando o período a que pertence, porque eles não compartilham um só.

A interface do Fito só existe em inglês, então as imagens estão em inglês.
O seletor de janela
Seção intitulada “O seletor de janela”Três fichas de atalho — Last 7 days (o padrão), Last 30 days, Last 90 days. Elas delimitam os indicadores do topo e os endpoints com falha, e mais nada.
Só atalhos. A janela tem limite rígido de 1 a 90 dias, e um pedido fora disso é recusado, não estreitado em silêncio — quem pedisse dois anos e recebesse um acreditaria que a resposta cobria dois.
Indicadores do topo
Seção intitulada “Indicadores do topo”Quatro números, os quatro acompanhando o seletor acima deles.
| Indicador | O que conta |
|---|---|
| Active users | Pessoas distintas que agiram na janela. |
| Signups | Contas criadas na janela. |
| Events | Linhas que o próprio fluxo registrou na janela. |
| Error rate | Requisições com falha como fração do total, com uma palavra de situação ao lado. |
Events é maior que os totais diários do gráfico de tráfego, e isso está certo, não é divergência. Ele conta as linhas do fluxo vindas das duas metades de captura, enquanto o gráfico conta requisições — um cadastro escreve uma linha de requisição e uma linha de publicação. Os dois respondem perguntas diferentes, e nenhum é o total do outro.
Error rate declara o próprio nível em palavras, nunca só em cor:
Healthy abaixo de 1%, Elevated a partir de 1%, High a partir de 5%.
Uma janela sem requisição alguma mostra 0% — uma janela parada não é uma
queda.
Failing endpoints
Seção intitulada “Failing endpoints”Conta: requisições com falha por endpoint na janela do seletor, das piores para as menos ruins, no máximo dez.
Identidade: o método e o modelo de rota juntos — GET /cases/{id}, nunca
um caminho cru com um id dentro. Uma requisição que não casa com nenhum endpoint
catalogado aparece como <unmatched>.
Cada barra traz dois detalhamentos, porque uma contagem seca de falhas não leva ninguém a lugar nenhum:
- os status, dos piores para os demais, cada um nomeado além de numerado —
404 Not founde403 Forbiddenapontam para reparos diferentes. - quantas vieram de um robô, como par e não como porcentagem:
0 of 17e62 of 62. Sessenta e dois de sessenta e dois vindos de um rastreador são ruído; nenhuma de dezessete em uma rota de entrada são dezessete pessoas que não conseguiram entrar.
Quando está vazio: Nothing failed in this window.
Requests per day
Seção intitulada “Requests per day”Conta: requisições HTTP por dia, separadas entre pessoas e robôs pelo user agent. As duas séries dividem o mesmo eixo, porque as duas contam requisições.
Janela: trinta dias, e não acompanha o seletor. Uma semana de colunas é pouco para mostrar um ritmo, então este gráfico mantém o próprio intervalo e o percorre sozinho com Earlier e Later, imprimindo o intervalo exato que está mostrando.
Quando está vazio: No traffic yet.
Os dois funis
Seção intitulada “Os dois funis”Os dois são de toda a vida, sem janela. Um funil é uma taxa de conversão sobre todo mundo que já chegou, e delimitá-lo contaria a mesma pessoa em uma etapa numa janela e em outra etapa na seguinte.
| Funil | Etapas |
|---|---|
| Learner funnel | Signed up → Opened a case → Submitted |
| Author funnel | Provisioned a technology → Pushed components → Drafted a case → Published a case |
O funil de autores não enxerga nada criado antes de o fluxo começar. As tabelas por trás daquelas quatro etapas não têm data para datar uma linha antiga, então nenhuma foi preenchida retroativamente.
Content
Seção intitulada “Content”Um bloco, e uma janela sobre tudo.
O seletor de janela
Seção intitulada “O seletor de janela”Quatro fichas de atalho — All time (o padrão), Last 7 days, Last 30 days, Last 90 days. Toda seção da página acompanha o seletor, então um só título de período cobre a página inteira e todo número nela pertence à mesma fatia.
O padrão é o oposto do seletor de Operations, de sete dias, e de propósito: um indicador de operação responde está funcionando agora, enquanto uma linha de conteúdo responde isto funciona, de todo modo.
Technology demand
Seção intitulada “Technology demand”Conta: leituras de uma tecnologia na janela — as duas páginas dela, mais as listagens que alguém restringiu por ela. Da mais movimentada para a menos, no máximo dez.
Alcance: toda tecnologia registrada, inclusive as paradas. Uma tecnologia que ninguém consultou é uma barra em zero, não uma linha ausente. “Construímos para uma tecnologia que ninguém procura” é tanto a resposta que este gráfico existe para dar quanto a ponta movimentada.
Uma barra rotulada com um slug em vez de um nome é uma tecnologia renomeada depois daquelas visitas. As visitas são reais, então a barra é desenhada.
Quando está vazio: No technologies registered yet.
Case health
Seção intitulada “Case health”Uma tabela, não um gráfico — cinco medidas para cada caso passa do ponto em que mais cor ajuda.
| Coluna | O que traz |
|---|---|
| Case | O título, ou o id quando o caso não tem nenhum. |
| Status | Published ou Deprecated. Um rascunho não tem linha: está inacabado, não falhando. |
| Opens | Atos. Uma volta conta de novo. |
| Submissions | Atos, pela mesma regra. |
| Completion | Pessoas — avaliadas sobre as que abriram, a mesma definição dos números públicos por caso. |
| Median score | A mediana entre os envios, na faixa de 0 a 3. |
| Median time | Tempo de relógio do primeiro acesso de um aprendiz até o primeiro envio dele. |
Median score e Median time mostram —, nunca 0, quando nada foi
medido. Zero é uma nota, e um caso em que ninguém foi avaliado não conquistou
nenhuma. A ordenação joga essas linhas para o fim nas duas direções, então a
ponta que você está olhando continua querendo dizer o que diz.
Alcance: todos os casos visíveis ao aprendiz, sem limite de linhas. O trabalho desta tabela é nomear o caso que não está funcionando, e qualquer ordenação com corte esconde justamente essa ponta. Um caso de que a janela não viu nada é uma linha de zeros.
Clique no título de uma coluna para ordenar. Uma medida começa decrescente, um nome começa de A a Z.
Component difficulty
Seção intitulada “Component difficulty”Conta: a média do próprio componente menos a média da plataforma na mesma janela, na faixa de 0 a 3. Negativo é mais difícil que a média, positivo é mais fácil.
Alcance: os dez mais distantes da média nas duas direções, não os dez mais baixos, reordenados do mais difícil em diante para que as barras cruzem a linha de base uma vez só.
A linha de base é a média da plataforma sobre todos os componentes da janela, não sobre os dez na tela — uma base calculada a partir das linhas visíveis se moveria toda vez que o corte mudasse.
Cada linha traz também quantos aprendizes distintos compõem a média. Uma média sobre um aprendiz e uma média sobre quarenta são afirmações diferentes, e só a segunda é evidência.
Quando está vazio: No components assessed in this window, que é também quando a linha de base está ausente, e não em zero.
O fluxo de eventos de aprendizagem
Seção intitulada “O fluxo de eventos de aprendizagem”Uma única tabela somente de acréscimo está por trás de todo número dos dois painéis, e também da aba Analytics do aprendiz. Nada é desenhado a partir de uma tabela de domínio ao vivo.
É esse o ponto. Uma tabela de domínio registra o estado atual e por acaso carrega uma data; ela não responde quantas pessoas olharam isto, porque olhar não muda nada. O fluxo responde, porque as leituras também são registradas.
Duas metades escrevem nele
Seção intitulada “Duas metades escrevem nele”| Metade | Escreve | Preenche |
|---|---|---|
| A varredura da API | Uma linha por requisição que chega à aplicação, inclusive tráfego anônimo e falhas | O modelo de rota, o método, o status, a duração, o IP e o user agent |
| O publicador | Os fatos que uma requisição não mostra — qual dos quatro desfechos de identidade um mesmo retorno produziu, as várias proficiências (proficiencies) que um resultado desdobra, e se um voto foi registrado, trocado ou retirado | O detalhe de domínio, deixando os campos HTTP vazios |
As duas metades nunca compartilham um nome de evento, então qualquer linha é atribuível a uma delas só pelo tipo.
O que o fluxo não enxerga
Seção intitulada “O que o fluxo não enxerga”- Uma requisição que a camada de segurança recusa antes da aplicação — um caminho desconhecido, um token malformado. Ela nunca chega à varredura.
- Os corpos das requisições. Quando a linha é escrita, o corpo já foi consumido. É por isso que vários endpoints dependem do publicador.
- Qualquer coisa que não atravessa a API — ações locais ao terminal e interações que ficam dentro do navegador.
O que um payload nunca carrega
Seção intitulada “O que um payload nunca carrega”Os payloads de evento guardam só dimensões de domínio. Nunca uma senha, nunca um token de acesso ou de renovação, nunca um código ou estado de OAuth, nunca a URL de um pull request, nunca conteúdo enviado, nunca a nota de uma indicação e nunca um gabarito de rubrica ou de quiz.
Essa lista é garantida por um teste, e não deixada para a revisão, porque vários desses valores chegam como parâmetros de consulta em rotas que a varredura lê.
Os painéis contam as próprias leituras
Seção intitulada “Os painéis contam as próprias leituras”Cada leitura de painel escreve uma linha no mesmo fluxo que esses números contam.
O painel Content não consegue inflar o que mostra: as três leituras dele são registradas como visualização de painel, nunca como uma navegação, um acesso ou uma proficiência. O painel Operations não tem essa propriedade — o gráfico de tráfego dele conta requisições, e as leituras dele são requisições.
Como números e datas são escritos
Seção intitulada “Como números e datas são escritos”Os números e as datas dos dois painéis são escritos em en-US, e não no
idioma do leitor — ponto como separador decimal, porcentagens como 1.2% e datas
no formato Jul 6, 2026. Vale para qualquer leitor, seja qual for a configuração
do navegador.
As três contagens dos cartões de resumo são a exceção, e dá para ver: elas saem
como dígitos puros, sem separador de milhar, então uma janela de nove mil eventos
aparece como 9312.
É deliberado. Os títulos, os nomes de eixo e as palavras de situação em volta desses números estão em inglês, então seguir o idioma do leitor produziria números em uma língua dentro de um cartão escrito em outra.
O que vem a seguir
Seção intitulada “O que vem a seguir”- Suas análises de aprendizagem — o mesmo fluxo, lido por um aprendiz sobre si mesmo.
- Trabalhar o catálogo de curadoria — a lista de trabalho do criador, que não precisa da marca de administrador.
- Seus dados e privacidade — o que o Fito guarda sobre você.