Skip to content

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. MODERATE actions require explicit confirmation; HIGH actions require a strong confirmation string (the action id or CONFIRM) 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.