Integration go-live checklist
This page is for the team that takes an integration into production. Work through it in order; each section ends with a decision point. The steps for the site as a whole are in New customer site go-live.
Contents
One week before
- To do: Acceptance cases passed in staging; sign-off recorded.
- To do: Security review passed (checklist).
- To do: Production credentials created and stored; service accounts and roles in place.
- To do: The integration extension released; the version to install is a tag.
- To do: Monitoring checks configured against production, alerts going to the right people (Monitoring).
- To do: Runbook reviewed by an operator (Handover).
- To do: The owners of the other systems know the date and are reachable on the day.
- To do: Rollback plan written (below) and a backup procedure tested (Backups: what to back up).
Decision: go / postpone.
The day before
- To do: Backup of database and
var/storagetaken and verified. - To do: Deployment rehearsed on staging with the same commands.
- To do: A dry run of each import on a fresh copy of production: numbers plausible.
- To do: Cronjob lines prepared but not yet active.
Go-live
Deploy the extension and its settings:
php bin/php/ezpgenerateautoloads.php -e php bin/php/console exp:velocity deploy --allow-root-userCreate the extension's tables (its install command) and check them.
Check the surfaces from outside (one REST call with the production key, one
expservicescall, the feed address).Run the initial load by hand, as the site user, with output kept:
nice -n 15 php bin/php/console ext:myintegration:importproducts --file=var/import/articles.csv -s <siteaccess> \ 2>&1 | tee var/log/myintegration-initial-load.logClear what the load does not clear on its own (Caching after imports); rebuild the search index if indexing was delayed.
Connect workflows to triggers, switch listeners and sinks on.
Activate the cronjob lines; check them at Setup > Cronjobs.
Decision: continue / roll back.
First runs
- To do: The first scheduled run of each flow happened and its summary line is plausible.
- To do: The second run of each import reports (almost) only
unchanged. - To do: The other systems' teams confirm receipt of the first outbound changes.
- To do: No new errors naming the integration in
error.log; no refusals in the audit. - To do: Monitoring shows green; one alert was triggered on purpose and arrived.
Rollback
Write down before go-live how to stop and reverse each flow:
| Step | How |
|---|---|
| Stop the flow | Pause its cronjob parts; disconnect its workflow at Setup > Triggers; remove the sink from the channel |
| Revoke access | Revoke the integration's API keys; disable the service account |
| Undo imported content | Remove or hide objects by their remote id prefix with a prepared, tested script; or restore the backup when nothing else changed since |
| Tell the others | The owners of the other systems and the editors |
Hypercare
- To do: Daily check of every flow's summary lines for the agreed period (two to four weeks).
- To do: Thresholds tuned to real volumes.
- To do: Defects fixed and released as new versions, not patched on the server.
- To do: Open items handed over with owners at the end of hypercare.
Related pages
- Integration project playbook
- Testing integrations
- Quality gates and acceptance
- Free documentation: this page is free to copy, translate and improve under the GNU FDL 1.3.
Become an Exponential Partner
Partners share their information, provide funding, contribute back and develop the products with us, and that is how Exponential grows. A partner website and dashboard are planned for mid-2027: please become a partner today to speed up our growth rate and land new features faster.