API REST
Conta, pessoas e marca
A pessoa do token, os perfis, as fotos, os logos e a exclusão da conta.
GET /me(tracker:read): pessoa (user, comid,name,email,localeeavatar_url), organização, projetos com o perfil em cada um, o token e a versão do tracker (server). Cada empresa deorganizationstrazslug,public_url(o endereço público da empresa, comohttps://suaempresa.centraldeajuda.ia.br: a raiz é a central de ajuda,/statusa página de status publicada e/suporte/...e/ideias/...o portal e os quadros de ideias;nullcom o endereço público desligado),app_url(a empresa no tracker,nullsem subdomínio por empresa) ebrandcomsquare_logo_urlewide_logo_url(públicos,nullsem o logo). whoami trazpublic_urltambém.- Idioma:
user.locale(emGET /mee no whoami) é o idioma que a pessoa escolheu em Sua conta:pt-BR,enoues;nullé o automático, pelo idioma do navegador ou do aparelho (sem nenhum dos três, português).PATCH /me(tracker:write) com{"locale": "en"}troca (nullvolta ao automático) e devolve{"locale": ...}. Vale para as telas, os e-mails e os apps, em todas as empresas da pessoa; não traduz o que já foi escrito em tarefas e conversas. Um app que mostra a interface no idioma do aparelho usauser.localequando não fornull. As frases prontas que a API devolve (otextdeGET /notificationse deGET /inbox, também nolist_inbox) vêm nesse idioma; no automático, peloAccept-Languagedo pedido. No MCP:set_language. GET /me/deletion(tracker:read): o que excluir a conta faria agora:email,can_delete(comblocker, o motivo, quando não pode: o dono da plataforma passa o papel antes) eorganizations, cada uma comoutcome(deleted: só a pessoa participa e a empresa sai inteira;owner_transferred: ela é a única dona enew_ownervira dono;left: ela só sai).DELETE /me(tracker:write) com{"confirm_email": "<e-mail da conta>"}exclui, sem volta: apaga nome, e-mail, foto, login, tokens, conexões e preferências e a conta aquarela ID (aquarela_id:deleted, oupendingquando o suporte termina lá); o que a pessoa escreveu fica com cada empresa como "Conta excluída". O token para de valer na hora. Não existe no MCP: excluir a conta é só da própria pessoa, no site, no app ou na API.GET /people/{me, id, e-mail ou nome}(tracker:read): o perfil de uma pessoa da empresa, como na tela /people/<id>.person(id,name,email,active,organization_roleeorganization_role_label,member_since,url, o perfil na tela, eavatar_url),all_projects(truepara admin e dono da empresa, que valem em todos os projetos),projects(name,prefix,slug,role,role_label),counts(open_assigned,open_qa,done_last_30_days),open_issues(as mais recentes em aberto com ela como responsável:code,title,status,severity,project,updated_at,url) eactivity(até 20 comentários e mudanças, mais recentes primeiro:kindcommentouhistory,at,issue,texte, quando um valor mudou,frometo). Só entram os projetos e as issues que o token vê; os apontamentos de horas, só para quem vê horas. Quem só acompanha os projetos (parte interessada) vê só quem participa deles, comemailnull. No MCP:get_person.- Foto da pessoa:
avatar_url(emGET /me,GET /people/{ref}eauthor_avatar_urlnas mensagens da conversa) éGET /people/{id}/avatar(tracker:read, a imagem, com o token; 404 sem foto),nullsem foto. O endereço muda (?v=) a cada troca, então pode ficar em cache pelo endereço: com a foto trocada na tela, oavatar_urlnovo chega na próxima leitura.PUT /me/avatar(tracker:write) troca a própria foto:multipart/form-datacom a imagem no campoavatar, ou JSON{"image_base64": "...", "file_name": "foto.jpg"}(imagem acima de 1,5 MB vai em multipart). PNG, JPG ou WebP até 2 MB; a tela e os apps recortam no quadrado e mandam JPG de até 512 px, e vale fazer o mesmo (a foto aparece em círculo).DELETE /me/avatartira (ficam as iniciais). A resposta trazid,nameeavatar_url. Quem divide uma empresa com a pessoa vê a foto. No MCP:set_avatar. GET /brand(tracker:read): as marcas para os apps: a empresa (organization, comslug,public_urleapp_urlcomo emGET /me) e os logos dela (organization.square_logo_urlewide_logo_url), a assinatura "tracker by aquarela" com os arquivos (product;product.by_urlé para onde o "by aquarela" leva, o site da Aquarela, numa aba ou no navegador), as regras eplacements, onde entra cada uma (place,organization:square,wideounull;product:icon,signature,signature_large,tab_title,headerounull). O tracker by aquarela nunca some: onde a empresa ocupa o topo, a assinatura vai para o rodapé.PUT /brand/logos/{square|wide}(tracker:write, admin e dono): troca o logo quadrado (ícone, seletor de empresa, menu recolhido) ou o horizontal (topo do menu, login, convites, e-mails, portal).multipart/form-datacom a imagem no campologo, ou JSON{"image_base64": "...", "file_name": "logo.png"}(o corpo JSON vai até 2 MB, então imagem acima de 1,5 MB vai em multipart). PNG, JPG ou WebP até 2 MB; o quadrado com largura e altura parecidas (pelo menos 64 px), o horizontal mais largo que alto.DELETE /brand/logos/{square|wide}tira. A resposta traz a empresa e os dois endereços. No MCP:set_organization_logo.