Pular para o conteúdo

Licenciamento

O Vision só funciona sob uma licença Cesbo. Uma instalação nova fica bloqueada até que um administrador a ative. A licença não está vinculada a um endereço IP, nome de host, ID de máquina nem hardware: um serial cobre um dispositivo ativado.

O Vision precisa de duas coisas: uma licença Cesbo e um servidor Cesbo Alta para gerenciar. As licenças são gerenciadas no seu perfil Cesbo em app.cesbo.com pelos membros da empresa dona da licença. Para usar uma, abra Settings → License → Activate no Vision e escolha-a na página da Cesbo (veja Ativação).

  • Um serial cobre um dispositivo ativado: um host do Vision. Ele não está vinculado a um endereço IP, nome de host, ID de máquina nem hardware.
  • Os membros da empresa dona da licença ativam, substituem e removem dispositivos no perfil Cesbo.
  • Mover o Vision para outro hardware significa ativar o novo host e substituir o dispositivo antigo na página da Cesbo. Veja Removendo ou substituindo um dispositivo.
  • Não copie um license.txt para um segundo host: os dois ocupariam o mesmo slot de dispositivo.

Enquanto a licença não o permitir:

  • toda chamada de API responde 403 LICENSE_REQUIRED, exceto o login e os endpoints de licença;
  • os usuários que podem ler as configurações são enviados para Settings → License; todos os demais veem uma página License required;
  • a interface web, /healthz, /readyz e /metrics continuam no ar, e os workers em segundo plano continuam em execução;
  • as sessões de vídeo abertas funcionam até esgotar seus tokens.

O Vision se desbloqueia sozinho após a próxima verificação bem-sucedida.

A tolerância de 30 minutos após uma inicialização (veja Operação offline) cobre apenas um servidor de licença inacessível — não uma licença ausente.

Somente um usuário que pode alterar configurações pode ativar.

  1. Abra Settings → License e clique em Activate.
  2. Abra o link e entre no seu perfil Cesbo como membro da empresa proprietária da licença.
  3. Confira se o nome de host na página é o deste dispositivo e depois escolha a licença. Se a licença não tiver nenhuma vaga livre, escolha o dispositivo a substituir. Ele só é removido quando este dispositivo recebe a licença e deixa de funcionar na sua próxima verificação depois disso.
  4. O Vision recebe a licença por conta própria, grava license.txt e a verifica imediatamente.

O link expira após 10 minutos. Uma ativação que falhou ou expirou pode ser iniciada novamente com Start again ou removida com Dismiss; Cancel descarta uma pendente. Uma ativação cancelada, que falhou ou expirou não remove nenhum dispositivo, mesmo que um dispositivo a substituir já tenha sido escolhido na página da Cesbo.

Quando a ativação não consegue alcançar app.cesbo.com, ou o suporte envia o arquivo para você, baixe o license.txt do dispositivo no seu perfil Cesbo e grave-o no arquivo existente, mantendo o proprietário e o modo (vision:vision, 0600):

Terminal window
sudo tee /etc/vision/license.txt < license.txt >/dev/null
sudo ls -l /etc/vision/license.txt # -rw------- vision vision

Depois clique em Settings → License → Re-check now.

tee mantém o arquivo no qual o serviço pode gravar. Não o substitua com mv ou cp como root — um arquivo pertencente ao root bloqueia a próxima ativação (vision doctor indica a correção: sudo chown vision:vision /etc/vision/license.txt).

Qualquer membro da empresa proprietária pode:

  • remover um dispositivo: no perfil Cesbo, abra a licença e use Manage device;
  • substituir um dispositivo: ative o novo host a partir do seu Settings → License e escolha o dispositivo antigo na página da Cesbo. O dispositivo antigo é removido quando o novo recebe a licença.

Um dispositivo removido mostra License not found or revoked após a sua próxima verificação e é bloqueado. O Vision não tem um botão de remoção próprio. Ativar um host que já tem uma licença substitui o seu serial local; a ativação anterior continua válida no seu perfil Cesbo até que você a remova lá.

O serial é armazenado em /etc/vision/license.txt, ao lado de config.yaml, proprietário vision, modo 0600. vision install o cria vazio ({}) e nunca o sobrescreve; a unit do serviço permite que o serviço grave esse único arquivo enquanto o restante de /etc/vision permanece somente leitura. A ativação reescreve l e mantém todas as outras chaves:

{
"l": "<serial>",
"s": "https://ls.example/"
}
  • l é o serial, com 40 caracteres hexadecimais minúsculos. É um segredo: o Vision mostra e registra em log apenas os seus primeiros 14 caracteres, o ID público.
  • s é opcional: um único servidor de licença que substitui os da Cesbo (ambientes de teste, casos de suporte). Um s vazio ou que não seja uma string é ignorado.

O vision backup leva o arquivo junto com os segredos.

Cada verificação consulta os servidores de licença (ls1–ls3.cesbo.com) em ordem aleatória até que um conceda a licença. Uma recusa, ou uma resposta que falha na verificação, só conta quando nenhum servidor a concede.

  • Após uma concessão, o Vision verifica novamente em 24 horas, ou na data de expiração da licença se ela for anterior, de modo que uma renovação seja captada imediatamente.
  • Após uma recusa (expirada, removida ou substituída) ou uma resposta que falha na verificação, ele verifica a cada hora.
  • Re-check now verifica imediatamente (no máximo uma vez a cada 10 segundos).

Os servidores de licença recusam uma requisição cujo horário difere do deles em mais de 5 minutos. A página License então mostra o código 40003. Habilite o NTP no host (timedatectl set-ntp true) e depois clique em Re-check now.

CódigoSignificado
40000Licença não encontrada, revogada, ou este dispositivo foi removido ou substituído — ative novamente
40002Licença expirada — renove-a no seu perfil Cesbo
40003Relógio do host defasado em mais de 5 minutos — habilite o NTP
40004O servidor de licença não conseguiu ler a requisição — nova tentativa a cada minuto; entre em contato com o suporte da Cesbo se persistir
40006O servidor de licença não pode responder agora — nova tentativa a cada minuto
40100Nenhum arquivo de licença, ou ele não contém serial — ative
40110s em license.txt não é uma URL utilizável — corrija ou remova
40111Não foi possível conectar aos servidores de licença (rede, TLS, proxy, timeout)
40112A resposta não veio de um servidor de licença (um proxy, um captive portal ou um s incorreto) — nova tentativa a cada minuto
40120–40135A resposta de um servidor de licença falhou na verificação — nova tentativa a cada minuto; verifique o relógio do host e qualquer proxy que reescreva HTTPS
40140A resposta de um servidor de licença falhou na verificação de assinatura — bloqueado; verifique se há um proxy que reescreva HTTPS

Quando a licença expira, ou seu dispositivo é removido ou substituído, os servidores de licença recusam a verificação (40002 expirada, 40000 removida ou substituída) e o Vision bloqueia, como descrito em O que significa “bloqueado”. Depois disso ele verifica a cada hora, então desbloqueia sozinho quando a licença é renovada no seu perfil Cesbo; Re-check now faz isso na hora. Nos últimos 7 dias antes do vencimento, um banner acima de todas as páginas avisa os usuários que podem ler as configurações.

O Vision tenta novamente a cada minuto quando os servidores de licença não podem ser alcançados.

  • Dentro de 30 minutos após uma inicialização, ele continua em execução sem nenhuma resposta.
  • Após uma verificação bem-sucedida, ele continua em execução por até 30 dias sem outra. Durante os últimos 7 dias, a página License e um banner acima de todas as páginas mostram até quando.
  • A janela de 30 dias existe somente em memória: reiniciar o serviço recomeça com a tolerância de 30 minutos.

O Vision precisa de HTTPS de saída (443) para:

  • ls1.cesbo.com, ls2.cesbo.com, ls3.cesbo.com — as verificações (pelo menos um);
  • app.cesbo.com — somente a ativação.

Atrás de um proxy, defina HTTPS_PROXY em /etc/vision/vision.env e execute sudo vision restart. O proxy não deve interceptar o TLS: uma resposta reescrita falha na verificação.

  • As gravações ficam nos seus servidores Alta. O Vision mantém seu próprio banco de dados e dados da aplicação no seu host, em /var/lib/vision/.
  • O licenciamento só precisa de HTTPS de saída para os hosts listados em Rede.
  • Durante a ativação, a página da Cesbo mostra o nome de host do dispositivo que está sendo ativado.
  • vision status mostra o ID público do arquivo de licença, ou not activated. O estado em tempo real e a expiração estão em Settings → License.
  • vision doctor verifica o arquivo (existe, proprietário vision, modo 0600, concedido ao serviço pela unit) e se os servidores de licença e app.cesbo.com respondem. Um servidor inacessível é um aviso, não uma falha.
  • journalctl -u vision e Logs (componente license) registram toda mudança de estado.