refactor: scrub identifying metadata from current tree - #84
Merged
Merged
Conversation
Weather widget location now comes from modules.host-facts.weatherLocation (coarse "Buenos Aires, Argentina" default); the precise town lives only in the untracked private facts file. Contact block already used me@repparw.com.
Home WAN IP moves out of committed source into a machine-local host-facts flake input with null-safe defaults; epsilon firewall rules are omitted and the wg-home endpoint falls back to an unroutable TEST-NET-1 placeholder without facts, with warnings so a fact-less deploy fails visibly. Checks assert the rules dynamically. CI materializes null facts.
ASF username moves to SOPS and is substituted into the bot config at runtime via replace-secret. Spotify account id removed (dead field: spotifyd 0.4.2 ignores username auth). Claro Drive id moves to host facts with the remote omitted when unset.
bttoggle no longer embeds a Bluetooth MAC; it requires TOGGLE_BT_DEVICE (supplied from host facts) and fails clearly when unset. hdd-spindown addresses the disk by filesystem label instead of a by-id serial.
The rclone module injects arbitrary secrets keys at activation via rclone config update, so the Claro account id needs no eval-time literal at all: url and user move into SOPS alongside the password. This drops the conditional remote, the union-leg surgery, and the facts warning, and keeps the id out of the world-readable store entirely.
The precise town bought nothing on a dashboard; drop the weatherLocation fact and use a coarse public default directly. host-facts now covers only wanIp and bluetoothDevice.
bttoggle falls back to the user-owned btDevice secret file when TOGGLE_BT_DEVICE is unset; explicit env still wins. Drops the bluetoothDevice host fact.
Firewall/WireGuard strings render at evaluation time, so the home WAN IP moves to a homeWanIp secret: an inet home-wan table holds the allowlists against a set populated at boot, and the same oneshot sets the tunnel endpoint (the NixOS peer config carries none; the router initiates). Empty set matches nothing, malformed secret fails loudly, secret rotation re-runs the unit. Retires the host-facts flake input entirely.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Scrubs identifying metadata from the current tree by moving operational identifiers to SOPS/runtime provisioning, retaining intentionally public/non-identifying infrastructure metadata. Includes the home-uplink firewall handoff fix and native sops-nix restart on secret changes.
Verification target: the repository CI gate only; no switch/deploy.