API Reference · Área de Trabalho

Convenções

As rotas recebem Authorization: Bearer <credencial>. Todas as operações deste domínio exigem credencial válida; a régua fina depende do registro e está declarada em cada operação.

Toda operação também pode responder os erros transversais abaixo, além dos declarados em cada uma.

HTTPerrorCodeCondição
400VALIDATION_FAILEDPropriedade não prevista no contrato, tipo inválido ou cursor ilegível.
401UNAUTHORIZEDCredencial ausente ou inválida.
403ACCESS_PROFILE_UNMAPPEDConta sem Perfil de Acesso convertido.
429RATE_LIMITEDMais de 100 requisições em 60 segundos.

Identidade pessoal. As escritas de Trabalho, pessoas ligadas, comentários, Modelos, e todas as operações de visões salvas, agendas e preferências exigem uma identidade que represente uma Pessoa. Um Token de Sistema recebe 403 FORBIDDEN com a mensagem “Token de Sistema não representa Pessoa”. As leituras de Trabalho, pessoas ligadas, comentários, trilha, diretório de usuários e Grupos de Trabalho aceitam Token de Sistema.

As listagens paginam por cursor. limit tem padrão 50, mínimo 1 e máximo 200. cursor é opaco e vem de nextCursor da página anterior; nextCursor nulo indica o fim.

As datas e horas de entrada e saída são instantes ISO 8601. baseDate é a única data civil, no formato YYYY-MM-DD.

Corpo de erro — JSON

CampoTipoPresençaDescrição
statusCodenumberSempreRepete o status HTTP.
messagestring ou array de stringsSempreMensagem legível; a validação pode retornar várias mensagens.
errorCodestringSempre nos erros da aplicaçãoCódigo estável: VALIDATION_FAILED, RULE_VIOLATION, NOT_FOUND, FORBIDDEN, UNAUTHORIZED, CONFLICT, entre outros.
errorstringCondicionalNome do status HTTP.

Página com cursor — JSON

CampoTipoDescrição
itemsarrayRegistros da página, no tipo da operação.
nextCursorstring ou nullCursor da próxima página; null indica o fim.

Trabalho — campos de saída

O objeto devolvido pelas operações de Trabalho tem os campos abaixo.

CampoTipoDescrição
idstringIdentificador do Trabalho.
kindactivity ou appointmentTipo do Trabalho.
categoryenum de categoriasCategoria dentro do tipo.
titlestringTítulo.
bodystring ou nullDescrição; no Compromisso, também a pauta.
tagsarray de stringsEtiquetas livres.
prioritylow, medium, high, urgent ou nullPrioridade declarada.
statuspending, in_progress, completed, cancelled, postponed, no_show ou overdueEstado publicado; overdue é derivado na leitura.
statusLabelIdstring ou nullSituação do quadro do núcleo.
dueAtdata-hora ou nullVencimento da Atividade.
scheduledAtdata-hora ou nullHora marcada do Compromisso.
durationMinnumber ou nullDuração prevista, em minutos.
locationstring ou nullLocal.
meetingUrlstring ou nullEndereço do encontro remoto.
meetingFormatin_person, remote, hybrid ou nullFormato do encontro.
preclusionRulecalendar_days, business_days, calendar_days_business_end ou nullRegra aplicada no cálculo do prazo.
stateCodestring ou nullUnidade federativa da competência do prazo.
ibgeCodestring ou nullCódigo do município da competência.
templateIdstring ou nullModelo de origem.
guidelineIdstring ou nullOrientação reutilizável citada.
guidanceTextstring ou nullOrientação própria deste Trabalho.
parentIdstring ou nullTrabalho de origem.
originRulestring ou nullRegra do sistema que originou o Trabalho.
ownerUserIdstringDono do Trabalho.
nucleosarray de stringsSiglas de núcleo e códigos de subnúcleo responsáveis, em caixa alta.
confidentialbooleanMarca de sigilo.
cancelReasonstring ou nullMotivo do cancelamento.
personIdstring ou nullPessoa a quem o Trabalho se refere.
caseIdstring ou nullProcesso ligado.
subtypeconciliation, instruction, medical, social ou nullSubtipo de audiência ou perícia. Em implementação.
presidingNamestring de até 255 caracteres ou nullNome exibido de quem preside o Compromisso. Pode vir da Pessoa vinculada ou de nome livre sem cadastro. Em implementação.
caseMovementIdstring ou nullMovimentação do processo vinculada ao Trabalho. Em implementação.
consultationIdstring ou nullEntrevista ligada.
associationIdstring ou nullAssociação alcançada.
openChildrenarray de TrabalhosFilhos diretos pendentes ou em execução, dos mais antigos aos mais novos. Os filhos trazem o estado gravado, sem overdue, e não trazem openChildren.
createdAtdata-horaCriação.
updatedAtdata-horaÚltima alteração.

Trabalho

POST /v1/work-items

Cria uma Atividade ou um Compromisso. O dono é sempre a identidade autenticada e o Trabalho nasce pendente.

Autenticação e autorização: Bearer de identidade pessoal com perfil Operacional Autônomo ou superior.

Entrada — JSON

LocalCampoTipoObrigatórioCondição
Corpokindactivity ou appointmentSimTipo do Trabalho.
Corpocategoryenum de categoriasSimDeve pertencer ao tipo.
Corpotitlestring, 1 a 255 caracteresSimTítulo do Trabalho.
Corpobodystring, até 100000 caracteresNãoDescrição.
Corpotagsarray de strings, até 20 itens de 1 a 64 caracteresNãoEtiquetas livres.
Corpoprioritylow, medium, high ou urgentNãoPrioridade declarada.
CorpodueAtdata-horaNãoVencimento pronto; mutuamente exclusivo com baseDate.
CorpobaseDatedata civil YYYY-MM-DDNãoData-base da contagem; exige days.
Corpodaysinteiro de 0 a 3650Com baseDateQuantidade de dias do prazo.
CorpostateCodestring de 2 caracteresNãoUnidade federativa da competência.
CorpoibgeCodestring de 7 caracteresNãoMunicípio da competência.
CorposcheduledAtdata-horaNãoHora marcada; apenas em Compromisso.
CorpodurationMininteiro de 1 a 1440NãoDuração; apenas em Compromisso.
Corpolocationstring, até 255 caracteresNãoLocal.
CorpomeetingUrlstring, até 300 caracteresNãoEncontro remoto; apenas em Compromisso.
CorpomeetingFormatin_person, remote ou hybridNãoFormato; apenas em Compromisso.
CorpotemplateIdUUIDNãoModelo de onde vêm dias e regra de contagem; considerado apenas se habilitado.
CorpoguidelineIdUUIDNãoOrientação reutilizável; mutuamente exclusiva com guidanceText.
CorpoguidanceTextstring, até 100000 caracteresNãoOrientação própria.
CorpoparentIdUUIDNãoTrabalho de origem, do mesmo tipo.
CorpoconfidentialbooleanNãoRestringe o Trabalho a quem tem ligação direta com ele.
CorpopersonIdUUIDNãoPessoa a quem o Trabalho se refere.
CorpocaseIdUUIDNãoProcesso ligado.
Corposubtypeconciliation, instruction, medical ou socialNãoconciliation ou instruction só em hearing; medical ou social só em expert_examination; outra combinação responde 422. Em implementação.
CorpocaseMovementIdUUIDNãoMovimentação do mesmo processo de caseId; de outro processo responde 422. Em implementação.
CorpoconsultationIdUUIDNãoEntrevista ligada.
CorpoassociationIdUUIDNãoAssociação alcançada.

Saída

HTTPCampoTipoDescrição
201corpoTrabalhoO Trabalho criado, conforme os campos de saída das Convenções.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDCorpo fora do contrato.
401UNAUTHORIZEDCredencial ausente ou inválida.
403FORBIDDENPerfil abaixo de Operacional Autônomo.
403FORBIDDENToken de Sistema, que não representa Pessoa.
404NOT_FOUNDOrientação reutilizável (guidelineId) inexistente.
422RULE_VIOLATIONCategoria fora do tipo; prazo declarado duas vezes; baseDate sem days; baseDate que não é uma data civil existente; orientação declarada em duas formas; campo de hora marcada em Atividade; categoria sem contagem de prazo; Pessoa inexistente; Trabalho de origem inexistente, de outro tipo ou fora do limite da árvore.
422RULE_VIOLATIONSubtipo que não pertence à categoria; caseMovementId de outro processo. Em implementação.
500INTERNALFalha ao gravar ou ao consultar o calendário.

Condições: com templateId de um Modelo habilitado, days e a regra de contagem vêm do Modelo e prevalecem sobre days do corpo. Um Modelo desabilitado é ignorado, e a regra volta a sair da categoria. Os demais campos do Modelo não são copiados para o Trabalho. presidingName não pertence à criação genérica; quem preside é definido pelo PUT /v1/work-items/{id}/people/presiding.


GET /v1/work-items

Lista os Trabalhos que a identidade alcança. O alcance, os filtros, a busca e a ordenação são resolvidos na própria consulta.

Autenticação e autorização: Bearer de qualquer identidade autenticada. O alcance por registro é aplicado na consulta.

Entrada

LocalCampoTipoObrigatórioCondição
QuerycursorstringNãoCursor da página anterior.
Querylimitinteiro de 1 a 200NãoTamanho da página; padrão 50.
Querykindactivity ou appointmentNãoAusente, traz os dois tipos.
Querycategoryarray de categoriasNãoValores do eixo combinam por união.
Querystatusarray de estados publicadosNãoAceita overdue, traduzido em Compromisso pendente com hora marcada no passado.
Querypriorityarray de prioridadesNãoCombina por união.
Querytagsarray de strings, até 20 itensNãoCasa quem tem qualquer uma das etiquetas.
QuerynucleusSiglastring, 1 a 40 caracteresNãoSigla de núcleo ou código de subnúcleo, comparado em caixa alta e de forma literal com nucleos: a sigla de um núcleo não traz Trabalhos carimbados apenas com o código de um subnúcleo dele.
QuerystatusLabelIdUUIDNãoSituação do quadro.
QueryownerUserIdUUIDNãoDono do Trabalho.
QueryassigneeUserIdUUIDNãoQuem responde pelo Trabalho.
QuerygroupIdUUIDNãoGrupo de trabalho ligado.
QueryparentIdUUIDNãoTrabalho de origem.
QuerytemplateIdUUIDNãoModelo de origem.
QuerypersonIdUUIDNãoPessoa referida.
QuerycaseIdUUIDNãoProcesso ligado.
QuerycaseMovementIdUUIDNãoMovimentação do processo vinculada ao Trabalho. Em implementação.
QueryconsultationIdUUIDNãoEntrevista ligada.
Querysearchstring, até 120 caracteresNãoBusca por prefixo em título, descrição, local e etiquetas; termo com menos de dois caracteres é ignorado.
QuerydueBefore / dueAfterdata-horaNãoJanela exclusiva sobre o vencimento.
Queryfrom / todata-horaNãoJanela inclusiva sobre a hora marcada.
QuerycompletedFrom / completedTodata-horaNãoJanela inclusiva sobre a conclusão.
QuerycreatedFrom / createdTodata-horaNãoJanela inclusiva sobre a criação.
QueryupdatedFrom / updatedTodata-horaNãoJanela inclusiva sobre a última alteração.
QuerytrashedbooleanNãotrue lista a lixeira, com régua própria; padrão false.
QueryorderBydueAt, scheduledAt, priority, status ou titleNãoAusente, ordena pela criação.
QueryorderDirasc ou descNãoPadrão desc.

Saída

HTTPCampoTipoDescrição
200itemsarray de TrabalhosPágina já restrita ao alcance da identidade.
200nextCursorstring ou nullCursor da próxima página.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDConsulta fora do contrato ou cursor ilegível.
401UNAUTHORIZEDCredencial ausente ou inválida.
500INTERNALFalha na consulta.

GET /v1/work-items/{id}

Devolve o Trabalho com o estado derivado e os filhos diretos ainda abertos.

Autenticação e autorização: Bearer de identidade que alcança o Trabalho. Quem não alcança recebe 404.

Entrada

LocalCampoTipoObrigatórioCondição
CaminhoidUUIDSimIdentificador do Trabalho.

Saída

HTTPCampoTipoDescrição
200corpoTrabalhoO Trabalho, com openChildren.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDIdentificador inválido.
401UNAUTHORIZEDCredencial ausente ou inválida.
404NOT_FOUNDTrabalho inexistente, na lixeira ou fora do alcance.
500INTERNALFalha na consulta.

PATCH /v1/work-items/{id}

Altera o Trabalho. Com status, executa a transição de estado.

Autenticação e autorização: Bearer de identidade que alcança e pode alterar o Trabalho.

Entrada — JSON

LocalCampoTipoObrigatórioCondição
CaminhoidUUIDSimIdentificador do Trabalho.
Corpostatuspending, in_progress, completed, cancelled, postponed ou no_showNãoA transição precisa ser admitida a partir do estado atual, e o estado precisa pertencer ao tipo: in_progress é da Atividade, postponed e no_show são do Compromisso.
CorpocancelReasonstring, 1 a 500 caracteresCom status: cancelledMotivo do cancelamento.
Corpodemais camposiguais aos de POST /v1/work-itemsNãoOs campos da criação são aceitos, exceto a mudança de kind; presidingName também não é aceito. baseDate, days e templateId não recalculam o prazo nem a regra de contagem; o vencimento muda por dueAt.

Saída

HTTPCampoTipoDescrição
200corpoTrabalhoO Trabalho alterado.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDIdentificador inválido ou corpo fora do contrato.
401UNAUTHORIZEDCredencial ausente ou inválida.
403FORBIDDENA identidade alcança o Trabalho mas não pode alterá-lo; Token de Sistema.
404NOT_FOUNDTrabalho inexistente, na lixeira ou fora do alcance; orientação reutilizável inexistente.
409CONFLICTTransição de estado não admitida.
422RULE_VIOLATIONMudança de tipo; categoria fora do tipo; estado que não pertence ao tipo; orientação declarada em duas formas; cancelamento sem motivo; não comparecimento fora do atendimento; Trabalho de origem inválido.
422RULE_VIOLATIONSubtipo que não pertence à categoria; caseMovementId de outro processo. Em implementação.
500INTERNALFalha ao gravar.

Condições: a transição é conferida nesta ordem: mapa de transições (409), estado do tipo, não comparecimento fora do atendimento e cancelamento sem motivo (422). A trilha registra work_item.updated, ou work_item.<estado> quando há transição.


POST /v1/work-items/{id}/advance

Conclui o Trabalho. Na Atividade, também avança a Situação do quadro do núcleo.

Autenticação e autorização: Bearer de identidade que alcança e pode alterar o Trabalho.

Entrada — JSON

LocalCampoTipoObrigatórioCondição
CaminhoidUUIDSimIdentificador do Trabalho.
Corpofrompending, in_progress, completed, cancelled, postponed ou no_showSimPrecisa corresponder ao estado gravado; overdue não é aceito. Apenas Trabalho pendente ou em execução avança.

Saída

HTTPCampoTipoDescrição
200corpoTrabalhoO Trabalho concluído, com os selos preenchidos.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDIdentificador inválido ou from fora do vocabulário.
401UNAUTHORIZEDCredencial ausente ou inválida.
403FORBIDDENA identidade alcança o Trabalho mas não pode alterá-lo; Token de Sistema.
404NOT_FOUNDTrabalho inexistente, na lixeira ou fora do alcance.
409CONFLICTfrom diferente do estado atual, ou Trabalho que não está pendente nem em execução.
500INTERNALFalha ao gravar.

Condições: na Atividade, a próxima Situação é procurada na sequência do primeiro núcleo de nucleos. A trilha registra work_item.completed.


POST /v1/work-items/{id}/postpone

Adia o Trabalho e registra na trilha a data anterior, a nova data e o motivo.

Autenticação e autorização: Bearer de identidade que alcança e pode alterar o Trabalho.

Entrada — JSON

LocalCampoTipoObrigatórioCondição
CaminhoidUUIDSimIdentificador do Trabalho.
CorponewDatedata-horaSimPrecisa ser posterior à data vigente.
Corporeasonstring, 1 a 500 caracteresSimMotivo do adiamento.

Saída

HTTPCampoTipoDescrição
200corpoTrabalhoO Trabalho adiado, com a nova data. O Compromisso volta com status em postponed; a Atividade mantém o estado que tinha.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDIdentificador inválido ou corpo fora do contrato.
401UNAUTHORIZEDCredencial ausente ou inválida.
403FORBIDDENA identidade alcança o Trabalho mas não pode alterá-lo; Token de Sistema.
404NOT_FOUNDTrabalho inexistente, na lixeira ou fora do alcance.
409CONFLICTTrabalho encerrado.
422RULE_VIOLATIONNova data anterior ou igual à vigente.
500INTERNALFalha ao gravar.

Condições: sem data vigente, a nova data não é comparada. A trilha registra work_item.postponed, com a alteração de dueAt ou scheduledAt em changes e o motivo.


DELETE /v1/work-items/{id}

Exclusão suave. Com cascade, exclui também a árvore de filhos vivos.

Autenticação e autorização: Bearer de identidade com autoridade de selo: dono, líder de núcleo responsável ou Acesso Global. Com cascade, a autoridade é conferida sobre toda a árvore antes de qualquer gravação.

Entrada

LocalCampoTipoObrigatórioCondição
CaminhoidUUIDSimIdentificador do Trabalho.
QuerycascadebooleanNãotrue exclui a árvore; padrão false.

Saída

HTTPCampoTipoDescrição
204——Resposta sem corpo.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDIdentificador inválido.
401UNAUTHORIZEDCredencial ausente ou inválida.
403FORBIDDENSem autoridade de selo sobre o Trabalho ou sobre algum Trabalho da árvore; Token de Sistema.
404NOT_FOUNDTrabalho inexistente, na lixeira ou fora do alcance.
409CONFLICTTrabalho com filhos vivos e sem cascade.
500INTERNALFalha ao gravar.

POST /v1/work-items/{id}/restore

Devolve às listas um Trabalho que está na lixeira.

Autenticação e autorização: Bearer de identidade com autoridade de selo sobre o Trabalho.

Entrada

LocalCampoTipoObrigatórioCondição
CaminhoidUUIDSimIdentificador do Trabalho excluído.

Saída

HTTPCampoTipoDescrição
200corpoTrabalhoO Trabalho restaurado.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDIdentificador inválido.
401UNAUTHORIZEDCredencial ausente ou inválida.
403FORBIDDENToken de Sistema.
404NOT_FOUNDTrabalho inexistente, vivo ou fora do alcance da régua de selo.
409CONFLICTO Trabalho de origem continua excluído.
500INTERNALFalha ao gravar.

Pessoas ligadas ao Trabalho

GET /v1/work-items/{id}/people

Lista as ligações do Trabalho, por papel e pela ordem declarada.

Autenticação e autorização: Bearer de identidade que alcança o Trabalho.

Entrada

LocalCampoTipoObrigatórioCondição
CaminhoidUUIDSimIdentificador do Trabalho.

Saída

HTTPCampoTipoDescrição
200corpoarray de ligaçõesLista completa, sem paginação.
200[].idstringIdentificador da ligação.
200[].workItemIdstringTrabalho da ligação.
200[].roleenum de papéisPapel da ligação.
200[].targetTypeuser, person, org_unit ou work_groupNatureza do alvo.
200[].targetIdstringIdentificador do alvo.
200[].positionnumberOrdem declarada dentro do papel.
200[].senderUserIdstring ou nullQuem criou a ligação.
200[].senderKinduser, machine, system ou nullNatureza de quem criou a ligação.
200[].senderTokenIdstring ou nullCredencial de integração que criou a ligação.
200[].createdAtdata-horaCriação da ligação.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDIdentificador inválido.
401UNAUTHORIZEDCredencial ausente ou inválida.
404NOT_FOUNDTrabalho inexistente, na lixeira ou fora do alcance.
500INTERNALFalha na consulta.

POST /v1/work-items/{id}/people

Liga alguém ao Trabalho no papel declarado.

Autenticação e autorização: Bearer de identidade pessoal que alcança e pode alterar o Trabalho.

Entrada — JSON

LocalCampoTipoObrigatórioCondição
CaminhoidUUIDSimIdentificador do Trabalho.
Corporoleassignee, involved, observer, participant, guest, witness ou presidingSimPapel da ligação.
CorpotargetTypeuser, person, org_unit ou work_groupSimPrecisa ser admitida pelo papel.
CorpotargetIdUUIDSimAlvo existente no cadastro que a natureza nomeia: user em usuários, person em Pessoas, org_unit em núcleos (/v1/nuclei) ou subnúcleos (/v1/organization/subnuclei), work_group em Grupos de Trabalho.
Corpopositioninteiro de 0 a 999NãoOrdem dentro do papel; padrão 0.

Saída

HTTPCampoTipoDescrição
201corpoligaçãoA ligação criada, com os mesmos campos da listagem.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDIdentificador inválido ou corpo fora do contrato.
401UNAUTHORIZEDCredencial ausente ou inválida.
403FORBIDDENA identidade alcança o Trabalho mas não pode alterá-lo; Token de Sistema.
404NOT_FOUNDTrabalho inexistente, na lixeira ou fora do alcance.
409CONFLICTA ligação já existe, ou role: presiding exige o PUT dedicado.
422RULE_VIOLATIONPapel incompatível com a natureza do alvo, ou alvo inexistente; inclui identificador de matriz ou filial em org_unit.
500INTERNALFalha ao gravar.

Condições: uma ligação org_unit com papel assignee ou involved recalcula nucleos com a sigla do núcleo ou o código do subnúcleo. Apenas o usuário designado com targetType: user é avisado. A trilha registra work_item.assigned. O papel presiding não é criado por esta operação: o servidor responde 409 CONFLICT e orienta o PUT /v1/work-items/{id}/people/presiding.


PUT /v1/work-items/{id}/people/presiding

Substitui quem preside um Compromisso, mantendo nome e eventual vínculo com Pessoa como um único estado atômico. Em implementação.

Autenticação e autorização: Bearer de identidade pessoal que alcança e pode alterar o Trabalho.

Entrada — JSON

LocalCampoTipoObrigatórioCondição
CaminhoidUUIDSimIdentificador do Compromisso.
CorpopersonIdUUIDExatamente um entre personId e namePessoa existente; o nome exibido é derivado do cadastro. Não envie name junto.
Corponamestring de 1 a 255 caracteresExatamente um entre personId e nameNome livre, aparado antes da validação e gravação. Não cria vínculo com Pessoa nem aceita personId junto.

Saída

HTTPCampoTipoDescrição
200workItemIdUUIDCompromisso alterado.
200presidingNamestringNome exibido de quem preside.
200personIdUUID ou nullPessoa vinculada; null na variante de nome livre.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDIdentificador inválido, campo fora do contrato, personId fora do formato UUID ou name vazio ou acima de 255 caracteres após aparar.
401UNAUTHORIZEDCredencial ausente ou inválida.
403FORBIDDENA identidade alcança o Trabalho mas não pode alterá-lo; Token de Sistema.
404NOT_FOUNDTrabalho inexistente, na lixeira ou fora do alcance.
422RULE_VIOLATIONO Trabalho não é Compromisso; as duas variantes foram enviadas ou ambas estão ausentes; Pessoa inexistente ou sem nome.
500INTERNALFalha não tratada ao substituir o estado.

Condições: o servidor substitui, na mesma transação, presidingName e a única ligação presiding/person. Com name, remove a ligação e mantém somente o texto livre; com personId, deriva o nome e mantém uma única ligação. Repetir o mesmo estado é seguro para retry concorrente, não duplica a ligação nem o histórico e devolve o mesmo resultado.


DELETE /v1/work-items/{id}/people/{linkId}

Desliga alguém do Trabalho e recalcula os núcleos responsáveis pelo Trabalho.

Autenticação e autorização: Bearer de identidade pessoal que alcança e pode alterar o Trabalho.

Entrada

LocalCampoTipoObrigatórioCondição
CaminhoidUUIDSimIdentificador do Trabalho.
CaminholinkIdUUIDSimIdentificador da ligação.

Saída

HTTPCampoTipoDescrição
204——Resposta sem corpo.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDIdentificador inválido.
401UNAUTHORIZEDCredencial ausente ou inválida.
403FORBIDDENA identidade alcança o Trabalho mas não pode alterá-lo; Token de Sistema.
404NOT_FOUNDTrabalho ou ligação inexistente.
409CONFLICTA ligação tem papel presiding e exige substituição pelo PUT dedicado.
500INTERNALFalha ao gravar.

Condições: a trilha registra work_item.unassigned. Uma ligação presiding não é removida por esta operação: o servidor responde 409 CONFLICT para preservar a atomicidade entre nome e vínculo.


GET /v1/work-items/people

Lê numa chamada as ligações de vários Trabalhos. Atende à fila, que mostra responsáveis, núcleos e grupos de cada linha.

Autenticação e autorização: Bearer de qualquer identidade autenticada, inclusive Token de Sistema. Cada Trabalho passa pela mesma régua da listagem: identificadores inexistentes, na lixeira ou fora do alcance são omitidos da resposta, sem erro.

Entrada

LocalCampoTipoObrigatórioCondição
QueryworkItemIdsarray de UUID v4, de 1 a 200 itensSimRepetível (?workItemIds=a&workItemIds=b); um único valor é tratado como lista. Repetições são descartadas.

Saída

HTTPCampoTipoDescrição
200corpoarray de ligaçõesLista sem paginação, com os campos de GET /v1/work-items/{id}/people, ordenada por Trabalho, papel, posição e criação. Lista vazia quando nenhum Trabalho do lote é alcançado.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDLista ausente ou vazia, mais de 200 itens, ou identificador que não é UUID v4.
401UNAUTHORIZEDCredencial ausente ou inválida.
500INTERNALFalha na consulta.

Comentários do Trabalho

GET /v1/work-items/{id}/comments

Lista os comentários do Trabalho, dos mais antigos aos mais novos.

Autenticação e autorização: Bearer de identidade que alcança o Trabalho.

Entrada

LocalCampoTipoObrigatórioCondição
CaminhoidUUIDSimIdentificador do Trabalho.
QuerycursorstringNãoCursor da página anterior.
Querylimitinteiro de 1 a 200NãoTamanho da página; padrão 50.

Saída

HTTPCampoTipoDescrição
200items[].idstringIdentificador do comentário.
200items[].workItemIdstringTrabalho comentado.
200items[].bodystringTexto do comentário.
200items[].authorUserIdstring ou nullAutor.
200items[].authorKinduser, machine, system ou nullNatureza do autor.
200items[].authorTokenIdstring ou nullCredencial de integração autora.
200items[].editedAtdata-hora ou nullMarca de edição.
200items[].createdAtdata-horaPublicação.
200nextCursorstring ou nullCursor da próxima página.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDIdentificador inválido ou cursor ilegível.
401UNAUTHORIZEDCredencial ausente ou inválida.
404NOT_FOUNDTrabalho inexistente, na lixeira ou fora do alcance.
500INTERNALFalha na consulta.

POST /v1/work-items/{id}/comments

Publica um comentário no Trabalho.

Autenticação e autorização: Bearer de identidade pessoal que alcança o Trabalho. Comentar não exige poder de alteração.

Entrada — JSON

LocalCampoTipoObrigatórioCondição
CaminhoidUUIDSimIdentificador do Trabalho.
Corpobodystring, 1 a 10000 caracteresSimTexto do comentário.

Saída

HTTPCampoTipoDescrição
201corpocomentárioO comentário publicado.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDIdentificador inválido ou corpo fora do contrato.
401UNAUTHORIZEDCredencial ausente ou inválida.
403FORBIDDENToken de Sistema, que não representa Pessoa.
404NOT_FOUNDTrabalho inexistente, na lixeira ou fora do alcance.
500INTERNALFalha ao gravar.

PATCH /v1/work-items/{id}/comments/{commentId}

Reescreve o próprio comentário e marca a edição.

Autenticação e autorização: Bearer do autor do comentário; o Acesso Global também alcança.

Entrada — JSON

LocalCampoTipoObrigatórioCondição
CaminhoidUUIDSimIdentificador do Trabalho.
CaminhocommentIdUUIDSimIdentificador do comentário.
Corpobodystring, 1 a 10000 caracteresSimNovo texto.

Saída

HTTPCampoTipoDescrição
200corpocomentárioO comentário alterado, com editedAt preenchido.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDIdentificador inválido ou corpo fora do contrato.
401UNAUTHORIZEDCredencial ausente ou inválida.
403FORBIDDENO comentário é de outra pessoa; Token de Sistema.
404NOT_FOUNDTrabalho ou comentário inexistente.
500INTERNALFalha ao gravar.

DELETE /v1/work-items/{id}/comments/{commentId}

Apaga o próprio comentário.

Autenticação e autorização: Bearer do autor do comentário; o Acesso Global também alcança.

Entrada

LocalCampoTipoObrigatórioCondição
CaminhoidUUIDSimIdentificador do Trabalho.
CaminhocommentIdUUIDSimIdentificador do comentário.

Saída

HTTPCampoTipoDescrição
204——Resposta sem corpo.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDIdentificador inválido.
401UNAUTHORIZEDCredencial ausente ou inválida.
403FORBIDDENO comentário é de outra pessoa; Token de Sistema.
404NOT_FOUNDTrabalho ou comentário inexistente.
500INTERNALFalha ao gravar.

Modelos de Trabalho

GET /v1/work-templates

Lista os Modelos. Sem o parâmetro de habilitação, traz apenas os habilitados.

Autenticação e autorização: Bearer de qualquer identidade autenticada.

Entrada

LocalCampoTipoObrigatórioCondição
QuerycursorstringNãoCursor da página anterior.
Querylimitinteiro de 1 a 200NãoTamanho da página; padrão 50.
Querykindactivity ou appointmentNãoTipo do Trabalho gerado.
Querycategoryenum de categoriasNãoCategoria do Trabalho gerado.
QueryorgUnitIdUUIDNãoSetor dono do Modelo.
QueryenabledbooleanNãoAusente, traz apenas os habilitados.

Saída

HTTPCampoTipoDescrição
200items[].idstringIdentificador do Modelo.
200items[].codestring ou nullCódigo curto do Modelo.
200items[].namestringNome no seletor.
200items[].kindactivity ou appointmentTipo gerado.
200items[].categoryenum de categoriasCategoria gerada.
200items[].titleTemplatestring ou nullTítulo sugerido.
200items[].bodyTemplatestring ou nullDescrição sugerida.
200items[].guidelineIdstring ou nullOrientação herdada.
200items[].daysnumber ou nullDias do prazo.
200items[].countingRuleregra de contagem ou nullRegra que substitui a da categoria.
200items[].priorityprioridade ou nullPrioridade sugerida.
200items[].durationMinnumber ou nullDuração sugerida.
200items[].pendingFieldsarray de stringsCampos que a interface deve solicitar.
200items[].defaultPeoplearray de designações padrãoCada item traz role, targetType e targetId; a compatibilidade entre papel e natureza é conferida, a existência do alvo não.
200items[].orgUnitIdstring ou nullSetor dono.
200items[].ownerUserIdstring ou nullQuem cadastrou.
200items[].enabledbooleanHabilitação no seletor.
200items[].createdAt / updatedAtdata-horaDatas de registro.
200nextCursorstring ou nullCursor da próxima página.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDConsulta fora do contrato ou cursor ilegível.
401UNAUTHORIZEDCredencial ausente ou inválida.
500INTERNALFalha na consulta.

GET /v1/work-templates/{id}

Devolve o Modelo, habilitado ou não.

Autenticação e autorização: Bearer de qualquer identidade autenticada.

Entrada

LocalCampoTipoObrigatórioCondição
CaminhoidUUIDSimIdentificador do Modelo.

Saída

HTTPCampoTipoDescrição
200corpoModeloOs mesmos campos da listagem.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDIdentificador inválido.
401UNAUTHORIZEDCredencial ausente ou inválida.
404NOT_FOUNDModelo inexistente.
500INTERNALFalha na consulta.

POST /v1/work-templates

Cadastra um Modelo.

Autenticação e autorização: Bearer de identidade pessoal com Acesso de Núcleo ou superior.

Entrada — JSON

LocalCampoTipoObrigatórioCondição
Corponamestring, 1 a 255 caracteresSimNome no seletor.
Corpokindactivity ou appointmentSimTipo gerado.
Corpocategoryenum de categoriasSimDeve pertencer ao tipo.
Corpocodestring, 1 a 32 caracteresNãoCódigo curto e único; a coluna guarda até 32 caracteres.
CorpotitleTemplatestring, até 255 caracteresNãoTítulo sugerido.
CorpobodyTemplatestring, até 100000 caracteresNãoDescrição sugerida.
CorpoguidelineIdUUIDNãoOrientação herdada pelo Trabalho gerado.
Corpodaysinteiro de 1 a 3650NãoExige countingRule; o cadastro exige valor maior que zero.
CorpocountingRulecalendar_days, business_days ou calendar_days_business_endCom daysRegra que substitui a da categoria.
CorpopriorityprioridadeNãoPrioridade sugerida.
CorpodurationMininteiro de 1 a 1440NãoDuração sugerida.
CorpopendingFieldsarray de strings, até 50 itensNãoCampos que a interface deve solicitar.
CorpodefaultPeoplearray de até 20 designaçõesNãoCada item exige role, targetType e targetId, com papel e natureza compatíveis.
CorpoorgUnitIdUUIDNãoSetor dono do Modelo.
CorpoenabledbooleanNãoPadrão true.

Saída

HTTPCampoTipoDescrição
201corpoModeloO Modelo cadastrado.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDCorpo fora do contrato.
401UNAUTHORIZEDCredencial ausente ou inválida.
403FORBIDDENPerfil abaixo de Acesso de Núcleo; Token de Sistema.
409CONFLICTJá existe Modelo com o mesmo código.
404NOT_FOUNDOrientação reutilizável inexistente.
422RULE_VIOLATIONCategoria fora do tipo; days sem countingRule ou o contrário; designação padrão com papel incompatível com a natureza do alvo.
500INTERNALFalha ao gravar.

PATCH /v1/work-templates/{id}

Altera o Modelo. A alteração não retroage a prazos já calculados.

Autenticação e autorização: Bearer de identidade pessoal com Acesso de Núcleo ou superior.

Entrada — JSON

LocalCampoTipoObrigatórioCondição
CaminhoidUUIDSimIdentificador do Modelo.
Corpocamposiguais aos de POST /v1/work-templatesNãoTodos opcionais; os informados substituem os atuais.

Saída

HTTPCampoTipoDescrição
200corpoModeloO Modelo alterado.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDIdentificador inválido ou corpo fora do contrato.
401UNAUTHORIZEDCredencial ausente ou inválida.
403FORBIDDENPerfil abaixo de Acesso de Núcleo; Token de Sistema.
404NOT_FOUNDModelo inexistente.
409CONFLICTJá existe Modelo com o mesmo código.
422RULE_VIOLATIONForma do Modelo inválida.
500INTERNALFalha ao gravar.

POST /v1/work-templates/{id}/disable

Retira o Modelo do seletor sem apagá-lo.

Autenticação e autorização: Bearer de identidade pessoal com Acesso de Núcleo ou superior.

Entrada

LocalCampoTipoObrigatórioCondição
CaminhoidUUIDSimIdentificador do Modelo.

Saída

HTTPCampoTipoDescrição
201corpoModeloO Modelo com enabled em false.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDIdentificador inválido.
401UNAUTHORIZEDCredencial ausente ou inválida.
403FORBIDDENPerfil abaixo de Acesso de Núcleo; Token de Sistema.
404NOT_FOUNDModelo inexistente.
500INTERNALFalha ao gravar.

Visões salvas

GET /v1/saved-views

Lista as visões do titular.

Autenticação e autorização: Bearer de identidade pessoal. A listagem devolve apenas as visões da própria identidade.

Entrada

LocalCampoTipoObrigatórioCondição
QuerycursorstringNãoCursor da página anterior.
Querylimitinteiro de 1 a 200NãoTamanho da página; padrão 50.

Saída

HTTPCampoTipoDescrição
200items[].idstringIdentificador da visão.
200items[].ownerUserIdstringTitular.
200items[].namestringNome da visão.
200items[].folderstring ou nullAgrupamento livre.
200items[].positionstringChave de ordenação entre as visões do titular.
200items[].kindmanual ou queryNatureza da visão.
200items[].categorycategoria ou nullPré-filtro por categoria.
200items[].queryJsonstring ou nullCritérios salvos, devolvidos sem interpretação.
200items[].labelsarray de stringsRótulos da visão.
200items[].itemIdsarray de stringsTrabalhos da lista manual, na ordem informada.
200items[].createdAt / updatedAtdata-horaDatas de registro.
200nextCursorstring ou nullCursor da próxima página.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDCursor ilegível.
401UNAUTHORIZEDCredencial ausente ou inválida.
403FORBIDDENToken de Sistema, que não representa Pessoa.
500INTERNALFalha na consulta.

GET /v1/saved-views/{id}

Devolve uma visão do titular.

Autenticação e autorização: Bearer de identidade pessoal titular da visão. A visão de outra pessoa responde 404, inclusive para o Acesso Global.

Entrada

LocalCampoTipoObrigatórioCondição
CaminhoidUUIDSimIdentificador da visão.

Saída

HTTPCampoTipoDescrição
200corpovisãoOs mesmos campos da listagem.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDIdentificador inválido.
401UNAUTHORIZEDCredencial ausente ou inválida.
403FORBIDDENToken de Sistema, que não representa Pessoa.
404NOT_FOUNDVisão inexistente ou de outra pessoa.
500INTERNALFalha na consulta.

POST /v1/saved-views

Cria uma visão pessoal.

Autenticação e autorização: Bearer de identidade pessoal. O titular é sempre a identidade autenticada.

Entrada — JSON

LocalCampoTipoObrigatórioCondição
Corponamestring, 1 a 120 caracteresSimNome da visão.
Corpokindmanual ou querySimNatureza da visão.
CorpoqueryJsonstring, até 4000 caracteresCom kind: queryTexto estruturado válido; proibido na visão manual.
CorpoitemIdsarray de UUID v4, até 500 itensNãoLista da visão manual; repetições são descartadas.
Corpofolderstring, 1 a 120 caracteresNãoAgrupamento livre.
Corpopositionstring numéricaNãoOrdenação entre as visões do titular; padrão 0.
Corpocategoryenum de categoriasNãoPré-filtro por categoria.
Corpolabelsarray de strings, até 20 itens de 1 a 64 caracteresNãoRótulos da visão.

Saída

HTTPCampoTipoDescrição
201corpovisãoA visão criada.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDCorpo fora do contrato.
401UNAUTHORIZEDCredencial ausente ou inválida.
403FORBIDDENToken de Sistema, que não representa Pessoa.
422RULE_VIOLATIONVisão de consulta sem critérios; critérios ilegíveis; natureza misturada com o conteúdo da outra forma.
500INTERNALFalha ao gravar.

PATCH /v1/saved-views/{id}

Altera uma visão do titular.

Autenticação e autorização: Bearer de identidade pessoal titular da visão.

Entrada — JSON

LocalCampoTipoObrigatórioCondição
CaminhoidUUIDSimIdentificador da visão.
Corpocamposiguais aos de POST /v1/saved-viewsNãoTodos opcionais; kind só é aceito com o valor atual.

Saída

HTTPCampoTipoDescrição
200corpovisãoA visão alterada.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDIdentificador inválido ou corpo fora do contrato.
401UNAUTHORIZEDCredencial ausente ou inválida.
403FORBIDDENToken de Sistema, que não representa Pessoa.
404NOT_FOUNDVisão inexistente ou de outra pessoa.
422RULE_VIOLATIONMudança da natureza da visão, ou forma incompatível com ela.
500INTERNALFalha ao gravar.

DELETE /v1/saved-views/{id}

Apaga uma visão do titular. Não há lixeira para preferência de uso.

Autenticação e autorização: Bearer de identidade pessoal titular da visão.

Entrada

LocalCampoTipoObrigatórioCondição
CaminhoidUUIDSimIdentificador da visão.

Saída

HTTPCampoTipoDescrição
204——Resposta sem corpo.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDIdentificador inválido.
401UNAUTHORIZEDCredencial ausente ou inválida.
403FORBIDDENToken de Sistema, que não representa Pessoa.
404NOT_FOUNDVisão inexistente ou de outra pessoa.
500INTERNALFalha ao gravar.

Prazo e medição

GET /v1/workspace/deadline-preview

Simula o vencimento de um prazo sem criar registro nenhum.

Autenticação e autorização: Bearer de qualquer identidade autenticada.

Entrada

LocalCampoTipoObrigatórioCondição
Querycategoryenum de categoriasSimPrecisa ser uma categoria que conta prazo.
QuerybaseDatedata civil YYYY-MM-DDSimData-base da contagem; a contagem começa no dia seguinte.
Querydaysinteiro de 0 a 3650SimQuantidade de dias.

Saída

HTTPCampoTipoDescrição
200dueDatedata-horaVencimento apurado, no fim do dia civil.
200preclusionRulecalendar_days, business_days ou calendar_days_business_endRegra aplicada, derivada da categoria.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDConsulta fora do contrato, quantidade de dias negativa ou data inexistente.
401UNAUTHORIZEDCredencial ausente ou inválida.
422RULE_VIOLATIONCategoria que não conta prazo; baseDate que não é uma data civil existente.
500INTERNALFalha na leitura do calendário.

GET /v1/workspace/completion-metrics

Conta os Trabalhos concluídos na janela, dentro do alcance de quem consulta, agrupados por categoria.

Autenticação e autorização: Bearer de qualquer identidade autenticada. A contagem usa o alcance de leitura da identidade.

Entrada

LocalCampoTipoObrigatórioCondição
Queryfromdata-horaSimInício da janela.
Querytodata-horaSimFim da janela; não pode anteceder from nem ultrapassar um ano.

Saída

HTTPCampoTipoDescrição
200fromdata-horaInício da janela aplicada.
200todata-horaFim da janela aplicada.
200totalnumberSoma de todos os grupos.
200buckets[].categoryenum de categoriasCategoria do grupo.
200buckets[].countnumberQuantidade concluída na categoria; apenas grupos maiores que zero.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDConsulta fora do contrato.
401UNAUTHORIZEDCredencial ausente ou inválida.
422RULE_VIOLATIONJanela ausente, incompleta, invertida ou maior que um ano.
500INTERNALFalha na consulta.

Trilha do Trabalho

GET /v1/history/{resourceType}/{resourceId}

Devolve a trilha do Trabalho, do evento mais antigo ao mais novo. A Área de Trabalho usa resourceType igual a work-item; o histórico é um serviço compartilhado entre domínios.

Autenticação e autorização: Bearer de qualquer identidade autenticada. Para work-item, a trilha segue a leitura do Trabalho: quem não lê o Trabalho recebe 404. A trilha de um Trabalho na lixeira não é lida, nem pelo dono.

Entrada

LocalCampoTipoObrigatórioCondição
CaminhoresourceTypestringSimwork-item.
CaminhoresourceIdUUIDSimIdentificador do Trabalho.
QuerycursorstringNãoCursor da página anterior.
Querylimitinteiro de 1 a 200NãoTamanho da página; padrão 50.
QueryresourceTypestring, padrão ^[a-z][a-z0-9-]{0,63}$NãoFiltra as entradas pelo tipo de recurso registrado.

Saída

HTTPCampoTipoDescrição
200items[].idstringIdentificador da entrada.
200items[].resourceTypestringwork-item.
200items[].resourceIdstringTrabalho da entrada.
200items[].resourceLabelstring ou nullTítulo do Trabalho no momento do evento.
200items[].actioncreated, updated, deleted, restored, transitioned, linked, unlinked, imported ou actionNatureza do evento.
200items[].eventTypestringEvento do domínio, conforme a tabela abaixo.
200items[].summarystringResumo legível.
200items[].changesarrayAlterações registradas; vazio quando o evento não guarda diferença.
200items[].metadataobjetoDados complementares do evento.
200items[].actorKinduser, machine ou systemNatureza do autor.
200items[].actorUserIdstring ou nullUsuário autor.
200items[].actorLabelstringNome do autor.
200items[].occurredAtdata-horaInstante do evento.
200items[].createdAtdata-horaGravação da entrada.
200nextCursorstring ou nullCursor da próxima página.

Itens das listas de saída

ListaCampoTipoDescrição
changes[]fieldstringCampo alterado.
changes[]labelstringRótulo do campo.
changes[]beforestring ou nullValor anterior.
changes[]afterstring ou nullValor novo.
changes[]beforeTruncatedbooleanIndica valor anterior truncado.
changes[]afterTruncatedbooleanIndica valor novo truncado.

Eventos do Trabalho

eventTypeactionOrigem
work_item.createdcreatedCriação, inclusive da orientação gerada pela regra do ato.
work_item.updatedupdatedAlteração sem mudança de estado.
work_item.<estado>updatedAlteração com mudança de estado, como work_item.cancelled.
work_item.completedupdatedAvanço que conclui o Trabalho.
work_item.postponedupdatedAdiamento, com a data anterior e a nova em changes.
work_item.deleteddeletedExclusão.
work_item.restoredrestoredRestauração.
work_item.assignedlinkedCriação de ligação.
work_item.unassignedunlinkedRemoção de ligação.

Comentários não entram na trilha. Quando o Trabalho se refere a uma Pessoa, suas entradas também compõem o histórico dessa Pessoa para quem lê o Trabalho.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDIdentificador inválido, cursor ilegível, limit fora do intervalo ou filtro inválido.
401UNAUTHORIZEDCredencial ausente ou inválida.
404NOT_FOUNDTrabalho inexistente, na lixeira ou fora do alcance; tipo de recurso sem trilha legível.
500INTERNALFalha na consulta.

Grupos de Trabalho

O Grupo de Trabalho reúne usuários que respondem juntos por Trabalhos. O objeto devolvido pelas operações tem os campos abaixo.

CampoTipoDescrição
idstringIdentificador do grupo.
namestringNome do grupo.
descriptionstring ou nullDescrição.
ownerUserIdstring ou nullDono do grupo.
enabledbooleanfalse indica grupo desabilitado.
members[].idstringIdentificador do vínculo de membro.
members[].workGroupIdstringGrupo do vínculo.
members[].userIdstringUsuário membro.
createdAt / updatedAtdata-horaDatas de registro.

GET /v1/work-groups

Lista os Grupos de Trabalho, com seus membros.

Autenticação e autorização: Bearer de qualquer identidade autenticada, inclusive Token de Sistema. A leitura não depende de vínculo com o grupo.

Entrada

LocalCampoTipoObrigatórioCondição
QuerycursorstringNãoCursor da página anterior.
Querylimitinteiro de 1 a 200NãoTamanho da página; padrão 50.
Querysearchstring, até 120 caracteresNãoTrecho do nome, sem distinção de caixa; termo vazio é ignorado.
Queryenabledtrue ou falseNãoAusente, traz grupos habilitados e desabilitados.

Saída

HTTPCampoTipoDescrição
200itemsarray de Grupos de TrabalhoPágina ordenada pela criação.
200nextCursorstring ou nullCursor da próxima página.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDConsulta fora do contrato.
401UNAUTHORIZEDCredencial ausente ou inválida.
500INTERNALFalha na consulta.

GET /v1/work-groups/{id}

Devolve um Grupo de Trabalho, habilitado ou não.

Autenticação e autorização: Bearer de qualquer identidade autenticada, inclusive Token de Sistema.

Entrada

LocalCampoTipoObrigatórioCondição
CaminhoidUUIDSimIdentificador do grupo.

Saída

HTTPCampoTipoDescrição
200corpoGrupo de TrabalhoO grupo, com seus membros.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDIdentificador inválido.
401UNAUTHORIZEDCredencial ausente ou inválida.
404NOT_FOUNDGrupo inexistente.
500INTERNALFalha na consulta.

POST /v1/work-groups

Cria um Grupo de Trabalho. Quem cria é o dono e sempre integra o grupo.

Autenticação e autorização: Bearer de qualquer identidade autenticada.

Entrada — JSON

LocalCampoTipoObrigatórioCondição
Corponamestring, 1 a 120 caracteresSimNome do grupo.
Corpodescriptionstring, até 500 caracteresNãoDescrição.
CorpomemberUserIdsarray de UUID, até 200 itensNãoUsuários membros; repetições são descartadas e o dono é incluído.

Saída

HTTPCampoTipoDescrição
201corpoGrupo de TrabalhoO grupo criado, com seus membros.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDCorpo fora do contrato.
401UNAUTHORIZEDCredencial ausente ou inválida.
500INTERNALFalha ao gravar, inclusive por usuário membro inexistente.

Condições: a criação entra no histórico como work-group.created.


PATCH /v1/work-groups/{id}

Altera nome, descrição, membros ou habilitação do grupo.

Autenticação e autorização: Bearer do dono do grupo ou de identidade com Acesso de Núcleo ou superior.

Entrada — JSON

LocalCampoTipoObrigatórioCondição
CaminhoidUUIDSimIdentificador do grupo.
Corponamestring, 1 a 120 caracteresNãoNovo nome.
Corpodescriptionstring, até 500 caracteresNãoNova descrição.
CorpomemberUserIdsarray de UUID, até 200 itensNãoSubstitui os membros; o dono permanece no grupo.
CorpoenabledbooleanNãoHabilitação do grupo.

Saída

HTTPCampoTipoDescrição
200corpoGrupo de TrabalhoO grupo alterado.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDIdentificador inválido ou corpo fora do contrato.
401UNAUTHORIZEDCredencial ausente ou inválida.
403FORBIDDENA identidade não é dona do grupo e tem perfil abaixo de Acesso de Núcleo.
404NOT_FOUNDGrupo inexistente.
500INTERNALFalha ao gravar, inclusive por usuário membro inexistente.

Condições: a alteração entra no histórico como work-group.updated, com as diferenças.


DELETE /v1/work-groups/{id}

Desabilita o Grupo de Trabalho, sem apagar o registro nem os membros. Um grupo desabilitado deixa de dar alcance aos Trabalhos em que está ligado.

Autenticação e autorização: Bearer do dono do grupo ou de identidade com Acesso de Núcleo ou superior.

Entrada

LocalCampoTipoObrigatórioCondição
CaminhoidUUIDSimIdentificador do grupo.

Saída

HTTPCampoTipoDescrição
204——Resposta sem corpo.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDIdentificador inválido.
401UNAUTHORIZEDCredencial ausente ou inválida.
403FORBIDDENA identidade não é dona do grupo e tem perfil abaixo de Acesso de Núcleo.
404NOT_FOUNDGrupo inexistente.
500INTERNALFalha ao gravar.

Condições: a operação é idempotente e registra work-group.disabled a cada chamada.


Diretório de usuários

GET /v1/users/directory

Lista as contas ativas com identificador e nome, para escolher quem designar ou incluir num grupo.

Autenticação e autorização: Bearer de qualquer identidade autenticada, inclusive Token de Sistema.

Entrada

LocalCampoTipoObrigatórioCondição
QuerycursorstringNãoCursor da página anterior.
Querylimitinteiro de 1 a 200NãoTamanho da página; padrão 50.
Querysearchstring, até 120 caracteresNãoTrecho do nome, sem distinção de caixa; termo em branco é ignorado.

Saída

HTTPCampoTipoDescrição
200items[].idstringIdentificador do usuário.
200items[].namestringNome do usuário.
200nextCursorstring ou nullCursor da próxima página.

E-mail, perfil e Pessoa vinculada não são publicados pelo diretório.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDConsulta fora do contrato.
401UNAUTHORIZEDCredencial ausente ou inválida.
500INTERNALFalha na consulta.

Preferências de uso

GET /v1/workspace/labels

Devolve o vocabulário pessoal de etiquetas da identidade.

Autenticação e autorização: Bearer de identidade pessoal. Cada pessoa lê apenas o próprio vocabulário; o Acesso Global não amplia a leitura.

Entrada: sem parâmetros.

Saída

HTTPCampoTipoDescrição
200items[].slugstring, 1 a 64 caracteresIdentificador da etiqueta.
200items[].namestring, 1 a 120 caracteresNome exibido.
200items[].symbolstring, 1 a 16 caracteresSímbolo da etiqueta.
200items[].colorstring, 1 a 32 caracteresCor da etiqueta.
200items[].lastUsedISOstring ISO 8601Último uso.

Quem nunca salvou o vocabulário recebe items vazio.

Erros

HTTPerrorCodeCondição
401UNAUTHORIZEDCredencial ausente ou inválida.
403FORBIDDENToken de Sistema, que não representa Pessoa.
500INTERNALFalha na consulta.

PUT /v1/workspace/labels

Substitui de uma vez o vocabulário pessoal de etiquetas.

Autenticação e autorização: Bearer de identidade pessoal; grava apenas o vocabulário da própria identidade.

Entrada — JSON

LocalCampoTipoObrigatórioCondição
Corpoitemsarray, até 200 itensSimVocabulário completo.
Corpoitems[].slugstring, 1 a 64 caracteresSimIdentificador da etiqueta.
Corpoitems[].namestring, 1 a 120 caracteresSimNome exibido.
Corpoitems[].symbolstring, 1 a 16 caracteresSimSímbolo.
Corpoitems[].colorstring, 1 a 32 caracteresSimCor.
Corpoitems[].lastUsedISOstring ISO 8601SimÚltimo uso.

Saída

HTTPCampoTipoDescrição
200itemsarray de etiquetasO vocabulário gravado, com os campos de GET /v1/workspace/labels.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDCorpo fora do contrato.
401UNAUTHORIZEDCredencial ausente ou inválida.
403FORBIDDENToken de Sistema, que não representa Pessoa.
500INTERNALFalha ao gravar.

GET /v1/workspace/habits

Devolve os hábitos de uso da identidade, dos mais frequentes aos menos frequentes.

Autenticação e autorização: Bearer de identidade pessoal; lê apenas os próprios hábitos.

Entrada

LocalCampoTipoObrigatórioCondição
Querykindstring, 1 a 32 caracteresNãoNatureza do hábito; não pode começar com lia.. Ausente, traz todas as naturezas, exceto as reservadas à Lia.
Querylimitinteiro de 1 a 100NãoQuantidade de hábitos; padrão 10.

Saída

HTTPCampoTipoDescrição
200[].idstringIdentificador do hábito.
200[].ownerUserIdstringTitular.
200[].kindstringNatureza do hábito.
200[].refstringReferência usada.
200[].countnumberQuantidade de usos.
200[].lastUsedAtdata-horaÚltimo uso.
200[].createdAtdata-horaPrimeiro registro.

A lista não é paginada e vem ordenada por quantidade de usos e, em seguida, pelo uso mais recente.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDConsulta fora do contrato ou kind reservado à Lia.
401UNAUTHORIZEDCredencial ausente ou inválida.
403FORBIDDENToken de Sistema, que não representa Pessoa.
500INTERNALFalha na consulta.

POST /v1/workspace/habits

Registra um uso. Cada chamada soma um à contagem do par natureza e referência e atualiza o último uso.

Autenticação e autorização: Bearer de identidade pessoal; registra apenas os próprios hábitos.

Entrada — JSON

LocalCampoTipoObrigatórioCondição
Corpokindstring, 1 a 32 caracteresSimNatureza do hábito; não pode começar com lia..
Corporefstring, 1 a 64 caracteresSimReferência usada.

Saída

HTTPCampoTipoDescrição
201corpohábitoO hábito após o registro, com os campos de GET /v1/workspace/habits, inclusive quando apenas incrementa um hábito existente.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDCorpo fora do contrato ou kind reservado à Lia.
401UNAUTHORIZEDCredencial ausente ou inválida.
403FORBIDDENToken de Sistema, que não representa Pessoa.
500INTERNALFalha ao gravar.

Agendas e listas

As agendas organizam a Área de Trabalho de cada pessoa em listas. Todas as operações exigem identidade pessoal e alcançam apenas as agendas da própria identidade: a agenda de outra pessoa responde 404, inclusive para o Acesso Global. Um Token de Sistema recebe 403 FORBIDDEN.

Agenda — campos de saída

CampoTipoDescrição
idstringIdentificador da agenda.
namestringNome da agenda.
ownerUserIdstringTitular.
positionnumberOrdem entre as agendas do titular.
createdAt / updatedAtdata-horaDatas de registro.

Lista — campos de saída

CampoTipoDescrição
idstringIdentificador da lista.
agendaIdstringAgenda da lista.
namestringNome da lista.
ownerUserIdstringTitular.
positionnumberOrdem dentro da agenda.
listKindmanual ou queryLista de Trabalhos escolhidos ou lista de consulta.
activityTypetask, judicial_deadline, extrajudicial_deadline ou nullPré-filtro por categoria de Atividade.
queryJsonstring ou nullCritérios da lista de consulta.
labelsarray de stringsRótulos da lista.
createdAt / updatedAtdata-horaDatas de registro.

Item da lista — campos de saída

CampoTipoDescrição
idstringIdentificador do item.
listIdstringLista do item.
itemRefstringReferência work-items:<uuid> do Trabalho.
positionnumberOrdem na lista.
createdAt / updatedAtdata-horaDatas de registro.

GET /v1/agendas

Lista as agendas da identidade, pela ordem de criação.

Autenticação e autorização: Bearer de identidade pessoal.

Entrada

LocalCampoTipoObrigatórioCondição
QuerycursorstringNãoCursor da página anterior.
Querylimitinteiro de 1 a 200NãoTamanho da página; padrão 50.

Saída

HTTPCampoTipoDescrição
200itemsarray de agendasPágina de agendas do titular.
200nextCursorstring ou nullCursor da próxima página.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDConsulta fora do contrato.
401UNAUTHORIZEDCredencial ausente ou inválida.
403FORBIDDENToken de Sistema, que não representa Pessoa.
500INTERNALFalha na consulta.

GET /v1/agendas/{id}

Devolve uma agenda da identidade.

Autenticação e autorização: Bearer de identidade pessoal titular da agenda.

Entrada

LocalCampoTipoObrigatórioCondição
CaminhoidUUIDSimIdentificador da agenda.

Saída

HTTPCampoTipoDescrição
200corpoagendaA agenda.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDIdentificador inválido.
401UNAUTHORIZEDCredencial ausente ou inválida.
403FORBIDDENToken de Sistema, que não representa Pessoa.
404NOT_FOUNDAgenda inexistente ou de outra pessoa.
500INTERNALFalha na consulta.

POST /v1/agendas

Cria uma agenda para a identidade.

Autenticação e autorização: Bearer de identidade pessoal; o titular é sempre a identidade autenticada.

Entrada — JSON

LocalCampoTipoObrigatórioCondição
Corponamestring, 1 a 120 caracteresSimNome da agenda.
CorpopositionnumberNãoOrdem entre as agendas; padrão 0.

Saída

HTTPCampoTipoDescrição
201corpoagendaA agenda criada.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDCorpo fora do contrato.
401UNAUTHORIZEDCredencial ausente ou inválida.
403FORBIDDENToken de Sistema, que não representa Pessoa.
500INTERNALFalha ao gravar.

PATCH /v1/agendas/{id}

Renomeia ou reposiciona a agenda.

Autenticação e autorização: Bearer de identidade pessoal titular da agenda.

Entrada — JSON

LocalCampoTipoObrigatórioCondição
CaminhoidUUIDSimIdentificador da agenda.
Corponamestring, 1 a 120 caracteresNãoNovo nome.
CorpopositionnumberNãoNova ordem.

Saída

HTTPCampoTipoDescrição
200corpoagendaA agenda alterada.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDIdentificador inválido ou corpo fora do contrato.
401UNAUTHORIZEDCredencial ausente ou inválida.
403FORBIDDENToken de Sistema, que não representa Pessoa.
404NOT_FOUNDAgenda inexistente ou de outra pessoa.
500INTERNALFalha ao gravar.

DELETE /v1/agendas/{id}

Apaga a agenda com suas listas e itens. Os Trabalhos citados não são afetados.

Autenticação e autorização: Bearer de identidade pessoal titular da agenda.

Entrada

LocalCampoTipoObrigatórioCondição
CaminhoidUUIDSimIdentificador da agenda.

Saída

HTTPCampoTipoDescrição
204——Resposta sem corpo.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDIdentificador inválido.
401UNAUTHORIZEDCredencial ausente ou inválida.
403FORBIDDENToken de Sistema, que não representa Pessoa.
404NOT_FOUNDAgenda inexistente ou de outra pessoa.
500INTERNALFalha ao gravar.

GET /v1/agendas/{id}/lists

Lista as listas da agenda, pela ordem de criação.

Autenticação e autorização: Bearer de identidade pessoal titular da agenda.

Entrada

LocalCampoTipoObrigatórioCondição
CaminhoidUUIDSimIdentificador da agenda.
QuerycursorstringNãoCursor da página anterior.
Querylimitinteiro de 1 a 200NãoTamanho da página; padrão 50.

Saída

HTTPCampoTipoDescrição
200itemsarray de listasPágina de listas da agenda.
200nextCursorstring ou nullCursor da próxima página.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDIdentificador inválido ou consulta fora do contrato.
401UNAUTHORIZEDCredencial ausente ou inválida.
403FORBIDDENToken de Sistema, que não representa Pessoa.
404NOT_FOUNDAgenda inexistente ou de outra pessoa.
500INTERNALFalha na consulta.

POST /v1/agendas/{id}/lists

Cria uma lista na agenda.

Autenticação e autorização: Bearer de identidade pessoal titular da agenda.

Entrada — JSON

LocalCampoTipoObrigatórioCondição
CaminhoidUUIDSimIdentificador da agenda.
Corponamestring, 1 a 120 caracteresSimNome da lista.
CorpolistKindmanual ou querySimNatureza da lista.
CorpopositionnumberNãoOrdem dentro da agenda.
CorpoactivityTypetask, judicial_deadline ou extrajudicial_deadlineNãoPré-filtro por categoria de Atividade.
CorpoqueryJsonstring JSON, até 4000 caracteresNãoCritérios da lista de consulta.
Corpolabelsarray de strings, até 32 itens de 1 a 64 caracteresNãoRótulos da lista.

Saída

HTTPCampoTipoDescrição
201corpolistaA lista criada.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDIdentificador inválido, corpo fora do contrato ou queryJson que não é JSON válido.
401UNAUTHORIZEDCredencial ausente ou inválida.
403FORBIDDENToken de Sistema, que não representa Pessoa.
404NOT_FOUNDAgenda inexistente ou de outra pessoa.
500INTERNALFalha ao gravar.

PATCH /v1/agendas/{id}/lists/{listId}

Renomeia, reposiciona ou move a lista para outra agenda do mesmo titular.

Autenticação e autorização: Bearer de identidade pessoal titular da agenda e da agenda de destino.

Entrada — JSON

LocalCampoTipoObrigatórioCondição
CaminhoidUUIDSimIdentificador da agenda.
CaminholistIdUUIDSimIdentificador da lista.
Corponamestring, 1 a 120 caracteresNãoNovo nome.
CorpopositionnumberNãoNova ordem.
CorpoagendaIdUUIDNãoAgenda de destino, do mesmo titular.
CorpolistKind, activityType, queryJson, labelsiguais aos da criaçãoNãoAceitos pelo contrato; pendentes de persistência quando enviados sem name, position ou agendaId.

Saída

HTTPCampoTipoDescrição
200corpolistaA lista alterada.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDIdentificador inválido ou corpo fora do contrato.
401UNAUTHORIZEDCredencial ausente ou inválida.
403FORBIDDENAgenda de destino de outra pessoa; Token de Sistema.
404NOT_FOUNDAgenda ou lista inexistente, ou de outra pessoa.
500INTERNALFalha ao gravar.

DELETE /v1/agendas/{id}/lists/{listId}

Apaga a lista e seus itens. Os Trabalhos citados não são afetados.

Autenticação e autorização: Bearer de identidade pessoal titular da agenda.

Entrada

LocalCampoTipoObrigatórioCondição
CaminhoidUUIDSimIdentificador da agenda.
CaminholistIdUUIDSimIdentificador da lista.

Saída

HTTPCampoTipoDescrição
204——Resposta sem corpo.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDIdentificador inválido.
401UNAUTHORIZEDCredencial ausente ou inválida.
403FORBIDDENToken de Sistema, que não representa Pessoa.
404NOT_FOUNDAgenda ou lista inexistente, ou de outra pessoa.
500INTERNALFalha ao gravar.

GET /v1/agendas/{id}/lists/{listId}/items

Lista os itens de uma lista. A ordem de exibição é dada por position; a página segue a ordem de criação.

Autenticação e autorização: Bearer de identidade pessoal titular da agenda.

Entrada

LocalCampoTipoObrigatórioCondição
CaminhoidUUIDSimIdentificador da agenda.
CaminholistIdUUIDSimIdentificador da lista.
QuerycursorstringNãoCursor da página anterior.
Querylimitinteiro de 1 a 200NãoTamanho da página; padrão 50.

Saída

HTTPCampoTipoDescrição
200itemsarray de itensPágina de itens da lista.
200nextCursorstring ou nullCursor da próxima página.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDIdentificador inválido ou consulta fora do contrato.
401UNAUTHORIZEDCredencial ausente ou inválida.
403FORBIDDENToken de Sistema, que não representa Pessoa.
404NOT_FOUNDAgenda ou lista inexistente, ou de outra pessoa.
500INTERNALFalha na consulta.

PUT /v1/agendas/{id}/lists/{listId}/order

Inclui Trabalhos na lista e define suas posições. É a operação que acrescenta itens a uma lista manual.

Autenticação e autorização: Bearer de identidade pessoal titular da agenda.

Entrada — JSON

LocalCampoTipoObrigatórioCondição
CaminhoidUUIDSimIdentificador da agenda.
CaminholistIdUUIDSimIdentificador da lista.
Corpoitemsarray, 1 a 500 itensSimItens com a nova posição; uma referência não se repete no lote.
Corpoitems[].itemRefstring, até 64 caracteresSimReferência no formato work-items:<uuid>, com o UUID em minúsculas.
Corpoitems[].positionnumberSimPosição do item na lista.

Saída

HTTPCampoTipoDescrição
200corpoarray de itensTodos os itens da lista, na ordem resultante.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDIdentificador inválido, corpo fora do contrato, referência fora do formato ou repetida.
401UNAUTHORIZEDCredencial ausente ou inválida.
403FORBIDDENToken de Sistema, que não representa Pessoa.
404NOT_FOUNDAgenda ou lista inexistente, ou de outra pessoa.
500INTERNALFalha ao gravar.

Condições: quando duas posições ficam próximas demais para receber um item entre elas, as posições da lista são renumeradas em sequência.


DELETE /v1/agendas/{id}/lists/{listId}/items/{itemRef}

Retira um Trabalho da lista, sem afetar o Trabalho.

Autenticação e autorização: Bearer de identidade pessoal titular da agenda.

Entrada

LocalCampoTipoObrigatórioCondição
CaminhoidUUIDSimIdentificador da agenda.
CaminholistIdUUIDSimIdentificador da lista.
CaminhoitemRefstringSimReferência work-items:<uuid>.

Saída

HTTPCampoTipoDescrição
204——Resposta sem corpo.

Erros

HTTPerrorCodeCondição
400VALIDATION_FAILEDIdentificador inválido ou referência fora do formato.
401UNAUTHORIZEDCredencial ausente ou inválida.
403FORBIDDENToken de Sistema, que não representa Pessoa.
404NOT_FOUNDAgenda, lista ou item inexistente, ou de outra pessoa.
500INTERNALFalha ao gravar.

Camadas do domínio