Modelagem de CI com YAML no Sistema de Tickets OTOBO
Este capítulo demonstra como definir e estender seus Itens de Configuração (CIs) no sistema de tickets OTOBO via YAML – desde a estrutura de páginas e layout até campos dinâmicos e tipos de campo.
1. Estrutura de Definições de CI
Cada definição de CI no OTOBO consiste em vários componentes principais:
yaml
- Class:
Name: <CI-Classe>
Categories:
- All
- <Outras Categorias>
NumberModule: AutoIncrement
PermissionGroup: itsm-configitem
VersionStringModule: Incremental
Definition: |
Pages:
- Name: Summary
Layout:
Columns: 3
ColumnWidth: 1fr 1fr 1fr
Interfaces:
- Agent
- Customer
Content:
- Section: General Fields::General Information
RowStart: 1
ColumnStart: 1
- Section: ITSM Model::Model
RowStart: 1
ColumnStart: 2
- Section: CMDB Description::Description
RowStart: 2
ColumnStart: 1
ColumnSpan: 2
DynamicFields: { … }1.1 Páginas
- Name: Nome da aba na visualização do Agente.
- Interfaces: Controle de quem vê a aba (Agente, Cliente, …).
- Content: Lista de seções, com posição (RowStart, ColumnStart, opcionalmente Span).
1.2 Layout
- Columns: Número de colunas na aba.
- ColumnWidth: Especificações de largura proporcionais (por exemplo,
1fr 2fr 1fr).
1.3 Funções (Roles)
As funções definem seções e listas de campos reutilizáveis:
yaml
- Definition: |
Sections:
General Information:
Content:
- Header: Informações Gerais
- DF: System-Name
- DF: System-Version
Relations:
Type: ConfigItemLinks
Header: Relações
RoleName: CMDB General Fields- RoleName: Nome único da função.
- Sections: Contém uma ou mais seções com referências de campo (
DF:).
2. Campos Dinâmicos (DynamicFields) e Tipos de Campo
Com DynamicFields, você estende suas classes de CI com atributos individuais. Cada campo recebe um nome, tipo e configuração:
yaml
DynamicFields:
DynamicFieldName:
FieldType: Text
Label: Meu Rótulo
Name: System-Name
ObjectType: ITSMConfigItem
Config:
DefaultValue: 'demo'
MultiValue: '0'
PossibleNone: '1'
Tooltip: ''
System-LifecycleStatus:
FieldType: Dropdown
Label: Lifecycle status of system
Name: System-LifecycleStatus
ObjectType: ITSMConfigItem
Config:
DefaultValue: ''
MultiValue: '0'
PossibleNone: '1'
PossibleValues:
demo: demo
productive: productive
Tooltip: ''2.1 Tipos de Campo Importantes
| FieldType | Descrição |
|---|---|
| Text | Campo simples de uma linha |
| TextArea | Campo de texto livre de várias linhas |
| Date | Campo de data (com restrições via YearsInPast/...) |
| Dropdown | Campo de seleção (Single/Multi via MultiValue) |
| Agent | Pesquisa de Usuário/Agente LDAP |
| ConfigItem | Vinculação a outro CI (tipo de relação definível) |
| ScriptTemplateToolkit | Campo calculado via Template (por exemplo, somas) |
2.2 Opções de Configuração
- DefaultValue: Valor padrão ao criar um novo item.
- MultiValue:
'0'(seleção única) ou'1'(múltiplas seleções). - PossibleNone:
'1', para permitir seleção vazia. - PossibleValues: Pares Chave-Valor para campos de dropdown.
- EditFieldMode: por exemplo,
Dropdown,AutoComplete. - ReferenceFilterList, ReferencedObjectType: Para campos de pesquisa.
3. Exemplo
yaml
- Class:
Name: CIName
Categories:
- All
- IT
NumberModule: AutoIncrement
PermissionGroup: itsm-configitem
VersionStringModule: Incremental
Definition: |
Pages:
- Name: Intro
Layout:
Columns: 2
ColumnWidth: 1fr 1fr
Interfaces:
- Agent
Content:
- Section: CMDB General Fields::Information
RowStart: 1
ColumnStart: 1
- Section: CMDB General Fields::Risks
RowStart: 2
ColumnStart: 1
- Name: Details
Layout:
Columns: 1
ColumnWidth: 1fr
Interfaces:
- Agent
Content:
- Section: CMDB General Fields::Software
RowStart: 1
ColumnStart: 1
DynamicFields:
System-Name: { … }
System-Version: { … }
System-LifecycleStatus: { … }4. Dicas e Melhores Práticas
- Modularidade: Use funções para seções recorrentes.
- Clareza: Agrupe campos relacionados em páginas próprias.
- Documentação: Comente seus arquivos YAML e mantenha gatilhos de versão.
- Testes: Valide novos campos primeiro em uma instância de teste.
Com esta estrutura, você pode adaptar o CMDB do OTOBO de forma flexível aos requisitos da sua organização e mantê-lo sempre transparente.