Skip to content

Integração Jira

O MIDDAG Account integra-se ao Jira Service Management para rastreamento de solicitações de serviço, monitoramento de SLA e gerenciamento de worklogs. O Jira é o motor de SLA -- o plugin exibe o status do SLA e agrega dados para relatórios, mas não executa seu próprio relógio de SLA.

Princípio central

O Jira aplica os SLAs (pausar/retomar, calendários, feriados). O plugin espelha o status. Executar relógios de SLA paralelos criaria divergência e exigiria a manutenção de dois motores de temporização. O Jira é a fonte única da verdade para o estado de SLA.

Configuração

Credenciais da API

VariávelDescriçãoObrigatório
JIRA_DOMAINDomínio Atlassian (ex.: middag)Sim
JIRA_EMAILE-mail do usuário de integraçãoSim
JIRA_API_TOKENToken de API do usuário de integraçãoSim

O plugin conecta-se ao Jira Cloud em https://{JIRA_DOMAIN}.atlassian.net/rest/api/3. A autenticação utiliza HTTP Basic com e-mail e token de API.

Degradação graciosa

Se as variáveis de ambiente não estiverem definidas, a integração com o Jira é silenciosamente desabilitada. Todos os métodos de serviço do Jira retornam graciosamente, e o restante do plugin funciona normalmente. Este é o mesmo padrão usado para todas as integrações opcionais.

Fluxo de dados: Jira para Plugin

O Jira envia webhooks para o plugin em eventos de ciclo de vida de issues:

Reconciliação periódica

Um cron job captura webhooks perdidos:

FrequênciaAção
A cada 15 minVerificar SRs com status divergente
DiárioReconciliar campos de SLA para todos os SRs abertos
SemanalGerar relatório de conformidade de SLA

Fluxo de dados: Plugin para Jira

O plugin também cria e gerencia issues no Jira.

Criação automática de issues a partir de pedidos

Quando um pedido WooCommerce é finalizado, o plugin verifica cada item do pedido para configuração Jira. Se um produto possui _middag_jira_enabled = yes, o plugin cria uma issue no Jira automaticamente.

Chaves de meta do produto para configuração do Jira:

ChaveDescrição
_middag_jira_enabledHabilitar criação de issue no Jira (yes/no)
_middag_jira_project_keyChave do projeto Jira (ex.: MIDDAG)
_middag_jira_issue_type_idID do tipo de issue
_middag_jira_summary_templateTemplate opcional para o resumo

Endpoints da REST API

O plugin expõe operações do Jira através de sua própria REST API:

MétodoEndpointDescrição
GET/jira/projectsListar projetos Jira
GET/jira/projects/{key}/issue-typesTipos de issue de um projeto
POST/jira/issuesCriar uma issue
GET/jira/issues/{key}Obter uma issue por chave
PUT/jira/issues/{key}Atualizar uma issue
GET/jira/issues/search?jql=...Busca JQL
POST/jira/issues/{key}/transitionsTransicionar uma issue
POST/jira/issues/{key}/commentsAdicionar um comentário

Todos os endpoints possuem o prefixo middag-account/v1.

Fonte da verdade por tipo de dado

DadoFonte da verdadeDireção
Status da issueJiraJira para Plugin
PrioridadeJiraJira para Plugin
Tempo decorrido de SLAJiraJira para Plugin
Eventos de violação de SLAJiraJira para Plugin
UST estimadaPluginPlugin para Jira
UST realPluginCalculada
Valor faturadoPluginNão sincronizado
Tipo de serviçoPluginPlugin para Jira
Subtarefas e boardsJiraNão sincronizado

Rastreamento de worklogs

Os worklogs do Jira alimentam os cálculos de UST (unidade de tempo de serviço) do plugin. Quando uma solicitação de serviço é resolvida, o plugin lê os worklogs do Jira e calcula o tempo real gasto. Esses dados são usados para faturamento e relatórios de conformidade de SLA.

Limitação de taxa

O cliente Jira respeita respostas HTTP 429 com headers Retry-After. Máximo de 3 tentativas de retentativa com o atraso especificado pelo Jira. O timeout de requisição é de 30 segundos.