Repository navigation
Changelog
Best effort list of major changes and bugfixes
0.8.0
- feat: most materia packages are now public. This will be stabilized and documented better in 0.8 or 0.9.
- feat: git repos can reset on corrupted HEAD
- feat: git source supports
git.auth_tokenforBearer: <token>HTTP auth - refactor: rewrote file management backend
- Files are now installed with consistent permissions and using
os.Rootto prevent symlink/path escapping - You may notice an initial wave of
Updateactions as materia fixes installed file permissions. Note that changing permissions does count as a normal update action, so all triggered effects (container restarts,etc) will still occur
- Files are now installed with consistent permissions and using
- feat/refactor: The
materiacontainer image is now built frompodman/stableinstead oftumbleweed/bci:latest - ci: release tarballs and images are now signed via cosign. Public key for validation is in the repo and the main primamateria.systems website
- feat/rework: Redid
factsgeneration. Facts are now denoted in dotted-path format.- Existing facts and their new versions:
hostname->materia.hostnameinterface->host.interfaces
- New facts
host.hostname: hostname as the OS sees itsmateria.roles: Assigned rolesmateria.assigned_components: Assigned componentsmateria.installed_components: Installed components
- Existing facts and their new versions:
- feat: generate a $OUTPUTDIR/lastrun.toml file on
materia updateormateria server update. Up to five last-plan and last-run files are stored.- If you have existing
lastrun.tomlfiles, you need to remove them before runningmateria facts.
- If you have existing
- feat: facts
materianow shows last applied revision and timestamp and whether it was successful:- New facts:
materia.last_revisionmateria.last_runmateria.last_run_succesful
- New facts:
- feat: server mode supports new
server.tokenforBearer: tokenstyle authentication:- example:
curl -v -X GET localhost:6284/facts \ 12:17:19 AM -H "Authorization: Bearer secret" \ -H "Accept: application/json"
- this replaces the now deprecated
server.update_secret.
- feat: other server config changes:
server.url: replacesserver.update_urlserver.update_webhookrequiresserver.update_secretorserver.tokenupdate_secretortokenchecks are disabled by settingserver.urltolocalhost*
- feat: new
/factsendpoint for server mode. Enable withserver.facts_endpointRequiresserver.tokento be enabled. - feat: new
/healthendpoint, automatically enabled when any other webhook is enabled or ifserver.healthistrue.- returns:
{ "health":"ok", "timestamp":"current time" } - bugfix:
lastplan/lastrunfiles can no longer include un-redacted podman secrets. Thanks shirome on Matrix!- The planner no longer contains Podman secrets contents at all, even in memory, so this should not happen again
- feat: server and cli use same internal commands. Server now supports rollback
- chore: upgrade to Go 1.27.3. This is the latest Go version that includes certificate revocations for the eMudhra CA leak.
- feat/chore: rework
materia validateto use new facts system
Deprecations
- The
filesource has been renamed tolocalto prevent settings collisions with thefileattributes engine. Setting theSOURCE_KINDtofilewill work until after0.8is released. This is a straight rename; no other settings to be adjusted besides replacingfilewithlocal. - The following server settings are deprecated:
server.update_url: replaced withserver.urlserver.update_secret: replaced withBearer tokenauth withserver.token
- The following facts are deprecated:
hostname: replaced withhost.hostnameinterface: replaced withhost.interfaces