brainstorming
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
flexport-upgrade-migrationUpgrade a Flexport REST integration using account version settings and request overrides while tolerating compatible additions. Use when changing the Flexport-Version header, testing a new schema, or responding to added fields and event types. Trigger with: "upgrade Flexport API", "change Flexport version", "handle Flexport schema change".
Independent GitHub snapshot · Automated classification · Original documentation governs
name: flexport-upgrade-migration description: >- Upgrade a Flexport REST integration using account version settings and request overrides while tolerating compatible additions. Use when changing the Flexport-Version header, testing a new schema, or responding to added fields and event types. Trigger with: "upgrade Flexport API", "change Flexport version", "handle Flexport schema change". allowed-tools: Read, Grep, Write, Edit version: 2.0.0 argument-hint: '[current-version-and-target-version]' model: inherit effort: high license: MIT author: Jeremy Longshore jeremy@intentsolutions.io tags:
Flexport supports account-default version selection plus per-request Flexport-Version overrides. Backward-compatible additions can include attributes, resources, optional parameters, enum values, and event types, so readers and routers must be additive-tolerant.
Record the account default and explicit header behavior for every client; do not assume a hardcoded v2 path determines the contract.
Separate breaking target-version differences from compatible additions that may appear without an account-version switch.
Ignore or preserve unknown optional fields, route unknown enum/event values safely, and fail only when a required invariant is absent.
Exercise approved read-only calls using the target Flexport-Version header while production remains on its current default.
Deploy tolerant code first, switch a bounded read cohort, compare business outcomes, then enable mutations only after reconciliation passes.
Coordinate account-default changes after all clients are ready, retain explicit rollback overrides, and verify events plus in-flight operations.
REST calls authenticate with a cached OAuth 2.0 client-credentials Bearer token using audience https://api.flexport.com, or an explicitly accepted broad API key. Use distinct credentials per workload and never log credentials or tokens. MCP calls use the authenticated connection to https://mcp.flexport.com/mcp and remain subject to each tool's documented account permissions.
Use Read and Grep for discovery and evidence. Use Write or Edit only for the approved artifact, code, configuration, test, or receipt described by this workflow; do not make an unapproved Flexport-side change.
Return a machine-reviewable receipt in this shape; adapt the operation values, but never place credentials or provider payloads in it:
surface: rest-v3
operation: shipment-read
decision: approved
outcome: verified
evidence:
release_sha: recorded-out-of-band
provider_reference: redacted
rollback_owner: logistics-platform
A parser learns to preserve unknown shipment attributes and quarantine unknown event types. The team tests reads with Flexport-Version: 3, canaries them, then changes the account default only after every client passes.
| Failure | Response |
|---|---|
| Effective version unknown | Stop and inspect account settings plus outbound headers. |
| Unknown additive enum crashes routing | Quarantine safely and make parsing tolerant. |
| Read results diverge | Pause migration and reconcile semantic, expansion, and pagination differences. |
| Rollback header untested | Do not change the account default. |