跳转到主要内容

Documentation Index

Fetch the complete documentation index at: https://docs.flashcat.cloud/llms.txt

Use this file to discover all available pages before exploring further.

概述


Flashduty CLI 支持将 Atlassian Statuspage 的组件、分组、历史事件和邮件订阅者迁移到 Flashduty 状态页。迁移分为两个独立步骤:
  1. 迁移结构与历史 — 组件、分组、历史事件(含维护记录)和通知模板
  2. 迁移邮件订阅者 — 订阅者列表及其订阅偏好
两步分离设计的原因:迁移结构时不会向订阅者发送任何通知,您可以先检查导入的内容是否正确,再决定导入订阅者。导入的订阅者会直接变为活跃状态,无需邮件验证。

准备工作


安装 Flashduty CLI

curl -sSL https://raw.githubusercontent.com/flashcatcloud/flashduty-cli/main/install.sh | sh
更多安装方式请参考 CLI 文档

登录 Flashduty

flashduty login
按提示输入 APP Key。获取方式:登录 Flashduty 控制台,进入 个人中心 > 个人信息,复制 APP Key。

获取 Atlassian Statuspage API Key

  1. 登录 Atlassian Statuspage 管理面板
  2. 进入 User icon > API info,复制 API Key
  3. 设置环境变量:
export ATLASSIAN_STATUSPAGE_API_KEY="your_api_key_here"

获取 Atlassian Statuspage Page ID

在 Atlassian Statuspage 管理面板中,Page ID 显示在页面 URL 或页面设置中。格式类似 0db0rq26tg1l

第一步:迁移结构与历史


此步骤会将组件、分组、历史事件(含维护记录)和通知模板迁移到 Flashduty,并自动创建一个新的 Flashduty 状态页。
flashduty statuspage migrate structure \
  --from atlassian \
  --source-page-id <your_atlassian_page_id> \
  --api-key "$ATLASSIAN_STATUSPAGE_API_KEY"
参数必填说明
--from迁移来源,目前仅支持 atlassian
--source-page-idAtlassian Statuspage 的 Page ID
--api-keyAtlassian Statuspage 的 API Key
--url-name新创建的 Flashduty 公开状态页的 URL 名称
迁移任务为异步执行,命令会立即返回一个 Job ID

查询迁移进度

flashduty statuspage migrate status --job-id <job_id>
迁移按以下阶段依次执行:
1

components

导入组件定义
2

sections

导入组件分组
3

history

导入历史事件和维护记录
4

templates

导入通知模板
任务完成后,输出中会包含新创建的 Flashduty 状态页 IDtarget-page-id),请记录此 ID,后续迁移订阅者时需要用到。

验证导入结果

在进行下一步之前,建议检查导入的内容:
# 查看新状态页信息
flashduty statuspage list --id <target_page_id>

# 查看导入的事件
flashduty statuspage changes --page-id <target_page_id> --type incident
您也可以登录 Flashduty 控制台 在状态页管理界面中检查组件、分组和历史事件是否完整。
结构迁移可以多次执行,但不建议重复执行过多次。如果需要取消正在运行的迁移任务:
flashduty statuspage migrate cancel --job-id <job_id>

第二步:迁移邮件订阅者


确认结构和历史导入正确后,执行订阅者迁移:
flashduty statuspage migrate email-subscribers \
  --from atlassian \
  --source-page-id <your_atlassian_page_id> \
  --target-page-id <flashduty_page_id> \
  --api-key "$ATLASSIAN_STATUSPAGE_API_KEY"
参数必填说明
--from迁移来源,atlassian
--source-page-idAtlassian Statuspage 的 Page ID
--target-page-id第一步中创建的 Flashduty 状态页 ID
--api-keyAtlassian Statuspage 的 API Key
同样使用 migrate status 查询进度:
flashduty statuspage migrate status --job-id <job_id>
导入的订阅者会直接变为活跃状态,无需邮件验证,导入后即可接收状态更新通知。已在 Atlassian 端被标记为隔离(quarantined)的邮箱地址会被自动跳过。
订阅者迁移可以安全地多次执行——已存在的订阅者不会被重复导入。

第三步:切换域名与 RSS 订阅


迁移完成后,完成最后的切换:
如果您的 Atlassian Statuspage 使用了自定义域名,将 CNAME 记录指向 Flashduty 提供的域名即可完成切换。具体配置请参考 创建与管理状态页
Flashduty 兼容 Atlassian Statuspage 的 history.rsshistory.atom 链接格式。如果您的用户通过这些链接订阅了 RSS/Atom,切换域名后订阅将自动生效,无需通知用户修改订阅地址。详见 订阅管理

完整迁移示例


# 设置 Atlassian API Key
export ATLASSIAN_STATUSPAGE_API_KEY="your_api_key_here"

# 1. 迁移结构与历史
flashduty statuspage migrate structure \
  --from atlassian \
  --source-page-id 0db0rq26tg1l \
  --api-key "$ATLASSIAN_STATUSPAGE_API_KEY"
# 输出: Job ID: str_abc

# 2. 查询进度,等待完成
flashduty statuspage migrate status --job-id str_abc
# 重复执行直到 Status: completed
# 记录输出中的 target-page-id

# 3. 验证导入结果
flashduty statuspage list --id <target_page_id>

# 4. 迁移邮件订阅者
flashduty statuspage migrate email-subscribers \
  --from atlassian \
  --source-page-id 0db0rq26tg1l \
  --target-page-id <target_page_id> \
  --api-key "$ATLASSIAN_STATUSPAGE_API_KEY"
# 输出: Job ID: sub_xyz

# 5. 查询进度,等待完成
flashduty statuspage migrate status --job-id sub_xyz