@financial-times/migrate-uri
v1.0.6
Published
A CLI to migrate v2 to v3 image service URLs
Downloads
11
Maintainers
Keywords
Readme
Image Service V2 to V3 Migration CLI (migrate-uri)
A command-line tool for migrating legacy V2 image URLs to V3 in your codebase — including optional registration of your system in the image-service config.
What It Does
- Looks up your repository via
systemCodefrom BizOps. - Checks registration in
image-serviceconfig. - Creates a PR to register your system if missing.
- Scans for V2 image URLs and generates a PR replacing them with V3 equivalents.
Tool Usage
Prerequisites
- Node.js v20 or higher (
node -v) - Doppler login to inject required secrets (e.g., GitHub, BizOps API credentials)
Global Install via npm
npm install -g @financial-times/migrate-uriRun the CLI
After global installation, simply run:
migrate-uri <system-code>The CLI will automatically use Doppler if environment variables are not present. If you prefer to run with Doppler manually:
doppler run --project image-service-v2-to-v3 --config prod -- migrate-uri <system-code>Workflow Summary
System Registration
- If unregistered, a PR is created in
image-service. - Action: Merge the PR, then re-run the CLI.
- If unregistered, a PR is created in
URL Migration
- Scans your codebase for V2 URLs.
- Offers to create a PR replacing them with V3 URLs.
- Action: Review & merge the PR.
Development Setup
1. Clone & Install
git clone <repository_url>
cd image-service-v2-to-v3
npm install2. Run Locally (with Doppler)
npm start <system-code>Visual Workflow
Copy and paste the following diagram into a Mermaid viewer to visualize the process:
graph TD
A[Start: migrate-uri systemCode] --> AA{"Repo Found in BizOps?"}
AA -- No --> AB[Error: Repo Not Found. Exit]
AA -- Yes --> B{"System Registered in image-service?"}
B -- No --> D[Create Registration PR]
D --> E[User Merges PR & Re-runs CLI]
B -- Yes --> F[Scan for V2 URLs]
F --> G[Show URL List Summary]
G --> H{"Open Migration PR?"}
H -- No --> I[Create Migration PR]
H -- Yes --> J[Inform User & Exit]