5.4. 自定义 UI 组件和过滤器


Ansible Backstage 插件 提供自定义 UI 组件,通过直接与 Ansible Automation Platform 资源选择和身份验证集成来提高软件模板体验。

5.4.1. AAPTokenField

AAPTokenField 是一个在 backstage scaffolder 模板中使用的安全身份验证字段。它会自动获取并存储 Ansible Automation Platform OAuth2 令牌,该令牌适用于所有 rhaap:* 操作,从而启用无缝身份验证。

AAPTokenField Properties

下表详细介绍了在模板的属性部分中使用的字段的属性。

Expand
属性类型描述

title

string

UI 中显示的标签(如 "AAP Token")。默认为 "AAP Token"。

description

string

输入字段下显示简短帮助文本。

ui:field

string

必须设为 AAPTokenField。此设置指示 Backstage 呈现自定义响应组件而不是默认的输入字段。

ui:backstage.review.show

布尔值

如果为 true,则在构建执行前,此字段会出现在 Review 步骤中。默认值为 true

身份验证流和令牌管理

所有 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
Copy to Clipboard Toggle word wrap

示例

以下示例演示了如何在 backstage 模板内声明和引用 AAPTokenField。请注意,ui:widget: hiddenui:backstage: review: show: false 用于确保令牌没有在 UI 中公开。

apiVersion: scaffolder.backstage.io/v1beta3
kind: Template
metadata:
  name: my-AAP-template
  title: Example AAP Template
spec:
  parameters:
    - title: Authentication
      properties:
        token:
          title: AAP Authentication Token
          type: string
          description: Oauth2 token
          ui:field: AAPTokenField
          ui:widget: hidden
          ui:backstage:
            review:
              show: false
  steps:
    - id: launch-job
      name: Launch AAP Job Template
      action: rhaap:launch-job-template
      input:
        token: ${{ parameters.token }}
        ...
Copy to Clipboard Toggle word wrap

错误和验证处理

所有 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

下表详细介绍了在模板的属性部分中配置资源选择器的基本属性。

Expand
属性类型描述

title

string

UI 中显示的标签(如 "Inventory")。

description

string

字段下方显示的简短帮助文本。

ui:field

string

必须设为 AAPResourcePicker

resource

string

用于获取和显示的特定 Ansible Automation Platform (AAP)资源类型( 如清单凭证 或机构)。

idKey

string

用于检索资源 ID 的属性名称(默认为 "id")。

nameKey

string

用于在列表中显示资源名称的属性名称(默认为 "name")。

type

string

设置为 "array" for a multi-select 字段;在单选择字段中省略此属性。

示例

以下示例演示了如何使用 AAPResourcePicker 创建单选择字段。

apiVersion: scaffolder.backstage.io/v1beta3
kind: Template
metadata:
  name: my-AAP-template
  title: Example AAP Template
spec:
  parameters:
    - title: Authentication
      properties:
        jobInventory:
          title: Inventory
          description: Select inventory
          resource: inventories
          ui:field: AAPResourcePicker
          default: DemoInventory
Copy to Clipboard Toggle word wrap

5.4.3. 自定义过滤器

该插件提供自定义过滤器,从资源对象中提取特定属性,这对于在 backstage 步骤间传递数据至关重要。

Expand
Filter用途用法示例

resourceFilter

从资源对象中提取单个特定属性。

`$!{{ parameters.organization

resourceFilter('name') }}`

multiResourceFilter

从多个资源对象中提取特定属性(当输入是一个数组时)。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部