Skip to content

refactor: scrub identifying metadata from current tree - #84

Merged
repparw merged 10 commits into
mainfrom
t3code/172988a3
Sep 16, 2026
Merged

repparw merged 10 commits into
mainfrom
t3code/172988a3

Conversation

@repparw

@repparw repparw commented Sep 16, 2026

Copy link
Copy Markdown
Owner

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.

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.
Copilot AI lite review requested due to automatic review settings September 16, 2026 23:11

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@repparw
repparw merged commit 24f69a6 into main Sep 16, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants