Compare commits

...

745 Commits

Author SHA1 Message Date
Brian McGee
985f66dac8 feat(ui): lazy load routes 2025-05-22 16:05:18 +01:00
Brian McGee
0a75575e08 feat(ui): move route definitions to routes folder 2025-05-22 15:33:39 +01:00
Brian McGee
aa1bbd1180 feat(ui): add a clan context provider
- introduces a new consolidated store with `localStorage` support
- introduces a top-level `ClanProvider` providing access to `activeClanURI` and `clanURIs`
- redirects to `/welcome` if `activeClanURI` is `undefined`
- consolidates clan meta querying
- centralises the logic for removal of clan uri's which no longer exist
- fixed some miscellaneous missing `await` calls
2025-05-22 13:24:27 +00:00
Luis Hebendanz
3d6fcd522a Merge pull request 'clan-cli: Fix ctrl+c cancelling tasks' (#3746) from Qubasa/clan-core:fix_ctrl_c into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3746
2025-05-22 13:14:30 +00:00
Qubasa
9b714aa048 clan-cli: Fix ctrl+c cancelling tasks 2025-05-22 15:01:58 +02:00
Luis Hebendanz
1b13296444 Merge pull request 'clan-cli: Rename Host -> Remote move to clan_lib and mark as frozen' (#3726) from Qubasa/clan-core:fix_ui_stuff into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3726
2025-05-22 12:20:55 +00:00
Qubasa
cff5d61f26 clan-cli: Rename Host -> Remote move to clan_lib and mark as frozen 2025-05-22 14:08:27 +02:00
Mic92
7bcb0afae9 Merge pull request 'fix build_host not beeing applied' (#3740) from fix-build-host into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3740
2025-05-22 11:25:20 +00:00
brianmcgee
e53ce07dc8 Merge pull request 'fix(ui): hot-reload of clan-cli' (#3745) from fix/clan-lib-hot-reload-ui into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3745
2025-05-22 11:01:13 +00:00
Brian McGee
768b94fc75 fix(ui): hot-reload of clan-cli 2025-05-22 11:47:35 +01:00
Michael Hoang
6b1d4adb81 Merge pull request 'docs: misc clean up 2' (#3742) from push-wzkskzxyzkwt into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3742
2025-05-22 04:16:34 +00:00
Michael Hoang
dc108cc27d docs: format code blocks in migration guide 2025-05-22 14:12:40 +10:00
Michael Hoang
dcb9358e51 docs: clean up flake-parts guide 2025-05-22 14:12:40 +10:00
clan-bot
104c05e206 Merge pull request 'Update Clan Core for Checks' (#3741) from update-clan-core-for-checks into main 2025-05-22 03:01:07 +00:00
clan-bot
e5807bfa7e Update pinned clan-core for checks 2025-05-22 02:51:23 +00:00
Jörg Thalheim
0a22218026 fix build_host not beeing applied 2025-05-22 00:22:04 +02:00
hsjobeki
843e1b24be Merge pull request 'Feat(clanLib): init types {uniqueDeferredSerializableModule}' (#3737) from hsjobeki/clan-core:fix-2 into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3737
2025-05-21 18:50:42 +00:00
lassulus
8f98aa854f Merge pull request 'clan-cli: split clan into cli and lib' (#3738) from clan_lib_clan into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3738
2025-05-21 18:50:08 +00:00
Johannes Kirschbauer
8576016b32 fix(clanLib): propagate clanLib into module apply 2025-05-21 20:44:56 +02:00
lassulus
0e9124d322 clan-cli: split clan into cli and lib 2025-05-21 20:28:41 +02:00
Johannes Kirschbauer
2510b2bb77 Tests(deferred custom module): add more tests, dissallow nested imports 2025-05-21 18:54:07 +02:00
Johannes Kirschbauer
9f298ecb86 Feat(settings): use uniqueDeferredSerializableModule for settings 2025-05-21 18:41:20 +02:00
Johannes Kirschbauer
df0b8cfd45 Feat(clanLib): init types {uniqueDeferredSerializableModule} 2025-05-21 18:41:14 +02:00
hsjobeki
afbb6549a6 Merge pull request 'Test(InventoryPersistence): add persist integration tests' (#3736) from hsjobeki/clan-core:fix-2 into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3736
2025-05-21 16:10:11 +00:00
Johannes Kirschbauer
15ec2067a6 Test(InventoryPersistence): add persist integration tests 2025-05-21 17:55:43 +02:00
Johannes Kirschbauer
b628b12b3e Fix(introspection): 'lazyAttrsOf' needs to get the same handling as 'attrsOf' 2025-05-21 16:45:19 +02:00
Johannes Kirschbauer
74ceb95eb7 Feat(inventoryStore): add FlakeInterface protocol 2025-05-21 16:44:28 +02:00
Michael Hoang
f8cf9fa172 Merge pull request 'docs: misc clean up' (#3735) from push-kpzwvynvlszo into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3735
2025-05-21 14:12:47 +00:00
Michael Hoang
5bc6126873 docs: misc clean up 2025-05-22 00:01:01 +10:00
Michael Hoang
f9779322d0 gitignore: drop superfluous **/ 2025-05-22 00:01:01 +10:00
kenji
04ca72f5b5 Merge pull request 'pkgs/clan: Clean select symlink up' (#3734) from kenji/clan-core:ke-fix-clan-cli into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3734
Reviewed-by: lassulus <clanlol@lassul.us>
2025-05-21 13:08:21 +00:00
a-kenji
5be449740e pkgs/clan: Clean select symlink up
If the symlink is not cleaned up this will break builds of the clan cli
from flakes with path references.
2025-05-21 14:18:26 +02:00
lassulus
5dc3d27fb4 Merge pull request 'clan-cli: split backups into cli and lib' (#3733) from clan_lib_backups into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3733
2025-05-21 12:16:02 +00:00
DavHau
c45c94e045 GUI: add credentials page (vars)
add it to machine details
2025-05-21 11:47:04 +00:00
lassulus
66f35ae637 clan-cli: split backups into cli and lib 2025-05-21 13:46:35 +02:00
hsjobeki
1c0b383183 Merge pull request 'Fix: don't try to persist 'inventory.instances'' (#3731) from hsjobeki/clan-core:fix-2 into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3731
2025-05-21 10:36:29 +00:00
lassulus
89edfda887 Merge pull request 'clan-cli: clan_cli.inventory -> clan_lib.inventory' (#3730) from clan_lib_inv into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3730
2025-05-21 10:33:08 +00:00
lassulus
ce00c63721 clan-cli: clan_cli.bwrap -> clan_lib.bwrap 2025-05-21 12:06:38 +02:00
lassulus
80229c5e77 clan-cli: clan_cli.inventory -> clan_lib.inventory 2025-05-21 12:06:38 +02:00
Johannes Kirschbauer
39b81a17c3 Fix: don't try to persist 'inventory.instances' 2025-05-21 11:42:29 +02:00
hsjobeki
5b80204107 Merge pull request 'Update UI to Node 22 and update dependencies' (#3729) from feat/update-ui-dependencies into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3729
2025-05-21 09:03:27 +00:00
hsjobeki
55b032094f Merge pull request 'Refactor(clan_lib): move serde tests next to serde module' (#3728) from hsjobeki/clan-core:chores-1 into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3728
2025-05-21 08:15:11 +00:00
Johannes Kirschbauer
73ab00ac7c chore(clan_lib) add api.serde tests for typed_dict 2025-05-21 10:01:27 +02:00
Johannes Kirschbauer
25e3d27bf2 docs: add doc-string to api serde utilities 2025-05-21 10:00:42 +02:00
Johannes Kirschbauer
d9e4c93509 Refactor(clan_lib): move serde tests next to serde module 2025-05-21 09:36:00 +02:00
hsjobeki
15f0ea616c Merge pull request 'Refactor(docs): consistent structure across references & fix broken cli links' (#3724) from hsjobeki/clan-core:docs-3 into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3724
2025-05-21 07:23:16 +00:00
Johannes Kirschbauer
3285efa55d docs: exclude options that are not modules from clan.core submodule index 2025-05-21 09:11:18 +02:00
clan-bot
a3078f4e13 Merge pull request 'Update Clan Core for Checks' (#3727) from update-clan-core-for-checks into main 2025-05-21 03:02:07 +00:00
clan-bot
513d085f59 Update pinned clan-core for checks 2025-05-21 02:52:08 +00:00
Mic92
4eac7ad86d Merge pull request 'docs/macos: replace duplicate section' (#3725) from docs-fix into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3725
2025-05-20 16:53:17 +00:00
Mic92
bfe158c9fa Merge pull request 'fix sudo in clan flash when restoring auto-updates' (#3717) from restore-automount into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3717
2025-05-20 16:49:39 +00:00
Johannes Kirschbauer
188e6d5d16 Docs: add links to submodules 2025-05-20 18:49:35 +02:00
Johannes Kirschbauer
b1054e2ad2 Fix(docs): rename reference to clan.core 2025-05-20 18:49:35 +02:00
Johannes Kirschbauer
db666ce2ce Refactor(docs): consistent structure across references 2025-05-20 18:49:35 +02:00
Johannes Kirschbauer
1c2ee49047 docs: replace remote url by local file links to allow for checking 2025-05-20 18:49:35 +02:00
Johannes Kirschbauer
53dcc4e332 docs: replace outdates reference links to 'guides' in the cli 2025-05-20 18:49:35 +02:00
Johannes Kirschbauer
a9ed972834 docs: fix clan-core should be called clan.core
Consistent with the module name
2025-05-20 18:49:35 +02:00
Johannes Kirschbauer
c34b693a64 docs: consistent clan-core overview 2025-05-20 18:49:35 +02:00
Jörg Thalheim
6dab14c9d4 docs/macos: replace duplicate section 2025-05-20 18:48:36 +02:00
renovate[bot]
0c099f16bb chore(deps): lock file maintenance 2025-05-20 15:30:13 +00:00
hsjobeki
38159d85f7 Merge pull request 'feat(docs,api): expose inventory.instances interface' (#3721) from hsjobeki/clan-core:inventory-services-1 into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3721
2025-05-20 15:29:14 +00:00
Johannes Kirschbauer
228cdfd0e9 Chore(nix_models): update models after refactoring for inventory.instances 2025-05-20 17:10:43 +02:00
hsjobeki
bbeef3d76a Merge pull request 'feat(clanServices): add 'readme' to module manifest' (#3723) from hsjobeki/clan-core:manifest-2 into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3723
2025-05-20 15:07:34 +00:00
Johannes Kirschbauer
d8cb43ae8d feat(clanServices): add 'readme' to module manifest 2025-05-20 17:00:53 +02:00
Brian McGee
d50eac6525 feat(ui): upgrade to nodejs_22 and update dependencies 2025-05-20 15:45:17 +01:00
lassulus
3b29c0e006 Merge pull request 'ADR: init 05-deployment-parameters' (#3722) from adr-deployment into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3722
2025-05-20 14:26:59 +00:00
lassulus
e5f38db60f ADR: init 05-deployment-parameters 2025-05-20 16:22:52 +02:00
lassulus
c624163581 Merge pull request 'move templates, custom_logger, async_run and jsonrpc to clan_lib' (#3720) from clan_lib_misc into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3720
2025-05-20 14:20:44 +00:00
Johannes Kirschbauer
40e34d9307 feat(docs,api): expose inventory.instances interface" 2025-05-20 16:10:32 +02:00
Johannes Kirschbauer
6863ce136f chore(inventory/tags): remove unsupported settings from tags interface 2025-05-20 16:10:32 +02:00
Johannes Kirschbauer
bd92170bed feat(classgen): add 'instances' as top level key 2025-05-20 16:10:32 +02:00
Johannes Kirschbauer
d842a13789 feat(classgen): defer NotRequired type wrapper 2025-05-20 16:10:32 +02:00
Johannes Kirschbauer
42de68966b feat(classgen): add support for unknown types 2025-05-20 16:10:25 +02:00
lassulus
68183634bb clan_cli flake_test: fix on non sandboxed runs 2025-05-20 16:08:02 +02:00
lassulus
3457542871 clan-cli: clan_cli.templates -> clan_lib.templates 2025-05-20 16:08:02 +02:00
Johannes Kirschbauer
f6544d1cda Feat(jsonschema): convert deferredModule to unknown 2025-05-20 15:48:28 +02:00
lassulus
131c7ea263 Merge pull request 'ADR: add decision for nix-select' (#3452) from select-adr into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3452
Reviewed-by: hsjobeki <hsjobeki@gmail.com>
2025-05-20 13:43:31 +00:00
lassulus
6b3509c3b1 ADR: add decision for nix-select 2025-05-20 15:26:53 +02:00
lassulus
ec19ef1ec5 clan-cli: clan_cli.custom_logger -> clan_lib.custom_logger 2025-05-20 15:08:02 +02:00
lassulus
00a439999b clan-cli: clan_cli.async_run -> clan_lib.async_run 2025-05-20 15:05:11 +02:00
lassulus
7e63be2976 clan-cli: clan_cli.jsonrpc -> clan_lib.jsonrpc 2025-05-20 15:05:11 +02:00
lassulus
c059eb37ea Merge pull request 'clan-cli: clan_cli.locked_open -> clan_lib.locked_open' (#3719) from clan_lib_locked_open into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3719
2025-05-20 13:01:12 +00:00
lassulus
dc8675fcb6 clan-cli: clan_cli.locked_open -> clan_lib.locked_open 2025-05-20 14:48:50 +02:00
lassulus
545f498881 Merge pull request 'clan-cli: clan_cli.git -> clan_lib.git' (#3718) from clan_lib_git into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3718
2025-05-20 12:46:48 +00:00
lassulus
c55bffa5a5 clan-cli: clan_cli.git -> clan_lib.git 2025-05-20 14:35:14 +02:00
hsjobeki
16112e259c Merge pull request 'Classgen: export field type definitions' (#3715) from hsjobeki/clan-core:inventory-services-1 into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3715
2025-05-20 12:20:07 +00:00
Jörg Thalheim
877107650f fix sudo in clan flash when restoring auto-updates 2025-05-20 14:03:25 +02:00
lassulus
6da64f6f27 Merge pull request 'clan_lib_colors' (#3713) from clan_lib_colors into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3713
2025-05-20 11:59:18 +00:00
Mic92
cdaf0e8c2b Merge pull request 'upload: improve various things' (#3714) from upload into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3714
2025-05-20 11:54:57 +00:00
Mic92
2f370a6d33 Merge pull request 'mypy: ignore clan_lib.nixpkgs' (#3716) from fix-mypy into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3716
2025-05-20 11:51:44 +00:00
Johannes Kirschbauer
027ae49449 Chore(formatter): exclude generated classes file 2025-05-20 13:42:18 +02:00
Johannes Kirschbauer
6989899338 Chore: re-generate nix models 2025-05-20 13:41:55 +02:00
Jörg Thalheim
b05c7469ce upload: hide upload command by default 2025-05-20 13:37:46 +02:00
Jörg Thalheim
c5540941a6 cmd/run: dont run logging code unless we have debugging enabled. 2025-05-20 13:37:46 +02:00
Jörg Thalheim
12a5a0d792 upload: stream tarball rather than read at once 2025-05-20 13:37:46 +02:00
Jörg Thalheim
792826f0cb mypy: ignore clan_lib.nixpkgs 2025-05-20 13:37:46 +02:00
Jörg Thalheim
68854f36ff mypy: ignore clan_lib.nixpkgs 2025-05-20 13:36:18 +02:00
Johannes Kirschbauer
463eaff47c UI: remove unused inventory.ts file 2025-05-20 13:32:13 +02:00
Johannes Kirschbauer
30e74c408c Classgen: export field type definitions 2025-05-20 13:31:47 +02:00
Mic92
af8dd22369 Merge pull request 'add documentation on how to use macOS' (#3712) from macos into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3712
2025-05-20 11:01:10 +00:00
Jörg Thalheim
4f4c44c7d4 add documentation on how to use macOS 2025-05-20 12:56:02 +02:00
Brian McGee
55d1a94947 fix(ui): Exectuting typo in toast message 2025-05-20 11:52:34 +01:00
lassulus
33f3f01e56 clan-cli: clan_cli.colors -> clan_lib.colors 2025-05-20 12:52:12 +02:00
lassulus
d15d135e23 clan_cli mypy: ignore nixpkgs at new location 2025-05-20 12:51:44 +02:00
lassulus
af69a0d5c3 Merge pull request 'clan-cli: clan_cli.dirs -> clan_lib.dirs' (#3706) from clan_lib_dirs into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3706
2025-05-20 10:34:40 +00:00
lassulus
3bdf296205 clan-cli: clan_cli.dirs -> clan_lib.dirs 2025-05-20 12:17:52 +02:00
lassulus
f5e9f305d0 clan-cli: clan_cli.dirs -> clan_lib.dirs 2025-05-20 12:08:30 +02:00
Mic92
050804a917 Merge pull request 'Fix deploying to macOS as root' (#3700) from nix-darwin into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3700
2025-05-20 09:08:04 +00:00
Jörg Thalheim
56cc7977f3 use absolute path to darwin-rebuild to workaround missing login shells used on macOS 2025-05-20 10:56:44 +02:00
Jörg Thalheim
5195a049a1 add workaround for nix-copy on darwin 2025-05-20 10:56:44 +02:00
Jörg Thalheim
52ea2ea352 host.run: improve quoting of bash command 2025-05-20 10:56:44 +02:00
Mic92
7f3459d178 Merge pull request 'Stop warning about inventory.instances' (#3710) from stabilize-inventory into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3710
2025-05-20 08:41:40 +00:00
Jörg Thalheim
494ea192e7 drop deploy_as_root check
We haven't documented macOS support yet, so I don't expect many people
using it yet. Now that the pull request is merged probably most people
starting with darwin-nix will be on that commit anyway, so it's not
worth the check, given that the sudo version doesn't work very well.
2025-05-20 10:38:54 +02:00
Jörg Thalheim
6c42baca23 bump nix-darwin 2025-05-20 10:25:01 +02:00
Mic92
f18b219d0c Merge pull request 'fix logger no longer applying to clan_lib' (#3709) from logging into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3709
2025-05-20 08:21:20 +00:00
Jörg Thalheim
72073494a1 Stop warning about inventory.instances
we now marked inventory.modules as deprecated, so this new api can be no
longer under development
2025-05-20 10:12:34 +02:00
Jörg Thalheim
fb19b7c9de custom_logger/print_trace: no longer check for run_no_stdout
this function was removed.
2025-05-20 10:09:20 +02:00
Jörg Thalheim
88a3f0a6a7 logger: only get file path if actually requested
this is a rather expensive operation.
2025-05-20 10:09:20 +02:00
Jörg Thalheim
ccf8e99a98 fix logger no longer applying to clan_lib
with moving code to clan_lib we are missing logging for some output. To
fix this we remove the module scoping from the logger and just set one
global logger.
2025-05-20 10:09:20 +02:00
DavHau
a22180f980 GUI/vars: refactor vars step 2025-05-20 11:32:32 +07:00
clan-bot
131afefe3a Merge pull request 'Update Clan Core for Checks' (#3707) from update-clan-core-for-checks into main 2025-05-20 03:01:39 +00:00
clan-bot
d880634d22 Update pinned clan-core for checks 2025-05-20 02:52:07 +00:00
lassulus
dc4aae643a Merge pull request 'clan-cli: clan_cli.cmd -> clan_lib.cmd' (#3705) from clan_lib_cmd into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3705
2025-05-19 17:19:55 +00:00
lassulus
1df5dfe6d3 clan-cli: clan_cli.cmd -> clan_lib.cmd 2025-05-19 19:07:24 +02:00
lassulus
0f6e5499f6 Merge pull request 'fix(cli/machines/deploy): warn on local input' (#3687) from tennox/clan-core:warn-local-input into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3687
Reviewed-by: lassulus <clanlol@lassul.us>
2025-05-19 16:58:33 +00:00
lassulus
7df15c67d3 Merge pull request 'clan-cli: move clan_cli.nix to clan_lib.nix' (#3704) from clan_lib_nix into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3704
2025-05-19 16:56:10 +00:00
lassulus
b10682c7f7 clan-cli: move clan_cli.nix to clan_lib.nix 2025-05-19 18:40:36 +02:00
lassulus
43d9fdc77e Merge pull request 'clan_lib flake: fix handling garbage collected store paths as cached values' (#3699) from select-path-fix into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3699
2025-05-19 16:01:31 +00:00
lassulus
9f27e21bd4 clan_lib flake: remove redundant store definition 2025-05-19 17:49:12 +02:00
lassulus
2129790bda clan_lib flake: test if cache gets invalidated with nix gc 2025-05-19 17:48:46 +02:00
lassulus
bd70f4cff2 clan_lib flake: get select output without nixpkgs 2025-05-19 16:11:56 +02:00
lassulus
fb5839f929 clan_lib flake: get store path from NIX_STORE_DIR 2025-05-19 16:11:56 +02:00
lassulus
76e4ecb6d5 clan_lib flake: check the whole tree even if we fetched all keys before
This is needed because nix garbage collection can remove store paths. So
the cache can become invalid because a path needs to be rebuild.
2025-05-19 16:11:56 +02:00
DavHau
dc2abb1352 UI: add vars step to installation flow 2025-05-19 19:11:19 +07:00
DavHau
93b23a38dd clan-app/devshell: add script to launch qemu VMs for testing 2025-05-19 18:37:09 +07:00
DavHau
bdddcd05cc Merge pull request 'clanModules/wifi: refactor to use NetworkManager' (#3701) from DavHau/clan-core:wifi into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3701
2025-05-19 11:33:22 +00:00
DavHau
1f33f7aad4 clanModules/wifi: refactor to use NetworkManager
Neither iwd, nor wpa_supplicant seem to be very reliable on some machines I tested.
Also NetworkManager has generally the best GUI support so it makes sense to build ontop of it
2025-05-19 18:14:37 +07:00
pinpox
5dbfca0364 Merge pull request 'docs: add glossary' (#3698) from docs-glossary into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3698
2025-05-19 09:47:39 +00:00
pinpox
6525b591e2 docs: add glossary 2025-05-19 11:41:00 +02:00
Mic92
79e615b5b1 Merge pull request 'machines/upload: start to use builtin sudo' (#3697) from builtin-sudo into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3697
2025-05-19 09:30:40 +00:00
Jörg Thalheim
9405e40d00 machines/upload: start to use builtin sudo 2025-05-19 11:18:15 +02:00
clan-bot
cdd9b8a3e4 Merge pull request 'Update Clan Core for Checks' (#3696) from update-clan-core-for-checks into main 2025-05-19 03:01:50 +00:00
clan-bot
e4ffae84a7 Update pinned clan-core for checks 2025-05-19 02:52:08 +00:00
Mic92
df611dd3db Merge pull request 'move flake test into flake folder' (#3682) from flake-in-lib into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3682
2025-05-18 20:13:14 +00:00
lassulus
96feb5bd26 clan_lib: move test_flake_caching into clan_lib flake folder 2025-05-18 21:35:56 +02:00
hsjobeki
989fdbca49 Merge pull request 'Docs: unify 'manual' with 'guides'' (#3693) from hsjobeki/clan-core:docs-structure into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3693
2025-05-18 18:52:40 +00:00
Johannes Kirschbauer
88f7b3410e Docs: unify 'manual' with 'guides' folder
This is one of the final steps towards strictly following
https://diataxis.fr/
2025-05-18 20:40:40 +02:00
Johannes Kirschbauer
ef29e62d9b Docs: update some references to contributing 2025-05-18 20:31:49 +02:00
hsjobeki
a9f746c1d3 Merge pull request 'Docs: move {contributing, disk, mesh, backups} into guides' (#3692) from hsjobeki/clan-core:docs-structure into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3692
2025-05-18 16:59:51 +00:00
Johannes Kirschbauer
b36d641e71 Docs: move {flake, facts-vars} migration guides into 'migrations' folder 2025-05-18 18:56:03 +02:00
Johannes Kirschbauer
04146eeac9 Docs: remove useless repo-layout file 2025-05-18 18:49:29 +02:00
Johannes Kirschbauer
3051763cbf Docs: remove dafts folder 2025-05-18 18:48:23 +02:00
Johannes Kirschbauer
df5010084f Docs: create migrations subfolder in guides 2025-05-18 18:46:36 +02:00
Johannes Kirschbauer
e9278ceaba Docs: place reference to new ClanModules on index page 2025-05-18 18:40:10 +02:00
Johannes Kirschbauer
0261a954de Docs: move 'getting-started' into guides section 2025-05-18 18:35:11 +02:00
Johannes Kirschbauer
ad5bbdbee0 Docs: move {contributing, disk, mesh, backups} into guides 2025-05-18 18:22:32 +02:00
clan-bot
7f62a7993a Merge pull request 'Update Clan Core for Checks' (#3688) from update-clan-core-for-checks into main 2025-05-18 03:01:46 +00:00
clan-bot
04e842a2a5 Update pinned clan-core for checks 2025-05-18 02:52:08 +00:00
Manu [tennox]
3986200c74 fix(cli/machines/deploy): warn on local input
see: https://git.clan.lol/clan/clan-core/issues/3112
2025-05-17 15:30:32 +01:00
clan-bot
b27d6bb29b Merge pull request 'Update Clan Core for Checks' (#3685) from update-clan-core-for-checks into main 2025-05-17 03:01:12 +00:00
clan-bot
ed72abcc5c Update pinned clan-core for checks 2025-05-17 02:51:35 +00:00
renovate[bot]
64a146400f Update treefmt-nix digest to 42dd928 2025-05-17 00:50:18 +00:00
renovate[bot]
2d665e876e Update data-mesher digest to 826a1ab 2025-05-16 18:50:12 +00:00
lassulus
fb746b874c clan_lib: move clan_lib.flake.flake to clan_lib.flake 2025-05-16 19:28:36 +02:00
hsjobeki
00eac81c2f Merge pull request 'Refactor(cli): name set_inv_machine back to set_machine' (#3681) from hsjobeki/clan-core:chores-2 into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3681
2025-05-16 16:23:51 +00:00
Johannes Kirschbauer
0b404b9637 Fix: typing cast dataclass_type into type explizitly 2025-05-16 18:11:46 +02:00
Johannes Kirschbauer
6a6dd8ad2a Fix: missing recipient should print a message 2025-05-16 18:09:53 +02:00
Johannes Kirschbauer
2e2335a922 Fix(cli/machines/list): make listing machines safer 2025-05-16 18:05:49 +02:00
Johannes Kirschbauer
d5d7cba6a5 Fix(cli/state):_Make listing state folders more safe 2025-05-16 18:05:08 +02:00
Johannes Kirschbauer
a5d561b996 Fix(cli/dirs): properly import urllib.parse module 2025-05-16 18:05:08 +02:00
Johannes Kirschbauer
6b08527929 Fix(cli/vars): log.info; since machine is unbound in this context 2025-05-16 18:05:08 +02:00
Johannes Kirschbauer
211ca59441 Fix: typing in async_run 2025-05-16 18:05:08 +02:00
Johannes Kirschbauer
29811cd0dc Refactor(cli): name set_inv_machine back to set_machine
We don't want to leak information about our internals
Such as 'inv' meaning 'inventory' this is not important from the outside
2025-05-16 18:05:07 +02:00
Johannes Kirschbauer
e4a6cbc7e3 Refactor: rename api set_inv_machine parameter to 'machines,update' 2025-05-16 17:57:40 +02:00
hsjobeki
1bcf5a82a6 Merge pull request 'refactor: move clan_cli.error to clan_lib.error' (#3677) from hsjobeki/clan-core:chores-1 into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3677
2025-05-16 15:17:41 +00:00
Johannes Kirschbauer
1adcada568 Fix: dynamically import clan_cli in flake methods
This is a temporary workaround to solve cyclic imports all these modules should be moved to clan_lib
soon afterwards
2025-05-16 17:02:58 +02:00
Mic92
80606274ed Merge pull request 'installation: put use_tor option in right place' (#3680) from installation into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3680
2025-05-16 14:43:17 +00:00
hsjobeki
fa270cf74c Merge pull request 'Docs: init migration guide for clanServices' (#3679) from service-docs into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3679
2025-05-16 14:39:22 +00:00
Johannes Kirschbauer
9221231e89 docs: move authoring guides into guides subfolder 2025-05-16 16:33:39 +02:00
Jörg Thalheim
74f9ee4326 machines.eval_nix: remove unused refresh parameter 2025-05-16 16:31:25 +02:00
Jörg Thalheim
7d6ddc5e59 installation: put use_tor option in right place
we would always disable tor, even if enabled.
2025-05-16 16:18:25 +02:00
Johannes Kirschbauer
868db1e6f3 Docs: init migration guide for clanServices 2025-05-16 16:15:51 +02:00
Johannes Kirschbauer
f210b2f9a6 refactor: move clan_cli.error to clan_lib.error 2025-05-16 16:14:39 +02:00
Mic92
9a642e465f Merge pull request 'upload: don't try to re-create directory if it already exists' (#3678) from upload into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3678
2025-05-16 13:53:05 +00:00
Jörg Thalheim
0c1a48c9d4 upload: don't try to re-create directory if it already exists
This allows bind mounts i.e. needed for preserveration/impermanence
2025-05-16 15:39:09 +02:00
hsjobeki
56f3fd0a45 Merge pull request 'Docs for clan service options' (#3670) from service-docs into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3670
2025-05-16 13:02:28 +00:00
Johannes Kirschbauer
21f87f169a Docs: improve clanService docs 2025-05-16 14:58:46 +02:00
lassulus
829cdcb826 Merge pull request 'clan_cli: move flake class to clan_lib' (#3676) from flake-in-api into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3676
2025-05-16 12:00:00 +00:00
lassulus
3dc41f7d5f clan_cli: move flake class to clan_lib 2025-05-16 13:38:47 +02:00
hsjobeki
f68b372268 Merge pull request 'Refactor: replace direct references to inventory' (#3674) from hsjobeki/clan-core:chores-1 into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3674
2025-05-16 10:43:24 +00:00
lassulus
35bceac822 Merge pull request 'clan_cli flake: get selectLib as path: as well' (#3675) from select-as-path into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3675
2025-05-16 10:22:24 +00:00
lassulus
2892bbe93e clan_cli flake: get selectLib as path: as well
This is needed so older nix versions can get select in a pure way. Since
non path: paths can never be pure on older nix versions
2025-05-16 11:37:22 +02:00
Johannes Kirschbauer
c43d8fa958 Refactor: replace direct references to inventory
Deprecated. Inventory should be accessed via InventoryStore {read(),write(),...}
2025-05-16 11:30:41 +02:00
pinpox
8220c32142 Add clanServices to docs
Renders the documentation for clanServices. Options for the modules are
extracted and rendered the same way as for the existing clanModules.

Additionally tweaks the typography for the documentation of options
slightly
2025-05-16 11:29:50 +02:00
hsjobeki
13fa74b8cd Merge pull request 'clan-cli: Unify list_machines and use flake caching' (#3673) from Qubasa/clan-core:fix_ui_stuff into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3673
2025-05-16 09:08:59 +00:00
Qubasa
d765f1078b clan-cli: Unify list_machines and use flake caching 2025-05-16 10:47:49 +02:00
renovate[bot]
37180ff2af chore(deps): update nix-darwin digest to 8817b00 2025-05-16 03:40:10 +00:00
clan-bot
766c11f900 Merge pull request 'Update Clan Core for Checks' (#3671) from update-clan-core-for-checks into main 2025-05-16 03:00:46 +00:00
clan-bot
3841b8ea8c Update pinned clan-core for checks 2025-05-16 02:51:34 +00:00
renovate[bot]
bd5c33041d chore(deps): update data-mesher digest to 7afcd6f 2025-05-15 17:50:25 +00:00
renovate[bot]
d36b6f08fe chore(deps): update nixpkgs digest to b1bebd0 2025-05-15 17:30:26 +00:00
Mic92
dc424c6970 Merge pull request 'Merge clan-app and ui environment into one' (#3661) from feat/web-ui-process-compose into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3661
Reviewed-by: brianmcgee <brian@bmcgee.ie>
2025-05-15 13:19:31 +00:00
Jörg Thalheim
7f63920933 clan-app/devshell: remove duplicate python3
we already get python3 from the frontend.
2025-05-15 15:03:35 +02:00
Jörg Thalheim
a484f2a7fc fix references in reload-python-api script 2025-05-15 15:03:05 +02:00
Jörg Thalheim
ed3f8f85c8 remove generated files from git. 2025-05-15 14:56:04 +02:00
Jörg Thalheim
9e8dc584eb clan-app/README: more robust process-compose command
I had port conflicts with tcp, so let's use unix socket by default.
Also added --keep-project to make trouble-shouting easier in case
something is wrong.
2025-05-15 14:56:04 +02:00
Jörg Thalheim
146f183256 clan-app/ui: remove unused .envrc
this has been merged into clan-app's envrc
2025-05-15 14:56:04 +02:00
Jörg Thalheim
cc20e0bf35 clan-ui: remove intermediate app directory 2025-05-15 14:56:04 +02:00
Jörg Thalheim
876027ea02 clan-app: filter out unrelated files from build
this should help for faster ci builds.
2025-05-15 14:43:51 +02:00
Jörg Thalheim
34349ab4c1 process-compose: simplify environment
we already are in the right devshell for clan-app, so we no longer need
direnv exec. Instead of depending on implicit enviroment variables we
can run change the directory based on the git root as this is easier to
read and follow.
2025-05-15 14:43:51 +02:00
Jörg Thalheim
a2bc237d79 devshells.clan-app: require less environment variables
also sort shellHook by component
2025-05-15 14:43:51 +02:00
Jörg Thalheim
3b5f1f2c5c rename devshells.ui to clan-app 2025-05-15 14:15:59 +02:00
Jörg Thalheim
2561e3e4d1 rename ui to clan-app and move clan-app one layer up 2025-05-15 14:15:59 +02:00
renovate[bot]
180e84d9e9 chore(deps): update dependency @types/node to v20.17.47 2025-05-15 11:10:14 +00:00
Mic92
cc1f78058b Merge pull request 'feat: use process-compose to run ui dev environment' (#3646) from feat/web-ui-process-compose into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3646
2025-05-15 11:08:37 +00:00
Jörg Thalheim
6159456024 process-compose: integrate with direnv 2025-05-15 13:01:36 +02:00
Brian McGee
00ee0d807a feat: use process-compose to run ui dev environment 2025-05-15 12:00:27 +01:00
Brian McGee
78475e5a82 fix: move vendoring of nixpkgs and select into root devshell 2025-05-15 12:00:26 +01:00
Brian McGee
c26cc9503c feat: group ui related packages under a ui directory 2025-05-15 12:00:24 +01:00
Mic92
c50cf54e33 Merge pull request 'clan-app: set title and icon' (#3658) from clan-app-title into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3658
2025-05-15 10:42:06 +00:00
Jörg Thalheim
3eb8af34fc clan-app: prepare icon support on linux
For some reason the icon is not shown when using the gtk backend but at
least the API calls look correct.
2025-05-15 12:36:30 +02:00
Jörg Thalheim
172d571804 clan-app: set title 2025-05-15 12:36:24 +02:00
Jörg Thalheim
e337b9997c webview-lib: extend to support setting icons on Linux 2025-05-15 12:36:11 +02:00
Mic92
f436d91711 Merge pull request 'chore(deps): update data-mesher digest to ca961db' (#3655) from renovate/data-mesher-digest into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3655
2025-05-15 10:18:13 +00:00
Mic92
9a2a72132d Merge pull request 'chore(deps): update nix-darwin digest to b6fff20' (#3653) from renovate/nix-darwin-digest into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3653
2025-05-15 10:18:03 +00:00
hsjobeki
358ce9e179 Merge pull request 'Chore: remove spurious module.nix' (#3657) from hsjobeki/clan-core:chores-1 into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3657
2025-05-15 10:15:29 +00:00
Johannes Kirschbauer
e4ba4621d0 Chore: remove spurious module.nix 2025-05-15 12:08:44 +02:00
renovate[bot]
25aa561cb5 chore(deps): update nix-darwin digest to b6fff20 2025-05-15 10:00:22 +00:00
renovate[bot]
9742f7516a chore(deps): update data-mesher digest to ca961db 2025-05-15 10:00:20 +00:00
renovate[bot]
8d7c938138 chore(deps): update nixpkgs digest to 2e1da60 2025-05-15 09:30:30 +00:00
renovate[bot]
d7bf049058 chore(deps): update treefmt-nix digest to e758f27 2025-05-15 09:10:13 +00:00
Mic92
f91e0a99d2 Merge pull request 'Add multiline-hidden-prompt' (#3632) from multiline-hidden-prompt into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3632
Reviewed-by: hsjobeki <hsjobeki@gmail.com>
Reviewed-by: lopter <louis@opter.org>
2025-05-15 08:10:34 +00:00
lassulus
4ea40fe8a3 clan-cli vars upload: create dir if provided 2025-05-15 06:42:24 +00:00
clan-bot
c82189d927 Merge pull request 'Update Clan Core for Checks' (#3652) from update-clan-core-for-checks into main 2025-05-15 03:01:17 +00:00
clan-bot
03ce651de6 Update pinned clan-core for checks 2025-05-15 02:51:34 +00:00
renovate[bot]
710258094b chore(deps): update disko digest to ec7c109 2025-05-15 02:40:09 +00:00
Mic92
ebb9da663a Merge pull request 'fix ssh master on macos' (#3649) from ssh-master into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3649
2025-05-14 22:19:51 +00:00
Jörg Thalheim
b383e672dd fix ssh master on macos 2025-05-14 20:30:36 +02:00
Jörg Thalheim
6053d9631f prompt: handle KeyboardInterrupt more gracefully 2025-05-14 19:53:36 +02:00
Jörg Thalheim
1ff5d64a78 do not instantiate vars_generators several times
We should really not have any property that has side effects i.e.
spawning processes.
2025-05-14 19:53:36 +02:00
Jörg Thalheim
d397c8ad39 add multiline-hidden prompt for both ui and cli 2025-05-14 19:53:36 +02:00
hsjobeki
974c3f9b09 Merge pull request 'feat(clanModules): add deprecation feature that generates a warning if the module is used' (#3648) from hsjobeki/clan-core:persistence-1 into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3648
2025-05-14 15:13:51 +00:00
hsjobeki
90b0e811a4 Merge pull request 'clan-app: draw header above other elements' (#3647) from fix-header into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3647
2025-05-14 15:10:39 +00:00
Johannes Kirschbauer
ec6a86f8ef clanModules/wifi: deprecate in favor of inventory.instances 2025-05-14 17:08:17 +02:00
Johannes Kirschbauer
9edc3fb881 feat(clanModules): add deprecation feature that generates a warning if the module is used 2025-05-14 17:06:58 +02:00
hsjobeki
d5c77cda5b Merge pull request 'refactor(list/machines): use InventoryStore to interact with data"' (#3645) from hsjobeki/clan-core:persistence-1 into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3645
2025-05-14 15:03:48 +00:00
lassulus
d019b3b57d clan-app: draw header above other elements 2025-05-14 17:01:46 +02:00
pinpox
2b699e6e81 Merge pull request 'Restore old admin module, with deprecation warning' (#3639) from admin-module-warning into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3639
2025-05-14 14:25:13 +00:00
pinpox
0e1831d0f4 add back old module for compatibility 2025-05-14 16:19:55 +02:00
Johannes Kirschbauer
e1f0590eac refactor(list/machines): use InventoryStore to interact with data" 2025-05-14 16:18:12 +02:00
Johannes Kirschbauer
90232977e2 chore: remove unused iwd python module 2025-05-14 16:17:03 +02:00
Johannes Kirschbauer
5b1b74e06f refactor(lib/persist): rename 'patch' to 'apply_patch' 2025-05-14 16:16:16 +02:00
Johannes Kirschbauer
800313c2a0 feat(lib/InventoryStore): add read method 2025-05-14 16:10:49 +02:00
renovate[bot]
0326476d4b chore(deps): update disko digest to 490c0d6 2025-05-14 13:10:09 +00:00
hsjobeki
c08af894b9 Merge pull request 'refactor(cli/inventory): move functions and tests into clan_lib' (#3641) from hsjobeki/clan-core:persistence-1 into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3641
2025-05-14 11:47:37 +00:00
Johannes Kirschbauer
5e7b34a4c7 refactor(clan/lib): move tests for persist.util into clan_lib 2025-05-14 13:35:27 +02:00
hsjobeki
3dbad7a55b Merge pull request 'fix(wifi): register new modules in clan.modules NOT inventory.modules' (#3643) from hsjobeki/clan-core:fixes-module into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3643
2025-05-14 11:22:49 +00:00
Johannes Kirschbauer
2f073470df refactor(modules/admin): consistent clan.module registering 2025-05-14 13:16:36 +02:00
Johannes Kirschbauer
97a229a438 fix(wifi): register new modules in clan.modules NOT inventory.modules 2025-05-14 12:51:15 +02:00
Mic92
8162933711 Merge pull request 'ui: Remove garbage collection thread' (#3636) from remove-gc into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3636
2025-05-14 10:19:44 +00:00
Johannes Kirschbauer
7e92308b70 refactor(lib/inventory): use util functions from clan_lib 2025-05-14 12:15:37 +02:00
Johannes Kirschbauer
f8540de48e refactor(cli/inventory): remove unncessary init_inventory function 2025-05-14 12:15:36 +02:00
pinpox
742fbd111f Add warning for deprecated admin module 2025-05-14 12:11:41 +02:00
Mic92
8b5cfb48c1 Merge pull request 'update cli vars on CLAN_CLI_PERF' (#3640) from clan-cli-perf into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3640
2025-05-14 10:11:25 +00:00
clan-bot
b5b26a6d13 Merge pull request 'Update Clan Core for Checks' (#3631) from update-clan-core-for-checks into main 2025-05-14 10:11:00 +00:00
Jörg Thalheim
2e4d6b0b2e update cli vars on CLAN_CLI_PERF 2025-05-14 12:07:38 +02:00
clan-bot
bf88aed318 Update pinned clan-core for checks 2025-05-14 10:01:10 +00:00
Jörg Thalheim
a97ed62e2a clan-app: decode function arguments ahead of launching a thread.
If something goew wrong here we rather want to crash the app and get bug
reports.
2025-05-14 11:52:55 +02:00
kenji
67406ef6cd Merge pull request 'modules/wifi: migrate to clan service' (#3638) from kenji/clan-core:ke-migrate-wifi into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3638
2025-05-14 09:52:15 +00:00
a-kenji
bbb4a9b5fb modules/wifi: migrate to clanServices 2025-05-14 09:52:15 +00:00
Jörg Thalheim
56ffd896dc clan-app: don't raise exception when we use ctr-c 2025-05-14 11:41:16 +02:00
Jörg Thalheim
693f404f4c api_wrapper: more descriptive parameter names
also only decode the op_key once
2025-05-14 11:39:25 +02:00
Jörg Thalheim
043e7fbb16 bind_jsonschema_api: reduce method nesting 2025-05-14 11:39:25 +02:00
hsjobeki
3520ca5ef3 Merge pull request 'docs(adrs): move decision folder into docs to make them publicly visible within docs' (#3633) from hsjobeki/clan-core:docs-2 into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3633
2025-05-14 09:32:57 +00:00
hsjobeki
289c70d884 Merge pull request 'Clan(lib): add persistence layer as inventoryStore' (#3634) from hsjobeki/clan-core:persistence-1 into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3634
2025-05-14 09:28:34 +00:00
Jörg Thalheim
603810da5e make listing/cancelling tasks less nosy in the logs 2025-05-14 10:49:09 +02:00
Jörg Thalheim
d0989cd0f5 remove thread garbage collection 2025-05-14 10:49:09 +02:00
Johannes Kirschbauer
973d7706bd refactor(lib/persist): move WriteInfo class into persistence lib 2025-05-14 10:19:07 +02:00
Johannes Kirschbauer
f722aafc18 chore(cli/inventory): add deprecation note for old python module 2025-05-14 10:18:27 +02:00
Johannes Kirschbauer
d825a3348b docs(adrs): move decision folder into docs to make them publicly visible within docs 2025-05-14 10:06:24 +02:00
Johannes Kirschbauer
a569a7bc7c chore(cli/inventory): remove unused 'default_inventory' 2025-05-14 09:28:06 +02:00
Johannes Kirschbauer
8b957a128f feat(clan_lib): add 'InventoryStore' for persistence 2025-05-14 09:18:55 +02:00
hsjobeki
259ac96bc3 Merge pull request 'Refactor(clan_lib): move nix bound classes out of the cli folder' (#3629) from hsjobeki/clan-core:clan-lib-4 into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3629
2025-05-14 07:14:24 +00:00
Johannes Kirschbauer
c77a3b11a8 Refactor(clan_lib): move nix bound classes out of the cli folder 2025-05-13 18:39:36 +02:00
Mic92
0e50e47f16 Merge pull request 'fix(ui): high cpu because of spinning garbage collection' (#3630) from fix/ui-high-cpu into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3630
2025-05-13 16:38:14 +00:00
Brian McGee
6194c2a625 fix(ui): high cpu because of spinning garbage collection 2025-05-13 17:06:19 +01:00
Mic92
59e1512cfc Merge pull request 'cmd: wait on status after killing process' (#3628) from misc into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3628
2025-05-13 14:29:58 +00:00
Michael Hoang
8e96a8931e Merge pull request 'Revert "disable age-plugin-se for now on aarch64-linuxql"' (#3566) from push-vqkkqnuozxvx into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3566
2025-05-13 14:24:11 +00:00
Jörg Thalheim
b14c27c7bb cmd: wait on status after killing process 2025-05-13 16:18:03 +02:00
Michael Hoang
8a3aacc00c Revert "disable age-plugin-se for now on aarch64-linuxql"
This reverts commit d0ff114f6b.
2025-05-14 00:12:49 +10:00
Jörg Thalheim
5ac4cc8586 tests_secrets_cli: improve assertion message for pgp key 2025-05-13 16:10:54 +02:00
Mic92
84e9835ed2 Merge pull request 'test_ssh_remote: skip whole module at once on macOS' (#3626) from darwin-ssh-remote into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3626
2025-05-13 14:07:42 +00:00
Jörg Thalheim
a62b828120 filter out test files from clan-cli source
this means we can fix test without having to re-run the installation
tests.
2025-05-13 15:55:00 +02:00
Mic92
5d10b7582a Merge pull request 'chore(deps): update nix-darwin digest to f88be00' (#3623) from renovate/nix-darwin-digest into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3623
2025-05-13 13:32:20 +00:00
renovate[bot]
27f44a3662 chore(deps): update nix-darwin digest to f88be00 2025-05-13 13:20:10 +00:00
Mic92
f20f8b365a Merge pull request 'installer: set requireExplicitUpdate' (#3624) from installer into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3624
2025-05-13 13:18:48 +00:00
Jörg Thalheim
78cea7f7c9 test_ssh_remote: skip whole module at once on macOS 2025-05-13 15:18:21 +02:00
Jörg Thalheim
d9075a5d79 installer: set requireExplicitUpdate
We usually don't want to update this system by default.
2025-05-13 15:02:05 +02:00
Luis Hebendanz
09c9c184ab Merge pull request 'clan-app: Fix machine update cancel task' (#3622) from Qubasa/clan-core:fix_cancellation into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3622
2025-05-13 12:19:35 +00:00
Qubasa
daffc95c96 clan-app: Fix machine update cancel task 2025-05-13 14:06:02 +02:00
clan-bot
a12ba8e56f Merge pull request 'Update Clan Core for Checks' (#3621) from update-clan-core-for-checks into main 2025-05-13 12:05:55 +00:00
clan-bot
58fafac958 Update pinned clan-core for checks 2025-05-13 11:55:59 +00:00
Mic92
0f6e084640 Merge pull request 'update-clan-core-for-checks: retry merge after delay' (#3620) from ci-fixes into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3620
2025-05-13 11:54:43 +00:00
Jörg Thalheim
e941f2adde update-clan-core-for-checks: retry merge after delay 2025-05-13 13:51:03 +02:00
Mic92
a3b0c0472a Merge pull request 'update-clan-core-for-checks: use correct pr number' (#3618) from ci-fixes into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3618
2025-05-13 11:45:20 +00:00
Jörg Thalheim
e0c407a8a3 update-clan-core-for-checks: use correct pr number 2025-05-13 13:40:27 +02:00
Mic92
ce1256304c Merge pull request 'lib.filter: allow to name inputs' (#3616) from ci-fixes into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3616
2025-05-13 11:35:54 +00:00
Jörg Thalheim
84c0c7e678 lib.filter: allow to name inputs 2025-05-13 13:31:12 +02:00
Mic92
952859529d Merge pull request 'update-clan-core: fix json syntax' (#3615) from ci-fixes into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3615
2025-05-13 11:15:34 +00:00
Mic92
2e149c7a0e Merge pull request 'fix(data-mesher): default bootstrap nodes' (#3614) from fix/data-mesher-default-bootstrap-nodes into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3614
2025-05-13 11:12:33 +00:00
Jörg Thalheim
6edd804731 update-clan-core: fix json syntax 2025-05-13 13:11:34 +02:00
kenji
cfa966d58c Merge pull request 'docs/index: Surface reference documentation' (#3612) from kenji/clan-core:ke-docs-index into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3612
2025-05-13 10:51:22 +00:00
a-kenji
9f805b9e46 docs/index: Surface reference documentation 2025-05-13 10:51:22 +00:00
Brian McGee
120dac6dbc fix(data-mesher): default bootstrap nodes 2025-05-13 11:48:01 +01:00
Mic92
16b6df18a5 Merge pull request 'update-clan-core: use pr id' (#3611) from ci-fixes into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3611
2025-05-13 10:47:08 +00:00
hsjobeki
eb50278d1e Merge pull request 'Feat(UI/modules): clean up module list styles' (#3591) from hsjobeki/clan-core:ui-fixes-2 into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3591
2025-05-13 10:45:22 +00:00
Mic92
bfc7a74a66 Merge branch 'main' into ci-fixes 2025-05-13 10:42:50 +00:00
hsjobeki
b97177363a Merge pull request 'GUI: fix target IP not always shown' (#3610) from DavHau/clan-core:dave into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3610
2025-05-13 10:41:14 +00:00
Johannes Kirschbauer
217563740e Feat(UI/3d): init 3d prototype 2025-05-13 12:39:16 +02:00
Jörg Thalheim
b116df770c update-clan-core: use pr id 2025-05-13 12:37:02 +02:00
DavHau
e836492a80 merge-after-ci: don't format untracked files 2025-05-13 17:36:05 +07:00
DavHau
3db8b00898 pre-commit: don't format untracked files 2025-05-13 17:36:05 +07:00
DavHau
cbaa765154 GUI: fix target IP not always shown 2025-05-13 17:36:05 +07:00
Mic92
c506692d96 Merge pull request 'docs/devshell: make sure we are in the right directory before symlinking files' (#3609) from ci-fixes into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3609
2025-05-13 10:28:14 +00:00
Mic92
04108ff656 Merge pull request 'Update Clan Core for Checks' (#3608) from update-clan-core-for-checks into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3608
2025-05-13 10:24:45 +00:00
Jörg Thalheim
028a401931 docs/devshell: make sure we are in the right directory before symlinking files 2025-05-13 12:24:20 +02:00
clan-bot
aead181fb7 Update pinned clan-core for checks 2025-05-13 10:05:02 +00:00
Mic92
f512f0a949 Merge pull request 'update-clan-core-for-checks: update pr description' (#3607) from ci-fixes into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3607
2025-05-13 09:22:39 +00:00
Mic92
77d266bdef Merge pull request 'Automated Update: Clan Core' (#3605) from update-clan-core-for-checks into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3605
2025-05-13 09:21:25 +00:00
Jörg Thalheim
d73ff02749 update-clan-core-for-checks: update pr description 2025-05-13 11:18:42 +02:00
clan-bot
afae472e63 Update pinned clan-core for checks 2025-05-13 09:10:09 +00:00
Mic92
0989bbca36 Merge pull request 'update-clan-core-for-checks: use ci bot token for prs' (#3604) from ci-fixes into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3604
2025-05-13 09:09:29 +00:00
Jörg Thalheim
e6f53ac243 update-clan-core-for-checks: use ci bot token for prs 2025-05-13 11:05:06 +02:00
Mic92
c80cb601e0 Merge pull request 'update-clan-core-for-checks: fix head branch' (#3603) from ci-fixes into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3603
2025-05-13 09:00:10 +00:00
Jörg Thalheim
f1a53a1255 update-clan-core-for-checks: fix head branch 2025-05-13 10:52:52 +02:00
Mic92
d197f0f6e7 Merge pull request 'docs/guides: Fix typos in migration guide' (#3602) from kenji-ke-docs-vars-facts-migration-fix into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3602
2025-05-13 08:37:37 +00:00
Mic92
f8a647d181 Merge pull request 'chore(deps): update nixpkgs digest to eaeed95' (#3596) from renovate/nixpkgs-digest into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3596
2025-05-13 08:36:44 +00:00
a-kenji
21aa95b139 docs/guides: Fix typos in migration guide 2025-05-13 10:33:23 +02:00
renovate[bot]
968efb97d4 chore(deps): update nixpkgs digest to eaeed95 2025-05-13 08:30:10 +00:00
Mic92
ee1095a87e Merge pull request 'update-clan-core: use https' (#3600) from mumble-fix into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3600
2025-05-13 08:29:09 +00:00
Jörg Thalheim
573e79322e update-clan-core: use https 2025-05-13 10:18:56 +02:00
Mic92
a123e05557 Merge pull request 'update-clan-core-for-checks: pass GITEA_TOKEN correctly' (#3599) from mumble-fix into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3599
2025-05-13 08:17:44 +00:00
kenji
aac6066e20 Merge pull request 'docs/guides: facts vars migration guide' (#3598) from kenji/clan-core:ke-docs-vars-facts-migration into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3598
2025-05-13 08:10:32 +00:00
a-kenji
14969c5822 docs/guides: facts vars migration guide
Add a migration guide from facts to vars.
2025-05-13 08:10:32 +00:00
Mic92
8fbd465a2e Merge pull request 'Update nix-darwin digest to d642c98' (#3589) from renovate/nix-darwin-digest into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3589
2025-05-13 08:08:55 +00:00
Jörg Thalheim
005f11b00d update-clan-core-for-checks: pass GITEA_TOKEN correctly 2025-05-13 10:06:29 +02:00
renovate[bot]
36bc493a43 chore(deps): update nix-darwin digest to d642c98 2025-05-13 08:00:10 +00:00
Mic92
79271cb41b Merge pull request 'debug update-clan-core-for-checks action' (#3597) from mumble-fix into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3597
2025-05-13 07:55:37 +00:00
Jörg Thalheim
fb11710bdb debug update-clan-core-for-checks action 2025-05-13 09:48:46 +02:00
Mic92
ee8ee2a659 Merge pull request 'fix: Documentation for inventory.tags.nixos option' (#3595) from ginkogruen/clan-core:ginkogruen-patch-1 into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3595
2025-05-13 07:44:26 +00:00
ginkogruen
70b152b548 fix: Documentation for inventory.tags.nixos option
Corrected documentation referencing machines with the machineClass = "darwin" set, when it should be: machineClass = "nixos"
2025-05-12 22:12:43 +00:00
Johannes Kirschbauer
ce774539b7 Feat(UI/modules): clean up module list styles 2025-05-12 20:48:25 +02:00
Luis Hebendanz
6670f2fd50 Merge pull request 'clan-app: Improved UX of handling toasts' (#3588) from Qubasa/clan-core:fix_clan_install into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3588
2025-05-12 17:15:32 +00:00
Qubasa
a834f210a0 clan-app: Improved UX of handling toasts 2025-05-12 18:54:53 +02:00
Mic92
7f0a430ec0 Merge pull request 'checks/update-clan-core-for-checks: provide missing curl' (#3587) from mumble-fix into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3587
2025-05-12 16:28:23 +00:00
hsjobeki
f5700ef742 Merge pull request 'UI: make tasks cancleable' (#3586) from hsjobeki/clan-core:qubasas into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3586
2025-05-12 16:24:45 +00:00
Jörg Thalheim
58b0e21040 checks/update-clan-core-for-checks: provide missing curl 2025-05-12 18:24:31 +02:00
hsjobeki
caaae17dca Merge pull request 'Feat(UI/modules): display more module informations' (#3585) from hsjobeki/clan-core:ui-modules into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3585
2025-05-12 16:21:10 +00:00
Johannes Kirschbauer
98ae22bd1b Chore(UI): update some devDependencies in package.json 2025-05-12 18:18:11 +02:00
Johannes Kirschbauer
ef4806f71c Feat(UI/modules): display more module informations 2025-05-12 18:09:42 +02:00
Mic92
1de7b8cefd Merge pull request 'checks/update-clan-core-for-checks: force push' (#3584) from mumble-fix into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3584
2025-05-12 15:55:00 +00:00
Qubasa
5dff187a32 working fileSelect component 2025-05-12 17:54:10 +02:00
Qubasa
5b2a4cc696 clan-app: Working cancellable tasks 2025-05-12 17:54:10 +02:00
Qubasa
7eac2ce436 clan-app: Add cancellable tasks 2025-05-12 17:54:10 +02:00
Jörg Thalheim
36b72ec436 checks/update-clan-core-for-checks: force push 2025-05-12 17:50:52 +02:00
hsjobeki
a06bd43a1a Merge pull request 'Migrate admin module to clanServices' (#3530) from admin-migrate-service into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3530
2025-05-12 15:48:24 +00:00
Mic92
552ea582d6 Merge pull request 'clan_cli flake select: fix on older nix versions' (#3580) from select-path into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3580
2025-05-12 15:31:13 +00:00
Mic92
2eaebbd1db Merge pull request 'checks/update-clan-core-for-checks: fix typo in git env' (#3583) from Mic92/clan-core:mumble-fix into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3583
2025-05-12 15:02:37 +00:00
Jörg Thalheim
acfc604435 checks/update-clan-core-for-checks: fix typo in git env 2025-05-12 16:58:38 +02:00
Mic92
2bee4a8167 Merge pull request 'Checks/update-clan-core-for-check: add email/name' (#3582) from Mic92/clan-core:mumble-fix into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3582
2025-05-12 14:55:12 +00:00
Jörg Thalheim
0ab296a385 checks/update-clan-core-for-check: add email/name 2025-05-12 16:44:54 +02:00
lassulus
c9812e7682 clan_cli flake select: fix on older nix versions 2025-05-12 16:26:06 +02:00
Johannes Kirschbauer
3c157c4a31 Docs: init empty migration guide with references 2025-05-12 16:13:08 +02:00
Johannes Kirschbauer
ca17b64237 Feat: print better error if module was migrated 2025-05-12 16:12:43 +02:00
Jörg Thalheim
5206366ddf don't run impure checks on main
We need to make sure that these tests already pass in pull requests.
There is often no point running this on main because it's already to
late at this point.
2025-05-12 16:05:52 +02:00
Mic92
17e5f63149 Merge pull request 'clan/vars: Improve help for list subcommand' (#3576) from kenji/clan-core:ke-fix-vars-help into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3576
2025-05-12 14:04:27 +00:00
Mic92
ccb1f08345 Merge pull request 'Fix: remove unused service endpoints from UI' (#3579) from hsjobeki/clan-core:ui-fixes-1 into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3579
2025-05-12 14:04:01 +00:00
Johannes Kirschbauer
a87ab490a3 Fix: update test and docs 2025-05-12 15:54:50 +02:00
pinpox
5d26caa15a Remove admin UI interface 2025-05-12 15:54:50 +02:00
pinpox
d109090bcf Fix warning 2025-05-12 15:54:50 +02:00
pinpox
4ea4876644 Remove unnecessary file 2025-05-12 15:54:50 +02:00
pinpox
8433248c56 disable PAM for SSH check 2025-05-12 15:54:50 +02:00
pinpox
3bdfa7e405 migrate admin module 2025-05-12 15:54:49 +02:00
Johannes Kirschbauer
3bddb26b48 Fix: remove unused service endpoints from UI 2025-05-12 15:52:49 +02:00
Mic92
ef4b5cc9d5 Merge pull request 'checks/mumble: make delays between keyboard clicks more robust' (#3578) from mumble-fix into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3578
2025-05-12 13:39:21 +00:00
Jörg Thalheim
bea10f7bc8 checks/mumble: disable on x86_64-linux for now 2025-05-12 15:32:52 +02:00
Jörg Thalheim
e8608ac830 checks/mumble: make delays between keyboard clicks more robust 2025-05-12 15:10:29 +02:00
kenji
2ecedb6535 Merge pull request 'clan/vars: Fix vars help hyperlink' (#3577) from kenji/clan-core:ke-docs-vars-cli into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3577
2025-05-12 13:08:13 +00:00
a-kenji
a6f17f18a2 clan/vars: Improve help for list subcommand
Closes #3550
2025-05-12 14:57:50 +02:00
a-kenji
96fb6c39f4 clan/vars: Fix vars help hyperlink 2025-05-12 14:55:34 +02:00
hsjobeki
6e26d31ac6 Merge pull request 'Refactor(inventory/constraints): use explizit dependency injections instead of specialArgs' (#3553) from hsjobeki/clan-core:clan-services into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3553
2025-05-12 12:26:45 +00:00
Johannes Kirschbauer
77ec1e9e48 Feat(inventory/manifest): vendor {description, categories} from 'clanModules' 2025-05-12 14:19:04 +02:00
renovate[bot]
ea8b1aa34c chore(deps): lock file maintenance 2025-05-12 14:05:14 +02:00
Mic92
2bd9141d2d Merge pull request 'pinned-clan-core' (#3574) from pinned-clan-core into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3574
2025-05-12 12:02:58 +00:00
Jörg Thalheim
f788313e97 morph: don't depend on clan-core 2025-05-12 13:56:10 +02:00
Jörg Thalheim
89b70ffa6f checks/backup: depend on pinned clan core 2025-05-12 13:52:21 +02:00
Mic92
ed1692574f Merge pull request 'ci/update-clan-core-for-checks: bump gitea-create-pull-request' (#3573) from bump-update-flake into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3573
2025-05-12 11:46:01 +00:00
Jörg Thalheim
1106c50924 ci/update-clan-core-for-checks: bump gitea-create-pull-request 2025-05-12 13:41:16 +02:00
Mic92
e99e47da10 Merge pull request 'use a clan-core snapshots for ci tests' (#3572) from misc-fixes-2 into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3572
2025-05-12 11:26:31 +00:00
Jörg Thalheim
67def050fd use a clan-core snapshots for ci tests
We currently have to re-run our integration tests a lot because they are
depending on the whole repository. This pull request changes locks the
clan-core used for vm tests. This has the caveat that we might not run
the latest NixOS machine of our profiles. On the upside we can test
behaviour against an older clan-core version and capture breakages and
make it backwards compatible. If we actually want to test the latest
version, the PR that changes the exposed flake api, could also bump the
clan-core snapshot.
2025-05-12 13:21:25 +02:00
Jörg Thalheim
c0d2787dee docs/testing: update to latest api 2025-05-12 13:03:06 +02:00
Mic92
ecc327277c 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
Mic92
0064a8bfbc Merge pull request 'Add /bin/sh to bubblewrap sandbox' (#3551) from jfly/clan-core:bin-sh-in-sandbox into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3551
2025-05-12 10:07:56 +00:00
Jörg Thalheim
1e8b9def2a data-mesher: don't set owner for public_key 2025-05-12 12:06:05 +02:00
Jörg Thalheim
f0983ede5e move single dont-depend-on-repo-root check into checks
Doesn't seem to be a pattern yet with a single check.
2025-05-12 12:06:05 +02:00
Jörg Thalheim
10bc9e3e44 vars: improve warnings for non-public secrets 2025-05-12 12:06:05 +02:00
DavHau
556fd8845e Merge pull request 'GUI/machines: enable grid view by default' (#3570) from DavHau/clan-core:dave into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3570
2025-05-12 08:52:03 +00:00
DavHau
fab079af71 GUI/machines: enable grid view by default 2025-05-12 15:41:31 +07:00
DavHau
0370c1cf02 Merge pull request 'vars: cleanup sops file module' (#3569) from DavHau/clan-core:dave into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3569
2025-05-12 08:40:35 +00:00
DavHau
aa557f3a96 vars: cleanup sops file module 2025-05-12 15:30:23 +07:00
DavHau
e8699e68b5 Merge pull request 'gui/vars: fix vars screen doesn't appear on update' (#3567) from DavHau/clan-core:dave into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3567
2025-05-12 07:23:51 +00:00
hsjobeki
f8f31d430d Merge pull request 'Docs: update 'clan.service' examples' (#3568) from hsjobeki/clan-core:docs-1 into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3568
2025-05-12 07:23:41 +00:00
DavHau
3d345e0bca gui/vars: fix vars screen doesn't appear on update 2025-05-12 13:52:16 +07:00
Michael Hoang
80711fcf72 Merge pull request 'cli: allow age-plugin-1p' (#3565) from push-uzmrpnklrmxw into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3565
2025-05-12 06:47:42 +00:00
Michael Hoang
35684090e3 cli: allow age-plugin-1p 2025-05-12 16:36:24 +10:00
renovate[bot]
8069b137f3 chore(deps): update data-mesher digest to 2666bb1 2025-05-12 00:50:11 +00:00
renovate[bot]
2fba6b15e8 chore(deps): update data-mesher digest to 20e20ac 2025-05-11 22:30:11 +00:00
renovate[bot]
cddee0ca86 chore(deps): update data-mesher digest to 61da4b5 2025-05-11 19:30:10 +00:00
renovate[bot]
0f3ab641d9 chore(deps): update treefmt-nix digest to 708ec80 2025-05-11 19:00:11 +00:00
Johannes Kirschbauer
d5f90b2730 Docs: update 'clan.service' examples 2025-05-11 15:46:16 +02:00
renovate[bot]
54335221d8 chore(deps): update data-mesher digest to f664c98 2025-05-11 11:30:21 +00:00
renovate[bot]
76b13476a5 chore(deps): update treefmt-nix digest to 4819332 2025-05-11 11:10:10 +00:00
Johannes Kirschbauer
bbed94d6de Refactor(inventory/manifest): move into seperate file 2025-05-10 13:58:21 +02:00
Johannes Kirschbauer
23a5c845b0 Refactor(inventory/constraints): use explizit dependency injections instead of specialArgs 2025-05-10 13:42:47 +02:00
Michael Hoang
b933dcf2e2 Merge pull request 'cli: fix machines update not outputting stdout of nixos-rebuild' (#3552) from push-zmlxvwnvrpuk into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3552
2025-05-10 07:15:23 +00:00
Michael Hoang
8a755fff8c cli: fix machines update not outputting stdout of nixos-rebuild 2025-05-10 17:02:56 +10:00
Jeremy Fleischman
5726dd1010 Add /bin/sh to bubblewrap sandbox
I ran into this error when trying to run `opendkim-genkey` in a vars
generator:

```console
=========================================================================== Command ===========================================================================
nix \
    --extra-experimental-features 'nix-command flakes' \
    shell \
    --inputs-from /nix/store/9r3ddw80dz4qzci9pj57ppbh6gy2pgv9-clan-cli/lib/python3.12/site-packages/clan_cli/nixpkgs \
    'nixpkgs#bash' \
    'nixpkgs#bubblewrap' \
    -c bwrap \
    --unshare-all --tmpfs \
    / \
    --ro-bind /nix/store \
    /nix/store \
    --dev /dev \
    --bind /tmp/nix-shell.ClOjgJ/vars-kh4qrnas \
    /tmp/nix-shell.ClOjgJ/vars-kh4qrnas \
    --chdir / \
    --bind /proc \
    /proc \
    --uid 1000 \
    --gid 1000 \
    -- bash \
    -c /nix/store/p0089w4y1w3h535g7ipv4jl4r6mb2hs2-generator-dkim-playground.jflei.com.mail

=========================================================================== Stderr ============================================================================
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = (unset),
	LC_ALL = (unset),
	LC_CTYPE = (unset),
	LC_NUMERIC = (unset),
	LC_COLLATE = (unset),
	LC_TIME = (unset),
	LC_MESSAGES = (unset),
	LC_MONETARY = (unset),
	LC_ADDRESS = (unset),
	LC_IDENTIFICATION = (unset),
	LC_MEASUREMENT = (unset),
	LC_PAPER = (unset),
	LC_TELEPHONE = (unset),
	LC_NAME = (unset),
	LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
Can't exec "/bin/sh": No such file or directory at /nix/store/nfawbww80p1hgpymfgq1vq8wqlak75yh-opendkim-2.11.0-Beta2/sbin/.opendkim-genkey-wrapped line 139.
.opendkim-genkey-wrapped: openssl died with signal %d
127
Return Code: 1

1 hosts failed with an error. Check the logs above
```

As we allow `/bin/sh` in the nix build sandbox, I assume we're OK
allowing it here as well?
2025-05-09 18:33:08 -07:00
Luis Hebendanz
b306c748b8 Merge pull request 'clan-cli: Use machine object everywhere instead of name + flake' (#3541) from Qubasa/clan-core:replace_machine_name_with_machine_obj2 into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3541
2025-05-09 14:01:25 +00:00
Qubasa
2682581c09 clan-cli: Use machine object everywhere instead of name + flake 2025-05-09 13:13:14 +02:00
renovate[bot]
a0a5827157 chore(deps): update disko digest to 85555d2 2025-05-08 18:40:10 +00:00
hsjobeki
8638861a87 Merge pull request 'Refactor(inventory/modules): add support for local clan.modules and migrate all checks' (#3547) from hsjobeki/clan-core:clan-services into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3547
2025-05-08 15:50:26 +00:00
Johannes Kirschbauer
c5a28e2655 fix: make sure legacyModules dont end up in localModules for inventory.instances 2025-05-08 17:38:28 +02:00
Johannes Kirschbauer
0af36d0a4d Refactor(inventory/modules): add support for local clan.modules and migrate all checks 2025-05-08 17:17:46 +02:00
Mic92
34b63ca1d5 Merge pull request 'chore(deps): update nix-darwin digest to 6cb36e8' (#3544) from renovate/nix-darwin-digest into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3544
2025-05-08 14:49:18 +00:00
renovate[bot]
e24a6e23ad chore(deps): update nix-darwin digest to 6cb36e8 2025-05-08 14:40:13 +00:00
Mic92
fd7ccaca1a Merge pull request 'clan evaluation warnings for clan.inventory.modules' (#3546) from improve-container into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3546
2025-05-08 14:38:13 +00:00
Jörg Thalheim
4251d5ee0b clan evaluation warnings for clan.inventory.modules 2025-05-08 16:29:23 +02:00
Mic92
0a8839bcc0 Merge pull request 'Prettify nspawn output' (#3545) from improve-container into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3545
2025-05-08 14:28:35 +00:00
pinpox
cb41aaafa1 Prettify nspawn output 2025-05-08 16:20:29 +02:00
Qubasa
9867b6a894 clan-cli: Fix clan not finding vendored packages when running from git repo 2025-05-08 12:31:21 +02:00
Qubasa
7459566c2b clan-cli: remove useless run_no_stdout function 2025-05-08 12:30:16 +02:00
renovate[bot]
1c08d6dd25 chore(deps): update disko digest to 6bb82b7 2025-05-08 09:30:10 +00:00
renovate[bot]
14f4d65c47 chore(deps): update disko digest to c4fe2d1 2025-05-08 02:50:10 +00:00
renovate[bot]
43159cc2f0 chore(deps): update disko digest to 78d6a13 2025-05-07 18:10:11 +00:00
hsjobeki
9d8ebfd267 Merge pull request 'chore: deprecate usage of inventory.modules in favor of clan.modules' (#3314) from hsjobeki/clan-core:clan-services into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3314
2025-05-07 17:21:19 +00:00
Johannes Kirschbauer
1e379f6fa7 chore: deprecate usage of inventory.modules in favor of clan.modules 2025-05-07 19:12:07 +02:00
Mic92
b32a7749cf Merge pull request 'clan-cli: Refactor the API to use the Flake object' (#3539) from Qubasa/clan-core:Qubasa-replace_machine_name_with_machine_obj into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3539
2025-05-07 16:57:32 +00:00
Qubasa
153da50d6f clan-cli: Refactor the API to use the Flake object 2025-05-07 16:43:50 +00:00
hsjobeki
dd3bb314fd Merge pull request 'Feat(modules): display clan.service modules' (#3537) from hsjobeki/clan-core:module-list into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3537
2025-05-07 15:33:49 +00:00
Mic92
687f26eef1 Merge pull request 'chore(deps): update data-mesher digest to 4347dfb' (#3538) from renovate/data-mesher-digest into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3538
2025-05-07 14:53:57 +00:00
Johannes Kirschbauer
afdb08643d fix(tests/modules): list_modules returns moduleSets" 2025-05-07 16:46:13 +02:00
renovate[bot]
0946d4316e chore(deps): update data-mesher digest to 4347dfb 2025-05-07 16:42:17 +02:00
hsjobeki
462c0764b9 Merge pull request 'feat(UI): design fixups in {machineList, machineItem, machineDetails, sidebar, sidebarHeader, button, sidebar}' (#3528) from amunsen/clan-core:ui-improvements into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3528
2025-05-07 14:23:49 +00:00
Timo
a748a27ddc fixes after npm run check 2025-05-07 16:12:35 +02:00
Johannes Kirschbauer
baf686e83f Feat(modules): display clan.service modules 2025-05-07 16:03:39 +02:00
Timo
03ddce83b7 machine-list:loading skeleton 2025-05-07 15:31:44 +02:00
Timo
45eb73680d sidebar-header: updates design 2025-05-07 15:31:44 +02:00
Timo
7d39d49b30 flash install: fixes form layout 2025-05-07 15:31:42 +02:00
Timo
698a39fafb tailwind: updates color values 2025-05-07 15:30:37 +02:00
Timo
b633db4f8e machine-details: updates form layout 2025-05-07 15:30:01 +02:00
Timo
7b9d18f9eb machine-item: adds border to thumb 2025-05-07 15:28:44 +02:00
Timo
51950329a3 machine-item: updates design and unifies 2025-05-07 15:28:44 +02:00
Timo
16256440e6 button component: introduces button-ghost dedicated styles 2025-05-07 15:28:44 +02:00
Timo
dfbb860898 sidebar component: removes pseudo marker 2025-05-07 15:28:44 +02:00
Jörg Thalheim
444fc3f820 Revert "Merge pull request 'clan-cli: Refactor the API to use the Flake object' (#3531) from Qubasa/clan-core:replace_machine_name_with_machine_obj into main"
This reverts commit 572ce8885f, reversing
changes made to 0bee027251.
2025-05-07 15:24:57 +02:00
Mic92
572ce8885f Merge pull request 'clan-cli: Refactor the API to use the Flake object' (#3531) from Qubasa/clan-core:replace_machine_name_with_machine_obj into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3531
2025-05-07 13:21:13 +00:00
Mic92
0bee027251 Merge pull request 'Flake: remove unused variable and mark other fields as non-init' (#3535) from cleanup-flake into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3535
2025-05-07 13:20:10 +00:00
Mic92
334367c3f7 Merge pull request 'chore(deps): update data-mesher digest to a454b9f' (#3532) from renovate/data-mesher-digest into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3532
2025-05-07 13:18:25 +00:00
renovate[bot]
2371a5fa78 chore(deps): update data-mesher digest to a454b9f 2025-05-07 13:00:09 +00:00
Mic92
4792d8b1e3 Merge pull request 'Fix debug command to attach to container' (#3534) from container-debug into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3534
2025-05-07 12:56:33 +00:00
pinpox
ace0328a14 Fix debug command to attach to container 2025-05-07 14:41:18 +02:00
Jörg Thalheim
66c2d54961 Flake: remove unused variable and mark other fields as non-init 2025-05-07 14:40:22 +02:00
renovate[bot]
e18efdd48f Update data-mesher digest to c14644b 2025-05-07 11:20:09 +00:00
DavHau
8b652866c7 Merge pull request 'GUI: initialize support for vars prompts' (#3529) from DavHau/clan-core:gui-prompts into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3529
2025-05-07 11:15:32 +00:00
Qubasa
7129c38675 clan-cli: Refactor the API to use the Flake object 2025-05-07 13:12:48 +02:00
DavHau
caacf65dc0 GUI: initialize support for vars prompts
... for now only when updating a machine (not when installing)

Whenever the user clicks on the update button in the machine view, and only if user input is needed for some missing vars, the user will be forwarded to a vars page.
2025-05-07 18:06:35 +07:00
kenji
f8723ab897 Merge pull request 'vars/interface: Fix typo' (#3522) from kenji/clan-core:ke-vars-typo into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3522
2025-05-06 19:48:08 +00:00
a-kenji
b877df4c6e vars/interface: Fix typo 2025-05-06 19:48:08 +00:00
kenji
bf04eabc21 Merge pull request 'container-test-driver: Fix test naming' (#3521) from kenji/clan-core:ke-vmctn into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3521
2025-05-06 19:47:53 +00:00
a-kenji
5149ed9318 container-test-driver: Fix test naming
Fix the container test naming, as this otherwise can be very confusing.
2025-05-06 19:47:53 +00:00
hsjobeki
4d84180dd9 Merge pull request 'api-1' (#3524) from hsjobeki/clan-core:api-1 into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3524
2025-05-06 17:08:02 +00:00
hsjobeki
7571fdef74 Merge pull request 'Refactor(machine/class): use frozen dataclass for class 'machine'' (#3520) from hsjobeki/clan-core:api-cleanup-2 into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3520
2025-05-06 17:07:51 +00:00
Johannes Kirschbauer
7d55511d6f fix(services): features.API set to true and readOnly 2025-05-06 18:58:40 +02:00
Johannes Kirschbauer
cbd7157cfc feat(modules): derive module list from inputs and local modules 2025-05-06 18:57:54 +02:00
kenji
25faba4795 Merge pull request 'adr/2: Fix typo' (#3523) from kenji/clan-core:ke-adr-fix-typo into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3523
2025-05-06 16:33:19 +00:00
a-kenji
0f0bab7976 adr/2: Fix typo 2025-05-06 18:23:45 +02:00
hsjobeki
f0e18bbdfb Merge pull request 'Refactor(machine/install): don't mutate the machine class during installation' (#3519) from hsjobeki/clan-core:api-cleanup-2 into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3519
2025-05-06 15:21:21 +00:00
Johannes Kirschbauer
6d4db71ea3 Refactor(machine/class): use frozen dataclass for class 'machine' 2025-05-06 17:12:52 +02:00
Johannes Kirschbauer
b21c98db7f Refactor(machine/install): don't mutate the machine class during installation 2025-05-06 17:09:37 +02:00
hsjobeki
df3fe00b8a Merge pull request 'Refactor(machine/update): cleanup dataflow and logic conditions to be intuitive' (#3518) from hsjobeki/clan-core:api-cleanup-2 into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3518
2025-05-06 15:02:05 +00:00
Johannes Kirschbauer
7371085c05 Refactor(machine/update): cleanup dataflow and logic conditions to be intuitive 2025-05-06 16:49:32 +02:00
Mic92
6804327bca Merge pull request 'Host: actual setup ssh controlmaster' (#3515) from fix-control-master into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3515
2025-05-06 11:21:05 +00:00
Jörg Thalheim
ec76d5f8e5 only apply ssh control master to local ssh connection 2025-05-06 13:11:30 +02:00
Jörg Thalheim
864cdf33a7 Host: actual setup ssh controlmaster
before we were not entering the context manager
2025-05-06 13:11:30 +02:00
Mic92
e6dbccd8e5 Merge pull request 'Add CODEOWNERS and tag @lopter as a reviewer on vars and secrets changes' (#3508) from lopter/clan-core:lo-vars-codeowner into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3508
2025-05-06 10:48:46 +00:00
hsjobeki
30ac51b313 Merge pull request 'chore(API): cleanup remove unnused functions' (#3516) from hsjobeki/clan-core:api-cleanup-2 into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3516
2025-05-06 10:42:37 +00:00
Johannes Kirschbauer
00b12c2c51 chore(API): cleanup remove unnused functions 2025-05-06 12:29:11 +02:00
kenji
085d726217 Merge pull request 'container-test-driver/nsenter: Improve printing of command' (#3514) from kenji/clan-core:ke-nsenter-pprint into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3514
2025-05-06 10:11:20 +00:00
a-kenji
3e65a76dfe container-test-driver/nsenter: Improve printing of command
Improves printing of `nsenter` command, so that it can easier be copied.
2025-05-06 10:11:20 +00:00
Mic92
929632049e Merge pull request 'fix clan machines update with build-host' (#3512) from build-host into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3512
2025-05-06 09:56:48 +00:00
Jörg Thalheim
0d1e642dfd fix build_host set if it doesn't exist 2025-05-06 09:56:58 +02:00
Mic92
8af68cbd9d Merge pull request 'fix incorrect target host when build host is set' (#3511) from ssh-foo into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3511
2025-05-06 07:54:40 +00:00
Jörg Thalheim
a44fee9eab fix incorrect target host when build host is set 2025-05-06 09:54:08 +02:00
Mic92
b27f34aed3 Merge pull request 'decisions: propose an ADR to formalize the ADR numbering process' (#3507) from lopter/clan-core:lo-adr-numbering-process into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3507
2025-05-06 07:32:41 +00:00
Jörg Thalheim
cd23c9ff41 fix incorrect target host when build host is set 2025-05-06 09:26:59 +02:00
Louis Opter
852a673839 Add CODEOWNERS and tag @lopter as a reviewer on vars and secrets changes
Since I am working in those areas through [ADR-7], I would like to know
when they get changed, and possibly have a say.

[ADR-7]: https://git.clan.lol/clan/clan-core/pulls/3196
2025-05-05 23:40:11 +00:00
Louis Opter
763a403e9f decisions: propose an ADR to formalize the ADR numbering process 2025-05-05 23:22:31 +00:00
renovate[bot]
78f8a080a8 chore(deps): update sops-nix digest to e93ee1d 2025-05-05 22:50:09 +00:00
Luis Hebendanz
af2a00bde3 Merge pull request 'clan-cli: fix bubblewrap not finding bash when IN_NIX_SANDBOX=1 if prev environment doesn't have it in PATH' (#3503) from Qubasa/clan-core:fix_bubblewrap_bash_path into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3503
2025-05-05 21:07:22 +00:00
Luis Hebendanz
47c44ec7ec Merge pull request 'clan-cli: add test_create in clan_lib test folder' (#3501) from Qubasa/clan-core:api_vm_test into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3501
2025-05-05 20:29:57 +00:00
Qubasa
1f66e90db1 clan-cli: fix bubblewrap not finding bash when IN_NIX_SANDBOX=1 if prev environment doesn't have it in PATH 2025-05-05 22:19:17 +02:00
hsjobeki
89fbf723ca Merge pull request 'API(cli): add method to Flake class to allow calling nix functions' (#3502) from hsjobeki/clan-core:improvements-2 into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3502
2025-05-05 20:16:28 +00:00
Qubasa
548fdfb877 clan-cli: add test_create in clan_lib test folder 2025-05-05 22:16:02 +02:00
Johannes Kirschbauer
e44d34ef99 feat(clanLib): init evalServiceSchema 2025-05-05 21:55:29 +02:00
Johannes Kirschbauer
acc6797c22 API(cli): add method to Flake class to allow calling nix functions 2025-05-05 21:46:20 +02:00
Johannes Kirschbauer
9fbd943f44 API(clanInternals): add 'evalServiceSchema' endpoint 2025-05-05 21:46:20 +02:00
Johannes Kirschbauer
d42d9ad943 tests: add error prefix for json schema in checks 2025-05-05 21:46:16 +02:00
renovate[bot]
3c16ccdb38 chore(deps): update nixpkgs digest to ed30f8a 2025-05-05 16:10:18 +00:00
renovate[bot]
7b9e431da7 chore(deps): update data-mesher digest to d63db16 2025-05-05 15:50:11 +00:00
Mic92
05388c9c7e Merge pull request 'Log nsenter command on container tests' (#3498) from log-nsenter into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3498
2025-05-05 12:01:08 +00:00
pinpox
fe36aa4161 Log nsenter command on container tests 2025-05-05 13:00:11 +02:00
DavHau
6829c7f2dd vars: improve API of generate_vars_for_machine
receive list of generator names as an argument instead of generator objects
2025-05-05 15:55:04 +07:00
renovate[bot]
aa2e8eef88 chore(deps): update data-mesher digest to 0b5ff29 2025-05-05 08:10:11 +00:00
renovate[bot]
9e07064ec5 chore(deps): update nixpkgs digest to 6b1c028 2025-05-05 07:30:25 +00:00
renovate[bot]
305a361f56 chore(deps): lock file maintenance 2025-05-05 02:20:11 +00:00
renovate[bot]
db32e99082 chore(deps): update disko digest to 7b63642 2025-05-04 20:50:09 +00:00
Mic92
50ac0266f5 Merge pull request 'bind ssh controlmaster to live time of CLI' (#3491) from ssh-refactoring into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3491
2025-05-04 14:45:13 +00:00
Jörg Thalheim
b01691cb64 bind ssh controlmaster to live time of CLI 2025-05-04 16:28:14 +02:00
Mic92
44b237d9be Merge pull request 'test vars permissions in dummy-test' (#3490) from non-secret-var into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3490
2025-05-04 13:07:39 +00:00
Jörg Thalheim
f8bbd91c4a vars: warn if mode/owner/user is used on non-secret var 2025-05-04 14:59:22 +02:00
Jörg Thalheim
401de330f8 clanTest: remove unneeded parantheses 2025-05-04 14:59:22 +02:00
Jörg Thalheim
51da7ed5e8 vars: fix defaultText 2025-05-04 14:59:22 +02:00
Jörg Thalheim
e170cc2641 test vars permissions in dummy-test 2025-05-04 14:59:22 +02:00
Jörg Thalheim
8434f0fc35 fix ssh control master check (#3488)
Co-authored-by: pinpox <git@pablo.tools>
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3488
Co-authored-by: Jörg Thalheim <joerg@thalheim.io>
Co-committed-by: Jörg Thalheim <joerg@thalheim.io>
2025-05-04 12:49:53 +00:00
Mic92
d6bbb42dda Merge pull request 'Revert "Merge pull request 'Fix deploying with sudo + password' (#3470) from target-host into main"' (#3489) from revert-sudo into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3489
2025-05-04 11:40:28 +00:00
Jörg Thalheim
6539a6a24f Revert "Merge pull request 'Fix deploying with sudo + password' (#3470) from target-host into main"
This reverts commit 8a849eb90f, reversing
changes made to 3b5c22ebcf.
2025-05-04 13:37:39 +02:00
Mic92
8a849eb90f Merge pull request 'Fix deploying with sudo + password' (#3470) from target-host into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3470
2025-05-04 11:36:39 +00:00
Jörg Thalheim
15f691d5aa tests_secrets_cli: improve assertion message for pgp key 2025-05-04 10:51:49 +02:00
Jörg Thalheim
82949237b7 fix terminal output when terminal is put into interactive mode 2025-05-04 10:51:49 +02:00
Jörg Thalheim
7abb8bb662 update: fix sudo password prompt 2025-05-04 10:51:49 +02:00
Jörg Thalheim
f4d34b1326 fix upload when sudo prompts are needed 2025-05-04 10:51:49 +02:00
Mic92
3b5c22ebcf Merge pull request 'Miscellaneous ssh fixes.' (#3487) from misc-fixes into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3487
2025-05-04 08:51:31 +00:00
Mic92
a2ce48f8cc Merge pull request 'update_hardware_config: use host.run rather than adhoc ssh command' (#3486) from control-master into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3486
2025-05-04 08:47:34 +00:00
Jörg Thalheim
f6899166c7 cmd: don't shadow time module 2025-05-04 10:39:50 +02:00
Jörg Thalheim
f5277c989a Host: always set needs_user_terminal for ssh commands, only override prefix if given by user 2025-05-04 10:39:39 +02:00
Jörg Thalheim
03731a2a67 run_local: allow stdin to be a file descriptor 2025-05-04 10:39:28 +02:00
Jörg Thalheim
091a56f57d update_hardware_config: use host.run rather than adhoc ssh command 2025-05-04 10:30:46 +02:00
Jörg Thalheim
7351f7994c rename connect_ssh_shell to interactive_ssh
better name than secure shell shell
2025-05-04 10:28:43 +02:00
Jörg Thalheim
5770ea036c move password/tor_socks into Host attributes
we set those parameters usually just once.
2025-05-04 10:28:43 +02:00
Mic92
0d537a146e Merge pull request 'configure ControlMaster and ControlPath for SSH connections' (#3485) from control-master into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3485
2025-05-04 07:59:13 +00:00
Jörg Thalheim
c430ff6253 configure ControlMaster and ControlPath for SSH connections
This should speed up deployments by not having to reconnect to the server on each command
2025-05-04 09:48:37 +02:00
Mic92
f3f4ebfc71 Merge pull request 'facts/sops: no longer upload age key' (#3484) from facts-no-age-upload into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3484
2025-05-04 07:40:05 +00:00
Jörg Thalheim
b79446f97e facts/sops: no longer upload age key
The vars backend already does this for us.
This avoids duplicated work.
2025-05-04 09:29:29 +02:00
Mic92
6d75a5596e Merge pull request 'chore(deps): update nixpkgs digest to f21e454' (#3445) from renovate/nixpkgs-digest into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3445
2025-05-04 07:16:50 +00:00
Mic92
2d97119a3b Merge pull request 'Avoid a few cases of chmod-after-creation' (#3438) from tangential/clan-core:it-s_a_race into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3438
2025-05-04 07:08:43 +00:00
Jörg Thalheim
d0ff114f6b disable age-plugin-se for now on aarch64-linuxql
disable
2025-05-04 09:07:06 +02:00
Mic92
20ab5a67c1 Merge pull request 'clanCore/vars/sops: only copy required secrets to store' (#3457) from vdbe/clan-core:clanCore/vars/sops/only-copy-used into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3457
2025-05-04 06:41:37 +00:00
vdbe
d445a353d5 clanCore/vars/sops: add sops & switch to builtins.path 2025-05-04 08:08:58 +02:00
vdbe
b08a2bdb75 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
renovate[bot]
10fd3f6e43 chore(deps): update nixpkgs digest to f21e454 2025-05-04 06:00:13 +00:00
Mic92
e8c85e3237 Merge pull request 'Set terminal on nix flake update/archive' (#3468) from fix-shell-on-copy into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3468
2025-05-04 05:59:58 +00:00
Mic92
6aa3ec66d8 Merge pull request 'don't depend on git for flake inputs' (#3483) from no-git into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3483
2025-05-04 05:48:10 +00:00
Mic92
b767a4a09c Merge pull request 'morph: speed up test by enabling useNixStoreImage' (#3481) from morph into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3481
2025-05-04 05:40:50 +00:00
Jörg Thalheim
b0bd209638 don't depend on git for flake inputs
This makes migration of an existing machine without git installed
easier:

fixes:
https://git.clan.lol/clan/clan-core/issues/3465#issuecomment-28189
2025-05-04 07:30:49 +02:00
Jörg Thalheim
b187d9b3d2 morph: speed up test by enabling useNixStoreImage 2025-05-04 07:29:31 +02:00
renovate[bot]
83d8c3d2f3 chore(deps): update data-mesher digest to 6544fb9 2025-05-03 21:00:09 +00:00
DavHau
1ce482f8f7 GUI/devshell: hot reload python API
This change speeds up the development workflow on the GUI when modifying the python api

The GUI started from the devshell already hot reloads itself on any change of the typescript codebase.

But python api changes were not caught bu the hot reload and required a reload of the devshell which is slow.

This change implements a custom vite plugin to also listen to changes coming from the clan-cli python code and re-generate the python-ts api on any change.
2025-05-03 19:22:16 +07:00
renovate[bot]
8803b3e0b5 chore(deps): update data-mesher digest to 642de25 2025-05-03 08:50:09 +00:00
renovate[bot]
9b66af37eb chore(deps): update data-mesher digest to 13026a9 2025-05-03 08:10:09 +00:00
DavHau
9186961ccb GUI/vars: add endpoints for getting prompts and generating vars 2025-05-03 14:44:51 +07:00
DavHau
ca594bbe95 refactor(vars): move migration logic to extra file 2025-05-03 07:33:11 +00:00
renovate[bot]
5454076df7 Update nix-darwin digest to 760a11c 2025-05-03 07:00:13 +00:00
DavHau
f8e7292bc4 GUI: generate sops key when creating clan 2025-05-03 13:00:27 +07:00
renovate[bot]
2ddb38a434 Update treefmt-nix digest to 29ec502 2025-05-02 20:40:11 +00:00
pinpox
a99c832ed9 Set terminal on nix flake update/archive
When using resident SSH-keys (-sk), e.g. from a Yubikey that require a
Pin, a terminal is needed to be able to enter it during deployment.
2025-05-02 15:41:29 +02:00
Mic92
12882ed68d Merge pull request 'Update data-mesher digest to 80b8ba4' (#3469) from renovate/data-mesher-digest into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3469
2025-05-02 13:31:17 +00:00
renovate[bot]
134c545782 Update data-mesher digest to 80b8ba4 2025-05-02 13:20:10 +00:00
renovate[bot]
7889192b7c Update data-mesher digest to ba46584 2025-05-02 03:40:09 +00:00
brianmcgee
05a18baecb Merge pull request 'clan-cli select: fix returning early on list select' (#3464) from select-lists-fix into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3464
2025-05-01 16:06:31 +00:00
lassulus
e6ebca8588 clan-cli select: fix returning early on list select 2025-05-02 00:16:21 +09:00
renovate[bot]
fcf1c683c5 Update data-mesher digest to 9d10655 2025-05-01 13:30:09 +00:00
Mic92
db215a48b5 Merge pull request 'correct capitilization for targetHost in error message' (#3461) from target-host into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3461
2025-05-01 13:21:42 +00:00
Mic92
1df62bd2f2 Merge pull request 'clan_cli flake caching: fix caching of store files' (#3458) from select-store-caching into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3458
2025-05-01 13:12:05 +00:00
Jörg Thalheim
ea1c8b9503 correct capitilization for targetHost in error message 2025-05-01 15:11:05 +02:00
renovate[bot]
511b107511 chore(deps): update data-mesher digest to 2327a7e 2025-05-01 06:50:09 +00:00
lassulus
47bcec69ab clan_cli flake caching: fix caching of store files 2025-05-01 13:40:12 +09:00
renovate[bot]
47203d849e chore(deps): update data-mesher digest to c74c5ed 2025-04-30 16:10:09 +00:00
hsjobeki
7b4b700c33 Merge pull request 'Refactor(inventory): move prio 'introspection' into inventoryClass to minimize the 'clanInternals' api' (#3440) from hsjobeki/clan-core:ui-fixups into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3440
2025-04-30 10:24:34 +00:00
kenji
69d394088b Merge pull request 'docs/reference: Improve wording of reference overview' (#3454) from kenji/clan-core:ke-docs-improve-reference into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3454
2025-04-30 10:19:12 +00:00
a-kenji
4c1e346cf2 docs/reference: Improve wording of reference overview
There is no value in calling it "automatically extracted" - but it is
potentially misleading.
2025-04-30 10:19:12 +00:00
hsjobeki
be9a43c50b Merge pull request 'fix(clan-app): Misc ui styling fixes' (#3451) from amunsen/clan-core:ui-fixes into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3451
2025-04-30 10:18:42 +00:00
Johannes Kirschbauer
049d41f35c Fix: fix sidebar marker for webkit 2025-04-30 12:05:51 +02:00
kenji
055bd1edd5 Merge pull request 'clanModules/password: Fix vars documentation' (#3453) from kenji/clan-core:ke-fix-vars-docs into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3453
2025-04-30 10:05:22 +00:00
a-kenji
9ae44db29c clanModules/password: Fix vars documentation 2025-04-30 11:55:23 +02:00
Johannes Kirschbauer
17a6eda4b1 Fix: remove unused classNames 2025-04-30 11:43:29 +02:00
Timo
6beba157fe modules page: improves design cohesiveness of module components 2025-04-30 11:16:10 +02:00
Timo
a14dcf4adb form component: unify values and improve cohesiveness of overall design within dyn-form component 2025-04-30 11:14:19 +02:00
Timo
9bc23690a3 form components: adds general fieldset component and accordion component 2025-04-30 11:13:32 +02:00
Timo
5b0334adda button component: adds button-group component 2025-04-30 11:12:06 +02:00
Timo
45639c0d4f button component: moves dark style button into dedicated style classes 2025-04-30 11:09:03 +02:00
Timo
dfa861428f button component: orders classes and properties, moves tailwind classes to dedicates css file for better DOM readability 2025-04-30 11:09:03 +02:00
Timo
f15cd773c5 sidebarListItem: fixed active states to be displayed in ui 2025-04-30 11:09:03 +02:00
Timo
1a24a05034 general layout: removes drawer-component and adjusts font sizes in sidebar 2025-04-30 11:09:01 +02:00
Johannes Kirschbauer
e07551cecf Refactor(inventory): move prio 'introspection' into inventoryClass to minimize the 'clanInternals' api 2025-04-30 11:02:58 +02:00
DavHau
1f4b526e42 ci-performance: remove self reference from installation test 2025-04-30 15:53:18 +07:00
DavHau
8a4fe1405a gui: make update machine work
Also fix error when age plugins not defined
2025-04-30 15:28:49 +07:00
DavHau
f7e0345ab3 app: open welcome page if clan doesn't exist
Previously if a user started the app and the last opened clan directory does not exist anymore, it would still show the clan screen but without any machines.

This changes catches this case and throws the user back to the clan selection page
2025-04-30 14:48:05 +07:00
Mic92
11afc1faef Merge pull request 'chore(deps): update data-mesher digest to 517092d' (#3441) from renovate/data-mesher-digest into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3441
2025-04-30 06:48:06 +00:00
renovate[bot]
c0964e1b22 chore(deps): update data-mesher digest to 517092d 2025-04-30 06:40:11 +00:00
DavHau
f8c5b178a4 add select file that shouldn't exist but does to gitignore 2025-04-30 13:28:19 +07:00
DavHau
93090b74e5 ci performance: add check to ensure nothing depends on the whole repo
Since this project is an ever growing monorepo, having derivations depending on the whole repo leads to bad CI performance, as the cache is busted on every commit.

-> We never want any derivations depend on the whole repo

...except: the test that tests that nothing depends on the whole repo, which is added by this commit.

For now only add this check to packages to allow contributors to build it locally.
We might want to add it to the CI later once all occurrences are fixed.
2025-04-30 13:17:33 +07:00
hsjobeki
2ea4bd059c Merge pull request 'refactor(clan.service): make evalClanService a standalone function to interact with standalone modules' (#3444) from hsjobeki/clan-core:clan-services-4 into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3444
2025-04-29 13:38:02 +00:00
Johannes Kirschbauer
3d09c98ed3 Checks: add json-compat check wrapper to ensure all clan.modules stay json-compatible 2025-04-29 15:31:02 +02:00
Johannes Kirschbauer
a4a1363195 refactor(clan.service): make evalClanService a standalone function to interact with standalone modules 2025-04-29 15:12:44 +02:00
renovate[bot]
fd4d42c54c chore(deps): update treefmt-nix digest to 82bf32e 2025-04-29 13:00:11 +00:00
hsjobeki
670cfe6fbc Merge pull request 'Feat(clan.service): require roles.interface to be json serializable' (#3442) from hsjobeki/clan-core:clan-services-4 into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3442
2025-04-29 12:51:10 +00:00
Johannes Kirschbauer
9b5f100ac6 Feat(clan.service): require roles.interface to be json serializable 2025-04-29 14:42:47 +02:00
kenji
ff71c819e1 Merge pull request 'clanModules/iwd: Migrate from facts to vars' (#3439) from kenji/clan-core:ke-iwd-migrate-to-vars into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3439
2025-04-29 12:03:56 +00:00
a-kenji
4bd43f297a clanModules/iwd: Migrate from facts to vars 2025-04-29 13:55:45 +02:00
Michael Hoang
78f96ec533 Merge pull request 'age plugin support' (#3322) from feat/age-plugin-support into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3322
2025-04-29 06:12:44 +00:00
Brian McGee
a438fe77a7 feat: configure age plugins for SOPS in buildClan 2025-04-29 16:02:32 +10:00
Brian McGee
d3e1c0b4e4 fix: multiple user keys in secrets
We were not loading all the user keys, only the first one.
2025-04-29 15:47:54 +10:00
Brian McGee
1694a977f1 feat: support age plugins
Extends how we parse the contents of `SOPS_AGE_KEY` / `SOPS_AGE_KEY_FILE` / `keys.txt`, allowing a user to prepend a comment before any `AGE-PLUGIN-` secret key entry to indicate its corresponding public key.

For example:

```
AGE-PLUGIN-FIDO2-HMAC-xxxxxxxxxxxxx
```

The comment can use any prefix (e.g. `# public key: age1xxxx`, `# recipient: age1xxx`) as we are looking directly for `age1xxxx` within the line.

This change is necessary to support `age` plugins as there is no unified mechanism to recover the public key from a plugin's secret key.

If a plugin secret key does not have a preceding public key comment, an error will be thrown when attempting to set a secret.
2025-04-29 15:47:54 +10:00
Michael Hoang
852fdc2846 Merge pull request 'chore(deps): lock file maintenance' (#3365) from renovate/lock-file-maintenance into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3365
2025-04-29 05:22:24 +00:00
Michael Hoang
5879c48616 container-test-driver: fix SSH not working inside container tests 2025-04-29 15:10:09 +10:00
Michael Hoang
7d46237b67 container-test-driver: add Machine.fail 2025-04-29 14:57:58 +10:00
renovate[bot]
82b3ba97b7 chore(deps): lock file maintenance 2025-04-29 02:00:26 +00:00
renovate[bot]
a79c79ffec chore(deps): update data-mesher digest to 11b5673 2025-04-29 01:40:09 +00:00
Jonathan Thiessen
839f8fb347 Avoid a few cases of chmod-after-creation 2025-04-28 17:11:21 -07:00
DavHau
ebada396dd build-clan: Throw better error when _class is not provided by nixpkgs 2025-04-28 15:49:14 +00:00
renovate[bot]
b709f30ef4 chore(deps): update treefmt-nix digest to 763f1ce 2025-04-28 14:30:15 +00:00
hsjobeki
7c5ed8945f Merge pull request 'ui-fixups' (#3436) from hsjobeki/clan-core:ui-fixups into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3436
2025-04-28 12:34:16 +00:00
Johannes Kirschbauer
a6f97b0a04 Fix(app/machine/create): fix css styling inconsistencies, remove ability to set tags 2025-04-28 14:25:29 +02:00
Johannes Kirschbauer
05c172466f Fix(app/sidebar): remove duplicate marker 2025-04-28 14:15:02 +02:00
Johannes Kirschbauer
b3e5b1de8a Chore(app): re-enable classname linting to be an error 2025-04-28 14:14:42 +02:00
hsjobeki
3b6657c657 Merge pull request 'Fix(app/machines): fix css styling of machine list overview' (#3435) from hsjobeki/clan-core:ui-fixups into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3435
2025-04-28 12:08:07 +00:00
Johannes Kirschbauer
6700d3d502 Fix(app/machines): fix css styling of machine list overview 2025-04-28 14:00:17 +02:00
renovate[bot]
346853c4f7 chore(deps): update treefmt-nix digest to d1863f3 2025-04-28 11:10:15 +00:00
DavHau
19e528ef54 Merge pull request 'Revert "chore(deps): update data-mesher digest to 41534a3"' (#3432) from DavHau/clan-core:revert-data-mesher into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3432
2025-04-28 11:07:34 +00:00
DavHau
ab6a73cf6b Revert "chore(deps): update data-mesher digest to 41534a3"
This reverts commit f830bf4a0e.
2025-04-28 17:55:04 +07:00
renovate[bot]
f830bf4a0e chore(deps): update data-mesher digest to 41534a3 2025-04-28 08:00:20 +00:00
renovate[bot]
d69b814fa5 chore(deps): update treefmt-nix digest to c6d3010 2025-04-28 07:40:10 +00:00
renovate[bot]
9e6fdb4aff chore(deps): update nix-darwin digest to 4515dac 2025-04-28 05:30:10 +00:00
renovate[bot]
3c5ba156b8 chore(deps): update disko digest to d0c543d 2025-04-28 04:40:10 +00:00
Michael Hoang
da7abe26a8 Merge pull request 'cli: don't depend on the entire clan-core' (#3424) from push-pzytrksvysmu into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3424
2025-04-28 03:30:01 +00:00
Michael Hoang
c73652a401 cli: don't depend on the entire clan-core 2025-04-28 13:20:07 +10:00
Michael Hoang
c347badd7f cli: fallback to bundled Nixpkgs 2025-04-28 13:10:00 +10:00
Michael Hoang
c7c3abdf04 Merge pull request 'cli: don't use select from clanLib' (#3423) from push-ywotxpmyxlwp into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3423
2025-04-28 03:01:48 +00:00
Michael Hoang
6c8ef6e9be cli: don't use select from clanLib 2025-04-28 12:52:00 +10:00
renovate[bot]
52a28488c7 chore(deps): update data-mesher digest to 8d0a67b 2025-04-28 00:30:10 +00:00
renovate[bot]
15832521e7 chore(deps): update treefmt-nix digest to b2b6c02 2025-04-27 20:30:24 +00:00
renovate[bot]
9e409cbefe chore(deps): update data-mesher digest to f05729d 2025-04-27 20:10:09 +00:00
hsjobeki
5fc1f2cdbb Merge pull request 'Chore: remove unused legacy endpoints' (#3418) from hsjobeki/clan-core:chores-remove-unused into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3418
2025-04-27 11:25:00 +00:00
Johannes Kirschbauer
b87d5a238c chore: remove unused moduleSchemas and related API endpoint for legacy modules
We didn't reach the state where we would display these schemas in the
UI.
We might need to wire this up in a similar way for the newer
clan.services
2025-04-27 13:14:09 +02:00
Johannes Kirschbauer
7007b7d62e refactor: rename clanLib.values to introspection 2025-04-27 13:10:42 +02:00
hsjobeki
033c50a5c3 Merge pull request 'Feat(clan.service): init automatic assertions for api schema checks' (#3416) from hsjobeki/clan-core:new-json-schemas into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3416
2025-04-27 11:07:12 +00:00
hsjobeki
5aa8715e9f Merge pull request 'fix: typo in auto-upgrade clanModule' (#3417) from hsjobeki/clan-core:fix-auto-upgrade into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3417
2025-04-27 10:13:22 +00:00
Johannes Kirschbauer
3e31a73ae3 fix: typo in auto-upgrade clanModule 2025-04-27 12:04:03 +02:00
Johannes Kirschbauer
6dfc324661 Feat(clan.service): init automatic assertions for api schema checks 2025-04-27 11:49:56 +02:00
hsjobeki
95e6c5ca0f Merge pull request 'Feat(clan.service): enable opt-in json-schema restriction for clan.service interface modules' (#3415) from hsjobeki/clan-core:new-json-schemas into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3415
2025-04-27 09:49:08 +00:00
Johannes Kirschbauer
8495106ec4 feat(services): init feature flags in the module manifest: 'manifest.features.API' 2025-04-27 11:07:45 +02:00
Johannes Kirschbauer
ffa8257763 chore: remove unused option 'clanSchema' from core nixos modules 2025-04-27 11:07:45 +02:00
hsjobeki
bdeba9e4bf Merge pull request 'Init 'clan_lib' namespace and migrate clan_cli.api' (#3414) from hsjobeki/clan-core:clan-lib into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3414
2025-04-26 18:29:35 +00:00
Johannes Kirschbauer
070114ae9f Fix(clan_lib.api): fix cyclic import problem for api schema export 2025-04-26 20:19:23 +02:00
Johannes Kirschbauer
acbe619883 Refactor(clan_lib): move clan_cli.api into clan_lib.api 2025-04-26 19:51:35 +02:00
Johannes Kirschbauer
3b889649ec Refactor(clan_cli): init clan_lib folder 2025-04-26 19:50:11 +02:00
Mic92
e335556767 Merge pull request 'nixpkgs source: delete existing symlink' (#3411) from nixpkgs-build into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3411
2025-04-25 14:41:23 +00:00
Jörg Thalheim
97564052ab nixpkgs source: delete existing symlink 2025-04-25 16:31:35 +02:00
Luis Hebendanz
7b6483bfad Merge pull request 'clan-cli: Expose private_key to Machine class, in the future we should merge Machine and Host class' (#3407) from Qubasa/clan-core:vpb-patches2 into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3407
2025-04-25 12:26:00 +00:00
Qubasa
130a5bc593 clan-cli: Improve remote destination depth validation with detailed error messaging 2025-04-25 14:00:40 +02:00
Qubasa
9d45376f95 clan-cli: Expose private_key to Machine class, in the future we should merge Machine and Host class 2025-04-25 13:38:03 +02:00
Mic92
e78bd89426 Merge pull request 'clanCore/vars: allow mode to be set' (#3404) from visualphoenix/clan-core:mode_fix into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3404
2025-04-25 09:44:25 +00:00
Raymond Barbiero
222915a9ed clanCore/vars: allow mode to be set
fmt
2025-04-25 11:29:43 +02:00
Michael Hoang
d8780b8da9 Merge pull request 'lib: move select.select -> select for backwards compat with old CLIs' (#3410) from push-vxxntzmwuzzx into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3410
Reviewed-by: lassulus <clanlol@lassul.us>
2025-04-25 09:24:17 +00:00
Michael Hoang
cc4b009f06 lib: move select.select -> select for backwards compat with old CLIs 2025-04-25 17:30:06 +10:00
Michael Hoang
59e7af7830 Merge pull request 'Refactor select with new maybe selector' (#3362) from better-select into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3362
2025-04-25 07:02:22 +00:00
Michael Hoang
60ff14d6b7 cli: fix restoring backups
There was a bug in `select` that made it output attrsets instead of
lists so we fix the broken refactor done in
5ac629f549.
2025-04-25 16:52:13 +10:00
lassulus
34ac45bd13 clan-cli flake-module: get select from new lib location 2025-04-25 16:26:45 +10:00
lassulus
89adacebec templates: fix usage with new select 2025-04-25 16:26:45 +10:00
lassulus
5feccf4e57 Refactor select with new maybe selector
This is a great refactor of the select functionality in the flake class.
This now uses the same parser as the nix code, but runs it in python for
nice stacktraces.

Also we now have a maybe selector which can be used by prepending the
selector with a ?

Tests have been expanded to make sure the code is more stable and easier
to understand
2025-04-25 16:26:45 +10:00
Michael Hoang
27077817ae Merge pull request 'clan-app: improve README' (#3409) from push-ystlwosvuxvw into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3409
2025-04-25 01:20:40 +00:00
Michael Hoang
d7f0c0fc78 clan-app: improve README 2025-04-25 11:12:27 +10:00
renovate[bot]
8f37df456d Update disko digest to ca27b88 2025-04-24 13:50:10 +00:00
DavHau
dc5d10931b Merge pull request 'clan-app: add basic smoke test using OCR + nixos tests' (#3406) from DavHau/clan-core:dave into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3406
2025-04-24 12:02:06 +00:00
DavHau
39c13a5c38 clan-app: add basic smoke test using OCR + nixos tests 2025-04-24 18:17:09 +07:00
renovate[bot]
4be8f7d973 Update data-mesher digest to 4fdda23 2025-04-24 07:30:09 +00:00
hsjobeki
785f68b2f6 Merge pull request 'Chore(clan/clan_uri): Remove ClanURI class from clan_cli' (#3401) from hsjobeki/clan-core:remove-clan-uri into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3401
2025-04-23 15:13:32 +00:00
Johannes Kirschbauer
7076f1b0e6 Chore(clan/clan_uri): Remove ClanURI class from clan_cli 2025-04-23 16:53:11 +02:00
hsjobeki
771901f6aa Merge pull request 'Refactor: move checks/lib into lib/ to avoid duplicate lib' (#3399) from hsjobeki/clan-core:checks-lib-remove into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3399
2025-04-23 14:33:19 +00:00
Johannes Kirschbauer
a589736f9b lib/tests: fix container driver module path 2025-04-23 16:23:09 +02:00
Johannes Kirschbauer
f6e514ec6f Refactor: move checks/lib into lib/ to avoid duplicate lib
Lets avoid the mistake of nixpkgs having multiple
libs
2025-04-23 16:19:16 +02:00
DavHau
366be7c723 Merge pull request 'inventory tests: use containers by default' (#3398) from DavHau/clan-core:dave into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3398
2025-04-23 12:59:52 +00:00
DavHau
e2fb237c33 inventory tests: use containers by default 2025-04-23 19:49:02 +07:00
hsjobeki
c172996dbf Merge pull request 'UI: fix general layout' (#3397) from hsjobeki/clan-core:ui-3 into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3397
2025-04-23 11:33:35 +00:00
Mic92
8bc58b1f8c Merge pull request 'clanModules/vaultwarden: Migrate from facts to vars' (#3394) from kenji/clan-core:ke-vaultwarden-migrate-to-vars into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3394
2025-04-23 11:32:52 +00:00
a-kenji
47073aed43 clanModules/vaultwarden: Migrate from facts to vars
Closes: #3389
2025-04-23 13:01:52 +02:00
kenji
55e1141eb3 Merge pull request 'clanModules/syncthing: Improve vars' (#3391) from kenji/clan-core:syncthing-improve-vars into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3391
2025-04-23 10:50:45 +00:00
a-kenji
62e0ca7a08 clanModules/syncthing: Improve vars 2025-04-23 10:50:45 +00:00
a-kenji
55fbac76f8 clanModules/syncthing: Group vars files 2025-04-23 10:50:45 +00:00
Johannes Kirschbauer
0289c3ddea UI: fix general layout 2025-04-23 10:25:25 +00:00
renovate[bot]
cdf3f5df4b chore(deps): update disko digest to c5140c6 2025-04-23 09:40:09 +00:00
Mic92
d987049921 Merge pull request 'temporary disabling the VM test until we have vars fixed' (#3395) from vms into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3395
2025-04-23 09:38:26 +00:00
Jörg Thalheim
c7a3f35fb1 temporary disabling the VM test until we have vars fixed
We are currently missing injecting public vars back into the vm.
To unblock the CI, we disable the test for a bit.
2025-04-23 11:26:05 +02:00
kenji
9a4a60273d Merge pull request 'syncthing: Migrate from facts to vars' (#3388) from kenji/clan-core:syncthing into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3388
2025-04-23 06:25:12 +00:00
a-kenji
5edc457fc1 chore: treefmt 2025-04-23 08:00:16 +02:00
a-kenji
8b2a92cda0 clanModules/syncthing: Fix vars usage
This fixes vars usage in the syncthing module.
Also removes some of the assumptions that were made in order for
`sysuser` to work, as we now use `userborn` for the vm functionality.
2025-04-23 07:40:44 +02:00
a-kenji
f8df19a128 checks/syncthing: Use default settings 2025-04-23 07:39:55 +02:00
a-kenji
fc5aaf5eaa checks/syncthing: Remove nixos tests 2025-04-23 07:38:36 +02:00
hsjobeki
6f2b7aa6d1 Merge pull request 'vars-fix-overeager-chache-invalidation' (#3385) from hsjobeki/clan-core:vars-fix-overeager-chache-invalidation into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3385
2025-04-22 18:28:27 +00:00
Johannes Kirschbauer
d3927f50ae Tests/fix: forbid dynamic invalidation
We cannot support dynamic hashInvalidation.
This means the invalidation can change *after* or *before* a 'vars generate'
But not during the generation itself. This causes heavy performance overhead.
Additionally this introduces a fixed-point-iteration (compare: fixed-point-iteration vs. fixed-point-function)
This iteration takes ~ 1min for two bare-bones machine with 1 generator (see: checks/data-mesher)
2025-04-22 20:19:15 +02:00
Michael Hoang
50d032f6a4 Merge pull request 'cli/machines: don't allow installing on macOS' (#3387) from push-zrqstttptroo into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3387
2025-04-22 17:22:21 +00:00
Michael Hoang
1168395336 cli/machines: don't allow installing on macOS 2025-04-23 03:13:39 +10:00
Mic92
38cbe58af4 Merge pull request 'zerotier: migrate from facts to vars' (#3383) from zerotier-vars into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3383
2025-04-22 16:48:32 +00:00
Jörg Thalheim
043077269a drop overrides of nix version 2025-04-22 18:20:35 +02:00
Jörg Thalheim
c2030eb3ba drop test_secrets_password_store
we are phasing out facts and the only fact we had left for testing, got
now dropped. We still have a sops facts test, which we might also drop
soon.
2025-04-22 18:20:35 +02:00
Jörg Thalheim
ffaa30d894 vms/run: upload vars 2025-04-22 18:20:35 +02:00
Jörg Thalheim
847e3ac4ab drop unused machine_get_fact 2025-04-22 18:20:35 +02:00
Jörg Thalheim
7392570859 use machine.{secrets,public}_{vars,fact}_store everywhere 2025-04-22 18:20:35 +02:00
Jörg Thalheim
fe6fd41a4d zerotier: migrate from facts to vars 2025-04-22 18:20:35 +02:00
Michael Hoang
b5cc250237 Merge pull request 'networking: set targetHost if FQDN is explicitly set' (#3386) from push-tylstpvrwsxv into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3386
2025-04-22 15:40:45 +00:00
Michael Hoang
e6e7f5d5de networking: set targetHost if FQDN is explicitly set 2025-04-23 01:15:13 +10:00
hsjobeki
74e64d413f Merge pull request 'Fix: remove daisyui' (#3384) from hsjobeki/clan-core:ui-2 into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3384
2025-04-22 14:58:53 +00:00
Johannes Kirschbauer
e417f79527 pkgs/generate-test-vars: speed up vars generation by precaching 2025-04-22 16:47:39 +02:00
Johannes Kirschbauer
b47f2b6870 vars: move overeager cache invalidation after one generator closure is regenrated.
Invalidation doesn't need to be done after each generator is executed.
We cannot interpolate values from other generators into another
generator. The generators are executed in order. The finalScript of each
generator stays constant.
After the complete closure is generated the caller of generate may
decide to invalidate the flake cache
2025-04-22 16:42:21 +02:00
Michael Hoang
5cadb0cfbc Merge pull request 'nixosModules/clanCore: support nix-darwin' (#3287) from nix-darwin into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3287
2025-04-22 13:50:38 +00:00
hsjobeki
ce55397ef7 Merge pull request 'Checks: add nixosIntegration test example to hello-service' (#3373) from hsjobeki/clan-core:checks-hello into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3373
2025-04-22 13:45:46 +00:00
Michael Hoang
20ae80ee49 vars: fix default group on macOS 2025-04-22 23:39:47 +10:00
Michael Hoang
f40ab5c379 docs: always evaluate with class of nixos 2025-04-22 23:39:47 +10:00
Michael Hoang
de12036630 cli: support updating nix-darwin machines 2025-04-22 23:39:47 +10:00
Michael Hoang
91a2739ea3 cli: fix unnecessary sudo when unspecified user defaults to root 2025-04-22 23:39:46 +10:00
Johannes Kirschbauer
7dd249863f Fix: remove daisyui
We wanted to remove daisyui a long time ago
Since renovate updates broke all of the classes somehow we use the opportunity to remove daisyui
And will fix all the breakages continously as we work on the features
2025-04-22 15:24:52 +02:00
Michael Hoang
b5901d5577 cli: only use sudo when deploying locally 2025-04-22 23:14:03 +10:00
Michael Hoang
a0117c51c1 cli: use sudo consistently when running nixos-rebuild switch 2025-04-22 23:14:03 +10:00
Michael Hoang
a575894a83 nixosModules/clanCore: support nix-darwin 2025-04-22 23:14:03 +10:00
Michael Hoang
2bbf4b168a Back out "cli: don't update macOS machines"
This backs out commit 72ed0e258a.
2025-04-22 23:14:03 +10:00
Johannes Kirschbauer
a6d7c491e4 Fix: clnixos-integration tests only work on linux 2025-04-22 14:56:09 +02:00
Mic92
1f78de953a Merge pull request 'Container-tests: add multi-container network' (#3381) from netns into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3381
2025-04-22 12:11:27 +00:00
DavHau
18493f869b container-tests: add multi-container network 2025-04-22 13:26:37 +02:00
Michael Hoang
b6ac3dbc88 Merge pull request 'Chore: restore ui lockfile from a3f6fb21c8a22977009e1055fc1d31507977e7f2' (#3380) from hsjobeki/clan-core:ui-1 into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3380
2025-04-22 10:41:20 +00:00
Johannes Kirschbauer
4ead0045cb Fix: typescript problem with inventory indexing 2025-04-22 12:10:25 +02:00
renovate[bot]
3a5efdbd9f chore(deps): update sops-nix digest to 5e3e92b 2025-04-22 08:50:11 +00:00
Johannes Kirschbauer
6630e227c7 Chore: restore ui lockfile from a3f6fb21c8 2025-04-22 09:48:46 +02:00
Jörg Thalheim
508e71cace syncthing: warn that this module is currently not usuable without vms 2025-04-22 09:45:37 +02:00
Jörg Thalheim
21f69ca7c4 syncthing: migrate to new inventory system 2025-04-22 09:45:37 +02:00
Johannes Kirschbauer
999c47dbed Checks: add nixosIntegration test example to hello-service 2025-04-22 06:32:32 +00:00
657 changed files with 18988 additions and 9363 deletions

View File

@@ -1,9 +1,6 @@
name: checks
on:
pull_request:
push:
branches:
- main
jobs:
checks-impure:
runs-on: nix

View File

@@ -0,0 +1,53 @@
name: "Update pinned clan-core for checks"
on:
repository_dispatch:
workflow_dispatch:
schedule:
- cron: "51 2 * * *"
jobs:
update-pinned-clan-core:
runs-on: nix
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Update clan-core for checks
run: nix run .#update-clan-core-for-checks
- name: Create pull request
env:
CI_BOT_TOKEN: ${{ secrets.CI_BOT_TOKEN }}
run: |
export GIT_AUTHOR_NAME=clan-bot GIT_AUTHOR_EMAIL=clan-bot@clan.lol GIT_COMMITTER_NAME=clan-bot GIT_COMMITTER_EMAIL=clan-bot@clan.lol
git commit -am "Update pinned clan-core for checks"
git push origin +HEAD:update-clan-core-for-checks
set -x
resp=$(nix run --inputs-from . nixpkgs#curl -- -X POST \
-H "Authorization: token $CI_BOT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"head": "update-clan-core-for-checks",
"base": "main",
"title": "Update Clan Core for Checks",
"body": "This PR updates the pinned clan-core flake input that is used for checks."
}' \
"https://git.clan.lol/api/v1/repos/clan/clan-core/pulls")
pr_number=$(echo "$resp" | jq -r '.number')
# Merge when succeed
while true; do
resp=$(nix run --inputs-from . nixpkgs#curl -- -X POST \
-H "Authorization: token $CI_BOT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"Do": "merge",
"merge_when_checks_succeed": true,
"delete_branch_after_merge": true
}' \
"https://git.clan.lol/api/v1/repos/clan/clan-core/pulls/$pr_number/merge")
msg=$(echo $resp | jq -r '.message')
if [[ "$msg" != "Please try again later" ]]; then
break
fi
echo "Retrying in 2 seconds..."
sleep 2
done

31
.gitignore vendored
View File

@@ -1,20 +1,24 @@
.direnv
**/.nixos-test-history
***/.hypothesis
.nixos-test-history
.hypothesis
out.log
.coverage.*
**/qubeclan
qubeclan
pkgs/repro-hook
**/testdir
testdir
democlan
example_clan
**/result
/pkgs/clan-cli/clan_cli/nixpkgs
result*
/pkgs/clan-cli/clan_lib/nixpkgs
/pkgs/clan-cli/clan_cli/webui/assets
nixos.qcow2
**/*.glade~
*.glade~
/docs/out
**/.local.env
/pkgs/clan-cli/clan_lib/select
.local.env
# macOS stuff
.DS_Store
# dream2nix
.dream2nix
@@ -39,3 +43,14 @@ repo
node_modules
dist
.webui
# TODO: remove after bug in select is fixed
select
# Generated files
pkgs/clan-app/ui/api/API.json
pkgs/clan-app/ui/api/API.ts
pkgs/clan-app/ui/api/Inventory.ts
pkgs/clan-app/ui/api/modules_schemas.json
pkgs/clan-app/ui/api/schema.json
pkgs/clan-app/ui/.fonts

2
CODEOWNERS Normal file
View File

@@ -0,0 +1,2 @@
nixosModules/clanCore/vars/.* @lopter
pkgs/clan-cli/clan_cli/(secrets|vars)/.* @lopter

View File

@@ -1,4 +1,4 @@
# Contributing to Clan
<!-- Local file: docs/CONTRIBUTING.md -->
Go to the Contributing guide at https://docs.clan.lol/manual/contribute/
Go to the Contributing guide at https://docs.clan.lol/guides/contributing/CONTRIBUTING

View File

@@ -24,7 +24,7 @@ If you're new to Clan and eager to dive in, start with our quickstart guide and
In the Clan ecosystem, security is paramount. Learn how to handle secrets effectively:
- **Secrets Management**: Securely manage secrets by consulting [secrets](https://docs.clan.lol/getting-started/secrets/)<!-- [secrets.md](docs/site/getting-started/secrets.md) -->.
- **Secrets Management**: Securely manage secrets by consulting [secrets](https://docs.clan.lol/guides/getting-started/secrets/)<!-- [secrets.md](docs/site/guides/getting-started/secrets.md) -->.
### Contributing to Clan

64
checks/admin/default.nix Normal file
View File

@@ -0,0 +1,64 @@
{
pkgs,
self,
clanLib,
...
}:
let
public-key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAII6zj7ubTg6z/aDwRNwvM/WlQdUocMprQ8E92NWxl6t+ test@test";
in
clanLib.test.makeTestClan {
inherit pkgs self;
nixosTest = (
{ ... }:
{
name = "admin";
clan = {
directory = ./.;
modules."@clan/admin" = ../../clanServices/admin/default.nix;
inventory = {
machines.client = { };
machines.server = { };
instances = {
ssh-test-one = {
module.name = "@clan/admin";
roles.default.machines."server".settings = {
allowedKeys.testkey = public-key;
};
};
};
};
};
nodes = {
client.environment.etc.private-test-key.source = ./private-test-key;
server = {
services.openssh = {
enable = true;
settings.UsePAM = false;
};
};
};
testScript = ''
start_all()
machines = [client, server]
for m in machines:
m.systemctl("start network-online.target")
for m in machines:
m.wait_for_unit("network-online.target")
client.succeed(f"ssh -F /dev/null -i /etc/private-test-key -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o BatchMode=yes root@server true &>/dev/null")
'';
}
);
}

View File

@@ -0,0 +1,8 @@
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
QyNTUxOQAAACCOs4+7m04Os/2g8ETcLzP1pUHVKHDKa0PBPdjVsZerfgAAAJDXdRkm13UZ
JgAAAAtzc2gtZWQyNTUxOQAAACCOs4+7m04Os/2g8ETcLzP1pUHVKHDKa0PBPdjVsZerfg
AAAECIgb2FQcgBKMniA+6zm2cwGre60ATu3Sg1GivgAqVJlI6zj7ubTg6z/aDwRNwvM/Wl
QdUocMprQ8E92NWxl6t+AAAAC3BpbnBveEBraXdpAQI=
-----END OPENSSH PRIVATE KEY-----

View File

@@ -0,0 +1,6 @@
[
{
"publickey": "age1q4e7nsw5z6mqeqk5u5kug8lwhpq3f276s0t0npwfffwdkfh58gkqxknhjg",
"type": "age"
}
]

View File

@@ -0,0 +1,15 @@
{
"data": "ENC[AES256_GCM,data:ET/FggP6t7L60krfVRvtMjv++xr3zqRsJ58AfnPS1zjTovV5tE9RgnboGY1ieS7fCs4VOL2S6ELtwV1+BTLDQX9s0c5A9cKqjnc=,iv:6EQ6DOqxUdHcOziTxf8kl0sp1Pggu720s5BJ8zA9Je0=,tag:hQMPWaWb4igqDYjwNehlqQ==,type:str]",
"sops": {
"age": [
{
"recipient": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBRWjhuZkgwNEZTL3JXZHFE\nTC9jSXJGcVd2bnkvOE1qV0d6TzNobFZobndvCmF1UmhVUWtKeVVwS29NY21ONkRn\nZU5sM01kTU9rQVNENi9paUFWbERoWnMKLS0tIEdjZzgwQjFtWlVtRGZwdW9GY0FK\nSER1TTFNVGxFa0ZrclR4MitWVERiSGMK9DNLzlJZelcpP0klwSDMggTAy5ZVOmsZ\niuu8dXMSdIeTd7l8rpZZN27BaKUm8yEDpUmot5Vq9rbZl6SO3ncX+A==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2025-05-07T11:45:41Z",
"mac": "ENC[AES256_GCM,data:m8eTnPtMzrooEah43mvjwHxQIwR/aq+A1wYyG/rQ75COq/TQepfMiDSrCJKW8x+OKmN/3HZs1b9k659jNNMF+RtMag0+/ovTmr7PQux3IkzWl+R2kU3Y7WDOMweBKY3mTMu6reICE1YVME8vJwhDDbA5JCXJv64rkTz2tfGt4CQ=,iv:/vrwJyEVsfm1cUK//TesY24Makt8YI8mwx5GIhn4038=,tag:H2tS9ohvWJ4TWB6LghcZNg==,type:str]",
"unencrypted_suffix": "_unencrypted",
"version": "3.10.2"
}
}

View File

@@ -0,0 +1 @@
../../../users/admin

View File

@@ -0,0 +1,4 @@
{
"publickey": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
"type": "age"
}

View File

@@ -0,0 +1 @@
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICVVQjCEuryZii1LmJyjx9DX44eJh3qwTTEWlahYONsz nixbld@kiwi

View File

@@ -0,0 +1 @@
../../../../../../sops/machines/server

View File

@@ -0,0 +1,19 @@
{
"data": "ENC[AES256_GCM,data:yH7IQixe4nudnK4QOsr7VYoJ1YrVLP0Ufvgu7TNWSJnc55khKZHvQiDIlxzCIrAyMgUYwPNmrrZn9PZhgjAQZm7/o6SmP91Efb0yWM55o861El6v59yw0fseo3z6xAisjlg3KwTd5KMrRhzT0HzrjLn89SYRVh7DAWK+Cs7HVGvKVJ1E6AWiJmFPXIB7YaqJ7P4jZW9u7bEMCZabsRRqgS8dWXVXw9VS5ll4bNYQY4x5p2eg6e81zdeY2Y9Gbi5ty1Whqpzko2Pvggu6K4zUDXikM4lWggvIXzfrJA7HNE3xzXw94J45woj1y5FVOzn1Ve5kCc8PjVGaJ32poGkZiiD07kd5PxZuyVexREJpgz29lyB6nRJJeau4gpSG1VHOyNdwwBsBBm+zn6v2rlVzJPTlqmCV1+5UKf8JZKziIDFfi/78kSdtaeX+miJJvyDRkqNpQ7htEI0TAS8yQrkjWEIyaPAWQ2Usa8g1UrEftTlGUi/aMC2ob0qTLQQbhNhlSV/dImzI/qRMqSy2RWeS,iv:EuprKOFKzNLZrGlPtU2mEjmtNPNOcuVDbuvrtYyrerc=,tag:ny/q1AMHIQ8OgUNEE0Cc8w==,type:str]",
"sops": {
"age": [
{
"recipient": "age1q4e7nsw5z6mqeqk5u5kug8lwhpq3f276s0t0npwfffwdkfh58gkqxknhjg",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBLODFxUjREa2tOYW9xaHYw\nQlhWZ282UVhiOGRndk0xYnlCQWRYR01qS2hJCllySUZyblJmTkgyZXd5bjVINDBo\nbEhIWmxycVdOVW0xTUxkalF5Y1k2bXcKLS0tIGRRS1VqOG5sanh2dXR5a2FGeXRs\nK3ZUdERCdEkvMmt3ZndPZEM3QUxJZzAKutOr9jHPCL86zEdMWJ6YZmplcr4tDAcN\nncQfC5rddYDW+0y/crwepKTa2FZjQheOY7jobZanU19ai521hqDSVw==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBxc3NxNGhRYmU3eFNodDZ4\ndnNTeHFnNXBKbUxmNHBjRlFpNG0zdVNpS2d3CjhrOUlSQU5BZVlSdWR3dnNyODZO\nRFBKZWpwWHlOUW03OGlVZlRQUmMrMzQKLS0tIEd6ei9LU3ZFTzlWTUk1c3huS1RQ\nbG1vQzI4ODJkeFcyRnJaQWp1Wk9zSkUKXefMOk/ZT4P6DItfnM82RoOvX4SBn7Fn\nlAoMnSzaRCunDwq7ha05G45gcI2Wjv3urjt0tmdmrmTnFtBSSt23TQ==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2025-05-07T11:45:47Z",
"mac": "ENC[AES256_GCM,data:ORCANHbEX13O+zBVLOYyPxYIr1RS3NybTBb23ES7RbiGhSl2t/TXcfPWU5Smuqee0tfcrxL0u1FELZta4IysySW54JlD2907E9OUJWlQ6seOxADla4TMukW2pwhSsUJ9XfjEwC07zYB0alHzO3pY+LG3OAWzyhAlWzHlB5+WqIA=,iv:As+CjAJxKht0PJs3S2WWzho7UBqaUUltBIrYvlzBAbM=,tag:PSyUKaPZZNCxqd6XLPJSCw==,type:str]",
"unencrypted_suffix": "_unencrypted",
"version": "3.10.2"
}
}

View File

@@ -0,0 +1 @@
../../../../../../sops/users/admin

View File

@@ -0,0 +1 @@
../../../../../../sops/machines/server

View File

@@ -0,0 +1,19 @@
{
"data": "ENC[AES256_GCM,data:5Fa0TQN/Whj311JZuVWXnp+2KJaNZPb/TOnP23T+KktulabcBA9go+/F+8wJbsEH2mf6UDq656p6C+kLIvfBFl2O/WwSOhsl23as9TLbgB6gBq73GjyV81VFsnLYNLHKMq+8nfJHM/WekA==,iv:n5vz3q5N6DplLWibdiCcYDdiN7q1VggzPoIYy9r2ZJw=,tag:FoGXrrJfjHZCUVTS2RESmw==,type:str]",
"sops": {
"age": [
{
"recipient": "age1q4e7nsw5z6mqeqk5u5kug8lwhpq3f276s0t0npwfffwdkfh58gkqxknhjg",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBheXZvUW9YbjBFMi9mZnVk\ncGFPQzFOZkNPMU1HckhtSGtDWExpWVNYRlV3CjdDaDlSd2wzVnhKZGU0aFY0UnZY\nQStPSkxuSmlyOU9aeUdRaEJ2UTRRSm8KLS0tIFd3SG9YdEU5T2tzNk16b2s1SUNj\nWkh2cng5eWd3ZmxVZDhSR2Y1QnFySDgKGb/t+8NqiSGgmFOJc1NmDYZ+PXlANy8V\nuFwUTeqWAv7pOiGC8oessfyTPaJ7gWjz+XfKV5JVVikK2l3J4eAGxg==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWM0daWmxCTjAyQStwQ2lM\nNkcyZW9hRmpDelRJR0VVTWhNTGFuZWhCc1RJCm81ZXowZjBhWGpIQTBhQnZLSmQy\nVUNNYjI0bVpqQ21YZS95TW53OUx1YUkKLS0tIDRUUE1zczBDeFJTOTQyVXVkMkYy\ncVVTN3J6TWtwcXVpM0M5c0gxUXpmV2cKwlWrbGLtkO2+PXKoMoHTV5aJpnfVy3RP\n6i8DDpLPGYfVUtWxHx+L+NmMxmw1AvmKSbdB4Y7aSbBW2mea3j1YCg==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2025-05-07T11:45:50Z",
"mac": "ENC[AES256_GCM,data:rwdbGOg8l8fWT2GYFx+PgV3oPxt5+NCHJf3PhG3V2lrRMPRisyf1nKwDsYavTuhv+bZC/qo4LrGylcXsHWdkCe/xBX+/jYLMf6nJZPk8BPzfUpiDnEKwRl05qfRfkIDusnQrlBrE+tqtcool65js7hYIzSi92O/hxbzzfsCUpqk=,iv:lUTNJkr6Zh3MQm/h7Ven4N6xVn4VeTXOEKzxd0HSsCk=,tag:Bwbi4HD9vzso6306y7EZOg==,type:str]",
"unencrypted_suffix": "_unencrypted",
"version": "3.10.2"
}
}

View File

@@ -0,0 +1 @@
../../../../../../sops/users/admin

View File

@@ -0,0 +1,15 @@
{
"data": "ENC[AES256_GCM,data:sPh+BuT2we+d/GaMv4zPWc3rPhlMsJQC,iv:VwcHUOMaNiao+R8RBtUINffEUhutktKD6KEWLkFxyp4=,tag:SNVKLjjDv+u5XTVczs2/Uw==,type:str]",
"sops": {
"age": [
{
"recipient": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBJVWNYRGEwVWxDSmE4bTNL\nRlZPeGZabFZZNGFsMEwzV1ZmT1pqNVk4STMwCkg5UER0Vjk3K1RMazVVYjF3SDc2\ndDZHa3VtYjRiWUJET25weXprc0JNUjAKLS0tIDdVb2xNdWxCcjhpSGtGWDV0d2ti\nZENkZGNpSTNzMVVTZVN0ZktLc2VackEKdexhI37pwcnbZbcy30k9Uo5Z7z3NLqlx\nspxJ87SzEwdStTMhiH1iYf62vcyAOTa4HwfXu97MGVPFNw13/VfgCw==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2025-05-07T11:45:50Z",
"mac": "ENC[AES256_GCM,data:tZRh8qj7JUnhXCfqCHJKWEFQ8XLtmo/p0C+eFIK+34enxfB5lG5Lq83wBXLa0D/nqrr58z1rLO+UVDOI5LH1jFxARBZZnUKrVJNTDHa5pUnlnVOFEOoc+R0h2E5Xw9OHaq7aDUh4fT9+gNDpguKggI5fS9KqRnmZ4VrpNccjnkw=,iv:2yI25fcWMog91EMD7bYQy3GS30a7gZHnif93MaE3sZo=,tag:tYqa6zssiU3BCFU5xmDYZQ==,type:str]",
"unencrypted_suffix": "_unencrypted",
"version": "3.10.2"
}
}

View File

@@ -0,0 +1 @@
../../../../../../sops/users/admin

View File

@@ -0,0 +1,41 @@
{ self, pkgs, ... }:
{
name = "app-ocr-smoke-test";
enableOCR = true;
nodes = {
wayland =
{ modulesPath, ... }:
{
imports = [ (modulesPath + "/../tests/common/wayland-cage.nix") ];
services.cage.program = "${self.packages.${pkgs.system}.clan-app}/bin/clan-app";
virtualisation.memorySize = 2047;
# TODO: get rid of this and fix debus-proxy error instead
services.cage.environment.WEBKIT_DISABLE_SANDBOX_THIS_IS_DANGEROUS = "1";
};
xorg =
{ pkgs, modulesPath, ... }:
{
imports = [
(modulesPath + "/../tests/common/user-account.nix")
(modulesPath + "/../tests/common/x11.nix")
];
virtualisation.memorySize = 2047;
services.xserver.enable = true;
services.xserver.displayManager.sessionCommands = "${
self.packages.${pkgs.system}.clan-app
}/bin/clan-app";
test-support.displayManager.auto.user = "alice";
};
};
testScript = ''
start_all()
wayland.wait_for_unit('graphical.target')
xorg.wait_for_unit('graphical.target')
wayland.wait_for_text('Welcome to Clan')
xorg.wait_for_text('Welcome to Clan')
'';
}

View File

@@ -36,7 +36,7 @@
# Borgbackup overrides
services.borgbackup.repos.test-backups = {
path = "/var/lib/borgbackup/test-backups";
authorizedKeys = [ (builtins.readFile ../lib/ssh/pubkey) ];
authorizedKeys = [ (builtins.readFile ../assets/ssh/pubkey) ];
};
clan.borgbackup.destinations.test-backup.repo = lib.mkForce "borg@machine:.";
@@ -45,7 +45,7 @@
programs.ssh.knownHosts = {
machine.hostNames = [ "machine" ];
machine.publicKey = builtins.readFile ../lib/ssh/pubkey;
machine.publicKey = builtins.readFile ../assets/ssh/pubkey;
};
services.openssh = {
@@ -60,7 +60,7 @@
];
};
users.users.root.openssh.authorizedKeys.keyFiles = [ ../lib/ssh/pubkey ];
users.users.root.openssh.authorizedKeys.keyFiles = [ ../assets/ssh/pubkey ];
# This is needed to unlock the user for sshd
# Because we use sshd without setuid binaries
@@ -68,21 +68,21 @@
systemd.tmpfiles.settings."vmsecrets" = {
"/root/.ssh/id_ed25519" = {
C.argument = "${../lib/ssh/privkey}";
C.argument = "${../assets/ssh/privkey}";
z = {
mode = "0400";
user = "root";
};
};
"/etc/secrets/ssh.id_ed25519" = {
C.argument = "${../lib/ssh/privkey}";
C.argument = "${../assets/ssh/privkey}";
z = {
mode = "0400";
user = "root";
};
};
"/etc/secrets/borgbackup/borgbackup.ssh" = {
C.argument = "${../lib/ssh/privkey}";
C.argument = "${../assets/ssh/privkey}";
z = {
mode = "0400";
user = "root";
@@ -147,29 +147,11 @@
perSystem =
{ pkgs, ... }:
let
clanCore = self.filter {
include = [
"checks/backups"
"checks/flake-module.nix"
"clanModules/borgbackup"
"clanModules/flake-module.nix"
"clanModules/localbackup"
"clanModules/packages"
"clanModules/single-disk"
"clanModules/zerotier"
"flake.lock"
"flakeModules"
"inventory.json"
"nixosModules"
# Just include everything in 'lib'
# If anything changes in /lib that may affect everything
"lib"
];
};
clanCore = self.checks.x86_64-linux.clan-core-for-checks;
in
{
checks = pkgs.lib.mkIf pkgs.stdenv.isLinux {
backups = (import ../lib/container-test.nix) {
backups = self.clanLib.test.containerTest {
name = "backups";
nodes.machine = {
imports =
@@ -182,11 +164,6 @@
# import the inventory generated nixosModules
self.clanInternals.inventoryClass.machines.test-backup.machineImports;
clan.core.settings.directory = ./.;
environment.systemPackages = [
(pkgs.writeShellScriptBin "foo" ''
echo ${clanCore}
'')
];
};
testScript = ''

View File

@@ -1,4 +1,4 @@
(import ../lib/test-base.nix) (
(
{ ... }:
{
name = "borgbackup";
@@ -12,7 +12,7 @@
{
services.openssh.enable = true;
services.borgbackup.repos.testrepo = {
authorizedKeys = [ (builtins.readFile ../lib/ssh/pubkey) ];
authorizedKeys = [ (builtins.readFile ../assets/ssh/pubkey) ];
};
}
{
@@ -21,7 +21,7 @@
environment.etc.state.text = "hello world";
systemd.tmpfiles.settings."vmsecrets" = {
"/etc/secrets/borgbackup/borgbackup.ssh" = {
C.argument = "${../lib/ssh/privkey}";
C.argument = "${../assets/ssh/privkey}";
z = {
mode = "0400";
user = "root";

View File

@@ -0,0 +1,6 @@
{ fetchgit }:
fetchgit {
url = "https://git.clan.lol/clan/clan-core.git";
rev = "843e1b24be6ff9a7015e67b3291216c08f628d3e";
sha256 = "1bfm3n9r9k8prbwsh0yzp421y4ahblv407gqihwvcpiqsx6s3b9b";
}

View File

@@ -1,19 +1,44 @@
(import ../lib/container-test.nix) (
(
{ ... }:
{
name = "container";
nodes.machine =
nodes.machine1 =
{ ... }:
{
networking.hostName = "machine";
networking.hostName = "machine1";
services.openssh.enable = true;
services.openssh.startWhenNeeded = false;
};
nodes.machine2 =
{ ... }:
{
networking.hostName = "machine2";
services.openssh.enable = true;
services.openssh.startWhenNeeded = false;
};
testScript = ''
import subprocess
start_all()
machine.succeed("systemctl status sshd")
machine.wait_for_unit("sshd")
machine1.succeed("systemctl status sshd")
machine2.succeed("systemctl status sshd")
machine1.wait_for_unit("sshd")
machine2.wait_for_unit("sshd")
p1 = subprocess.run(["ip", "a"], check=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
assert p1.returncode == 0
bridge_output = p1.stdout.decode("utf-8")
assert "br0" in bridge_output, f"bridge not found in ip a output: {bridge_output}"
for m in [machine1, machine2]:
out = machine1.succeed("ip addr show eth1")
assert "UP" in out, f"UP not found in ip addr show output: {out}"
assert "inet" in out, f"inet not found in ip addr show output: {out}"
assert "inet6" in out, f"inet6 not found in ip addr show output: {out}"
machine1.succeed("ping -c 1 machine2")
'';
}
)

View File

@@ -0,0 +1,122 @@
{
...
}:
{
perSystem =
{
system,
pkgs,
self',
lib,
...
}:
let
clanCore = self'.packages.clan-core-flake;
clanCoreHash = lib.substring 0 12 (builtins.hashString "sha256" "${clanCore}");
/*
construct a flake for the test which contains a single check which depends
on all checks of clan-core.
*/
testFlakeFile = pkgs.writeText "flake.nix" ''
{
inputs.clan-core.url = path:///to/nowhere;
outputs = {clan-core, ...}:
let
checks =
builtins.removeAttrs
clan-core.checks.${system}
[
"dont-depend-on-repo-root"
"package-dont-depend-on-repo-root"
"package-clan-core-flake"
];
checksOutPaths = map (x: "''${x}") (builtins.attrValues checks);
in
{
checks.${system}.check = builtins.derivation {
name = "all-clan-core-checks";
system = "${system}";
builder = "/bin/sh";
args = ["-c" '''
of outPath in ''${toString checksOutPaths}; do
echo "$outPath" >> $out
done
'''];
};
};
}
'';
in
lib.optionalAttrs (system == "x86_64-linux") {
packages.dont-depend-on-repo-root =
pkgs.runCommand
# append repo hash to this tests name to ensure it gets invalidated on each chain
# This is needed because this test is an FOD (due to networking) and would get cached indefinitely.
"check-dont-depend-on-repo-root-${clanCoreHash}"
{
buildInputs = [
pkgs.nix
pkgs.cacert
pkgs.nix-diff
];
outputHashAlgo = "sha256";
outputHash = "sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=";
}
''
mkdir clanCore testFlake store
clanCore=$(realpath clanCore)
testFlake=$(realpath testFlake)
# copy clan core flake and make writable
cp -r ${clanCore}/* clanCore/
chmod +w -R clanCore\
# copy test flake and make writable
cp ${testFlakeFile} testFlake/flake.nix
chmod +w -R testFlake
# enable flakes
export NIX_CONFIG="experimental-features = nix-command flakes"
# give nix a $HOME
export HOME=$(realpath ./store)
# override clan-core flake input to point to $clanCore\
echo "locking clan-core to $clanCore"
nix flake lock --override-input clan-core "path://$clanCore" "$testFlake" --store "$HOME"
# evaluate all tests
echo "evaluating all tests for clan core"
nix eval "$testFlake"#checks.${system}.check.drvPath --store "$HOME" --raw > drvPath1 &
# slightly modify clan core
cp -r $clanCore clanCore2
cp -r $testFlake testFlake2
export clanCore2=$(realpath clanCore2)
export testFlake2=$(realpath testFlake2)
touch clanCore2/fly-fpv
# re-evaluate all tests
echo "locking clan-core to $clanCore2"
nix flake lock --override-input clan-core "path://$clanCore2" "$testFlake2" --store "$HOME"
echo "evaluating all tests for clan core with added file"
nix eval "$testFlake2"#checks.${system}.check.drvPath --store "$HOME" --raw > drvPath2
# wait for first nix eval to return as well
while ! grep -q drv drvPath1; do sleep 1; done
# raise error if outputs are different
if [ "$(cat drvPath1)" != "$(cat drvPath2)" ]; then
echo -e "\n\nERROR: Something in clan-core depends on the whole repo" > /dev/stderr
echo -e "See details in the nix-diff below which shows the difference between two evaluations:"
echo -e " 1. Evaluation of clan-core checks without any changes"
echo -e " 1. Evaluation of clan-core checks after adding a file to the top-level of the repo"
echo "nix-diff:"
export NIX_REMOTE="$HOME"
nix-diff $(cat drvPath1) $(cat drvPath2)
exit 1
fi
touch $out
'';
};
}

View File

@@ -26,6 +26,7 @@ clanLib.test.makeTestClan {
roles.admin.machines = [ "admin1" ];
};
};
instances."test" = {
module.name = "new-service";
roles.peer.machines.peer1 = { };
@@ -33,30 +34,38 @@ clanLib.test.makeTestClan {
modules = {
legacy-module = ./legacy-module;
new-service = {
};
};
modules.new-service = {
_class = "clan.service";
manifest.name = "new-service";
roles.peer = { };
perMachine = {
nixosModule = {
# This should be generated by:
# ./pkgs/scripts/update-vars.py
# nix run .#generate-test-vars -- checks/dummy-inventory-test dummy-inventory-test
clan.core.vars.generators.new-service = {
files.hello = {
files.not-a-secret = {
secret = false;
deploy = true;
};
files.a-secret = {
secret = true;
deploy = true;
owner = "nobody";
group = "users";
mode = "0644";
};
script = ''
# This is a dummy script that does nothing
echo "This is a dummy script" > $out/hello
echo -n "not-a-secret" > $out/not-a-secret
echo -n "a-secret" > $out/a-secret
'';
};
};
};
};
};
};
};
testScript =
{ nodes, ... }:
@@ -69,7 +78,15 @@ clanLib.test.makeTestClan {
print(peer1.succeed("systemctl status dummy-service"))
# peer1 should have the 'hello' file
peer1.succeed("cat ${nodes.peer1.clan.core.vars.generators.new-service.files.hello.path}")
peer1.succeed("cat ${nodes.peer1.clan.core.vars.generators.new-service.files.not-a-secret.path}")
ls_out = peer1.succeed("ls -la ${nodes.peer1.clan.core.vars.generators.new-service.files.a-secret.path}")
# Check that the file is owned by 'nobody'
assert "nobody" in ls_out, f"File is not owned by 'nobody': {ls_out}"
# Check that the file is in the 'users' group
assert "users" in ls_out, f"File is not in the 'users' group: {ls_out}"
# Check that the file is in the '0644' mode
assert "-rw-r--r--" in ls_out, f"File is not in the '0644' mode: {ls_out}"
'';
}
);

View File

@@ -1,6 +1,6 @@
[
{
"publickey": "age1hd2exjq88h7538y6mvjvexx3u5gp6a03yfn5nj32h2667yyksyaqcuk5qs",
"publickey": "age12yt078p9ewxy2sh0a36nxdpgglv8wqqftmj4dkj9rgy5fuyn4p0q5nje9m",
"type": "age"
}
]

View File

@@ -1,6 +1,6 @@
[
{
"publickey": "age19urkt89q45a2wk6a4yaramzufjtnw6nq2snls0v7hmf7tqf73axsfx50tk",
"publickey": "age12w2ld4vxfyf3hdq2d8la4cu0tye4pq97egvv3me4wary7xkdnq2snh0zx2",
"type": "age"
}
]

View File

@@ -1,15 +1,15 @@
{
"data": "ENC[AES256_GCM,data:hhuFgZcPqht0h3tKxGtheS4GlrVDo4TxH0a9lxgPYj2i12QUmE04rB07A+hu4Z8WNWLYvdM5069mEOZYm3lSeTzBHQPxYZRuVj0=,iv:sA1srRFQqsMlJTAjFcb09tI/Jg2WjOVJL5NZkPwiLoU=,tag:6xXo9FZpmAJw6hCBsWzf8Q==,type:str]",
"data": "ENC[AES256_GCM,data:GPpsUhSzWPtTP8EUNKsobFXjYqDldhkkIH6hBk11RsDLAGWdhVrwcISGbhsWpYhvAdPKA84DB6Zqyh9lL2bLM9//ybC1kzY20BQ=,iv:NrxMLdedT2FCkUAD00SwsAHchIsxWvqe7BQekWuJcxw=,tag:pMDXcMyHnLF2t3Qhb1KolA==,type:str]",
"sops": {
"age": [
{
"recipient": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGaGVHeTgrN3dJQ2VITFBM\neWVzbDhjb0pwNUhBUjdUc0p5OTVta1dvSno4ClJxeUc4Z0hiaFRkVlJ1YTA4Lyta\neWdwV005WGYvMUNRVG1qOVdicTk0NUkKLS0tIFQvaDNFS1JMSFlHRXlhc3lsZm03\nYVhDaHNsam5wN1VqdzA3WTZwM1JwV2sKZk/SiZJgjllADdfHLSWuQcU4+LttDpt/\nqqDUATEuqYaALljC/y3COT+grTM2bwGjj6fsfsfiO/EL9iwzD3+7oA==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzb2tWb1ExKzdmUTRzaGVj\nK3cyYTBHZTJwVjM1SzUvbHFiMnVhY05iKzFZCnJTSE1VSVdpcUFLSEJuaE1CZzJD\nWjZxYzN2cUltdThNMVRKU3FIb20vUXMKLS0tIFlHQXRIdnMybDZFUVEzWlQrc1dw\nbUxhZURXblhHd0pka0JIK1FTZEVqdUEKI/rfxQRBc+xGRelhswkJQ9GcZs6lzfgy\nuCxS5JI9npdPLQ/131F3b21+sP5YWqks41uZG+vslM1zQ+BlENNhDw==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2025-04-09T15:10:16Z",
"mac": "ENC[AES256_GCM,data:xuXj4833G6nhvcRo2ekDxz8G5phltmU8h1GgGofH9WndzrqLKeRSqm/n03IHRW0f4F68XxnyAkfvokVh6vW3LRQAFkqIlXz5U4+zFNcaVaPobS5gHTgxsCoTUoalWPvHWtXd50hUVXeAt8rPfTfeveVGja8bOERk8mvwUPxb6h4=,iv:yP1usA9m8tKl6Z/UK9PaVMJlZlF5qpY4EiM4+ByVlik=,tag:8DgoIhLstp3MRki90VfEvw==,type:str]",
"lastmodified": "2025-05-04T12:44:13Z",
"mac": "ENC[AES256_GCM,data:fWxLHXBWolHVxv6Q7utcy6OVLV13ziswrIYyNKiwy1vsU8i7xvvuGO1HlnE+q43D2WuHR53liKq1UHuf1JMrWzTwZ0PYe+CVugtoEtbR2qu3rK/jAkOyMyhmmHzmf6Rp4ZMCzKgZeC/X2bDKY/z0firHAvjWydEyogutHpvtznM=,iv:OQI3FfkLneqbdztAXVQB3UkHwDPK+0hWu5hZ9m8Oczg=,tag:em6GfS2QHsXs391QKPxfmA==,type:str]",
"unencrypted_suffix": "_unencrypted",
"version": "3.10.1"
"version": "3.10.2"
}
}

View File

@@ -1,15 +1,15 @@
{
"data": "ENC[AES256_GCM,data:rwPhbayGf6mE1E9NCN+LuL7VfWWOfhoJW6H2tNSoyebtyTpM3GO2jWca1+N7hI0juhNkUk+rIsYQYbCa/5DZQiV0/2Jgu4US1XY=,iv:B5mcaQsDjb6BacxGB4Kk88/qLCpVOjQNRvGN+fgUiEo=,tag:Uz0A8kAF5NzFetbv9yHIjQ==,type:str]",
"data": "ENC[AES256_GCM,data:W3cOkUYL5/YulW2pEISyTlMaA/t7/WBE7BoCdFlqrqgaCL7tG4IV2HgjiPWzIVMs0zvDSaghdEvAIoB4wOf470d1nSWs0/E8SDk=,iv:wXXaZIw3sPY8L/wxsu7+C5v+d3RQRuwxZRP4YLkS8K4=,tag:HeK4okj7O7XDA9JDz2KULw==,type:str]",
"sops": {
"age": [
{
"recipient": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWY0hKQ1dnV0tMYytDMCtj\nTDV4Zk5NeVN0bCtqaWRQV3d4M0VlcGVZMkhZCm02dHZyOGVlYzJ5Z3FlUWNXMVQ0\nb2ZrTXZQRzRNdzFDeWZCVGhlTS9rMm8KLS0tIEJkY1QwOENRYWw3cjIwd3I0bzdz\nOEtQNm1saE5wNWt2UUVnYlN4NWtGdFkKmWHU5ttZoQ3NZu/zkX5VxfC2sMpSOyod\neb7LRhFqPfo5N1XphJcCqr5QUoZOfnH0xFhZ2lxWUS3ItiRpU4VDwg==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxRC83b3dtSVpXcGovNnVs\nTzFka2J2MEFhYkF1ajVrdjMrNUtPWGRObjM4Cm5zSUR5OGw0T0FaL3BaWmR6L29W\nU2syMFIyMUhFRUZpWFpCT28vWko2ZU0KLS0tIFpHK3BjU1V1L0FrMGtwTGFuU3Mz\nRkV5VjI2Vndod202bUR3RWQwNXpmVzQKNk8/y7M62wTIIKqY4r3ZRk5aUCRUfine\n1LUSHMKa2bRe+hR7nS7AF4BGXp03h2UPY0FP5+U5q8XuIj1jfMX8kg==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2025-04-09T15:10:41Z",
"mac": "ENC[AES256_GCM,data:pab0G2GPjgs59sbiZ8XIV5SdRtq5NPU0yq18FcqiMV8noAL94fyVAY7fb+9HILQWQsEjcykgk9mA2MQ0KpK/XG8+tDQKcBH+F+2aQnw5GJevXmfi7KLTU0P224SNo7EnKlfFruB/+NZ0WBtkbbg1OzekrbplchpSI6BxWz/jASE=,iv:TCj9FCxgfMF2+PJejr67zgGnF+CFS+YeJiejnHbf7j0=,tag:s7r9SqxeqpAkncohYvIQ2Q==,type:str]",
"lastmodified": "2025-05-04T12:44:16Z",
"mac": "ENC[AES256_GCM,data:yTkQeFvKrN1+5FP+yInsaRWSAG+ZGG0uWF3+gVRvzJTFxab8kT2XkAMc+4D7SKgcjsmwBBb77GNoAKaKByhZ92UaCfZ2X66i7ZmYUwLM1NVVmm+xiwwjsh7PJXlZO/70anTzd1evtlZse0jEmRnV5Y0F0M6YqXmuwU+qGUJU2F8=,iv:sy6ozhXonWVruaQfa7pdEoV5GkNZR/UbbINKAPbgWeg=,tag:VMruQ1KExmlMR7TsGNgMlg==,type:str]",
"unencrypted_suffix": "_unencrypted",
"version": "3.10.1"
"version": "3.10.2"
}
}

View File

@@ -1,19 +1,19 @@
{
"data": "ENC[AES256_GCM,data:bxM9aYMK,iv:SMNYtk9FSyZ1PIfEzayTKKdCnZWdhcyUEiTwFUNb988=,tag:qJYW4+VQyhF1tGPQPTKlOQ==,type:str]",
"data": "ENC[AES256_GCM,data:T8edCvw=,iv:7/G5xt5fv38I9uFzk7WMIr9xQdz/6lFxqOC+18HBg8Q=,tag:F39Cxbgmzml+lZLsZ59Kmg==,type:str]",
"sops": {
"age": [
{
"recipient": "age1hd2exjq88h7538y6mvjvexx3u5gp6a03yfn5nj32h2667yyksyaqcuk5qs",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAvZDZYYXdpcXVqRFRnQ2Jx\nTFhFWEJTR290cHZhTXZadFFvcHM4MHVIN3lFCmJhOEZrL3g4TFBZVllxdDFZakJn\nR3NxdXo0eE8vTDh3QlhWOFpVZ0lNUHcKLS0tIEE4dkpCalNzaXJ0Qks3VHJSUzZF\nb2N3NGdjNHJnSUN6bW8welZ1VDdJakEKGKZ7nn1p11IyJB6DMxu2HJMvZ+0+5WpE\nPLWh2NlGJO3XrrL4Fw7xetwbqE+QUZPNl/JbEbu4KLIUGLjqk9JDhQ==\n-----END AGE ENCRYPTED FILE-----\n"
"recipient": "age12yt078p9ewxy2sh0a36nxdpgglv8wqqftmj4dkj9rgy5fuyn4p0q5nje9m",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPNUhiYkZWK3dPMHNiRTVM\nRHNvaHFsOFp1c0UxQitwVG0zY01MNDZRV1E4CjEybENoTVIzN29vQ3FtUTRSYmFU\nNXIzQllVSllXRGN2M1B6WXJLdHZSajgKLS0tIDllZ0ZmZUcxMHhDQUpUOEdWbmkv\neUQweHArYTdFSmNteVpuQ3BKdnh0Y0UKs8Hm3D+rXRRfpUVSZM3zYjs6b9z8g10D\nGTkvreUMim4CS22pjdQ3eNA9TGeDXfWXE7XzwXLCb+wVcf7KwbDmvg==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBHckJCQVFyb21aT1R0d2Rr\nMWxNMHVqcGxabHBmS0RibW9sN0gyZDI1b1dFCnRWUk5LSWdxV3c4RWVZdUtEN1Fv\nRk4xVmwwT2xrdWVERkJXUVVlVXJjTVUKLS0tIC9ERG9KMGxTNEsrbzFHUGRiVUlm\nRi9qakxoc1FOVVV1TkUrckwxRUVnajQKE8ms/np2NMswden3xkjdC8cXccASLOoN\nu+EaEk69UvBvnOg9VBjyPAraIKgNrTc4WWwz+DOBj1pCwVbu9XxUlA==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKSDhpT3cvck9PenZYVEZH\ndFQreVRBdG93L1dBUGlvYjFWcDlHWUJsZUVBCm9DMTJ4UytiYzlEVHNWdUcwS1ds\nT0dhbzAzNDdmbDBCU0dvL2xNeHpXcGsKLS0tIFArbmpsbzU3WnpJdUt1MGN0L1d0\nV1JkTDJYWUxsbmhTQVNOeVRaSUhTODQKk9Vph2eldS5nwuvVX0SCsxEm4B+sO76Z\ndIjJ3OQxzoZmXMaOOuKHC5U0Y75Qn7eXC43w5KHsl2CMIUYsBGJOZw==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2025-04-09T15:10:30Z",
"mac": "ENC[AES256_GCM,data:cIwWctUbAFI8TRMxYWy5xqlKDVLMqBIxVv4LInnLqi3AauL0rJ3Z7AxK/wb2dCQM07E1N7YaORNqgUpFC1xo0hObAA8mrPaToPotKDkjua0zuyTUNS1COoraYjZpI/LKwmik/qtk399LMhiC7aHs+IliT9Dd41B8LSMBXwdMldY=,iv:sZ+//BrYH5Ay2JJAGs7K+WfO2ASK82syDlilQjGmgFs=,tag:nY+Af9eQRLwkiHZe85dQ9A==,type:str]",
"lastmodified": "2025-05-04T12:44:14Z",
"mac": "ENC[AES256_GCM,data:6fKrS1eLLUWlHkQpxLFXBRk6f2wa5ADLMViVvYXXGU24ayl9UuNSKrCRHp9cbzhqhti3HdwyNt6TM+2X6qhiiAQanKEB2PF7JRYX74NfNKil9BEDjt5AqqtpSgVv5l7Ku/uSHaPkd2sDmzHsy5Q4bSGxJQokStk1kidrwle+mbc=,iv:I/Aad82L/TCxStM8d8IZICUrwdjRbGx2fuGWqexr21o=,tag:BfgRbGUxhPZzK2fLik1kxA==,type:str]",
"unencrypted_suffix": "_unencrypted",
"version": "3.10.1"
"version": "3.10.2"
}
}

View File

@@ -1,19 +1,19 @@
{
"data": "ENC[AES256_GCM,data:ImlGIKxE,iv:UUWxjLNRKJCD2WHNpw8lfvCc8rnXPCqc2pni1ODckjE=,tag:HFCqiv31E9bShIIaAEjF0A==,type:str]",
"data": "ENC[AES256_GCM,data:vp0yW0Gt,iv:FO2cy+UpEl5aRay/LUGu//c82QiVxuKuGSaVh0rGJvc=,tag:vf2RAOPpcRW0HwxHoGy17A==,type:str]",
"sops": {
"age": [
{
"recipient": "age19urkt89q45a2wk6a4yaramzufjtnw6nq2snls0v7hmf7tqf73axsfx50tk",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBpTEROZjh6NjBhSlJSc1Av\nSHhjdkhwVUd3VzBZemhQb3dhMlJXalBmZlFjCkZPYkhZZGVOVTNjUWdFU0s4cWFn\nL2NXbkRCdUlMdElnK2lGbG5iV0w1cHMKLS0tIFREcmxDdHlUNVBFVGRVZSt0c0E5\nbnpHaW1Vb3R3ZFFnZVMxY3djSjJmOU0KIwqCSQf5S9oA59BXu7yC/V6yqvCh88pa\nYgmNyBjulytPh1aAfOuNWIGdIxBpcEf+gFjz3EiJY9Kft3fTmhp2bw==\n-----END AGE ENCRYPTED FILE-----\n"
"recipient": "age12w2ld4vxfyf3hdq2d8la4cu0tye4pq97egvv3me4wary7xkdnq2snh0zx2",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBjaFVNMEd2YUxpSm5XVVRi\nY2ZUc3NTOStJUFNMWWVPQTgxZ2tCK1QrMW1ZCjYwMlA4dkIzSlc0TGtvZjcyK3Bi\nM3pob2JOOFUyeVJ6M2JpaTRCZlc1R0kKLS0tIDJMb1dFcVRWckhwYWNCQng0RlFO\nTkw3OGt4dkFIZVY5aVEzZE5mMzJSM0EKUv8bUqg48L2FfYVUVlpXvyZvPye699of\nG6PcjLh1ZMbNCfnsCzr+P8Vdk/F4J/ifxL66lRGfu2xOLxwciwQ+5Q==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSArN3R4TThibjdYbE9TMDE1\naUhuNDlscExjaktIR2VmTk1OMWtVM0NpTUJZClJUNEcwVDlibExWQk84TTNEWFhp\nMjYyZStHc1N0ZTh1S3VTVk45WGxlWWMKLS0tIHFab25LY1R1d1l6NE5XbHJvQ3lj\nNGsxUldFVHQ5RVJERDlGbi9NY29hNWsKENBTcAS/R/dTGRYdaWv5Mc/YG4bkah5w\nb421ZMQF+r4CYnzUqnwivTG8TMRMqJLavfkutE6ZUfJbbLufrTk5Lw==\n-----END AGE ENCRYPTED FILE-----\n"
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnZ2dDbVhoQngxM3lTSmZF\nUTAwS1lCTGhEMU1GVXpFUzlIUFdqZy9LajF3Ck9mdVpBRjlyVUNhZXZIUFZjUzF1\nNlhFN28vNmwzcUVkNmlzUnpkWjJuZE0KLS0tIHpXVHVlNk9vU1ZPTGRrYStWbmRO\nbDM4U2o1SlEwYWtqOXBqd3BFUTAvMHcKkI8UVd0v+x+ELZ5CoGq9DzlA6DnVNU2r\nrV9wLfbFd7RHxS0/TYZh5tmU42nO3iMYA9FqERQXCtZgXS9KvfqHwQ==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2025-04-09T15:11:04Z",
"mac": "ENC[AES256_GCM,data:JdJzocQZWVprOmZ4Ni04k1tpD1TpFcK5neKy3+0/c3+uPBwjwaMayISKRaa/ILUXlalg60oTqxB4fUFoYVm8KGQVhDwPhO/T1hyYVQqidonrcYfJfCYg00mVSREV/AWqXb7RTnaEBfrdnRJvaAQF9g2qDXGVgzp3eACdlItclv4=,iv:nOw1jQjIWHWwU3SiKpuQgMKXyu8MZYI+zI9UYYd9fCI=,tag:ewUkemIPm/5PkmuUD0EcAQ==,type:str]",
"lastmodified": "2025-05-04T12:44:18Z",
"mac": "ENC[AES256_GCM,data:1ZZ+ZI1JsHmxTov1bRijfol3kTkyheg2o3ivLsMHRhCmScsUry97hQJchF78+y2Izt7avaQEHYn6pVbYt/0rLrSYD7Ru7ITVxXoYHOiN5Qb98masUzpibZjrdyg5nO+LW5/Hmmwsc3yn/+o3IH1AUYpsxlJRdnHHCmoSOFaiFFM=,iv:OQlgmpOTw4ljujNzqwQ5/0Mz8pQpCSUtqRvj3FJAxDs=,tag:foZvdeW7gK9ZVKkWqnlxGA==,type:str]",
"unencrypted_suffix": "_unencrypted",
"version": "3.10.1"
"version": "3.10.2"
}
}

View File

@@ -0,0 +1 @@
../../../../../../sops/machines/peer1

View File

@@ -0,0 +1,19 @@
{
"data": "ENC[AES256_GCM,data:prFl0EJy8bM=,iv:zITWxf+6Ebk0iB5vhhd7SBQa1HFrIJXm8xpSM+D9I0M=,tag:NZCRMCs1SzNKLBu/KUDKMQ==,type:str]",
"sops": {
"age": [
{
"recipient": "age12w2ld4vxfyf3hdq2d8la4cu0tye4pq97egvv3me4wary7xkdnq2snh0zx2",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0S0RZRWxaZVZvTUhjdWVL\naU9WZmtEcm1qa2JsRmdvdmZmNENMaWFEVUFRCmdoVnRXSGlpRlFjNmVVbDJ5VnFT\nMnVJUlVnM3lxNmZCRTdoRVJ4NW1oYWcKLS0tIFFNbXBFUk1RWnlUTW1SeG1vYzlM\nVVpEclFVOE9PWWQxVkZ0eEgwWndoRWcKDAOHe+FIxqGsc6LhxMy164qjwG6t2Ei2\nP0FSs+bcKMDpudxeuxCjnDm/VoLxOWeuqkB+9K2vSm2W/c/fHTSbrA==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2VU5jOEpwYUtDVEVFcVpU\nQkExTVZ3ejZHcGo5TG8zdUQwNktoV09WdUZvCmQ0dE1TOWRFbTlxdVd4WWRxd3VF\nQUNTTkNNT3NKYjQ5dEJDY0xVZ3pZVUUKLS0tIDFjajRZNFJZUTdNeS8yN05FMFZU\ncEtjRjhRbGE0MnRLdk10NkFLMkxqencKGzJ66dHluIghH04RV/FccfEQP07yqnfb\n25Hi0XIVJfXBwje4UEyszrWTxPPwVXdQDQmoNKf76Qy2jYqJ56uksw==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2025-05-04T12:44:20Z",
"mac": "ENC[AES256_GCM,data:FIkilsni5kOdNlVwDuLsQ/zExypHRWdqIBQDNWMLTwe8OrsNPkX+KYutUvt9GaSoGv4iDULaMRoizO/OZUNfc2d8XYSdj0cxOG1Joov4GPUcC/UGyNuQneAejZBKolvlnidKZArofnuK9g+lOTANEUtEXUTnx8L+VahqPZayQas=,iv:NAo6sT3L8OOB3wv1pjr3RY2FwXgVmZ4N0F4BEX4YPUY=,tag:zHwmXygyvkdpASZCodQT9Q==,type:str]",
"unencrypted_suffix": "_unencrypted",
"version": "3.10.2"
}
}

View File

@@ -0,0 +1 @@
../../../../../../sops/users/admin

View File

@@ -1 +0,0 @@
This is a dummy script

View File

@@ -0,0 +1 @@
not-a-secret

View File

@@ -14,12 +14,14 @@ in
./installation/flake-module.nix
./morph/flake-module.nix
./nixos-documentation/flake-module.nix
./dont-depend-on-repo-root.nix
];
perSystem =
{
pkgs,
lib,
self',
system,
...
}:
{
@@ -32,34 +34,86 @@ in
inherit self;
inherit (self) clanLib;
};
nixosTests = lib.optionalAttrs (pkgs.stdenv.isLinux) {
# import our test
secrets = import ./secrets nixosTestArgs;
container = import ./container nixosTestArgs;
nixosTests =
lib.optionalAttrs (pkgs.stdenv.isLinux) {
# Deltachat is currently marked as broken
# deltachat = import ./deltachat nixosTestArgs;
borgbackup = import ./borgbackup nixosTestArgs;
matrix-synapse = import ./matrix-synapse nixosTestArgs;
mumble = import ./mumble nixosTestArgs;
# Base Tests
secrets = self.clanLib.test.baseTest ./secrets nixosTestArgs;
borgbackup = self.clanLib.test.baseTest ./borgbackup nixosTestArgs;
wayland-proxy-virtwl = self.clanLib.test.baseTest ./wayland-proxy-virtwl nixosTestArgs;
# Container Tests
container = self.clanLib.test.containerTest ./container nixosTestArgs;
zt-tcp-relay = self.clanLib.test.containerTest ./zt-tcp-relay nixosTestArgs;
matrix-synapse = self.clanLib.test.containerTest ./matrix-synapse nixosTestArgs;
postgresql = self.clanLib.test.containerTest ./postgresql nixosTestArgs;
# Clan Tests
dummy-inventory-test = import ./dummy-inventory-test nixosTestArgs;
admin = import ./admin nixosTestArgs;
data-mesher = import ./data-mesher nixosTestArgs;
syncthing = import ./syncthing nixosTestArgs;
zt-tcp-relay = import ./zt-tcp-relay nixosTestArgs;
postgresql = import ./postgresql nixosTestArgs;
wayland-proxy-virtwl = import ./wayland-proxy-virtwl nixosTestArgs;
}
// lib.optionalAttrs (pkgs.stdenv.hostPlatform.system == "aarch64-linux") {
# for some reason this hangs in an odd place in CI, but it works on my machine ...
# on aarch64-linux it works though
mumble = import ./mumble nixosTestArgs;
};
packagesToBuild = lib.removeAttrs self'.packages [
# exclude the check that checks that nothing depends on the repo root
# We might want to include this later once everything is fixed
"dont-depend-on-repo-root"
];
flakeOutputs =
lib.mapAttrs' (
name: config: lib.nameValuePair "nixos-${name}" config.config.system.build.toplevel
) (lib.filterAttrs (n: _: !lib.hasPrefix "test-" n) self.nixosConfigurations)
// lib.mapAttrs' (n: lib.nameValuePair "package-${n}") self'.packages
// lib.mapAttrs' (n: lib.nameValuePair "package-${n}") packagesToBuild
// lib.mapAttrs' (n: lib.nameValuePair "devShell-${n}") self'.devShells
// lib.mapAttrs' (name: config: lib.nameValuePair "home-manager-${name}" config.activation-script) (
self'.legacyPackages.homeConfigurations or { }
);
in
nixosTests // flakeOutputs;
nixosTests
// flakeOutputs
// {
# TODO: Automatically provide this check to downstream users to check their modules
clan-modules-json-compatible =
let
allSchemas = lib.mapAttrs (
_n: m:
let
schema =
(self.clanLib.inventory.evalClanService {
modules = [ m ];
prefix = [
"checks"
system
];
}).config.result.api.schema;
in
schema
) self.clan.modules;
in
pkgs.runCommand "combined-result"
{
schemaFile = builtins.toFile "schemas.json" (builtins.toJSON allSchemas);
}
''
mkdir -p $out
cat $schemaFile > $out/allSchemas.json
'';
clan-core-for-checks = pkgs.runCommand "clan-core-for-checks" { } ''
cp -r ${pkgs.callPackage ./clan-core-for-checks.nix { }} $out
chmod +w $out/flake.lock
cp ${../flake.lock} $out/flake.lock
'';
};
legacyPackages = {
nixosTests =
let
@@ -74,6 +128,8 @@ in
# import our test
secrets = import ./secrets nixosTestArgs;
container = import ./container nixosTestArgs;
# Clan app tests
app-ocr = self.clanLib.test.baseTest ./app-ocr nixosTestArgs;
};
};
};

View File

@@ -43,6 +43,7 @@
let
dependencies = [
pkgs.disko
pkgs.buildPackages.xorg.lndir
self.nixosConfigurations."test-flash-machine-${pkgs.hostPlatform.system}".pkgs.perlPackages.ConfigIniFiles
self.nixosConfigurations."test-flash-machine-${pkgs.hostPlatform.system}".pkgs.perlPackages.FileSlurp
@@ -56,7 +57,7 @@
in
{
checks = pkgs.lib.mkIf pkgs.stdenv.isLinux {
flash = (import ../lib/test-base.nix) {
flash = self.clanLib.test.baseTest {
name = "flash";
nodes.target = {
virtualisation.emptyDiskImages = [ 4096 ];
@@ -80,7 +81,7 @@
# Some distros like to automount disks with spaces
machine.succeed('mkdir -p "/mnt/with spaces" && mkfs.ext4 /dev/vdb && mount /dev/vdb "/mnt/with spaces"')
machine.succeed("clan flash write --debug --flake ${../..} --yes --disk main /dev/vdb test-flash-machine-${pkgs.hostPlatform.system}")
machine.succeed("clan flash write --debug --flake ${self.checks.x86_64-linux.clan-core-for-checks} --yes --disk main /dev/vdb test-flash-machine-${pkgs.hostPlatform.system}")
'';
} { inherit pkgs self; };
};

View File

@@ -8,7 +8,6 @@ let
{ modulesPath, pkgs, ... }:
let
dependencies = [
self
self.clanInternals.machines.${pkgs.hostPlatform.system}.test-install-machine-with-system.config.system.build.toplevel
self.clanInternals.machines.${pkgs.hostPlatform.system}.test-install-machine-with-system.config.system.build.diskoScript
self.clanInternals.machines.${pkgs.hostPlatform.system}.test-install-machine-with-system.config.system.clan.deployment.file
@@ -16,6 +15,7 @@ let
pkgs.bash.drvPath
pkgs.nixos-anywhere
pkgs.bubblewrap
pkgs.buildPackages.xorg.lndir
] ++ builtins.map (i: i.outPath) (builtins.attrValues self.inputs);
closureInfo = pkgs.closureInfo { rootPaths = dependencies; };
in
@@ -51,7 +51,7 @@ let
};
users.users.nonrootuser = {
isNormalUser = true;
openssh.authorizedKeys.keyFiles = [ ../lib/ssh/pubkey ];
openssh.authorizedKeys.keyFiles = [ ../assets/ssh/pubkey ];
extraGroups = [ "wheel" ];
};
security.sudo.wheelNeedsPassword = false;
@@ -183,7 +183,7 @@ in
# vm-test-run-test-installation-> target: Guest root shell did not produce any data yet...
# vm-test-run-test-installation-> target: To debug, enter the VM and run 'systemctl status backdoor.service'.
checks = pkgs.lib.mkIf (pkgs.stdenv.isLinux && !pkgs.stdenv.isAarch64) {
installation = (import ../lib/test-base.nix) {
installation = self.clanLib.test.baseTest {
name = "installation";
nodes.target = {
services.openssh.enable = true;
@@ -195,10 +195,10 @@ in
testScript = ''
installer.start()
installer.succeed("${pkgs.coreutils}/bin/install -Dm 600 ${../lib/ssh/privkey} /root/.ssh/id_ed25519")
installer.succeed("${pkgs.coreutils}/bin/install -Dm 600 ${../assets/ssh/privkey} /root/.ssh/id_ed25519")
installer.wait_until_succeeds("timeout 2 ssh -o StrictHostKeyChecking=accept-new -v nonrootuser@localhost hostname")
installer.succeed("cp -r ${../..} test-flake && chmod -R +w test-flake")
installer.succeed("cp -r ${self.checks.x86_64-linux.clan-core-for-checks} test-flake && chmod -R +w test-flake")
installer.succeed("clan machines install --no-reboot --debug --flake test-flake --yes test-install-machine-without-system --target-host nonrootuser@localhost --update-hardware-config nixos-facter >&2")
installer.shutdown()
@@ -210,15 +210,15 @@ in
'';
} { inherit pkgs self; };
update-hardware-configuration = (import ../lib/test-base.nix) {
update-hardware-configuration = self.clanLib.test.baseTest {
name = "update-hardware-configuration";
nodes.installer = installer;
testScript = ''
installer.start()
installer.succeed("${pkgs.coreutils}/bin/install -Dm 600 ${../lib/ssh/privkey} /root/.ssh/id_ed25519")
installer.succeed("${pkgs.coreutils}/bin/install -Dm 600 ${../assets/ssh/privkey} /root/.ssh/id_ed25519")
installer.wait_until_succeeds("timeout 2 ssh -o StrictHostKeyChecking=accept-new -v nonrootuser@localhost hostname")
installer.succeed("cp -r ${../..} test-flake && chmod -R +w test-flake")
installer.succeed("cp -r ${self.checks.x86_64-linux.clan-core-for-checks} test-flake && chmod -R +w test-flake")
installer.fail("test -f test-flake/machines/test-install-machine/hardware-configuration.nix")
installer.fail("test -f test-flake/machines/test-install-machine/facter.json")

View File

@@ -1,25 +0,0 @@
{
extraPythonPackages,
python3Packages,
buildPythonApplication,
setuptools,
util-linux,
systemd,
nix,
colorama,
junit-xml,
}:
buildPythonApplication {
pname = "test-driver";
version = "0.0.1";
propagatedBuildInputs = [
util-linux
systemd
colorama
junit-xml
nix
] ++ extraPythonPackages python3Packages;
nativeBuildInputs = [ setuptools ];
format = "pyproject";
src = ./.;
}

View File

@@ -1,52 +0,0 @@
test:
{ pkgs, self, ... }:
let
inherit (pkgs) lib;
nixos-lib = import (pkgs.path + "/nixos/lib") { };
in
(nixos-lib.runTest (
{ hostPkgs, ... }:
{
hostPkgs = pkgs;
# speed-up evaluation
defaults =
{ config, options, ... }:
{
imports = [
self.clanLib.test.minifyModule
];
config = lib.mkMerge [
(lib.optionalAttrs (options ? clan) {
clan.core.settings.machine.name = config.networking.hostName;
})
{
documentation.enable = lib.mkDefault false;
boot.isContainer = true;
# needed since nixpkgs 7fb2f407c01b017737eafc26b065d7f56434a992 removed the getty unit by default
console.enable = true;
# undo qemu stuff
system.build.initialRamdisk = "";
virtualisation.sharedDirectories = lib.mkForce { };
networking.useDHCP = false;
# we have not private networking so far
networking.interfaces = lib.mkForce { };
#networking.primaryIPAddress = lib.mkForce null;
systemd.services.backdoor.enable = false;
# we don't have permission to set cpu scheduler in our container
systemd.services.nix-daemon.serviceConfig.CPUSchedulingPolicy = lib.mkForce "";
}
];
};
# to accept external dependencies such as disko
node.specialArgs.self = self;
_module.args = { inherit self; };
imports = [
test
./container-driver/module.nix
];
}
)).config.result

View File

@@ -1,4 +1,4 @@
(import ../lib/container-test.nix) (
(
{ pkgs, ... }:
{
name = "matrix-synapse";

View File

@@ -24,7 +24,7 @@
}:
{
checks = pkgs.lib.mkIf (pkgs.stdenv.isLinux && !pkgs.stdenv.isAarch64) {
morph = (import ../lib/test-base.nix) {
morph = self.clanLib.test.baseTest {
name = "morph";
nodes = {
@@ -32,7 +32,6 @@
{ pkgs, ... }:
let
dependencies = [
self
pkgs.stdenv.drvPath
pkgs.stdenvNoCC
self.nixosConfigurations.test-morph-machine.config.system.build.toplevel
@@ -44,14 +43,18 @@
{
environment.etc."install-closure".source = "${closureInfo}/store-paths";
system.extraDependencies = dependencies;
virtualisation.memorySize = 2048;
virtualisation.useNixStoreImage = true;
virtualisation.writableStore = true;
environment.systemPackages = [ self.packages.${pkgs.system}.clan-cli-full ];
};
};
testScript = ''
start_all()
actual.fail("cat /etc/testfile")
actual.succeed("env CLAN_DIR=${self} clan machines morph test-morph-template --i-will-be-fired-for-using-this --debug --name test-morph-machine")
actual.succeed("env CLAN_DIR=${self.checks.x86_64-linux.clan-core-for-checks} clan machines morph test-morph-template --i-will-be-fired-for-using-this --debug --name test-morph-machine")
assert actual.succeed("cat /etc/testfile") == "morphed"
'';
} { inherit pkgs self; };

View File

@@ -8,5 +8,8 @@
(modulesPath + "/profiles/minimal.nix")
];
virtualisation.useNixStoreImage = true;
virtualisation.writableStore = true;
clan.core.enableRecommendedDefaults = false;
}

View File

@@ -6,6 +6,8 @@
}:
clanLib.test.makeTestClan {
inherit pkgs self;
# TODO: container driver does not support: sleep, wait_for_window, send_chars, wait_for_text
useContainers = false;
nixosTest = (
{ lib, ... }:
let
@@ -45,6 +47,20 @@ clanLib.test.makeTestClan {
nodes.peer2 = common;
testScript = ''
import time
import re
def machine_has_text(machine: Machine, regex: str) -> bool:
variants = machine.get_screen_text_variants()
# for debugging
# machine.screenshot(f"/tmp/{machine.name}.png")
for text in variants:
print(f"Expecting '{regex}' in '{text}'")
if re.search(regex, text) is not None:
return True
return False
start_all()
with subtest("Waiting for x"):
@@ -61,41 +77,53 @@ clanLib.test.makeTestClan {
peer2.execute("mumble >&2 &")
with subtest("Wait for Mumble"):
peer1.wait_for_window(r"^Mumble$")
peer2.wait_for_window(r"^Mumble$")
peer1.wait_for_window(r"Mumble")
peer2.wait_for_window(r"Mumble")
with subtest("Wait for certificate creation"):
peer1.wait_for_window(r"^Mumble$")
peer1.sleep(3) # mumble is slow to register handlers
peer1.send_chars("\n")
peer1.send_chars("\n")
peer2.wait_for_window(r"^Mumble$")
peer2.sleep(3) # mumble is slow to register handlers
peer2.send_chars("\n")
peer2.send_chars("\n")
peer1.wait_for_window(r"Mumble")
peer2.wait_for_window(r"Mumble")
with subtest("Wait for server connect"):
peer1.wait_for_window(r"^Mumble Server Connect$")
peer2.wait_for_window(r"^Mumble Server Connect$")
for i in range(20):
time.sleep(1)
peer1.send_chars("\n")
peer1.send_chars("\n")
peer2.send_chars("\n")
peer2.send_chars("\n")
if machine_has_text(peer1, r"Mumble Server Connect") and \
machine_has_text(peer2, r"Mumble Server Connect"):
break
else:
raise Exception("Timeout waiting for certificate creation")
with subtest("Check validity of server certificates"):
peer1.execute("killall .mumble-wrapped")
peer1.sleep(1)
peer1.execute("mumble mumble://peer2 >&2 &")
peer1.wait_for_window(r"^Mumble$")
peer1.sleep(3) # mumble is slow to register handlers
peer1.wait_for_window(r"Mumble")
for i in range(20):
time.sleep(1)
peer1.send_chars("\n")
peer1.send_chars("\n")
peer1.wait_for_text("Connected.")
if machine_has_text(peer1, "Connected."):
break
else:
raise Exception("Timeout waiting for certificate creation")
peer2.execute("killall .mumble-wrapped")
peer2.sleep(1)
peer2.execute("mumble mumble://peer1 >&2 &")
peer2.wait_for_window(r"^Mumble$")
peer2.sleep(3) # mumble is slow to register handlers
peer2.wait_for_window(r"Mumble")
for i in range(20):
time.sleep(1)
peer2.send_chars("\n")
peer2.send_chars("\n")
peer2.wait_for_text("Connected.")
if machine_has_text(peer2, "Connected."):
break
else:
raise Exception("Timeout waiting for certificate creation")
'';
}
);

View File

@@ -1,4 +1,4 @@
(import ../lib/container-test.nix) ({
({
name = "postgresql";
nodes.machine =

View File

@@ -1,4 +1,4 @@
(import ../lib/test-base.nix) {
{
name = "secrets";
nodes.machine =

View File

@@ -1,26 +1,39 @@
(import ../lib/test-base.nix) (
# Using nixos-test, because our own test system doesn't support the necessary
# features for systemd.
{
pkgs,
self,
clanLib,
...
}:
clanLib.test.makeTestClan {
inherit pkgs self;
# TODO: container driver does not support wait_for_file() yet
useContainers = false;
nixosTest = (
{ lib, ... }:
{
name = "syncthing";
nodes.introducer =
{ self, ... }:
{
imports = [
self.clanModules.syncthing
self.nixosModules.clanCore
{
clan.core.settings.directory = ./.;
environment.etc = {
"syncthing.pam".source = ./introducer/introducer_test_cert;
"syncthing.key".source = ./introducer/introducer_test_key;
"syncthing.api".source = ./introducer/introducer_test_api;
clan = {
directory = ./.;
inventory = {
machines = lib.genAttrs [
"introducer"
"peer1"
"peer2"
] (_: { });
services = {
syncthing.default = {
roles.peer.machines = [
"peer1"
"peer2"
];
roles.introducer.machines = [ "introducer" ];
};
clan.core.facts.services.syncthing.secret."syncthing.api".path = "/etc/syncthing.api";
services.syncthing.cert = "/etc/syncthing.pam";
services.syncthing.key = "/etc/syncthing.key";
};
};
};
nodes.introducer = {
# Doesn't test zerotier!
services.syncthing.openDefaultPorts = true;
services.syncthing.settings.folders = {
@@ -42,64 +55,29 @@
OnActiveSec = 1;
OnUnitActiveSec = 1;
};
}
];
};
nodes.peer1 =
{ self, ... }:
{
imports = [
self.clanModules.syncthing
self.nixosModules.clanCore
{
clan.core.settings.directory = ./.;
clan.syncthing.introducer = lib.strings.removeSuffix "\n" (
builtins.readFile ./introducer/introducer_device_id
);
environment.etc = {
"syncthing.pam".source = ./peer_1/peer_1_test_cert;
"syncthing.key".source = ./peer_1/peer_1_test_key;
};
nodes.peer1 = {
services.syncthing.openDefaultPorts = true;
services.syncthing.cert = "/etc/syncthing.pam";
services.syncthing.key = "/etc/syncthing.key";
}
];
};
nodes.peer2 =
{ self, ... }:
{
imports = [
self.clanModules.syncthing
self.nixosModules.clanCore
{
clan.core.settings.directory = ./.;
clan.syncthing.introducer = lib.strings.removeSuffix "\n" (
builtins.readFile ./introducer/introducer_device_id
);
environment.etc = {
"syncthing.pam".source = ./peer_2/peer_2_test_cert;
"syncthing.key".source = ./peer_2/peer_2_test_key;
};
nodes.peer2 = {
services.syncthing.openDefaultPorts = true;
services.syncthing.cert = "/etc/syncthing.pam";
services.syncthing.key = "/etc/syncthing.key";
}
];
};
testScript = ''
start_all()
introducer.wait_for_unit("syncthing")
peer1.wait_for_unit("syncthing")
peer2.wait_for_unit("syncthing")
peer1.wait_for_file("/home/user/Shared")
peer2.wait_for_file("/home/user/Shared")
peer1.execute("ls -la /var/lib/syncthing")
peer2.execute("ls -la /var/lib/syncthing")
peer1.wait_for_file("/var/lib/syncthing/Shared")
peer2.wait_for_file("/var/lib/syncthing/Shared")
introducer.shutdown()
peer1.execute("echo hello > /home/user/Shared/hello")
peer2.wait_for_file("/home/user/Shared/hello")
out = peer2.succeed("cat /home/user/Shared/hello")
print(out)
peer1.execute("echo hello > /var/lib/syncthing/Shared/hello")
peer2.wait_for_file("/var/lib/syncthing/Shared/hello")
out = peer2.succeed("cat /var/lib/syncthing/Shared/hello")
assert "hello" in out
'';
}
)
);
}

View File

@@ -1 +0,0 @@
RN4ZZIJ-5AOJVWT-JD5IAAZ-SWVDTHU-B4RWCXE-AEM3SRG-QBM2KC5-JTGUNQT

View File

@@ -1 +0,0 @@
fKwzSQK43LWMnjVK2TDjpTkziY364dvP

View File

@@ -1,14 +0,0 @@
-----BEGIN CERTIFICATE-----
MIICHDCCAaOgAwIBAgIJAJDWPRNYN7/7MAoGCCqGSM49BAMCMEoxEjAQBgNVBAoT
CVN5bmN0aGluZzEgMB4GA1UECxMXQXV0b21hdGljYWxseSBHZW5lcmF0ZWQxEjAQ
BgNVBAMTCXN5bmN0aGluZzAeFw0yMzEyMDUwMDAwMDBaFw00MzExMzAwMDAwMDBa
MEoxEjAQBgNVBAoTCVN5bmN0aGluZzEgMB4GA1UECxMXQXV0b21hdGljYWxseSBH
ZW5lcmF0ZWQxEjAQBgNVBAMTCXN5bmN0aGluZzB2MBAGByqGSM49AgEGBSuBBAAi
A2IABEzIpSQGUVVlrSndNjiwkgZ045eH26agwT5RTN44bGRe8SJqBWC7HP3V7u1C
6ZQZALSDoDUG5Oi89wGrFnxU48mYFSJFlZAVzyZoqfxVMof3vnk3uFDPo47HA4ex
8fi6yaNVMFMwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggr
BgEFBQcDAjAMBgNVHRMBAf8EAjAAMBQGA1UdEQQNMAuCCXN5bmN0aGluZzAKBggq
hkjOPQQDAgNnADBkAjB+d84wmaQuv3c94ctxV0sMh23xeTR1cPNcE8wbPQYxHmbO
HbJ3IWo5HF3di63pVgECMBUfzpmFo8dshYR2/76Ovh573Svzk2+NKEMrqRyoNVFr
JNQFhCtHbFT1rYfqYWgJBQ==
-----END CERTIFICATE-----

View File

@@ -1,6 +0,0 @@
-----BEGIN EC PRIVATE KEY-----
MIGkAgEBBDBvqJxL4s7JFy0y6Ulg7C9C0m3N9VZlW328uMJrwznGuCdRHa/VD4qY
IcjtwJisdaqgBwYFK4EEACKhZANiAARMyKUkBlFVZa0p3TY4sJIGdOOXh9umoME+
UUzeOGxkXvEiagVguxz91e7tQumUGQC0g6A1BuTovPcBqxZ8VOPJmBUiRZWQFc8m
aKn8VTKH9755N7hQz6OOxwOHsfH4usk=
-----END EC PRIVATE KEY-----

View File

@@ -1,14 +0,0 @@
-----BEGIN CERTIFICATE-----
MIICHTCCAaKgAwIBAgIIT2gZuvqVFP0wCgYIKoZIzj0EAwIwSjESMBAGA1UEChMJ
U3luY3RoaW5nMSAwHgYDVQQLExdBdXRvbWF0aWNhbGx5IEdlbmVyYXRlZDESMBAG
A1UEAxMJc3luY3RoaW5nMB4XDTIzMTIwNjAwMDAwMFoXDTQzMTIwMTAwMDAwMFow
SjESMBAGA1UEChMJU3luY3RoaW5nMSAwHgYDVQQLExdBdXRvbWF0aWNhbGx5IEdl
bmVyYXRlZDESMBAGA1UEAxMJc3luY3RoaW5nMHYwEAYHKoZIzj0CAQYFK4EEACID
YgAEBAr1CsciwCa0vi7eC6xxuSGijY3txbjtsyFanec/fge4oJBD3rVpaLKFETb3
TvHHsuvblzElcP483MEVq6FMUoxwuL9CzTtpJrRhtwSmAs8AHLFu8irVn8sZjgkL
sXMho1UwUzAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsG
AQUFBwMCMAwGA1UdEwEB/wQCMAAwFAYDVR0RBA0wC4IJc3luY3RoaW5nMAoGCCqG
SM49BAMCA2kAMGYCMQDbrtLgfcyMMIkNQn+PJe9DHYAqj8C47LQcWuIY/nekhOu0
aUfKctEAwyBtI60Y5zcCMQCEdgD/6CNBh7Qqq3z3CKPhlrpxHtCO5tNw17k0jfdH
haCwJInHZvZgclHk4EtFpTw=
-----END CERTIFICATE-----

View File

@@ -1,6 +0,0 @@
-----BEGIN EC PRIVATE KEY-----
MIGkAgEBBDA14Nqo17Xs/xRLGH2KLuyzjKp4eW9iWFobVNM93RZZbECT++W3XcQc
cEc5WVtiPmWgBwYFK4EEACKhZANiAAQECvUKxyLAJrS+Lt4LrHG5IaKNje3FuO2z
IVqd5z9+B7igkEPetWlosoURNvdO8cey69uXMSVw/jzcwRWroUxSjHC4v0LNO2km
tGG3BKYCzwAcsW7yKtWfyxmOCQuxcyE=
-----END EC PRIVATE KEY-----

View File

@@ -1,14 +0,0 @@
-----BEGIN CERTIFICATE-----
MIICHjCCAaOgAwIBAgIJAKbMWefkf1rVMAoGCCqGSM49BAMCMEoxEjAQBgNVBAoT
CVN5bmN0aGluZzEgMB4GA1UECxMXQXV0b21hdGljYWxseSBHZW5lcmF0ZWQxEjAQ
BgNVBAMTCXN5bmN0aGluZzAeFw0yMzEyMDYwMDAwMDBaFw00MzEyMDEwMDAwMDBa
MEoxEjAQBgNVBAoTCVN5bmN0aGluZzEgMB4GA1UECxMXQXV0b21hdGljYWxseSBH
ZW5lcmF0ZWQxEjAQBgNVBAMTCXN5bmN0aGluZzB2MBAGByqGSM49AgEGBSuBBAAi
A2IABFZTMt4RfsfBue0va7QuNdjfXMI4HfZzJCEcG+b9MtV7FlDmwMKX5fgGykD9
FBbC7yiza3+xCobdMb5bakz1qYJ7nUFCv1mwSDo2eNM+/XE+rJmlre8NwkwGmvzl
h1uhyqNVMFMwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggr
BgEFBQcDAjAMBgNVHRMBAf8EAjAAMBQGA1UdEQQNMAuCCXN5bmN0aGluZzAKBggq
hkjOPQQDAgNpADBmAjEAwzhsroN6R4/quWeXj6dO5gt5CfSTLkLee6vrcuIP5i1U
rZvJ3OKQVmmGG6IWYe7iAjEAyuq3X2wznaqiw2YK3IDI4qVeYWpCUap0fwRNq7/x
4dC4k+BOzHcuJOwNBIY/bEuK
-----END CERTIFICATE-----

View File

@@ -1,6 +0,0 @@
-----BEGIN EC PRIVATE KEY-----
MIGkAgEBBDCXHGpvumKjjDRxB6SsjZOb7duw3w+rdlGQCJTIvRThLjD6zwjnyImi
7c3PD5nWtLqgBwYFK4EEACKhZANiAARWUzLeEX7HwbntL2u0LjXY31zCOB32cyQh
HBvm/TLVexZQ5sDCl+X4BspA/RQWwu8os2t/sQqG3TG+W2pM9amCe51BQr9ZsEg6
NnjTPv1xPqyZpa3vDcJMBpr85Ydboco=
-----END EC PRIVATE KEY-----

View File

@@ -0,0 +1,6 @@
[
{
"publickey": "age1wjp0vvvy4d2c0pdrth0kl505rzpz37804swf6rrny9xa208mrg2s0r5m67",
"type": "age"
}
]

View File

@@ -0,0 +1,6 @@
[
{
"publickey": "age14faw2l6rskw2gcv3rrkygmwmrp2ev9yclzq4fh8xf8sjeke8p97sw4dxuq",
"type": "age"
}
]

View File

@@ -0,0 +1,6 @@
[
{
"publickey": "age1dutdww4x48f0e3tzmjlye9n852wx0qqhhcghsrefsq9m8c5flpfs2lxexf",
"type": "age"
}
]

View File

@@ -0,0 +1,15 @@
{
"data": "ENC[AES256_GCM,data:f/KzvxsoWQFTSB17lPhe/MThYu4ZjJwvkCxKp7XkLyspFF9Dal4A+H+SY6vPG7yM3+dlE3ZnxjniUeivydDTwwJiWJ6E6XIhnPI=,iv:xat6pYzYV8sfyMKX4OMsr6oSOEOc09DDXGykKKoP14Y=,tag:xMxsIpYv7KrSYvpmvBvSUw==,type:str]",
"sops": {
"age": [
{
"recipient": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSArUGdWK1BnNjdCL1l1WlNB\nUEswYm1tYlIxWXltemdlQm1OcmlNbSsvTkdrClpRUjR6TUNUcGtxWWhGdDg5SG84\nSFFiV2p6ZHJwR1VKYW4vVFBHRGFSYTgKLS0tIERJa3hRM28ySHBUME4vTUE1UUFr\nQklDdTBWdWJpdGg0cnR1ZUNWREl6K1EKbRFOr3Rhb2aGnQUHiX+3DzGgrY9C2Dvz\nVlyZ0q6lWtn4qFWPVez03T8QAtLjv2UaGtYTFnyFIWiykhhrWy2PBg==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2025-04-23T07:54:54Z",
"mac": "ENC[AES256_GCM,data:LJCCaGNhBgFAKtWYMD6OcXg2FMq1DYDOySIpEY91ILXDUuJSSsuYyQqE6ZvCoThlogHd9inAajsW0GbzYpSflu/WyrqlQsNJSMFkBFBQh/FIjd18GUtZ4flHWRfHqAk/xM/g+n7iOgKMvaBrG1MG1DplLRfk/8ehcqlWX4Wxof0=,iv:PrjIiUYkePPXBRGF/Wnqi1ZgA2j4YtzL/uMC5KchfIQ=,tag:yMMrJ7vGt6urz4WfRAyaNg==,type:str]",
"unencrypted_suffix": "_unencrypted",
"version": "3.10.1"
}
}

View File

@@ -0,0 +1 @@
../../../users/admin

View File

@@ -0,0 +1,15 @@
{
"data": "ENC[AES256_GCM,data:q6mWG65NflVEvX1QUyRVFuRGOVg9wtyWDYQ8Plqw038pEyOrsVcj6Cmo6SRaRcAaxQmAUeplzYfzm2MgXMz1l/DySErH+mCyVSk=,iv:7X4mFSJXpUii+sppSAq8H7vYWGoDq3LnFJMAAjhhm7U=,tag:ep9vzbkzVtC2A8otat8vSg==,type:str]",
"sops": {
"age": [
{
"recipient": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA5bjNlZkppR01JT0F0TklO\nSnpIcFgwb0E5dStHQlZLdGNLQ3UxRDNBdEVVCnlpdWlPVVNIdFB3ZjlpSXZURjdS\nMVlCbFV5RXI0d2t5bHJvR3U5b2NDa2MKLS0tIDJLZlE0RjhNaGhBeFVsSE93Z0NX\nVVcyUjJPL1FVTEVOUktYTEMvVFNEdlUKYkmyVjcbAf5IVb/RWBfhbmoBbuz+u8X0\n3J8a/SJsgX3vLJIpVeSQSSFTNXu0+8/QeRiXsV7GCyHu+lwL75ycmA==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2025-04-23T07:54:59Z",
"mac": "ENC[AES256_GCM,data:rhi/f3r81Cm+yXJXpnPmyK7jNqJ1Pg4tU7gsOwjCv5CeJn8U6N78ZBiHndjdwzqSdp7+qwx/9gPpLQVoPzO2IhY+uRhg0l6v6N9iK9UD6tjNzsCw8zTIb/ehObRqqpzVn2BGkUte+g0Hu2/bpHFbq6qmGm8YOYnD8K7U2FoiuGQ=,iv:o7RaD5oogpjSgdfFPqb8Tfgn43ydSzA0ZTP2ayNZI9c=,tag:e/zmTPAIWX1uDQxLNznIWQ==,type:str]",
"unencrypted_suffix": "_unencrypted",
"version": "3.10.1"
}
}

View File

@@ -0,0 +1 @@
../../../users/admin

View File

@@ -0,0 +1,15 @@
{
"data": "ENC[AES256_GCM,data:2EaSVKRIMKVF9+qAozKl703entUWB04J61UM1QRj1omKUb5sDaOwnQKCZDZxO/CCtam/kz1jHoxCeFiJFcx+DpTyYptpSpYq1dI=,iv:syZ2HKRxQ73urS4Vwz7/3IMBYY6nk78zaooPMDkU1w4=,tag:uGaqxbU6/9DvkGY1Jq/XRw==,type:str]",
"sops": {
"age": [
{
"recipient": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUMnJrb2VHYVdMRHJhYjFH\nL25nN2RIZ3pVeDdYTllrUkF0TkREYmNMMVdrCkNSaGlRd3c3YXZPZmIxWExCaytu\nU3FGTmhUZ0pUUjJJNS9vcVBISmFyZHcKLS0tIHMwaFlEYkFFb2RwS3JDb2VxRFcw\nZmd6S3RXVGcwbmtHVVRmWXkwSnF1RkkKTbg6igFHIakR8EAPuf+x9yhmQHF3TPp/\nC+B1FuorpovudtxmJ1UzBmkE0r13cY6iu9Vdjh1g7tBcXUWoHZsvIA==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2025-04-23T07:55:03Z",
"mac": "ENC[AES256_GCM,data:HuQQvWOGIjISxnNShYHLj4QinNoeOTwxpJK35swpcBnJ4JtDnA6F2JjpJI8DXIwO42eDbXIF22lJjqynRFRo6kQrrD8uhBHEFD2R+6U7zFxJ4gknWR1iF3fbM1+2VDiu8L9InpZcfb6Z8tpKPdPiYS3NGdoAJ0ClSw+8WlVsS5E=,iv:pJxsCP5Y6NTNAck0mphbLRnZ48sRRZ/YaYUobi6mGYU=,tag:ewR5QLBh3WRLkHlSGH5MsQ==,type:str]",
"unencrypted_suffix": "_unencrypted",
"version": "3.10.1"
}
}

View File

@@ -0,0 +1 @@
../../../users/admin

View File

@@ -0,0 +1,4 @@
{
"publickey": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
"type": "age"
}

View File

@@ -0,0 +1 @@
../../../../../../sops/machines/introducer

View File

@@ -0,0 +1,19 @@
{
"data": "ENC[AES256_GCM,data:UVv08bXHtWMWcMC7tBb+xy7+3JRiOfVpRPD/q/TR1/+5,iv:ZNb3GDvtuZFbXlcJyN/kzy8cRppRqWnN308mAAkOc/4=,tag:Jv5MsPQ+gTBROzG6oo0ztg==,type:str]",
"sops": {
"age": [
{
"recipient": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBha2t2enBPWUhHcXIveGJJ\nZklLeVNkNkhkcXFLczJjeHdFT2haSGF6UnhNCjh1MHJobSs4dmVKTVdzL1JRTXJK\nUlo2MzFOelV5UVNqVjladStHdUlqSGcKLS0tIGlqa1RZVHpva2ZmNnpSRjhseGUw\na0hmSER6VlZsZ1A2TE84OTVyQVVTRDgKoE3UzWOqYhV9Y/vayIGY6ak4MEPR+q5t\n5NY6VDkCwYiactvcSo36jiaru47jRr6ovk5Vfkq/jFO2njDND5mLqQ==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1wjp0vvvy4d2c0pdrth0kl505rzpz37804swf6rrny9xa208mrg2s0r5m67",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBNZGZUVmVBOENtZTJmRTQz\ndUpzYXBwb1NUWmhPU1g0VWFkWUp3Y2JGQ0JVCjZPS1lxL3N0YlU5T2owSS9FSC9L\naWtScmdyclhqcTE3blFEZHRNRHhjOXMKLS0tIGR2MnhRdUpHZ2tqTzVLWFo0WVhm\neXlpWUdwc3ZHOGRXWTNlZC9UMHd2M3cKgabJLSO2rT1u+I4V/XdCt8iDXuFQw+2w\nwr2juhtq3IwBuO6VqQKwAy6hHNbEWa+e/6bPaoXiJAOdA6+LbzfSmg==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2025-04-23T07:54:56Z",
"mac": "ENC[AES256_GCM,data:ajkYjU6vAqrNiknSLZOYgFYiL7A6/ut+m3bt/x22Ms7LGZv5BgsTtLDw70gbAQh9fMbQCxCngkUrHk6bvVe9afpNvdw3fPQ9hfMkXquvDjhGHMvr3bmawsBJrShuywYRZY2z++f6FA0ApGVkSG1tSFDt/Tob1wkhxbPonGnsliQ=,iv:6H2X+4RkW48+w1dHWxa4nogKbHHriGyvAOr9ODf7m68=,tag:RWv+zSyqfaKcLAjxFHhqXw==,type:str]",
"unencrypted_suffix": "_unencrypted",
"version": "3.10.1"
}
}

View File

@@ -0,0 +1 @@
../../../../../../sops/users/admin

View File

@@ -0,0 +1 @@
../../../../../../sops/machines/introducer

View File

@@ -0,0 +1,19 @@
{
"data": "ENC[AES256_GCM,data:DdiIZhVVosBWWyQu52g9bZm4PHlYalIeNQZtiqzN6p0Q3GcIPZkrA7EUtiI/jLOY9ILRKX3yreJWlDQHiEdfjQhqR1Oneb3JVv41GASEIumhuxPU4VQyIMV3u5MNO7H+NkzsBx8JHvm0MOIar76B4Bc+7ZoaahHacNzog+rGxUplecoY8A22Cr9G71OFj4JPQJTK40DhdSxdmSaiI3FzqxyuzbYfMViVqm6X3hX/CUv5nxlNeFUw5ZKruOTq4sjgiy859dOTiTG1L4X5T2G9UNevg5eRAqGdmjB/DB8is8yMUXYloD5TSvoDXCS8rAB7DgrtcF91nv9Wxq5aYGv6ovHpG7sL/aOY507PyaWtItir1+Gy9M8ECQq50wgj308KEMSbllFIhiHaHklpqTZdJejIzVB5nxbMIrcF2537Nfw3T2awveBk7ZjuYFQ3lIZVWNe9mbVubH1JLZS6x/Fm+rY85KnT3hZHCRLuUTvb5b3My73UMmWmAN3DekSr/m7z51cxtvJQJrM9GV6Lv4PAbgzvz8BvWps/9pIQlqVPYk8fRBvKqIAtbM7V6nIH1Fx8hmoMYM+c2CIHhMKxh1b+SGTk3BYXRuF/MX/btAt0kwUh+qPQJEd+i+9qFCS2I26BzoFsjm4M9e5tp1tx0KazrsIrWRAi6faGI+i48VpYxP60BQdK0YZTczTVLw4nIZGWJ1m0cHzeViR/P3mvP0tROo4GyAloUP3QWAwC88I2btHmC008Ldg7XRmOrPtwMuj1Z38Sj1mlRSu3+5hYS7T9wbOg3J/S9o3xbGDzJFAVU5YouAhU3qWwKvmrTKn6WRPyGFafcbBxzoNyOwK1U8MtrvDEUyoevN9kP/nGbD7sfyJpStN5zrn/9NxANVAAWjje1vWVmjFlTdip9USRzmrSIbPb4PwgXjJJObF6VWXF9RTdlZNq486BTC2eE4XQ3stOJ6UJmRwsowU3TuI8xb9wNXZBFmwfkrNhvgOrpf6LTc6ouL5QfSgcj6Gg/mXvE24Y4yhRZA4lnDqbuyl7lIyzTyfiwSEmDbJTVkc=,iv:Sby7ZpP5/ThihlnmxBX485/dtdxHQBPEoHPhbRVc7hk=,tag:9azO7wAzCSkYj/Awv6X+7Q==,type:str]",
"sops": {
"age": [
{
"recipient": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBreW1Cd3NQWE13NUJHR2Ur\nSmdWK3hvVHpNMzZ1cGxHbEdHd2FETm1tSkZBCkhNMHdReGRpZmVJVUJ6aDY4MW1G\nOFhHRVhpUE1FWThwZ1BDZFJxRnZqYzAKLS0tIDd6QTROa2JYLzd4RmtDODJhM2hJ\nU1NwSTE3TVQ5WEdGVzB5YVdYWWNPazQKot8O9EYCfw4r59Fn/9lYZ0xYd7SUo9lJ\nEsus6BeNg2VLFa5V5q3hlVgRHUgNM4LMqIhdDf9mkxULKt1ilmoB6A==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1wjp0vvvy4d2c0pdrth0kl505rzpz37804swf6rrny9xa208mrg2s0r5m67",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB1Q213dEI0d2FMUDB2Z2F3\nOVp6anVnVVZSNTdGMktnL2Z1c3JxNEt6ZUhZCnhrRUFrcnRpRVJXbmNjSWJRQ2hO\nVnlCRVdCRUZidUwwNDQyc1UwemRWbkkKLS0tIER1WWhNNERtaEZ1NVZNOXZoczZN\nZHd3U3UrOC9PZWhPMTBCVG03ZVdRdW8KY3bksqIx78GETGEg8q63HvEp+b8GnLFM\nqE7hiC9sNN8THvXV5rZeJdIPYZ6Kan2Q09GxRzDEJBavK3ZK0DKblA==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2025-04-23T07:54:57Z",
"mac": "ENC[AES256_GCM,data:SckFGU9nPJi6t3bJdRqE49i7tqzcJQB4+ZZzuzSUTnPJV+Bn+/nr6zqbf40jG4qWPPV1PJsiXoJrTOQZ5O/skLg4++c4op5U+brRZqggeJepHVdHpxe7ldVak64Of7gMJ9S5fsynyRa+96kxf/qN2qZ1f63sk0u9bImPovYOJKA=,iv:EWWRbnySYk07m8oAio71VftGhRUJWiXYKJxsnErx2ng=,tag:MS7JFdlny6OA+MjCCz3kHA==,type:str]",
"unencrypted_suffix": "_unencrypted",
"version": "3.10.1"
}
}

View File

@@ -0,0 +1 @@
../../../../../../sops/users/admin

View File

@@ -0,0 +1 @@
Y45RCSC-Y2OENC7-OI2NQ6Y-VUU6W7X-TQDROMD-JZNYC3B-BZJA2TI-7IMW4Q4

View File

@@ -0,0 +1 @@
../../../../../../sops/machines/introducer

View File

@@ -0,0 +1,19 @@
{
"data": "ENC[AES256_GCM,data:DkRR6AfyQJh0rnuzIO9gOs+xSmtncpo4zQOOLMeyfRcMRYYMnfzFIDYrOg4AYEmyd/KDfX8O7r/9dfrg4t4VJIFtA78h7hVA3KFpVhyA55AMfiWKJUQZhTvZG2eRP89+S0tChu6spgTXFDXIwCXa8EwzUc5Cqd/3UHs1DFdsuwWpmcbbXY1P3k4iaSpvQse/7BC0TNn2bg2ZPd4i9ovdY9kyMyOT9/54JRr21PeJ2SJYzLEMhzc+VirU4xIWdRMvK+LJRPWQEhvDGUjxAE5B90rHYmAi8eAaEEB52wpQBthJKUdBoZHlZ/DUbk9CVF2UF4B1rBLOtnt+pN9EfBFqrq0my/6bElEQV3P5UcdC7Z/sOjWVQvjBkHc9wkJp0g6e,iv:T0qYtoUeX7FZA8omE4heI6Beeh4gmbYoJ4Ww+6ix5AY=,tag:0FpsipDR1pfQA2/Z+4ogQQ==,type:str]",
"sops": {
"age": [
{
"recipient": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWam5QUlF2K2ZQa3RjYkxt\nZXBmbmhKcC9HeklPL2c3UFRsUGhxL212T25rCmpCYzF4MFd3REk5cWtsSSt4ZFlK\nMzlLUUg3M1J4am1ZSVg0ait3eHFtVjgKLS0tIGpzYXJzWXJ4emhIOS9oL1E1SVBR\nRXZSZlVtMENGR2RNRzRMcGxCZW8xS1UK1BuhZV2eVb545eTg7I+wk5Dth6ZUwb9R\n5KkJ8oNSahtk9J27ZmJNIuof+fEj9yNueKHbvkDGo5rUoeH9u/awsw==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1wjp0vvvy4d2c0pdrth0kl505rzpz37804swf6rrny9xa208mrg2s0r5m67",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0c1FmdlRUSXBsaDcvMmlj\nUVovdlRoMzAxeGh1blh1OU1JWTh0OElhZkFZClpyZ0JpcGVFbHRJdHhqNDRnaHhY\nQVVSS3NwcXZWMm83R1BPOTAySmF6QTgKLS0tIDd1OE5VYm5qWUZtd2VvYmdob2lG\nODlpUDAzdENDT1Nvdlo2bnVHRjVRSzQKFiKoA9JY6vY6+StLnLq3Fx0SmCRDro6+\nTLy2MmJM2VjdixMBvSDJATIXdf2T5lRFqGeJIlmLftzwCSJNmar+qg==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2025-04-23T07:54:57Z",
"mac": "ENC[AES256_GCM,data:xZlGmeBeMrM4bCYU0j/1rz/lh33Zm3SUKJCSHWQ9rkVzBqD6Zxok+8OLYPIXKmEUQLuD6A3Jj8BIELm7poC0ycDqTCHRP6crPR3TZ9Ha/8ws5yjpbvQA5lvYcF+GindIhTHifo0LlkXsr0Yr3ViErvHHwLifmB2RBYw++gUhxHY=,iv:DT0GgfCrKpVLaBtljUMzSMZ0vP8o24VIiUfp0etNn9Q=,tag:+4kYXei4E1AMpNAusQKcVg==,type:str]",
"unencrypted_suffix": "_unencrypted",
"version": "3.10.1"
}
}

View File

@@ -0,0 +1 @@
../../../../../../sops/users/admin

View File

@@ -0,0 +1 @@
../../../../../../sops/machines/peer1

View File

@@ -0,0 +1,19 @@
{
"data": "ENC[AES256_GCM,data:j/cBGXgSdfB1NOuNdj6w8rdF5dVQ6ngu/pIDys7NIwoX,iv:9G2mTyHNtryKqR0hk8sceaYvQMvIMeprH2M34RphhuY=,tag:8eSMKD5PVwGB+rPS7/XBng==,type:str]",
"sops": {
"age": [
{
"recipient": "age14faw2l6rskw2gcv3rrkygmwmrp2ev9yclzq4fh8xf8sjeke8p97sw4dxuq",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4NVlLSjEyZGFoRXVkR2ZE\nSE9NeXV2V3ZDVXF0RVBUamxWdzNIL2ZYdXhjCisyVWxLak54TS9wVU1VUzVjQVEw\nZlZUaXFqSEdFd3BuMmZzNllKSkxxT28KLS0tIHNqai9wYm5oUHdjbElmRlZrRVg1\nK3BSeG9rTGJyQUpKZU95cjNQakRKajQKUBXxIEwTiz5grVKfbWlJnCC9OiHhDFCi\nG5gNsUHcj74tTWSM+nIAzjRsRWXHpz7kWk/05EQ4W0auOhQ2FaHSTw==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBxSkwrclJrRUVqYjZXZ2ZR\naDBMKzdocjBJNlN2U3A3T09jUmNkVDk1aDJNCkQyQVU2RWpGYzJqdVBKdVRCUHdZ\ndENMbGl2VjNCQXE5Q1lBMEVHYVp3UWsKLS0tICtaZFZGRmxpMTdodGd1a2dEMDYr\nNUowMy9MNTQ1bzVxTlJ2bDdmWjJSREUKJUZ8lQ45pQBXrOfeW25v84ywXN52Og1F\nkmtXkBNAOTr5OkJVZbUXa1lQ0CahLluleVufX0wJIyCpBfhmnjHYFQ==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2025-04-23T07:55:01Z",
"mac": "ENC[AES256_GCM,data:kUDSBhylpGSwaHDw6HK62UgtIAmG6gnAnoooFTBC5XLS/FX1KhWIg+8fmJK8mHbPVGE/Ju7Qa8cxAEEIWa12xoVlsu6UlaHOIwiOTab6gHnxAA/WL+vYjf5H4IVzh6uOJwGIl+Wc//Yovlifs5Kg2ftkiU7rlrm5aMN6GkVGS70=,iv:hRtDatGis5VgWZcyzky5MZADba4ApZhclOxjQNgDXiI=,tag:iHcjmXiHoOHTJ88kFwezdg==,type:str]",
"unencrypted_suffix": "_unencrypted",
"version": "3.10.1"
}
}

View File

@@ -0,0 +1 @@
../../../../../../sops/users/admin

View File

@@ -0,0 +1 @@
../../../../../../sops/machines/peer1

View File

@@ -0,0 +1,19 @@
{
"data": "ENC[AES256_GCM,data:PWIDQ2EF758/YMlZ6LKB7ofyCKQJuAi0ksg70oB+Km0O5JLJ1O4nz0gpf4dk3qoHRyoyEHH2UvMHD9c7Wuxvy/2YNsIkocpDKiNLUBymYlbqA8TAbg5aZU6q5P7KT5kEujFHZlRxeDoYVgV+wtSs19nGnuZmkkqqkJ/cLWEau42YNTZ+Zu+qnahVI42eGxDK3Hz4Gynm0t5xXCHf3IQI/6eXbDxOdcTepx4hkYnE6zWIsJdS+yK+aw9dtz1NJlpaPTV9OACFZXqlEtP7H3d9XVVyGd8Gx1FbjcJZosMBEB9fG+bmxFm20gBksB1oGBaKh5sOB8OGhZEvxGqFjsJXYt1WPbm/POIvu9oDaWwAz3q9QRC60IbRSogiKLnGkeavnKqC5qYEFTcFr+9JbM9g6+pyI7PosKt5GACpqFODPx/U8iu3ooxseeI7ncDuiNbmWrDAhBcELmclWrRN879nDlfAw+Ct9EIVmP97oFYVAM6fvbxzhQ0uFe9Xrh+G0gsKnfc+XYiEhG35Ge//PdXUI1HDIaGEqcEMpH4dqzbYqkx9CKZ5+fhIcL8R0WBr4I2MI80gvD2ga9k6jpnhnlu6izAajEMNcOjCXrwc47dh5ytRi949gg/HLu38NUU8cG5JtnNP2qqHmn/hFVtTDWL7BDGGAIopC1vyJCjHY1s6pedoJkfFOEPJoKBl1bU8WCbz68GkQ5f0LrFK4026iiI0ExKXP8BApbBEU+UROqzEPcvcC24+5wUbWCnBO0O4S1k7Z4rZdfUVe9XqN2qTLFUgyaEUAnov48aB09+wsnol4xxbkkD3eihpihG58yzwBrPIhsttApOcEhMwjMwrXvbrDcV1wedglZdDCjTa7z0lPwxHaAIf4obYyddlZ36whBU8fsJEoLD2dzTzXFEmGPUKPFwtocJ4IJbNYvNBBmjeH2Eh+wcZyO0dpEuQdMY1zWeYMGWbHSuQC0LdfSvx+hCmsr2rfu8ISVqAgI7YgJc5rNro+poMl5kLpwbSFwH0TdXUJfeRuGFzi7iDgLduf5ZuUMUDsPbw7w==,iv:d6QjUKGw6zfp0Me1YjzkcEtR2fgXuKMjISB4LTbkHI0=,tag:AVyZuNbT81ER6e5/eq9WMg==,type:str]",
"sops": {
"age": [
{
"recipient": "age14faw2l6rskw2gcv3rrkygmwmrp2ev9yclzq4fh8xf8sjeke8p97sw4dxuq",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVSGxaVXN3LzFQaUFnN2Fk\nUStGY1J0a2YydFNVOXZBbjBxMmpLOUdSVVM0Ck5NWTVjNkZTSEVHT3N1UzltVDhN\ndnM3czdvV1pTVG5OV0QwN1hjRC9FYjAKLS0tIFRpS25rL0NEMGJKUHhrOG1TQVNS\nODkybmFPMnBwT3J2T2N5eUdnWlNuWk0K77EWBMrWSRcOgJz2VMTWG8b2VF3hsnfN\nlB24D6g6X+NyYqA5sr6tt2CokSelHvDmdQPp+9ctFUd8MZZOG80odg==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3TTlVS0R3K0N5QlRmOXlz\nU0JFVmx5VktaYlhKTnNYRkp4YmVHa00xbkc0ClZVQ0ozQXhNRlNvbHJ3M3VpdUFy\nK01kV1hJeG1iSVZDUTFGUVlZdHF2VjgKLS0tIFRLcldTdWpmS2RFM3lkcUlIbWg4\nelNxYlowWlRQbmhlUFRON0lOTG5FdFkKFPvYOu22il6Sq2YSHmV1p5ffOafiUQVz\n19YU773ENRNtodhqigpyJJYsC53gI4lbQC70taJciICdcmdFo/OdSA==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2025-04-23T07:55:01Z",
"mac": "ENC[AES256_GCM,data:+jHseVVdCG1Y/0D9hnO8DP7mZIV60nG1AHw11R+pGy7EHhKfLlHT7/MwCRSCbP2hwekUtfrOsuRxSCnckv29h+BMGSi3NZNPXY04tScvEmMECXia7UQWE2o0gQHHLEfSVoWYJ2dcC60cQlpXYocNY47pFx0eq0Q/u6F0SOZwEjU=,iv:GNFszYeZUVdnonQgyVNp5RPofInAOFwyk1wi506wdrI=,tag:Ix0/OieMU7KNwx6y7i8LyQ==,type:str]",
"unencrypted_suffix": "_unencrypted",
"version": "3.10.1"
}
}

View File

@@ -0,0 +1 @@
../../../../../../sops/users/admin

View File

@@ -0,0 +1 @@
BZMMAO2-WNUTFFN-GMRL6TM-QZX57TS-Q3NXHVU-V3VPNGX-QHQMBIX-LWQUQQA

View File

@@ -0,0 +1 @@
../../../../../../sops/machines/peer1

View File

@@ -0,0 +1,19 @@
{
"data": "ENC[AES256_GCM,data:e9zI2AphJlfeoK08uohWw+uQKdBBitrMnJCEwE5EPxD6w1qq/yoR5d94fwmEW+PzMRC+eg838I0sACEWJ0XIBb6uOECbKbhgqfqKi67GwXaobtjfQMpYe2xZvODb0LWQdZ33hJ1h23mGnbNlsafVMFySi0ydeul7rCLdNULhIBR6ph+JQHCsOO0G9BVZWSjKc1P/ItcoapMHhS0KzEhY87E6p6jkZFKrVi+bz9e1rF9uSemPF3kE/MAz3PBaqp2JbSrYHUgvDIFuQVt1AK+47rnB3Lmvk2iBD5aYXn+q6ZMRA7M5pYDxTglTlOpALikbjuUmiRZpMuJR+vCsmIEfO/MtoTah2Rawvbyn+80J/iD0C10xF4XvTgv+CAYtJhiw,iv:FZywq4cjxcMpWOYZyBKVCXHPWUNRAp01ufx3LIexfGw=,tag:Rc2iAT6CdP3UYvHf5nvDgw==,type:str]",
"sops": {
"age": [
{
"recipient": "age14faw2l6rskw2gcv3rrkygmwmrp2ev9yclzq4fh8xf8sjeke8p97sw4dxuq",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBOUmNuaWlsZXMwWE9OTVZz\nVWR3MGE0TnN4eW94TzA3a3RHK000Yy9XS1MwCm8rN2xSWTFRSG02c285UUVLTFM5\nNHN0Lyt2T1c1K0tqZEdkd0VCYTVMSHMKLS0tIHpOY1hKS2xwazd3bmJIZWZvc1h6\nR2VocjBudk10bm5JVDIydVpiTnFBcnMKS5Ip6wMtZ0lfyGXLE0CJsgY6JYATPId7\nKQB3iY4YcDnW4Kz3Y8mouJcS3wGpu5l5CvBBpjbP3uUQRD1r6ex2HA==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaL1QvcXh3UzZVcFkzK1Zu\ncGtkNlptWlJSZlhxSjNzUzZlM2pzUGFYRFNRCm9xdU9HZ29oT2NNM0lkTVFrWjY1\nbFNPU3BsUWVDbW9EcWlLM3NzbTNTanMKLS0tIEtJQmdwNnBXa1lveEovOC9jRkZs\nbkxOL1dkdGpCQkkvMTNrQ2FZWDF2TTAKptb/vJ5kzpULSm8LeAJqqR5Tks33Vf52\nJaVEMSbHJxcIWWR1Sf954pOOgoOyVpB3BB/DFOAf6VOeVt8RBalvBw==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2025-04-23T07:55:01Z",
"mac": "ENC[AES256_GCM,data:WuvkahW8Nm091/eyitO/fmUJE0c8V2G2LAkfr0QdoLqppevEjV+YGNmtqtkVYFnxoQYhzysjVT54eVHVWoeZV7yUg2P9gwMIShT+skayJfXvZfJyvEaNkHWloWeGOLn5gv93P908srTKhHeufsnfGl/hkd+TuNwzzE2mS7k2gMs=,iv:9CPjqSABHJY/sXhzU3AVvtWW5tLMHDqjAV0/Hu9/Jsc=,tag:FYMbuN/BoSowzuoyoFlYxw==,type:str]",
"unencrypted_suffix": "_unencrypted",
"version": "3.10.1"
}
}

View File

@@ -0,0 +1 @@
../../../../../../sops/users/admin

View File

@@ -0,0 +1 @@
../../../../../../sops/machines/peer2

View File

@@ -0,0 +1,19 @@
{
"data": "ENC[AES256_GCM,data:4KwVxOYKVLymyDXQ9GswpxJi6Fi5BCDJzMj4d/02nNa4,iv:9uGX3BRswPRlgPpPjdodzfwjbj7vmTqTcDNClKdGGlw=,tag:jLkefKqBfdRVy+qV073Ksg==,type:str]",
"sops": {
"age": [
{
"recipient": "age1dutdww4x48f0e3tzmjlye9n852wx0qqhhcghsrefsq9m8c5flpfs2lxexf",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTWmdQb1VNRUM4NHViYzRU\nOEkzdnhneFBQaGJ5ek1NTUxYcG5YdDhUQWhvCm1RTVc1aFRkczBYLzVZTUdhbjBz\nWXJqTDUyUXRmQVJ1R1p6cC9wSTNVbUkKLS0tIEgwSTVhMTFsdzRHdW9QcVRlZ3l3\nd2xrQkYzVFBTYldlZGtwakFnUHF2WmMKJa1A6a7umGgaFHSq8JqdwUQ6oBu65r1E\nCHSdEt7vviRXS6TRhdMdH0OiKQPTpHdspz6NRwn9KjMbrANq9Cxl6g==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBsSnMxNHBJNXVyd0RKTFYw\nUW5VMGJFdDI4dTNDTTNKL0xOZ1dvQTlGN2hNCkFPbGRhc0pEUGNlN2NManV0MHRV\nOXZtTGQwbWo3cWN5d0kxd3UwcHh2NlUKLS0tIGs3NERZRTRvc0h5T0h0SFV0VzBv\nL0hCVXE1TmFKV25lWHZvOGQ5YzM0ek0K19o2HCcCHlI55kQ1khuyXMnYGf7X5YI8\nsOgm6sM//6qB2I1DC/IwrHT5+yq/3CkqKcHYfinr3ClaKNDLV4hpAw==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2025-04-23T07:55:05Z",
"mac": "ENC[AES256_GCM,data:5S1c4kdweAoikTnowDMWYXbSOS4v97CVMTeq+OFb78FHDKVwlnk1mT43cOLVyF02i589Lxf1rMXl7T9mXyYpY6fTvWKpRBewryS58eUaI01K8NFtS/+aqdgtXoqx5jO4BHrITTlJUjQh0PfXf5Lv7cZBPiNZnu9lfwrxsNbRRPE=,iv:NQeuNVZaVjBOGydA3aCPWHTX7rlG2/I4+YhOTli+nIE=,tag:wzuOuMECuitwewGArGZMeA==,type:str]",
"unencrypted_suffix": "_unencrypted",
"version": "3.10.1"
}
}

View File

@@ -0,0 +1 @@
../../../../../../sops/users/admin

View File

@@ -0,0 +1 @@
../../../../../../sops/machines/peer2

View File

@@ -0,0 +1,19 @@
{
"data": "ENC[AES256_GCM,data:BEFeUE9tN3sjDQmLICGXziA5VPDfHNyjHaMmQlcjJj/AUmhMPOdBUAo28rPPXE+ici0vPLZmXVEcgd4ad02YpBfd1EfUMZW9vz10sv51I7ac/ClFfmbRU1q1CNDiIAHJUErDbCTghnpJMNAiz3CDg409uF8LJ/UmDo73uN8O6UVYI+jB1nxbUD8zPKpQnydRSf6MIrUSluZ3ckDNuoBe2ZcHrvBpbnzhEYHEnEwoM9C9uQQCWtEOjyrahWKr+7wCd7kgVhQfPJLeiSZDgmnnLw0q61dPWNrTyRa48DX5wMgKOOYUM0fMtPI2HGOEqTcel/smNR/4uHVyjsQBuwK/mSdwmfKxVACu6Hxb9is+qkK7pQuPYYLyyubn/nbIhflOLlH5CxbVj/4LK1wDfMbrCOueVq5Fshsj51AgNipi0b+srlDeVnWuQ1BWoCHQ4YTMdIUB5PMYPLCONWlbsb9OQoaAnD03JA3ucCUvpEEtVkqxXMVh+5VjzPX+VoenyVP6O1amiwO1FKIGh0sRd8OJRTD4ait885T4xx2e/Evi9gxZpirFmmn8enZ+oi+zL7YFLRBp+GVso/TRHHEesCHLmsqCaclt6i6BQCK4z2lLd1bXu5ATtx27ka54qdD7sTf1XhcU8Za0d+wmDNzwOCiuMMir37XDWFnR6HP1MS9cgCAVMCxmP4ETZa3FXlA0muwSWOifMlk5OZBoorMNAq543Cmffteh883NRkHUF/SAfr7hVCzUfPsDC3px7MvgqiNaUAi+bvjxlTU1NBZOMvTYtkBcpXzSyjuQ2pVGVEUKNxG8w4QS+5UoUtBBvGCF61D7iWIEHvTfJ8U6agWpcJLSMTAhNjQ8WAbYm3zMbv0J4r4qDvqe8Jn6+3lzZ5EYk4dUvd/6r/pzVJhhhzgEuGn6hfcJusb9xV92hTAVqkLocrwGzvDJ1R/kNx3shm+8H0VRiigrANoRpiTGNPF66qUynkaGU/S6K4Oo2fjCeOrpkO/XwhWsK6ZQ/24a10pO+diBLsGGoW7boqC3ff6sSxhO+Dpl4IEV9Q==,iv:Pc8ZfMZ1ZW94tRkQeVs4VZUfeXUj3WG1h4+mFW7Zafc=,tag:Q2SzduFZATYjEZJeurUMfw==,type:str]",
"sops": {
"age": [
{
"recipient": "age1dutdww4x48f0e3tzmjlye9n852wx0qqhhcghsrefsq9m8c5flpfs2lxexf",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwUDBxUm4yUXgybmdzZHBV\nZVJXcFNuN3FENU91Y2U3bDEwN2t2ZmlCQW5rCjdta1FvWWgwb042alUybVZ4WVB1\naGIrdUR3aDNmazZSd3YwSTNxb3d6b2cKLS0tIEc3dHhuRW5SaWI1YUhHQnpSR3Vr\nQ1paemJKWld6SENUbmQ3dHFmNnNoZkEKBAO21R4igmxdkZWg64tNj/wVQql4zDI/\nM6Huuoy0KqaMNGnQZyYpHOoXaA0V2Z3wRIiqBpYmpF9yPX41TWDqAw==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age1qm0p4vf9jvcnn43s6l4prk8zn6cx0ep9gzvevxecv729xz540v8qa742eg",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKamJ5TDNlUHBUSm1aOW1z\nMjNEODZJWk42NlJFTW1Zdk1XWnFMU2NuZndFClJpZGVwdWtFRWgrU1EwMndxRTZK\nR0UvNzJwckZMMzdaNDBwMWZKeGppUm8KLS0tIGxsbVhqcGpZRlNGRE5JWXo4MXYy\nZGlzcVFlNHUxRmEvRkNPU3dGWlJxVXcKO/qq4BD40ctBTLKbTUb5elD/QOlFfeSL\n1a9ioyiNVehXsOWmgjg2x6POfY/1FTqB3x6PG7CxdSw5Qg31d4qcWw==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2025-04-23T07:55:05Z",
"mac": "ENC[AES256_GCM,data:JW1ACIn9FnOYm0a18UanYeXgdoyuGXaBzvGMBdSTUBJAF/soeN/DP41mpyzWl9JknzId+R6qooSJ3Zs9asekeUc+9ehc2ra9KdKDNEliwB1Hi5GswIYo1fYRdRrPPBV0EnWg3lLT9Sa3vDDDKQJiMUA30jnGIkN4rNOA4xD4KeE=,iv:Eyvx/ZkqM63jaamPRk5rjjeWQsA3c0rmB2Xhl28HAYc=,tag:KTzwnPsVw9uTYQU2al5mhw==,type:str]",
"unencrypted_suffix": "_unencrypted",
"version": "3.10.1"
}
}

View File

@@ -0,0 +1 @@
../../../../../../sops/users/admin

View File

@@ -0,0 +1 @@
TB7HCPA-CIEXTMA-KXMBEL3-V2UIPND-C2VBRVP-BJTYZP3-G62QKYA-HFF2CQ4

Some files were not shown because too many files have changed in this diff Show More