5.4. 自定义 UI 组件和过滤器
Ansible Backstage 插件 提供自定义 UI 组件,通过直接与 Ansible Automation Platform 资源选择和身份验证集成来提高软件模板体验。
5.4.1. AAPTokenField 复制链接链接已复制到粘贴板!
AAPTokenField 是一个在 backstage scaffolder 模板中使用的安全身份验证字段。它会自动获取并存储 Ansible Automation Platform OAuth2 令牌,该令牌适用于所有 rhaap:* 操作,从而启用无缝身份验证。
AAPTokenField Properties
下表详细介绍了在模板的属性部分中使用的字段的属性。
| 属性 | 类型 | 描述 |
|---|---|---|
|
| string | UI 中显示的标签(如 "AAP Token")。默认为 "AAP Token"。 |
|
| string | 输入字段下显示简短帮助文本。 |
|
| string |
必须设为 |
|
| 布尔值 |
如果为 |
身份验证流和令牌管理
所有 rhaap:* 操作都需要 OAuth2 令牌来使用 Ansible Automation Platform 进行身份验证。该字段通过以下流程管理令牌:
- Token Source:令牌会自动从 Ansible Automation Platform OAuth2 身份验证提供程序获取。
-
Storage:令牌安全存储在 Backstage secret 中,或通过
@ansible/backstage-plugin-auth-backend-module-rhaap-provider获取。 -
usage :令牌使用
令牌输入参数传递给每个操作。
当使用 RHAAP 身份验证提供程序时,令牌会自动注入,并可在工作流步骤中引用,如下所示:
- id: create-project
action: rhaap:create-project
input:
token: ${{ parameters.AAP_TOKEN }}
# ... other inputs
- id: create-project
action: rhaap:create-project
input:
token: ${{ parameters.AAP_TOKEN }}
# ... other inputs
示例
以下示例演示了如何在 backstage 模板内声明和引用 AAPTokenField。请注意,ui:widget: hidden 和 ui:backstage: review: show: false 用于确保令牌没有在 UI 中公开。
错误和验证处理
所有 rhaap:* 操作都包含内置验证和用户友好的错误报告:
- Validation: 如果令牌缺失或无效,则操作会抛出错误: "'Authorization token not provided'"。
- Error Messages: Actions catch API client error, extract and surfacing meaningful message without expose stack trace.
- 工作流 Safety:如果因为身份验证而失败某个步骤,则会自动跳过后续步骤,确保安全且可预测的工作流。
5.4.2. AAPResourcePicker 复制链接链接已复制到粘贴板!
AAPResourcePicker 是一个 backstage scaffolder 模板的动态字段。它直接从 Ansible Automation Platform API 获取和显示 Ansible Automation Platform 资源(如清单、机构或凭证)的列表,允许用户为其自动化工作流选择资源。
AAPResourcePicker Properties
下表详细介绍了在模板的属性部分中配置资源选择器的基本属性。
| 属性 | 类型 | 描述 |
|---|---|---|
|
| string | UI 中显示的标签(如 "Inventory")。 |
|
| string | 字段下方显示的简短帮助文本。 |
|
| string |
必须设为 |
|
| string |
用于获取和显示的特定 Ansible Automation Platform (AAP)资源类型( |
|
| string | 用于检索资源 ID 的属性名称(默认为 "id")。 |
|
| string | 用于在列表中显示资源名称的属性名称(默认为 "name")。 |
|
| string | 设置为 "array" for a multi-select 字段;在单选择字段中省略此属性。 |
示例
以下示例演示了如何使用 AAPResourcePicker 创建单选择字段。
5.4.3. 自定义过滤器 复制链接链接已复制到粘贴板!
该插件提供自定义过滤器,从资源对象中提取特定属性,这对于在 backstage 步骤间传递数据至关重要。
| Filter | 用途 | 用法示例 |
|---|---|---|
|
| 从资源对象中提取单个特定属性。 | `$!{{ parameters.organization |
| resourceFilter('name') }}` |
| 从多个资源对象中提取特定属性(当输入是一个数组时)。 |