The challenge: staying in sync with reality
Today, Upsun manages:- 23 services
- 9 runtimes
- 15 public regions
- PHP extensions from PHP 5.4 up to PHP 8.5
- Official upstream releases
- Security and maintenance policies
- Internal build pipelines
- Git branches representing supported versions
- Engineers manually cross-checked multiple sources
- Updates required hand-edited files
- Documentation changes meant additional pull requests
- Drift between reality and documentation was hard to detect
Introducing Meta Version Updater
Meta Version Updater is an internal automation tool designed to continuously reconcile what exists with what we support.
- Collects official upstream versions
- Compares them with Upsun-supported images (Git branches)
- Detects missing, outdated, or deprecated versions
- Updates Meta and documentation through automated pull requests
Technical stack
Meta Version Updater relies on a modern and efficient technical stack:- Node.js v24: The main engine of the application, providing speed and compatibility with the latest JavaScript features.
- PostgreSQL 18: A robust relational database to store metadata, versioning, and update history.
- Application: 0.5 CPU, 0.218 GB RAM, 500MB disk space
- Database: 0.5 CPU, 1.375 GB RAM, 500MB disk space

Nightly ingestion pipeline (high level)
Every night, Meta Version Updater ingests data from multiple sources:-
Official upstream versions
- Runtime and service release sources
- Used as the reference for what could be supported
-
Upsun internal repositories
- Git branches represent supported versions
- Missing branches highlight unsupported or pending versions
-
Upsun APIs
- Regions are fetched directly from the Upsun API
- IP addresses are added manually where required
What gets updated automatically
The tool produces structured updates for:-
registry.json- Supported and deprecated service/runtime versions
- Used by:
-
php_extensions.yaml- Default and available PHP extensions per version
- Displayed here:
-
Region data
- Public regions and metadata
- Displayed here:
Human review stays in the loop
Automation does not remove humans from the process. For every detected change, Meta Version Updater:- Opens pull requests automatically
- Targets:
upsun/metaplatformsh/docs
- Highlights diffs and version changes clearly
- Reviewability
- Traceability
- Intentional changes only
Detecting drift before it hurts
One of the most valuable outcomes is early drift detection:- Official versions exist but no internal branch → missing support
- Supported versions without upstream maintenance → deprecation candidates
- Documentation inconsistencies → caught before release
What’s coming next: Slack summaries via n8n
We’re extending the workflow further. An n8n-based automation is currently in development to:- Send Slack notifications when a PR with image updates is opened
- Post a human-friendly summary of changes
- Improve visibility across internal teams
Links
- Meta API docs (Scalar): https://meta.upsun.com/api-docs