Pular para o conteúdo principal

Autenticação

A segurança na QuettaCode é prioridade. Utilizamos um sistema robusto de autenticação e autorização para garantir que seus dados estejam protegidos e que apenas usuários autorizados acessem os recursos.

Visão Geral

A API utiliza autenticação baseada em Sessão (Stateful) para usuários web e, em breve, suportará API Keys para integrações server-to-server. Atualmente, o fluxo principal envolve:

  1. Envio de credenciais (Email/Senha).
  2. Recebimento de um identificador de sessão (Cookie JSESSIONID ou Token no corpo).
  3. Envio deste identificador nas requisições subsequentes.

Fluxo de Autenticação

1. Convite (Invite)

O acesso à plataforma geralmente começa com um convite enviado por um Administrador.

  • Endpoint: POST /api/v2/auth/invite
  • Quem pode chamar: Apenas usuários com role ADMIN ou OWNER.

2. Completar Registro

O usuário convidado recebe um link (ou código) para definir sua senha e ativar a conta.

  • Endpoint: POST /api/v2/auth/complete-registration
  • Payload:
    {
    "token": "token-recebido-no-email",
    "password": "nova-senha-forte",
    "confirmPassword": "nova-senha-forte"
    }

3. Login

Para acessar a API, realize o login.

  • Endpoint: POST /api/v2/auth/login
  • Payload:
    {
    "email": "[email protected]",
    "password": "password"
    }

A resposta incluirá um objeto token (Session ID) e os dados do usuário. O servidor também tentará definir um cookie JSESSIONID. Clientes como navegadores gerenciam isso automaticamente. Clientes HTTP (como backend servers) podem precisar extrair o token e enviá-lo via Cookie header.

Cabeçalhos de Segurança

Recomendamos sempre enviar os seguintes headers:

  • Content-Type: application/json
  • Accept: application/json

Logout

Para encerrar uma sessão:

  • Endpoint: POST /api/v2/auth/logout (Verificar disponibilidade no Swagger)

Permissões (Roles)

A QuettaCode utiliza um modelo RBAC (Role-Based Access Control) simplificado, mas estendível para PBAC (Policy-Based).

As roles padrão são:

  • OWNER: Acesso total ao Tenant, incluindo faturamento e destruição de dados.
  • ADMIN: Gerenciamento de usuários e configurações, mas sem acesso a faturamento sensível.
  • USER: Acesso operacional (enviar mensagens, ver relatórios).
  • VIEWER: Apenas leitura.