Saltar para o conteúdo principal

Multi-tenancy & Headers

O DokStamp é uma plataforma multi-tenant. Todos os recursos — instituições, cursos, estudantes, certificados — são totalmente isolados dentro de um tenant. Não existe acesso a dados entre tenants distintos.

Headers obrigatórios

Todos os endpoints de recursos (tudo exceto /auth/*) exigem estes dois headers:
HeaderObrigatórioDescrição
AuthorizationSimBearer {access_token}
AcceptSimapplication/json
X-TenantSimO seu identificador de tenant (fornecido pelo DokStamp)

Exemplo

GET /certificates HTTP/1.1
Host: api.dokstamp.eu
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...
Accept: application/json
X-Tenant: universidade-federal-example

Localizar o seu identificador de tenant

O seu identificador de tenant é configurado aquando da criação da conta. Pode obtê-lo a partir de:
  1. O painel administrativo do DokStamp em Configurações → API
  2. O corpo da resposta de GET /auth/me:
{
  "data": {
    "id": 1,
    "name": "João Silva",
    "email": "joao@universidade.edu.br",
    "tenant": {
      "id": 42,
      "name": "Universidade Federal Example",
      "domain": "universidade-federal-example"
    }
  }
}
Utilize o valor de tenant.domain como header X-Tenant.

Regras de isolamento de tenant

  • Dados criados num tenant nunca são visíveis para outro tenant.
  • Os UUIDs são globalmente únicos, mas todas as operações de leitura/escrita são filtradas por tenant.
  • Tentar aceder a um recurso que pertence a um tenant diferente devolve 404 Not Found (não 403) — isto previne ataques de enumeração.

Configuração multi-ambiente

Se tiver tenants separados para staging e produção, cada um terá o seu próprio domínio e credenciais. Mantenha-os em configurações de ambiente separadas:
# .env.staging
ASSINAMOS_BASE_URL=https://api.dokstamp.eu
ASSINAMOS_TENANT=minha-instituicao-staging
ASSINAMOS_TOKEN=eyJ...

# .env.production
ASSINAMOS_BASE_URL=https://api.dokstamp.eu
ASSINAMOS_TENANT=minha-instituicao
ASSINAMOS_TOKEN=eyJ...