Archie for Craft CMS

Configuration

Settings

Archie's settings are at Archie → Settings, or in config/archie.php if you would rather keep them in version control:

<?php

return [
    'blueprintPath' => 'config/archie',
    'defaultFormat' => 'yaml',
    'allowPrune' => false,
    'keepSnapshots' => 25,
    'generateMissingHandles' => true,
    'logLevel' => 'info',
];

A config/archie.php file wins over whatever is stored in the CP, and the affected fields are shown as read-only there — the same convention every other Craft plugin follows.

blueprintPath

Default: config/archie. The directory on-disk blueprints are read from and written to, relative to the Craft base path.

The default puts blueprints beside the project config they produce, which is where they belong: a blueprint is source, it describes what your content model should be, and it should be reviewed in a pull request like anything else that changes the shape of your site.

The path may not walk up out of the project, and may only contain letters, numbers, dots, dashes, underscores and slashes.

defaultFormat

Default: yaml. Either yaml or json. Used when exporting or converting without an explicit --format.

Archie reads both regardless of this setting — it decides by looking at the first character of the document, so a leading { or [ is parsed as JSON and anything else as YAML. You never have to tell it which one you have handed it.

allowPrune

Default: false. Whether an apply is ever allowed to delete live components the blueprint does not mention.

Off is the right default and you should think hard before changing it. A blueprint that mentions three fields is not asking for every other field on the site to be deleted — it is describing three fields. Pruning has to be enabled here and requested on the run (--prune), which is two deliberate acts rather than one flag someone leaves on.

Pruning never touches sites, whatever the settings say. See What it will not do.

keepSnapshots

Default: 25. How many apply snapshots to keep. Older ones are pruned after each apply. 0 keeps all of them.

A snapshot is what each component looked like before a run touched it — it is what makes rollback possible. Dropping this to a small number on a site with a long history saves very little and costs you the ability to undo anything older.

generateMissingHandles

Default: true. Whether entry types, fields and volumes created by Archie get a handle derived from their name when the blueprint does not give one.

Turn it off if you would rather a missing handle were a lint error. On a hand-written blueprint the generated handle is usually what you would have typed anyway; on a converted Craft 4 document it is often the only thing standing between you and a failed run.

logLevel

Default: info. The level at or above which Archie writes to storage/logs/archie.log. Accepts the usual PSR-3 levels — debug, info, notice, warning, error and up.

debug includes the resolved settings of every component as it is written, which is the level worth turning on when a plan and an apply disagree about something.

Environment overrides

Every setting can be driven from .env in the usual Craft way, which is the sane way to keep pruning available in a sandbox and unavailable everywhere else:

// config/archie.php
return [
    'allowPrune' => App::env('ARCHIE_ALLOW_PRUNE') ?? false,
];

What Archie does not have settings for

There is no setting that lets an apply run where allowAdminChanges is off, and no setting that turns off the plan step before an apply. Both are load-bearing rather than conservative defaults: the first is Craft's own rule about which environments own the content model, and the second is the entire difference between this and running raw project-config edits.