M1: populate profiles example definitions repo #1
No reviewers
Labels
No labels
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
allod/profiles!1
Loading…
Reference in a new issue
No description provided.
Delete branch "agent/populate-profiles"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Part of the archetypes/profiles repo split —
Refs allod/strategy#18. This is M1: populating the newallod/profilesexample-definitions repo (fresh history; the empty repo was created by the operator after the G1 redirect-cliff gate).This repo becomes the single owner of machine profile definitions. It exports the
profilesinput contract (Interface Contract 1) that thearchetypesframework will consume at M2, and that an operator's own definitions repo reproduces:Contents:
flake.nix— the contract exported as a literal attrset (same explicitness as the framework's former in-treepublicProfileDefinitions, no directory-derived magic):dev.allod-devwith its module lists,privacy.privacy-1andhypervisor.nexusas empty definitions,profileData = {}, andhomeModules.preferences. Plus anixpkgs-only shape check.hosts/dev/allod-dev/{configuration,home}.nix— moved verbatim from the frameworkhosts/tree. (hosts/dev/home-shared.nixis framework behavior and stays inarchetypes— it relocates tomodules/in M2, not here.hosts/service/.gitkeepis dropped, not moved.)modules/preferences.nix— moved verbatim from thesecretstemplate (M4 removes it there).LICENSE(GPL-3.0-or-later, fromallod/deploy, in the initial bootstrap commit),README.md(per-profile ownership statement + History note),.gitignore,hooks/commit-msg,setup.sh.The flake takes no inputs beyond
nixpkgsand must never grow inputs onsecretsorinventory— definitions reference behavior, not identity or machine facts. Archetype-name validity stays asserted byarchetypes(the fact's owner); this flake's check validates only its export structure and field types.Nothing consumes this repo yet —
archetypeslocks it as itsprofilesinput at M2.Risk
R2 Medium — an additive fresh repo nobody composes with until M2. The sequencing risk (creating the repo kills the rename redirect) was the operator's G1 gate and is already discharged. Fresh history carries no framework commits.
Validation
The shape check was proven fail-loud: sabotaging a definition field to a non-list (
homeModules = "…") makesnix flake checkexit 1 withprofile contract shape errors: profileDefinitions.dev.allod-dev.homeModules is not a list.