Amvionlie CMS
Where the Future Begins

Installer Overview

Purpose

Installer applies core and addon contracts during install or update workflows.

Installer reads contracts

Installer should read manifest and install contract data to discover what an addon declares. Runtime rendering should not repeatedly read manifests for ordinary page display.

Schema contracts

Addons that own tables declare schema through `src/schema_contract.php` and expose apply/readiness functions through the install contract.

Permissions contracts

Addons that expose protected behavior declare permission keys through `src/permissions_contract.php` and install contract metadata.

Update vs clean install

Update-safe code should preserve existing records and add missing columns/indexes deliberately. Clean install can create owned tables from scratch.

Installer does not own runtime behavior

Installer can apply declared contracts. It should not invent addon rendering, create secret fallback behavior, or silently clean unrelated addon records.

Install discipline

Installer should apply declared contracts. It should not invent addon behavior or silently clean unrelated records. That kind of surprise is how rebuilds get exercise they did not ask for.

Updated: 2026-05-07 02:18:09