NoteBugsDocs

Começo

Guia de início rápido

Do container de pé à primeira chamada autenticada, em cinco passos.

  1. 1

    Suba a aplicação

    O Compose publica a aplicação na porta 3000 e sobe o PostgreSQL ao lado. As migrations rodam no entrypoint, e não há passo de seed.

    docker compose up -d --build
    
    # a saúde do container, sem credencial nenhuma
    curl -s http://localhost:3000/api/health
  2. 2

    Crie a primeira conta

    Sem nenhuma conta no banco, /login é a tela de primeiro acesso, e a conta criada ali nasce administradora. Pela API, é uma chamada só, e ela responde 409 para sempre depois disso.

    curl -s -X POST http://localhost:3000/api/auth/setup \
      -H "Content-Type: application/json" \
      -d '{
        "name": "Ana",
        "email": "[email protected]",
        "password": "uma senha longa"
      }'
  3. 3

    Gere o token de API

    Em Minha conta → Segurança, ou por HTTP com o cookie da sessão. O valor em claro sai UMA vez: guarde-o na hora.

    curl -s -c cookies.txt -X POST http://localhost:3000/api/auth/login \
      -H "Content-Type: application/json" \
      -d '{ "email": "[email protected]", "password": "uma senha longa" }'
    
    curl -s -b cookies.txt -X POST http://localhost:3000/api/profile/token
  4. 4

    Descubra o espaço de trabalho

    Toda criação pede o tenantId, e ele vem daqui. A sessão também lista os espaços que a conta alcança.

    export TOKEN="o valor que saiu do passo anterior"
    
    curl -s http://localhost:3000/api/tenants \
      -H "Authorization: Bearer $TOKEN"
  5. 5

    Crie o primeiro card

    A coluna precisa ser do conjunto em vigor para o card. Sem projeto, é o conjunto do próprio espaço.

    curl -s "http://localhost:3000/api/columns?tenant=$TENANT" \
      -H "Authorization: Bearer $TOKEN"
    
    curl -s -X POST http://localhost:3000/api/cards \
      -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type: application/json" \
      -d "{
        \"tenantId\": \"$TENANT\",
        \"title\": \"Primeiro card pela API\",
        \"columnId\": \"$COLUNA\"
      }"

O card nasce no topo da primeira coluna

E ganha um número sequencial que nunca é reaproveitado: o #42 de hoje não vira o #42 de ninguém amanhã, mesmo que o card seja apagado.

Depois daqui