Commit graph

939 commits

Author SHA1 Message Date
dettlaff f90eb3fb4c feat: add flake services manager (#113)
Reviewed-on: https://git.selfprivacy.org/SelfPrivacy/selfprivacy-rest-api/pulls/113
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
Reviewed-by: houkime <houkime@protonmail.com>
Co-authored-by: dettlaff <dettlaff@riseup.net>
Co-committed-by: dettlaff <dettlaff@riseup.net>
2024-06-21 23:35:04 +03:00
nhnn 8b2e4666dd fix: rename PageMeta to LogsPageMeta 2024-06-11 12:36:42 +03:00
nhnn 3d2c79ecb1 feat: streaming of journald entries via graphql subscription 2024-06-06 16:07:08 +03:00
nhnn fc2ac0fe6d feat: graphql endpoint to fetch system logs from journald 2024-06-06 16:03:16 +03:00
Houkime f772005b17 refactor(jobs): offload job subscription logic to a separate file 2024-05-27 21:30:51 +00:00
Houkime 950093a3b1 feature(websocket): add auth to counter too 2024-05-27 21:30:51 +00:00
Houkime 8fd12a1775 feature(websocket): add auth 2024-05-27 21:30:51 +00:00
Houkime 6d2fdab071 feature(jobs): UNSAFE endpoint to get job updates 2024-05-27 21:30:51 +00:00
Houkime 3910e416db test(jobs): test simple counting 2024-05-27 21:30:51 +00:00
Houkime 967e59271f chore(jobs): shorter typehints and import sorting 2024-05-27 21:30:51 +00:00
Houkime 3b0600efb6 feature(jobs): add subscription endpoint 2024-05-27 21:30:51 +00:00
Houkime 4b1becb4e2 feature(jobs): websocket connection 2024-05-27 21:30:51 +00:00
Houkime 43980f16ea feature(jobs): job update generator 2024-05-27 21:30:51 +00:00
Houkime b204d4a9b3 feature(redis): enable key space notifications by default 2024-05-27 21:30:51 +00:00
Houkime 8d099c9a22 refactoring(jobs): break out a function returning all jobs 2024-05-27 21:30:51 +00:00
Houkime 4d60b7264a test(async): pubsub 2024-05-27 21:30:51 +00:00
Houkime 862f85b8fd feature(redis): async connections 2024-05-27 21:30:51 +00:00
Inex Code a742e66cc3 feat: Add "OTHER" as a server provider
We should allow manual SelfPrivacy installations on unsupported server providers. The ServerProvider enum is one of the gatekeepers that prevent this and we can change it easily as not much server-side logic rely on this.

The next step would be manual DNS management, but it would be much more involved than just adding the enum value.
2024-05-25 14:12:51 +03:00
Inex Code 4f1d44ce74 chore: Bump version to 3.2.1 2024-05-24 22:53:58 +03:00
Houkime 8e8e76a954 fix(backups): fix orphaned snapshots erroring out 2024-05-24 12:30:27 +00:00
Inex Code 5a100ec33a chore: Bump version to 3.2.0 2024-05-22 10:57:59 +03:00
Inex Code 524adaa8bc add nix-collect-garbage endpoint (#112)
Continuation of the broken #21

Co-authored-by: dettlaff <dettlaff@riseup.net>
Co-authored-by: def <dettlaff@riseup.net>
Co-authored-by: Houkime <>
Reviewed-on: https://git.selfprivacy.org/SelfPrivacy/selfprivacy-rest-api/pulls/112
Reviewed-by: houkime <houkime@protonmail.com>
2024-05-01 16:10:39 +03:00
houkime 5e93e6499f Merge pull request 'redis-huey' (#84) from redis-huey into master
Reviewed-on: https://git.selfprivacy.org/SelfPrivacy/selfprivacy-rest-api/pulls/84
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2024-03-20 14:19:07 +02:00
Houkime c5b227226c fix(backups): do not rely on obscure behaviour 2024-03-18 17:33:45 +00:00
Houkime b40df670f8 fix(backups): censor out keys from error messages
We do not have any automated sending of errors to Selfprivacy
but it was inconvenient for people who want to send a
screenshot of their error.
2024-03-18 17:15:40 +00:00
Houkime b39558ea1f fix(backups): report error in the error field of the job 2024-03-18 17:00:55 +00:00
Houkime 6f38b2309f fix(huey): adapt to new VM test environment 2024-03-18 12:18:55 +00:00
Houkime baf7843349 test(huey): only import test task if it is a test 2024-03-18 12:18:55 +00:00
Houkime fde461b4b9 test(huey): test that redis socket connection works 2024-03-18 12:18:55 +00:00
Houkime 83592b7bf4 feature(huey): use RedisHuey 2024-03-18 12:18:55 +00:00
Houkime b2edfe784a refactor(service): add return typing to DNSrecord conversion and comments 2024-03-18 11:44:53 +00:00
Houkime 12b2153b7c test(service): do not call bash needlessly (it screwed up with fp) 2024-03-18 11:32:02 +00:00
Houkime 8c8c9a51cc refactor(service): visually break down the move function a bit 2024-03-18 11:32:02 +00:00
Houkime fed5735b24 refactor(service): break out DNS records into a separate resolver field 2024-03-18 11:32:02 +00:00
Houkime b257d7f39e fix(service): FAILING TESTS, rebuild when moving 2024-03-18 11:32:02 +00:00
Houkime 70a0287794 refactor(service): move finishing the job out of moving function 2024-03-18 11:32:02 +00:00
Houkime 534d965cab refactor(service): break out sync rebuilding 2024-03-18 11:32:02 +00:00
Houkime f333e791e1 refactor(service): break out ServiceStatus and ServiceDNSRecord 2024-03-18 11:32:02 +00:00
Inex Code bda21b7507 fix: Mark md5 as not used for security 2024-03-15 16:14:31 +04:00
Inex Code 1f1fcc223b fix: division by zero 2024-03-07 23:29:37 +03:00
Inex Code a543f6da2a chore: Bump version to 3.1.0 2024-03-07 23:12:45 +03:00
Inex Code 0eff0ef735 fix: move_service task path 2024-03-06 18:43:55 +03:00
Houkime fd43a6ccf1 doc(services): explain the Owned Path reason d'etre after trying to remove it 2024-03-06 18:40:05 +03:00
Houkime eeef2891c9 fix(services): fix merge bug 2024-03-06 18:40:05 +03:00
Houkime 3f9d2b2481 refactor(services): remove too many imports and cleanup 2024-03-06 18:40:05 +03:00
Houkime 305e5cc2c3 refactor(services): introduce Bind class and test moving deeper 2024-03-06 18:40:05 +03:00
Houkime 1e51f51844 feature(backups): intermittent commit for binds, to be replaced 2024-03-06 18:40:05 +03:00
Houkime 235c59b556 refactor(services): break out location construction when moving 2024-03-06 18:40:05 +03:00
Houkime ddca1b0cde refactor(services): fix type annotation 2024-03-06 18:40:05 +03:00
Houkime c22802f693 fix(services): check for possible None progress when moving folders 2024-03-06 18:40:05 +03:00
Houkime 17a1e34c0d feature(services): check before moving task and before move itself 2024-03-06 18:40:05 +03:00
Houkime d7ef2ed09a refactor(services): make moving a part of generic service functionality 2024-03-06 18:39:27 +03:00
Houkime 7fd09982a4 fix(services): a better error message 2024-03-06 18:39:27 +03:00
Houkime d34db3d661 fix(services): report moving errors fully 2024-03-06 18:39:27 +03:00
Houkime 28fdf8fb49 refactor(service_mover): decompose the giant move_service 2024-03-06 18:39:27 +03:00
Inex Code f895f2a38b refactor: Return last 10 log lines when system rebuild failed 2024-03-06 18:33:55 +03:00
Inex Code c733cfeb9e Merge remote-tracking branch 'origin/system-rebuild-tracking' into system-rebuild-tracking 2024-03-05 14:41:43 +03:00
Inex Code 71433da424 refactor: move systemd functions to utils 2024-03-05 11:55:52 +03:00
Houkime 1bed9d87ca doc(services): explain the Owned Path reason d'etre after trying to remove it 2024-03-04 17:16:08 +00:00
Houkime 2c1c783b5e fix(services): fix merge bug 2024-03-04 14:26:26 +00:00
Houkime 8402f66a33 refactor(services): remove too many imports and cleanup 2024-03-04 14:12:44 +00:00
Houkime 1599f601a2 refactor(services): introduce Bind class and test moving deeper 2024-03-04 14:12:44 +00:00
Houkime 0068272382 feature(backups): intermittent commit for binds, to be replaced 2024-03-04 14:12:43 +00:00
Houkime 18934a53e6 refactor(services): break out location construction when moving 2024-03-04 14:12:43 +00:00
Houkime baaf3299ce refactor(services): fix type annotation 2024-03-04 14:12:43 +00:00
Houkime f059c83b57 fix(services): check for possible None progress when moving folders 2024-03-04 14:12:43 +00:00
Houkime fb41c092f1 feature(services): check before moving task and before move itself 2024-03-04 14:12:37 +00:00
Houkime c947922a5d refactor(services): make moving a part of generic service functionality 2024-03-04 13:30:03 +00:00
Houkime b22dfc0469 fix(services): a better error message 2024-03-04 13:30:03 +00:00
Houkime e42da357fb fix(services): report moving errors fully 2024-03-04 13:30:03 +00:00
Houkime 2863dd9763 refactor(service_mover): decompose the giant move_service 2024-03-04 13:30:03 +00:00
Inex Code 96f8aad146 Merge branch 'master' into system-rebuild-tracking 2024-03-04 10:54:43 +02:00
Inex Code 36d026a8ca style: Formatting 2024-03-04 00:45:45 +03:00
Houkime 7ccf495958 refactor(backups): remove excessive format-strings 2024-03-01 13:59:43 +00:00
Houkime f5d7666614 refactor(backups): remove excessive imports 2024-03-01 13:54:10 +00:00
Houkime 76f5b57c86 refactor(jobs): add explicit return statements 2024-03-01 12:44:08 +00:00
Houkime bf33fff20d fix(backups): finish the autobackup job 2024-03-01 12:44:08 +00:00
Houkime 742bb239e7 fix(backups): simplify autobackups to avoid deadlocks 2024-03-01 12:44:08 +00:00
Inex Code 5616dbe77a style: rename ip6 addresses variable 2024-03-01 15:06:32 +03:00
Inex Code bbec9d9d33 refactor: use ipaddress library for ip validation 2024-03-01 14:58:28 +03:00
Inex Code a4327fa669 fix(dns): Ignore link-local IPv6 address 2024-03-01 03:21:31 +03:00
Inex Code 2443ae0144 chore: Remove version flavor 2024-02-26 22:51:31 +03:00
Inex Code c63552241c tests: Cover upgrade and rebuild task 2024-02-26 22:49:32 +03:00
Inex Code d8666fa179 Merge commit '4757bedc4ec62d3577fd1f259abbe34ba6dce893' into system-rebuild-tracking 2024-02-26 18:27:54 +03:00
Inex Code 3965203d28 chore: Bump version to 3.0.1 2024-02-23 20:19:08 +03:00
Houkime 52f8e283be fix(backups): fix wrong typing in autobackups 2024-02-23 16:45:59 +00:00
Houkime 4757bedc4e test(backup): add tests for cache reloads 2024-02-13 14:12:41 +02:00
Houkime bc0602bfcb fix(backup): rework caching so that there are rarer api calls 2024-02-13 14:12:41 +02:00
Inex Code 25c691104f fix: non-0 exit status of is-active 2024-02-12 18:58:27 +03:00
Inex Code 1a34558e23 chore: Shorten the output on status_text 2024-02-12 18:54:32 +03:00
Inex Code c851c3d193 chore: more debugging outuput 2024-02-12 18:53:14 +03:00
Inex Code ad069a2ad2 fix: wrong unit name again 2024-02-12 18:47:37 +03:00
Inex Code b98c020f23 fix: wrong systemd unit used 2024-02-12 18:41:24 +03:00
Inex Code 94456af7d4 fix: debugging 2024-02-12 18:34:55 +03:00
Inex Code ab1ca6e59c fix: register huey task 2024-02-12 18:27:32 +03:00
Inex Code 56de00226a chore: Testing env 2024-02-12 18:21:09 +03:00
Inex Code 2019da1e10 feat: Track the status of the nixos rebuild systemd unit 2024-02-12 18:17:18 +03:00
Inex Code 591138c353 Merge pull request 'fix(backups): hopefully clearer errors on backup' (#87) from backup-errorhandling into master
Reviewed-on: https://git.selfprivacy.org/SelfPrivacy/selfprivacy-rest-api/pulls/87
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2024-01-26 15:15:47 +02:00
Houkime eaf29178fe fix(backups): hopefully clearer errors on backup 2024-01-24 16:41:49 +00:00
Inex Code 23adf95898 style: Remove unused import 2024-01-24 19:31:56 +04:00
Houkime e13ad71a93 feature(backups): remove all json logic 2024-01-24 14:36:44 +00:00
Houkime 7ec62a8f79 fix(backups): do not autobackup disabled services 2024-01-12 14:35:15 +00:00
Inex Code a0eb5d572f fix(graphql): Typing of the deprecated move_service function 2024-01-10 15:05:10 +02:00
Inex Code b6f436d8b3 refactor: Adapt API to the NixOS configuration changes 2024-01-10 15:05:10 +02:00
Houkime 2b21df9ad3 chore(version): bump version to 3.0, no Rest API 2024-01-08 13:14:50 +00:00
Houkime 8e21e6d378 feature(services): introduce 'modules' field in userdata and group services settings there 2024-01-08 13:12:27 +00:00
Houkime 8e551a8fe0 refactor(services): use generic code for enabling and disabling 2024-01-08 13:12:27 +00:00
Houkime b8d02231cf fix(services): handle the async nature of moving. 2024-01-08 13:12:27 +00:00
Houkime 3080f5a18b feature(rest): remove rest 2024-01-08 13:12:27 +00:00
Houkime 02b10b5078 feature(auth): remove rest auth code 2024-01-08 13:12:27 +00:00
Houkime 3e1fbdd4aa feature(services): remove rest services code 2024-01-08 13:12:27 +00:00
Houkime 41cd876f57 feature(users): remove rest users code 2024-01-08 13:12:27 +00:00
Houkime 43d9d47aed feature(system): remove rest system code 2024-01-08 13:12:27 +00:00
Houkime 4a580e9b7b feature(system): better error handling for shell calls 2024-01-08 13:12:27 +00:00
Houkime 2e775dad90 fix(users): handle no admin name defined when adding a user 2024-01-08 13:12:27 +00:00
Houkime e835173fea fix(users): handle no admin case 2024-01-08 13:12:27 +00:00
Houkime bcbe1ff50c refactor(dkim): do not use popen 2024-01-08 13:12:27 +00:00
Houkime 2f25329c43 refactor(backup): remove a redundant constant 2024-01-08 13:12:27 +00:00
Houkime 1b520a8093 feature(ssh): change ssh settings from graphql 2024-01-08 13:12:27 +00:00
Houkime 9f04729296 test(services, system): untie dkim tests from rest 2024-01-08 13:12:27 +00:00
Houkime 9d3fd45c2c test(services): missing info on service enabled status returns False 2024-01-08 13:12:27 +00:00
Houkime ffc60fc8b4 test(services): use actual json enabling and disabling 2024-01-08 13:12:27 +00:00
Houkime 368ab22fbb fix(services): replace stray gitea reference with a generic identifier in deiable/enable 2024-01-08 13:12:27 +00:00
Houkime f5999516fa feature(services): better error reporting in disable and enable service 2024-01-08 13:12:27 +00:00
Houkime 0078ed0c3a refactor(services): delete xxenablexx functions from jitsi 2024-01-08 13:12:27 +00:00
Houkime c7be9c7427 refactor(services): delete is_enabled() from gitea 2024-01-08 13:12:27 +00:00
Houkime 6f035dc0db refactor(services): add default implementation to get_enabled 2024-01-08 13:12:27 +00:00
Houkime 708c5cbc98 refactor(services): delete enable/disable from gitea 2024-01-08 13:12:27 +00:00
Houkime e1083f3221 refactor(services): make a default implementation of enable/disable 2024-01-08 13:12:27 +00:00
Houkime 267cdd391b fix(backup): do not store maybe unpicklable service on the queue 2024-01-08 13:12:27 +00:00
Houkime 9a1d82ec12 test(service): somewhat support moves for dummy service 2024-01-08 13:12:27 +00:00
Houkime a12126f685 feature(service): error handling on moves 2024-01-08 13:12:27 +00:00
Houkime 9d7857cb3f fix(blockdevices): handle nested lsblk 2024-01-08 13:12:27 +00:00
Houkime 9a3800ac7b test(service): moving errors 2024-01-08 13:12:27 +00:00
Houkime 1e77129f4f test(service): restart 2024-01-08 13:12:27 +00:00
Houkime b9f3aa49bd test(service): enable-disable return values 2024-01-08 13:12:27 +00:00
Houkime 92612906ef test(service): enabled status get 2024-01-08 13:12:27 +00:00
Houkime 6e9d86e844 test(backup): break out dummy service fixture 2024-01-08 13:12:27 +00:00
Houkime 85c90105ea test(backup): ensure we use correct repo folder 2024-01-08 13:12:27 +00:00
Houkime d4b2ca14bb feature(backups): a task to autorefresh cache. Redis expiry abolished 2024-01-08 13:12:27 +00:00
Inex Code cbd3cafe0a chore: Bump version 2023-12-25 10:42:18 +03:00
Inex Code 6d09c7aa9b feat: Provide display names in DNS records 2023-11-24 13:57:52 +03:00
Houkime 993b58d52d beauty(backup): remove stray comments and imports, format 2023-11-20 11:29:42 +00:00
Houkime 4339c00058 test(backups): test the trimming task 2023-11-17 15:53:57 +00:00
Houkime f1a452009a refactor(backups): only async snapshot trimming 2023-11-17 15:39:21 +00:00
Houkime 5ac93c30ae refactor(backups): async quota setting 2023-11-17 15:22:21 +00:00
Houkime 25378273eb refactor(backups): also batch the forget_all_snapshots command 2023-11-17 14:48:41 +00:00
Houkime 615e962965 feature(backups): batched removals of snapshots 2023-11-17 14:36:11 +00:00
Houkime 96bff873a9 test(backups): use backup fixture (weird, i surely used it before) 2023-11-17 14:33:03 +00:00
Inex Code c3cec36ad4 style: formatting 2023-11-13 19:36:12 +03:00