Pular para o conteúdo

Seus dados e privacidade

O Fito guarda menos sobre você do que a maioria das ferramentas de aprendizagem, e o motivo é arquitetural, não uma promessa. A parte do produto que lê o seu código roda na sua máquina, então o servidor nunca a recebe.

Esta página diz o que é verdade no código hoje, não o que uma política gostaria.

Todo turno de IA no Fito roda na sua própria assinatura de LLM, na sua própria máquina. O tutor, a avaliação da rubrica e a avaliação do quiz são todos turnos de agente na sua sessão do pi, pagos pela sua própria conta de provedor.

O servidor não guarda nenhuma chave de API de LLM, porque ele nunca faz uma chamada a modelo. Isso não é uma configuração que quem opera possa ligar; não existe caminho de código que usaria uma.

O tutor também tem escopo, e não apenas instruções. Ele recebe os documentos de briefing do caso e os componentes de conhecimento que aquele caso referencia, e não alcança a solução exemplar, o gabarito do quiz nem a chave de pontuação da rubrica — veja Pergunte ao tutor.

Duas coisas decorrem disso, e as duas merecem ser ditas com clareza:

  • O seu código e os seus prompts nunca passam pelo servidor do Fito. O que chega até ele é a nota, não o trabalho que a rendeu.
  • O seu provedor de modelo os vê, sob os termos que você combinou com ele. O Fito passa essa relação para você; ele não a elimina.
O quê Como é guardado
A sua senha Um hash bcrypt, fator de custo 12. O texto puro nunca é guardado nem registrado em log.
O seu refresh token Apenas um hash SHA-256. A string utilizável existe só com você.
O seu access token Não é guardado. Ele é um token assinado de vida curta, conferido a cada requisição.
O seu access token do GitHub Criptografado em repouso com AES-256-GCM, sob uma chave de quem opera o servidor.
O state OAuth de um login em andamento Não é guardado. Ele é assinado e tem prazo, e expira em cerca de dez minutos.
Chaves de API de LLM Nenhuma existe.

Um refresh token é de uso único: renovar revoga o antigo e emite um novo. As linhas expiradas são apagadas toda noite.

Vincular o GitHub concede ao Fito read:user e user:email. Isso lê o seu perfil público e o seu endereço de e-mail.

Isso não consegue subir código, criar um fork nem abrir um pull request. Tudo isso é feito pelo seu próprio gh local, com as suas próprias credenciais. O vínculo do Fito existe só para responder uma pergunta na hora do envio: a conta que abriu este pull request é a conta dona deste perfil Fito?

Cliente O que ele guarda
Aplicação web O seu access token só em memória, então ele não sobrevive a um recarregamento da página. O seu refresh token no armazenamento local do navegador, para que um recarregamento consiga entrar de novo.
Terminal Os dois tokens como JSON em ~/.fito/credentials, modo de arquivo 0600, modo de diretório 0700.
Checkouts de casos O seu trabalho, em ~/.fito/cases/<case-id>/, mais o seu fork no GitHub.

A sua senha nunca é escrita em ~/.fito/credentials. O fluxo de login devolve tokens, nunca a credencial que os gerou. Uma cópia vazada desse arquivo expira sozinha.

A entrega do navegador para o terminal no login é estreita por construção: um segredo de uso único gerado para aquele login, conferido antes de o corpo da requisição ser lido, e um servidor local que aceita uma origem. Nada dessa troca sai da sua máquina.

  • A sua proficiência, por componente de conhecimento. Esse é o objetivo do produto — veja Níveis de Bloom e proficiência.
  • Os seus envios: a URL do pull request, quando você enviou, qual versão do caso você resolveu e o resultado de cada critério da rubrica e de cada pergunta do quiz, com o motivo do revisor.
  • Quando você abre um caso, para que o autor do caso possa ver se as pessoas terminam.

As suas avaliações são privadas. Na página de um caso, as seções Competencies assessed e Your submissions são restritas à sua conta, e nunca expõem o trabalho de outra pessoa.

Os números de uso na capa de um caso — aberturas, envios, taxa de conclusão, tempo mediano — são públicos e agregados. Eles contam atos e pessoas, e não nomeiam ninguém.

Além do que você aprende, o Fito mantém um registro das requisições que chegam ao servidor dele. É com isso que os painéis da plataforma são construídos, e é a parte desta página que um leitor tem menos chance de adivinhar.

Toda requisição que chega à aplicação escreve uma linha, com a rota pedida, o método, o status respondido, quanto tempo levou, o seu endereço IP e o user agent do seu navegador.

Três coisas sobre esse registro merecem ser ditas sem rodeios:

  • Ele registra visitas sem autenticação também. Essas linhas não carregam conta alguma, e nenhuma identidade de visitante é inventada para ligá-las umas às outras.
  • A rota é um modelo, /cases/{id} e não o caminho que você pediu de fato, então um id nunca entra no que o registro agrupa.
  • O detalhe da linha é um conjunto curto e fixo de campos. Ele nunca carrega a sua senha, os seus tokens, um código ou estado de OAuth, a URL de um pull request, nada que você tenha enviado, o texto de uma reivindicação de curadoria nem um gabarito de rubrica ou de quiz. Essa lista é garantida por um teste, e não deixada para a revisão.

Quatro coisas não são registradas de jeito nenhum:

  • Os corpos das requisições. Quando a linha é escrita, o corpo já foi lido e não existe mais.
  • Qualquer coisa que fica no seu terminal. A sua sessão pi, os seus turnos com o tutor e o seu trabalho local não atravessam a API, então nada sobre eles é registrado.
  • Qualquer coisa que fica no seu navegador.
  • Uma requisição que a camada de segurança recusa antes da aplicação — um endereço desconhecido, ou um token malformado.

O mesmo registro, lido do lado de quem opera, está em Painéis de administração.

  • O /fito-logout apaga o ~/.fito/credentials e revoga o refresh token no servidor.
  • Apagar o arquivo você mesmo remove a cópia local. Rode o /fito-logout quando também quiser o token do servidor fora.
  • Sair na aplicação web revoga o refresh token, em vez de apenas esquecê-lo.

Como um servidor Fito é implantado, e o que quem opera faz quando uma chave vaza, são assuntos de operação e não de quem aprende. Eles ficam na documentação de arquitetura do repositório.