Workflows

Workflows é uma funcionalidade que busca dar controle total sobre o ciclo de vida das APIs. Os workflows são compostos de estágios que marcam etapas de desenvolvimento das APIs, com requisitos customizáveis para definir as condições de promoção entre os estágios.

Lembra-se dos estilos diferentes de governança, adaptados às necessidades de cada time? Workflows permite que você coloque isso em prática! Cada time pode ter estágios diferentes, com requisitos específicos, representando as demandas diversas de desenho de API que operam em seu cenário. E, ao incluir os diferentes workflows em um mesmo local, fica fácil visualizar como cada time trabalha e como a estratégia da organização se desenrola no dia a dia das APIs.

Funcionamento e tipos de workflows

A tela Workflows é acessível pelo menu principal do Sensedia Adaptive Governance. Nessa tela, é possível visualizar os workflows já criados (incluindo o workflow da organização), além de criar novos workflows por times.

workflows
Tela "Workflows"

Um workflow é um organizador do ciclo de vida de uma API. Ele é formado por stages (estágios), cada um definido por uma série de requisitos. Para que uma API seja promovida para o estágio seguinte, ela deve estar dentro dos padrões definidos para o estágio. Tudo é totalmente personalizável: a quantidade de estágios, seus nomes e requerimentos. Com isso, times diferentes de uma mesma organização podem ter workflows adaptados à sua realidade de desenvolvimento.

Ao clicar sobre o nome de um workflow na lista da tela Workflows, é possível visualizar, editar e/ou excluir os estágios que o compõem, bem como adicionar novos estágios a esse workflow. Em cada estágio, também é possível visualizar as APIs e API Revisions que se encontram no estágio:

workflows stages
Estágios de um workflow

O estágio de uma API gerenciada na Sensedia API Platform é definido nas telas de edição ou criação de uma API, no campo Workflow Stage.

Um estágio só poderá ser selecionado se a API cumprir os requisitos estabelecidos para ele.

workflows api stage

Há dois tipos de workflows: Organization Workflow e Team Workflow. Para aumentar o controle a nível de empresa, só é possível existir um único Organization Workflow. É possível ter múltiplos Team Workflows, mas apenas um por time.

Embora só seja possível criar um workflow por time, pode acontecer de o mesmo time executar processos diferentes, por conta do tipo da API ou do tipo da demanda (por exemplo: demanda legal, demanda de inovação, demanda padrão, entre outras, e/ou APIs corporativas, APIs legadas, APIs internas, entre outras). Nesses casos, para cada processo executado, o mesmo time pode ser cadastrado várias vezes — com nomes diferentes e representativos — para ser associado aos seus respectivos workflows.

Exemplo:

Time A - Legal          ->    Workflow Time A - Legal
Time A - Inovação       ->    Workflow Time A - Inovação
Time A - Corporativo    ->    Workflow Time A - Corporativo
Time A - Legado         ->    Workflow Time A - Legado

Os workflows que você criar se relacionam ao contexto de APIs, que estabelece as regras de visibilidade para cada API: O Organization Workflow será aplicado a todas as APIs que são dos contextos organization, teams ou only me que não possuam workflow próprio. Se o contexto de uma API for do tipo teams e o time tiver um workflow cadastrado, os estágios disponíveis para seleção no campo Workflow Stage das telas de edição ou criação de API serão os estágios criados dentro do workflow do time.

Gerenciando workflows

Criando um novo workflow

Só é possível ter um Organization Workflow, que já vem criado. Sendo assim, o processo de criação de workflows só se aplica a Team Workflows.

Para criar um novo Team Workflow, clique no botão +, localizado no canto inferior direito da tela Workflows. Uma janela modal se abrirá para a inserção dos dados.

Os seguintes campos devem ser preenchidos:

  • Name: Informe o nome do workflow.

  • Description: Forneça uma descrição para ele.

  • Team: Selecione um time.

Uma vez preenchidos os campos, clique no botão CREATE WORKFLOW para criar o workflow.

O card de seu novo workflow constará na tela Workflows. Nele, é possível visualizar o nome do workflow, sua descrição, a quantidade de estágios existentes e o time.

Clonando um Team Workflow

É possível clonar um Team Workflow já existente clicando no ícone icon clone, localizado no canto inferior esquerdo do card do workflow a ser clonado.

Esse procedimento criará um novo Team Workflow com os estágios já configurados conforme o workflow clonado.

Ao clicar no ícone icon clone, uma janela modal se abrirá para que sejam informados o nome, a descrição e o time a qual o novo workflow estará associado. Terminada a edição das informações, clique em CLONE WORKFLOW para criar o novo workflow.

  • O Organization Workflow não pode ser clonado.

  • O nome do workflow a ser criado deve ser único.

  • O time a ser associado ao novo workflow não pode já estar associado a outro.

Editando um workflow

É possível alterar as informações básicas de um Team Workflow, isto é, nome, time e descrição do workflow. Não é possível editar um Organization Workflow, apenas configurar seus estágios. Veja como fazê-lo abaixo.

Para editar um Team Workflow, clique no ícone icon edit localizado no canto inferior direito do card correspondente. Uma janela modal contendo um formulário com as informações do workflow será aberta.

Feitas todas as modificações desejadas, clique no botão SAVE WORKFLOW para salvá-las (ou em CANCEL para descartá-las).

Configurando os estágios de um workflow

Ao clicar sobre o nome de um workflow em um card, você será direcionado à tela de visualização dos estágios desse workflow, onde poderá adicionar ou remover estágios e alterar as informações e os requisitos de cada estágio.

Todo novo workflow já possui um estágio inicial, chamado por padrão de "Stage One". Não é possível excluir esse estágio, apenas editá-lo (veja abaixo como fazer isso).

Criando estágios

Para adicionar um novo estágio ao workflow, clique no botão +, localizado no canto inferior direito da tela. Uma janela modal se abrirá para que sejam informados o nome (no campo Name) e os requisitos do estágio (nos campos da seção REQUISITES), que dizem respeito às condições mínimas para que uma API seja incluída nesse estágio.

Os campos da seção REQUISITES são:

  • Environments: selecione os ambientes em que a API deve ter sido implantada para poder estar no estágio.

  • Deployable Environments: selecione os ambientes que devem estar associados às APIs desse estágio (e nos quais essas APIs podem ser implantadas).

  • Attributes (must have): selecione os atributos que as APIs devem possuir para estarem no estágio.

  • Attributes (must not have): selecione os atributos que as APIs não devem possuir para estarem no estágio.

  • Interceptors (must have): especifique os interceptores que devem estar no fluxo das APIs do estágio. Para adicionar os interceptores, clique no ícone icon settings desse campo. Na janela que se abrir, selecione primeiramente o tipo do interceptor (Type) e em seguida o interceptor e as suas configurações necessárias. Clique em ADD INTERCEPTOR. É possível editar as configurações de um interceptor já adicionado. Para isso, clique na etiqueta do interceptor a ser editado.

  • Interceptors (must not have): especifique os interceptores que não devem estar no fluxo das APIs do estágio. Para adicionar os interceptores nesse campo, siga os mesmos passos descritos para o campo Interceptors (must have) ou desabilite o botão Must Have de um interceptor já adicionado.

  • API Maturity: determine a porcentagem mínima de Interface Completeness (nível de maturidade do Swagger) para as APIs no estágio.

Uma vez terminada a configuração, clique em CREATE STAGE para criar o estágio.

Edição e exclusão de estágios

Para editar as configurações de um estágio já existente, clique no ícone icon settings localizado no canto superior direito do card correspondente ao estágio a ser editado.

Uma janela contendo um formulário com as informações do estágio se abrirá. Aqui é possível alterar o nome do estágio e seus requisitos, conforme os campos descritos acima. Clique no botão SAVE STAGE para salvar as modificações ou em CANCEL para descartá-las.

Sempre que for realizada alguma modificação nas regras de um estágio de um workflow, os times de APIs devem ser notificados para ajustarem as APIs com as novas regras. Algumas dicas para fazer isso:

  • Entre nas APIs daquele estágio e salve-as novamente, fazendo com que a nova regra seja aplicada a elas.

  • Se uma API estiver em produção, não faça os ajustes, espere existir uma nova demanda de evolução e crie uma nova versão da API que conterá as novas regras.

Para excluir um estágio, clique no ícone icon delete localizado no canto superior direito do card correspondente ao estágio a ser excluído. Na janela que se abrir, clique no botão DELETE para confirmar a exclusão permanente do estágio ou em CANCEL para cancelar a operação.

  • Não é possível excluir um estágio se ele contiver alguma API.

  • O primeiro estágio de um workflow não pode ser excluído.

Excluindo workflows

O Organization Workflow não pode ser excluído.

Para excluir um Team Workflow, clique no ícone icon delete do card correspondente ao workflow a ser excluído, na tela Workflows. Isso abrirá uma janela para a confirmação da ação, feita pelo botão DELETE.

Não será possível excluir um workflow se ele contiver alguma API em algum de seus estágios.

Dicas de uso

Estas não são regras absolutas, mas sim sugestões de uso da funcionalidade:

  • É uma boa prática deixar o estágio de entrada de um workflow (ou seja, o primeiro estágio) sem requerimentos. Assim, todos poderão criar APIs sem restrições. A partir daí, os estágios seguintes podem ter requerimentos progressivamente mais restritivos, que sigam a sua estratégia de APIs e o processo de desenvolvimento do time.

  • Uma regra que ajuda muito a manter o fluxo de "desenvolvimento → homologação → produção" é usar os ambientes de implantação como premissa para criar os estágios dos workflows.

  • Quando fizer alguma modificação nas regras de um estágio que contenha APIs, lembre-se de salvar essas APIs novamente (mesmo que você não faça nenhuma alteração nelas). Isso é necessário para que a nova regra seja aplicada às APIs que já faziam parte do estágio.

Thanks for your feedback!
EDIT
How useful was this article to you?