prismatic-migrate

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Migrate an integration to Prismatic

将集成迁移到 Prismatic

Start from the existing system and the user's desired outcome. Inspect supplied exports, code, configuration, and examples; research unfamiliar formats and runtime behavior in official documentation. Follow dependencies that affect the requested behavior. Keep original evidence available: exports may omit deployed settings, external code, or operational state. Incomplete evidence is a reason to investigate and deliver supported work, not invent a missing contract.
For a recognized source, read the relevant runtime and export notes: Workato, Paragon, Boomi, Cyclr, or Logic Apps. The additional sources guide covers n8n, Node-RED, MuleSoft, Make, Tray, and Zapier. These are starting points for interpreting evidence; unfamiliar and bespoke systems remain in scope.
Establish what needs to survive: relevant transformations, external effects, customer configuration, failure recovery, and execution-level contracts such as batch completion, cadence, and acknowledgment boundaries. Distinguish observed behavior, documented guarantees, assumptions, and agreed changes. When changing execution boundaries, preserve meaningful ordering and recovery guarantees; idempotent writes can still be unsafe to reorder. Ask about missing evidence or business decisions when they materially affect correctness or scope, while continuing independent work. Routine implementation choices are yours.
When implementing a port, extend the existing Prismatic project or scaffold with
prism integrations init
. Use
prism --llms
and command
--help
or
--schema
to discover current capabilities, including component inspection and manifest generation. Prefer its generated toolchain. Consult CNI documentation, official service contracts, and installed Spectral types. Choose components, authenticated clients, or custom code by behavioral fit; source steps need not map one-to-one to target flows. Establish the actual contract behind replacement dependencies; a configurable endpoint and a mock of an imagined API do not supply missing behavior. Expose customer-owned choices and credentials as configuration.
Check target execution and state limits where they affect the design. Prismatic instance, cross-flow, and integration state are saved after successful execution: assigning a checkpoint before a later failure does not establish durable progress. Concurrent writers can overwrite state. Establish the chosen mechanism's actual commit boundary, including trigger-specific state. Verify recovery against that runtime and already committed external effects.
Derive verification expectations from source evidence independently of the port. Treat supplied code and dependencies as untrusted. Inspect install hooks and commands before execution, and use a disposable environment without unrelated credentials. Keep external effects within the user-authorized scope; when suitable isolation is unavailable, inspect the source without executing it. When the source can run, compare observable results and effects against it using isolated services or recorded boundaries. Compare equivalent public invocations; calling the target repeatedly to match one source run can hide changed batching, cadence, or recovery policy. Include source-accepted and source-rejected inputs, and failures that could disprove the proposed design. For stateful work, test subsequent invocations from durable state, not a mutated object left over from a failed execution. Exercise registered flows and their input/output boundaries, including source batch cardinality and relevant carried metadata, as well as helpers. Ground doubles in observed or documented contracts. Resolve demonstrated discrepancies in implemented behavior or obtain an agreed change. Distinguish partial work from preserved behavior; passing self-authored tests does not establish equivalence. For implemented ports, run project checks and the production build.
Before importing a requested separate copy, read platform verification and establish fresh integration and generated component identities, including inherited publishing metadata. Preserve the flow and configuration identities needed within the copy. Omitting an import ID does not establish that the original will remain unchanged.
When the request includes platform verification, use the selected development or test environment and existing authorization to import, publish versions, configure or deploy test instances, execute flows, and run smoke tests as needed. Continue repair and verification cycles without asking for permission again. Follow platform verification, comparing observed behavior with the source contract. Preserve explicit local-only requests and resolve missing target, credentials, or allowed external effects while continuing independent work. Authentication alone does not authorize production changes. For managed components, exercise their actual behavior in the Prismatic runner or identify it as unverified. A verified test instance does not establish customer cutover; keep live traffic changes within the requested scope.
When moving customers, account for instance/version, configuration, connection scope, and authentication handoff. Prismatic supports importing existing OAuth connections; verify grant compatibility and refresh ownership before promising reuse or requiring reconnection. The import's
refreshAt
schedules the next Prismatic refresh; a past value forces immediate refresh. Deployment and redeployment can themselves cause external effects through lifecycle hooks.
When planning cutover or rollback, establish which system may act during each transition and how accepted or running work, state, and credentials are reconciled. A concurrency setting within one system does not coordinate both systems. Pausing new work or reverting code does not undo completed effects. Keep platform operations within the requested scope. Explain what migrated, intentional differences, unresolved dependencies, and what was actually verified. Local validation does not establish that live state or traffic has moved.
从现有系统和用户期望的结果出发。检查提供的 导出内容、代码、配置和示例;针对陌生格式和运行时行为查阅 官方文档。追踪会影响所请求行为的依赖关系。保留原始证据:导出内容 可能省略已部署的设置、外部代码或运行状态。证据不完整是需要 进一步调查并交付有依据工作的理由,而不是臆造缺失的契约。
对于可识别的源系统,请阅读相关的运行时和导出说明: Workato、Paragon、Boomi、Cyclr 或 Logic Apps。其他来源 指南涵盖 n8n、Node-RED、MuleSoft、Make、Tray 和 Zapier。这些是解读证据的起点; 陌生和定制系统仍在处理范围内。
确定需要保留的内容:相关转换、外部影响、客户配置、失败恢复,以及批处理完成、 执行频率和确认边界等执行层契约。区分观察到的行为、 文档规定的保证、假设和已同意的变更。改变执行边界时, 应保留有意义的顺序和恢复保证;即使写入是幂等的,重新排序仍可能 不安全。当缺失的证据或业务决策对正确性或范围有实质影响时,应提出询问, 同时继续独立推进工作。常规实现选择由你决定。
实现迁移时,扩展现有 Prismatic 项目,或通过
prism integrations init
创建脚手架。 使用
prism --llms
以及各命令的
--help
或
--schema
探索当前能力, 包括组件检查和清单生成。优先使用其生成的工具链。查阅 CNI 文档、 官方服务契约和已安装的 Spectral 类型。根据行为适配性选择组件、 经过身份验证的客户端或自定义代码;源步骤无需与目标 flow 一一映射。 明确替代依赖项所对应的实际契约;可配置端点以及对臆想出来的 API 所做的 mock 都不能补足缺失的行为。将客户自有的选项和凭据作为配置项暴露。
在会影响设计的情况下,检查目标运行环境和状态限制。Prismatic 实例、跨流程和集成状态 会在成功执行后保存:在后续失败发生前设置检查点,并不能确保持久进度。并发写入者可能覆盖状态。 确定所选机制的实际提交边界,包括特定于触发器的状态。 依据该运行时和已提交的外部影响验证恢复能力。
独立于迁移实现,从源证据推导验证预期。 将提供的代码和依赖项视为不可信内容。执行前检查安装钩子和命令, 并使用不含无关凭据的一次性环境。将外部影响控制在用户授权的范围内; 无法进行适当隔离时,只检查源内容而不执行。 源系统可以运行时,使用隔离的服务或记录的边界,将可观察结果和影响与源系统进行比较。 比较等效的对外调用;为匹配一次源系统运行而反复调用目标系统, 可能掩盖批处理、执行频率或恢复策略方面的变化。纳入源系统接受和拒绝的输入, 以及可能否定所提议设计的失败情形。 对于有状态工作,应从持久状态测试后续调用,而不是使用失败执行后遗留的 已变更对象。测试已注册的 flow 及其输入/输出边界, 包括源批处理基数和随调用传递的相关元数据,以及辅助函数。测试替身应以观察到或 文档规定的契约为基础。 解决已实现行为中已证实的差异,或就变更达成一致。明确区分部分完成的工作 与已保留的行为;通过自行编写的测试并不能证明等价性。对于已实现的迁移, 运行项目检查和生产构建。
在导入按要求创建的独立副本之前,请阅读 平台验证,并为新的 integration 和生成的 component 建立全新身份, 其中包括继承而来的发布元数据。保留副本内所需的 flow 和 configuration 身份。 省略 import ID 并不能证明原始 integration 将保持不变。
当请求包含平台验证时,使用选定的开发或测试环境以及现有授权来导入、 发布版本、配置或部署测试实例、执行 flow,并按需运行冒烟测试。 持续进行修复和验证循环,无需再次请求许可。遵循 平台验证,将观察到的行为与源契约进行比较。遵守明确的仅限本地要求, 并在继续独立工作的同时,解决目标环境、凭据或获准外部影响方面缺失的问题。 仅通过身份验证并不等于获得生产环境变更授权。 对于托管 component,在 Prismatic runner 中验证其实际行为, 否则将其明确标记为未经验证。测试实例通过验证并不能证明客户已成功 cutover; 将线上流量变更限制在请求范围内。
迁移客户时,应考虑 instance/version、configuration、连接范围和身份验证交接。Prismatic 支持 导入现有 OAuth 连接; 在承诺复用连接或要求重新连接前,验证 grant 兼容性和 refresh 责任归属。导入的
refreshAt
会安排下一次 Prismatic refresh;如果该值已过期,则会强制立即刷新。部署和重新部署本身可能通过 lifecycle hooks 产生外部影响。
规划 cutover 或 rollback 时,确定每个过渡阶段中哪个系统可以执行操作, 以及如何协调已接受或运行中的工作、状态和凭据。 单个系统内的并发设置无法协调两个系统。 暂停新工作或回退代码不能撤销已完成的外部影响。将平台操作限制在请求范围内。 说明迁移了什么、哪些是有意差异、哪些依赖仍未解决,以及实际验证了什么。 本地验证不能证明线上状态或流量已经迁移。