Commit Graph

414 Commits

Author SHA1 Message Date
Jörg Thalheim
b692f6fcfe put flake input overrides into a helper function 2025-07-07 15:59:09 +00:00
lassulus
bbb7773567 rename lingering clan.vars -> clan.core.vars 2025-07-07 00:59:52 +02:00
lassulus
2f0f9a9fba vars/password-store: replace passBackend option with passPackage
The `clan.core.vars.settings.passBackend` option has been replaced with
`clan.vars.password-store.passPackage` to provide better type safety and
clearer configuration.

Changes:
- Remove problematic mkRemovedOptionModule that caused circular dependency
- Add proper option definition with assertion-based migration
- Users setting the old option get clear migration instructions
- Normal evaluation continues to work for users not using the old option

Migration: Replace `clan.core.vars.settings.passBackend = "passage"`
with `clan.vars.password-store.passPackage = pkgs.passage`
2025-07-06 12:46:39 +02:00
pinpox
9a293f790e Add state-version nixos option
This reverts commit 8f6f06bef3.
2025-07-04 11:54:12 +02:00
DavHau
67a37a9d2c reverting b1f71fe4fb 2025-07-04 10:35:30 +07:00
Jörg Thalheim
ca3f6bd160 actually import state-version 2025-07-03 20:19:19 +02:00
lassulus
c760561dbd refactor: remove _serialized field and implement efficient vars selection
- Remove _serialized field from vars interface to prevent serialization
  errors with throwing passBackend field
- Implement direct selection of generator fields using multi-select syntax
- Refactor vars_generators() to use new Generator.from_flake() method that
  selects only safe fields (avoiding non-serializable values)
- Remove unused legacy methods: Generator.from_json(), Var.from_json(),
  Prompt.from_json()
- Update precaching to match new selection approach

This fixes the serialization errors that were preventing vars from working
with the new password-store implementation by avoiding the problematic
_serialized field entirely.
2025-07-03 18:53:36 +02:00
lassulus
a055b4d1eb refactor: remove deployment.json and use direct selectors
- Remove deployment.json file generation from outputs.nix
- Add throw for deprecated deployment.file usage with upgrade instructions
- Remove vars data from deployment.data
- Update Machine class to use direct select() calls instead of deployment property
- Update all deployment property accesses to use direct selectors
- Add precaching for frequently accessed values in update.py:
  - Module paths for facts and vars
  - Deployment settings (requireExplicitUpdate, nixosMobileWorkaround)
  - Services and generators data
  - Secret upload locations
- This removes unnecessary JSON serialization and makes the code more composable
2025-07-02 20:56:23 +02:00
Johannes Kirschbauer
b1f71fe4fb clan.deployment: unify deprecated option 2025-07-02 18:37:29 +02:00
Johannes Kirschbauer
8f6f06bef3 Revert "Merge pull request 'Make state-version generation an clan option' (#4056) from state-version-option into main"
This reverts commit 8a7b6d13b5, reversing
changes made to 7a4eeb5b16.
2025-07-01 18:15:11 +02:00
a-kenji
8199e53918 docs(clan): Improve state-version documentation 2025-07-01 17:32:20 +02:00
DavHau
e219a636ca checks: fix some tests not named correctly 2025-06-30 19:50:16 +07:00
DavHau
73b298d0b2 checks: rename attributes for better discoverability
- all eval checks prefixed with `eval-`
- all service checks prefixed with `service-`
2025-06-30 19:04:21 +07:00
pinpox
4709e8e2f6 Remove state-version module from tests 2025-06-30 12:58:05 +02:00
pinpox
507152a1cc Add state-version option 2025-06-30 12:54:29 +02:00
DavHau
2a3e786cfe tests: explicitly specify services to be sourced from self
See previous commit
2025-06-30 10:13:46 +00:00
pinpox
9adbc37ebd Fix machine-id on macos 2025-06-26 15:35:34 +02:00
pinpox
d88ac429cb Make machine ID a option 2025-06-24 10:42:03 +02:00
Qubasa
b66f4c889d genmoon.py: Fix type error 2025-06-17 13:53:43 +02:00
Michael Hoang
ad963a75c5 vars: don't expose restartUnits on macOS 2025-06-10 13:48:06 +07:00
Michael Hoang
e8ebd887d0 vars: don't use sops.secrets.*.restartUnits on macOS 2025-06-10 13:27:15 +07:00
lassulus
8ce860f0d3 Revert "clan-cli: Use Remote class in DeployInfo, add tests for qrcode parser and json parser"
This reverts commit b1ef5f00bf.
2025-06-09 11:28:15 +02:00
Qubasa
b1ef5f00bf clan-cli: Use Remote class in DeployInfo, add tests for qrcode parser and json parser 2025-06-07 00:51:24 +02:00
a-kenji
5b6bd74748 facts: Add deprecation warning 2025-06-04 13:21:09 +02:00
lassulus
39db9727d5 zerotier: fix targetHost 2025-06-04 08:46:01 +02:00
lassulus
6bd697ed75 zerotier: set targetHost if var is generated 2025-06-03 12:16:09 +02:00
DavHau
60f07c3472 tests: actually execute vars checks in CI 2025-05-31 16:16:09 +07:00
Jörg Thalheim
8860a58deb vars: add restartUnits option
For secrets not part of the nix store there is no other way in NixOS to
restart a service after the secret is updated. One example is changing
password in userborn, which doesn't run as a activation script but as a
systemd service.
2025-05-28 16:44:19 +02:00
Jörg Thalheim
75fa7ac609 add multiline-hidden prompt for both ui and cli 2025-05-14 19:53:36 +02:00
Mic92
5cd8c3729a Merge pull request 'Data-mesher: don't set owner for public vars' (#3571) from misc-fixes-2 into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3571
2025-05-12 10:27:05 +00:00
Jörg Thalheim
bdc0265ccd vars: improve warnings for non-public secrets 2025-05-12 12:06:05 +02:00
DavHau
fa011934f8 vars: cleanup sops file module 2025-05-12 15:30:23 +07:00
a-kenji
812b81f38e vars/interface: Fix typo 2025-05-06 19:48:08 +00:00
Jörg Thalheim
6f70a9ec01 vars: warn if mode/owner/user is used on non-secret var 2025-05-04 14:59:22 +02:00
Jörg Thalheim
f06296aa94 vars: fix defaultText 2025-05-04 14:59:22 +02:00
vdbe
26f336cf69 clanCore/vars/sops: add sops & switch to builtins.path 2025-05-04 08:08:58 +02:00
vdbe
f3e32ce827 clanCore/vars/sops: only copy required secrets to store
Create a store path per in repo secret/var to be copied, this prevents
unused secrets from being leaked.

For example the `root-password` generator contains both the hashed and
unhashed password but only the hash is used.
2025-05-04 08:08:58 +02:00
Johannes Kirschbauer
5253c155c0 feat(services): init feature flags in the module manifest: 'manifest.features.API' 2025-04-27 11:07:45 +02:00
Johannes Kirschbauer
f5c61382dd chore: remove unused option 'clanSchema' from core nixos modules 2025-04-27 11:07:45 +02:00
Raymond Barbiero
4117eb2f37 clanCore/vars: allow mode to be set
fmt
2025-04-25 11:29:43 +02:00
Jörg Thalheim
cbde58e1d8 zerotier: migrate from facts to vars 2025-04-22 18:20:35 +02:00
Michael Hoang
cd0867e402 networking: set targetHost if FQDN is explicitly set 2025-04-23 01:15:13 +10:00
Michael Hoang
f4b8f2e858 vars: fix default group on macOS 2025-04-22 23:39:47 +10:00
Michael Hoang
5e61a6e41d nixosModules/clanCore: support nix-darwin 2025-04-22 23:14:03 +10:00
Michael Hoang
2c9b25624a vars: improve messaging 2025-04-22 02:03:24 +10:00
Johannes Kirschbauer
9c3474f55f machine/vars: expose result direclty via vars submodule; keep deployment.data alias for now 2025-04-20 13:23:01 +02:00
hsjobeki
b48b30de0e revert db50ffc4b7
revert vars: use writeShellApplication to shellcheck generators

Cannot re-generate the vars for data-mesher or any of our tests anymore

cc @DavHau @Qubasa Can we work together to fix this.
I like shellchecking but if we loose the ability to add tests thats unfortunate
This is blocking: the new 'restic' and 'zerotier' migrations because we need to write integration tests from the beginning.
2025-04-16 07:14:25 +00:00
Michael Hoang
4097da5ce7 clanCore: remove clan.core.module 2025-04-15 17:17:16 +02:00
Michael Hoang
1d159fb774 build-clan: expose Clan configuration as a module 2025-04-14 16:04:06 +02:00
RTUnreal
db50ffc4b7 vars: use writeShellApplication to shellcheck generators 2025-04-09 19:44:00 +02:00