Commit Graph

4700 Commits

Author SHA1 Message Date
Qubasa
2b616575e1 service_runner: Fix starting a service twice 2025-10-14 17:32:21 +02:00
Qubasa
3f07f6ac79 service_runner: add grouping feature 2025-10-14 17:32:21 +02:00
Qubasa
c6b0b114c5 clan_lib: init platform independent service_runner 2025-10-14 17:31:37 +02:00
hsjobeki
8803343ae1 Merge pull request 'persistence: generate properties for data by traversing data' (#5502) from persistence_attributes into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/5502
2025-10-14 15:27:10 +00:00
hsjobeki
4cfe866079 Merge pull request 'lib/cli: tests collect coverage' (#5528) from test-cov into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/5528
2025-10-14 15:23:28 +00:00
Johannes Kirschbauer
8609538756 clan_lib: allow explicit readonly access to inventory attributes 2025-10-14 17:21:39 +02:00
Johannes Kirschbauer
a296b8a1fe lib/cli: tests collect coverage 2025-10-14 17:07:19 +02:00
Mic92
ccf64d5951 Merge pull request 'fix: handle OSError when age keys are too long to be file paths' (#5523) from clan-secrets into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/5523
2025-10-14 14:35:05 +00:00
pinpox
c1686691fa Fix module mention in docs generation 2025-10-14 16:14:40 +02:00
pinpox
42e3fea9e5 clanServices: add desktop module 2025-10-14 16:02:20 +02:00
Johannes Kirschbauer
0c245f8eda persistence: generate properties for data by traversing data 2025-10-14 14:51:06 +02:00
Jörg Thalheim
9469968851 fix: handle OSError when age keys are too long to be file paths
Prevents "File name too long" errors when users provide age keys directly
to 'clan secrets users add', as Path.is_file() would fail before the key
validation could run.

Fixes: https://git.clan.lol/clan/clan-core/issues/5522
2025-10-14 13:15:54 +01:00
Luis Hebendanz
3c7c52e35a Merge pull request 'clan_cli: Add typeAlias support for api.py' (#5509) from Qubasa/clan-core:fix_jsonschema_gen into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/5509
2025-10-14 10:21:11 +00:00
Qubasa
23008d1f73 openapi: Add a test for TypeAliasing 2025-10-14 12:06:04 +02:00
hsjobeki
733d80d0b2 Merge pull request 'app: use geist font' (#5508) from fix-font into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/5508
2025-10-14 09:48:53 +00:00
Johannes Kirschbauer
9dceddc6c2 app: remove 'condensed' variant 2025-10-14 11:46:28 +02:00
Qubasa
f1747079c8 clan_cli: Add typeAlias support for api.py 2025-10-14 11:30:48 +02:00
Johannes Kirschbauer
ffdcd9b41e app: use geist font
Drop Archivo, ArchivoSemicondensed, CommitMono
in favour of only one
2025-10-14 11:19:57 +02:00
hsjobeki
d9f6b7e3fb Merge pull request 'api: prepare persistence_attributes' (#5453) from persistence_attributes into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/5453
2025-10-13 15:23:03 +00:00
Johannes Kirschbauer
40de60946a api: migrate to use persistence attributes everywhere 2025-10-13 17:04:01 +02:00
Michael Hoang
46f746d09c cli: fix installation test with latest release of nixos-anywhere 2025-10-13 15:06:20 +02:00
DavHau
bf41a9ef00 vars/sops: stop writing on clan vars check
This fixes an issue where check_vars() would add machine keys or authorize machines for shared vars.

These write operations should only ever be done on a `clan vars generate`, which `clan vars check` should be a read-only operation
2025-10-13 18:43:49 +07:00
Johannes Kirschbauer
7b95fa039f clan-cli: remove unused test fixture 2025-10-12 18:00:52 +02:00
Johannes Kirschbauer
63fdc13928 persist: add attributes props to accumulator 2025-10-12 17:45:14 +02:00
Johannes Kirschbauer
c13879ce69 persist: rename write map to attribute map 2025-10-12 17:45:14 +02:00
Johannes Kirschbauer
f57bc30c5a persist/writeability: rename non_writeable to readonly 2025-10-12 17:45:14 +02:00
Michael Hoang
bc09d5c886 cli: ensure init-hardware-config passes Nix options to nixos-anywhere 2025-10-10 17:00:10 +02:00
Brian McGee
27d43ee21d fix(storybook): disable Sidebar story until we have a better mock data approach 2025-10-09 14:57:22 +01:00
Brian McGee
9626e22db7 fix(storybook): adjust flash installer on mount
It needs to handle possible missing state in the store on mount.
2025-10-09 14:57:22 +01:00
Brian McGee
1df329fe0d fix(storybook): disable service workflow stories
Temporary until we can decide how best to mock state.
2025-10-09 14:57:21 +01:00
Brian McGee
9da38abc77 fix(storybook): clan settings mock data shape changed 2025-10-09 14:57:20 +01:00
Brian McGee
2814c46e68 fix(storybook): button stories
- role="button" was removed at some point during refactoring which broke how the story was finding buttons
- button no longer has automatic loading state, instead it is now controlled.
2025-10-09 14:56:39 +01:00
Brian McGee
feef0a513e fix(storybook): remove cubes storybook
It wasn't adding much value and requires a mock Clan context which is a lot of effort at the min.
2025-10-09 14:56:38 +01:00
Brian McGee
9cc85b36c6 feat(ui): switch to webkit for storybook tests 2025-10-09 14:56:38 +01:00
hsjobeki
1465b18820 Merge pull request 'app: fix ClanSettings story' (#5447) from ui-cleanup into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/5447
2025-10-09 13:27:56 +00:00
Johannes Kirschbauer
6fa0062573 app: fix ClanSettings story 2025-10-09 15:24:30 +02:00
DavHau
fd5d7934a0 vars: refactor - make shared generators carry machines list
This should make it simpler to improve the implementation of granting a new machine access to a shared secret.
The current approach using the health_check is  pretty hacky
2025-10-09 15:41:04 +07:00
DavHau
744f35e0cc vars: cleanup + fix wording 2025-10-09 07:38:00 +02:00
Johannes Kirschbauer
46ae6b49c1 docs: move generated markdown into a package 2025-10-08 16:37:31 +02:00
Johannes Kirschbauer
032f54cbfb docs: fix links 2025-10-08 16:02:31 +02:00
Johannes Kirschbauer
c031abcd9e docs: move option-search into own package 2025-10-08 15:42:18 +02:00
Louis Opter
a06a7a7a2c clan-cli/secrets: update some error message in encrypt_secret (#5271)
Found that while reading through some code.

Co-authored-by: Jörg Thalheim <joerg@thalheim.io>
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/5271
Co-authored-by: Louis Opter <louis@opter.org>
Co-committed-by: Louis Opter <louis@opter.org>
2025-10-08 07:41:14 +00:00
DavHau
a83f3c23f4 vars: raise error when shared generators differ between machines
When generators are shared between machines, their definition has to be the same across all machines. If not, it might lead to unexpected problems, as the architecture assumes that all definitions are the same.

fixes https://git.clan.lol/clan/clan-core/issues/5253
2025-10-08 14:02:39 +07:00
DavHau
da6cd324f0 Merge pull request 'vars/performance: aggregate selects over all machines and generators' (#5402) from dave into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/5402
2025-10-08 06:04:50 +00:00
DavHau
c5b96df7b0 vars/performance: aggregate selects over all machines and generators
This improves the performance of deployment, by aggregating uncached select calls for vars generate into two batches.
batch 1: Get all generators of all machines
batch 2: get all final scripts for generators which need to run
2025-10-08 13:00:20 +07:00
Jörg Thalheim
204f9d09e3 network: refactor get_best_remote to class-based context manager
Resolves the "RuntimeError: generator didn't stop after throw()" issue
by replacing the generator-based @contextmanager with an explicit class.

This maintains backward compatibility through a factory function.
2025-10-07 13:05:20 +02:00
Jörg Thalheim
10ed2cc7f7 sops: don't leak secret key in debug logs 2025-10-07 11:31:12 +02:00
DavHau
43b1744528 tests: disable state-version generation in all python tests
This improves the performance of tests, as there are less vars operations to perform.
2025-10-06 17:08:42 +07:00
Johannes Kirschbauer
359582118c docs: fix broken links 2025-10-05 14:14:12 +02:00
Luis Hebendanz
fd62b4e9b3 Merge pull request 'clan_lib: Add clan_module_to_llm_function for ai integration' (#5361) from ai_support2 into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/5361
2025-10-03 21:20:43 +00:00