Pular para o conteúdo

Configuração de autenticação do tribunal

GET
/auth/config
curl --request GET \
--url 'https://api.emmaos.com.br/auth/config?tenant=demo'

Devolve o user pool e o client do tribunal, para o painel montar o login sem carregar um mapa de tribunais nem ser reimplantado quando entra um cliente novo.

Pública por construção: userPoolId e userPoolClientId já estão no bundle de qualquer SPA. Pedir a configuração de outro tribunal continua exigindo uma credencial que exista naquele diretório.

tenant
required
string
/^[a-z0-9-]{1,32}$/

Slug do tribunal, derivado do host do painel.

Example
demo

Configuração do tribunal

Media typeapplication/json
object
userPoolId
required
string
userPoolClientId
required
string
region
required
string
mfa
required

Em required, quem nunca inscreveu um TOTP recebe o desafio MFA_SETUP no login e precisa se inscrever ali. O painel tem de tratar esse desafio antes de qualquer tribunal virar required.

string
Allowed values: optional required
Example
{
"userPoolId": "sa-east-1_CzmATDhzO",
"region": "sa-east-1",
"mfa": "optional"
}
Cache-Control
string

Resposta cacheável por 5 minutos.

Requisição inválida

Media typeapplication/json
object
error
required

Código estável do erro. É por ele que se programa.

string
Allowed values: INVALID_REQUEST INVALID_JSON NOT_FOUND NOT_IMPLEMENTED TIMELINE_TOO_LONG DATABASE_RESUMING INTERNAL_ERROR SEALED_DOCUMENT_MISSING DISPATCH_IN_PROGRESS IDEMPOTENCY_KEY_CONFLICT SEALED_DOCUMENT_TOO_LARGE SOURCE_DOCUMENT_TOO_MANY_PAGES SOURCE_DOCUMENT_UNREADABLE STORAGE_LIMIT_REACHED TENANT_NOT_CONFIGURED
field

Campo que causou a recusa, quando aplicável.

string
message

Texto em português para diagnóstico. Não programe contra ele: pode mudar sem aviso.

string
missing

Só com TENANT_NOT_CONFIGURED: o que falta na configuração do tribunal.

Array<string>
Allowed values: displayName publicPhone whatsappSender
Examples

Campo obrigatório ausente ou malformado

{
"error": "INVALID_REQUEST",
"field": "noticeType",
"message": "noticeType é obrigatório"
}

Tribunal não existe neste stage

Media typeapplication/json
object
error
required

Código estável do erro. É por ele que se programa.

string
Allowed values: INVALID_REQUEST INVALID_JSON NOT_FOUND NOT_IMPLEMENTED TIMELINE_TOO_LONG DATABASE_RESUMING INTERNAL_ERROR SEALED_DOCUMENT_MISSING DISPATCH_IN_PROGRESS IDEMPOTENCY_KEY_CONFLICT SEALED_DOCUMENT_TOO_LARGE SOURCE_DOCUMENT_TOO_MANY_PAGES SOURCE_DOCUMENT_UNREADABLE STORAGE_LIMIT_REACHED TENANT_NOT_CONFIGURED
field

Campo que causou a recusa, quando aplicável.

string
message

Texto em português para diagnóstico. Não programe contra ele: pode mudar sem aviso.

string
missing

Só com TENANT_NOT_CONFIGURED: o que falta na configuração do tribunal.

Array<string>
Allowed values: displayName publicPhone whatsappSender
Example
{
"error": "NOT_FOUND"
}

Erro interno

Media typeapplication/json
object
error
required

Código estável do erro. É por ele que se programa.

string
Allowed values: INVALID_REQUEST INVALID_JSON NOT_FOUND NOT_IMPLEMENTED TIMELINE_TOO_LONG DATABASE_RESUMING INTERNAL_ERROR SEALED_DOCUMENT_MISSING DISPATCH_IN_PROGRESS IDEMPOTENCY_KEY_CONFLICT SEALED_DOCUMENT_TOO_LARGE SOURCE_DOCUMENT_TOO_MANY_PAGES SOURCE_DOCUMENT_UNREADABLE STORAGE_LIMIT_REACHED TENANT_NOT_CONFIGURED
field

Campo que causou a recusa, quando aplicável.

string
message

Texto em português para diagnóstico. Não programe contra ele: pode mudar sem aviso.

string
missing

Só com TENANT_NOT_CONFIGURED: o que falta na configuração do tribunal.

Array<string>
Allowed values: displayName publicPhone whatsappSender
Example
{
"error": "INTERNAL_ERROR"
}