Repair¶
PteroCloud ships a small, fixed set of semantic repair actions. There is no
arbitrary shell command, no generic --fix, and no repair that disables TLS
verification, flushes a firewall or runs FLUSHALL.
Repairing the installation¶
Reinstall from an official signed package:
php artisan pterocloud:repair
The command requires an official signed package and explicit confirmation. It verifies the signed release manifest before applying anything.
The safety contract¶
- Dry run by default. A repair preview mutates nothing.
- Permission required. Every action names the permission it needs.
- Confirmation gated.
MODERATEactions require explicit confirmation;HIGHactions require a strong confirmation string (the action id orCONFIRM) and the repair permission. - License lock respected. While the license is locked, only license/installation/compatibility repairs may run.
- Audited. Every executed repair writes an audit event with the action, risk and context.
- Evidence-based resolution. A repair does not resolve an issue by itself; the issue is resolved only when a later diagnostic run passes.
Running a repair from the CLI¶
Only SAFE repairs are offered by pterocloud:diagnose
--apply-safe-repairs, and each is confirmed interactively:
php artisan pterocloud:diagnose --scope=control_plane --apply-safe-repairs
An unknown action id is rejected; a random id can never invoke a command.
Running a repair from the Diagnostics Center¶
From Admin → PteroCloud → Diagnostics Center, preview then execute with confirmation. See Diagnostics & support.
What is not a repair¶
- Restarting a database, flushing Redis or changing a firewall is not a repair action.
- Editing provider credentials is an explicit credential operation, not a repair.
- Restoring a backup is a restore operation, not a repair.