Commit graph

172 commits

Author SHA1 Message Date
Houkime 8d099c9a22 refactoring(jobs): break out a function returning all jobs 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
Houkime 8e8e76a954 fix(backups): fix orphaned snapshots erroring out 2024-05-24 12:30:27 +00: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 b2edfe784a refactor(service): add return typing to DNSrecord conversion and comments 2024-03-18 11:44:53 +00:00
Houkime fed5735b24 refactor(service): break out DNS records into a separate resolver field 2024-03-18 11:32:02 +00:00
Houkime 3f9d2b2481 refactor(services): remove too many imports and cleanup 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 17a1e34c0d feature(services): check before moving task and before move itself 2024-03-06 18:40:05 +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
Inex Code 96f8aad146 Merge branch 'master' into system-rebuild-tracking 2024-03-04 10:54:43 +02:00
Inex Code a4327fa669 fix(dns): Ignore link-local IPv6 address 2024-03-01 03:21:31 +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 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 b8d02231cf fix(services): handle the async nature of moving. 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 1b520a8093 feature(ssh): change ssh settings from graphql 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 267cdd391b fix(backup): do not store maybe unpicklable service on the queue 2024-01-08 13:12:27 +00:00
Houkime a12126f685 feature(service): error handling on moves 2024-01-08 13:12:27 +00: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 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 96bff873a9 test(backups): use backup fixture (weird, i surely used it before) 2023-11-17 14:33:03 +00:00
Houkime dd6f37a17d feature(auth): tz_aware recovery 2023-11-10 17:10:01 +00:00
Inex Code cebb71ff4a feat(ssh): Add support for ecdsa keys 2023-10-03 16:51:06 +03:00
Inex Code 8b840d4c2c fix(backups): expose snapshot reason and set the default value 2023-09-09 09:52:20 +03:00
Inex Code dedd6a9cc9 refactor(backups): use restic-like rotation policy 2023-09-09 03:26:41 +03:00
Inex Code ad9384c850 fix(graphql): backup quotas field typing 2023-08-30 12:03:19 +03:00
Houkime 9fdc536f9f BROKEN(backups): hooking up quotas to API fails. AutobackupQuotas needs to be an input type, but if input type, it fails because it needs to be an Output type, which is not documented 2023-08-28 18:24:29 +00:00
Houkime 9207f5385c feature(backups): actual finegrained quotas 2023-08-28 17:02:45 +00:00
Houkime 027a37bb47 feature(backup): remember the reason for making a snapshot 2023-08-21 11:11:56 +00:00
Inex Code ff70a3588e chore: bump version 2023-08-04 12:57:31 +03:00
Inex Code e6189e4e73 Merge branch 'master' into backups-forget 2023-08-04 12:46:08 +03:00
Houkime bba837530a feature(backups): expose forget to API 2023-07-28 10:40:40 +00:00
Inex Code 641ab26069 fix(storage): fix root device detection and ignore iso9660 2023-07-28 03:14:50 +03:00
Inex Code 4b575b6138 fix(graphql): duplicate imports 2023-07-20 18:25:32 +03:00
Inex Code 0245d629fd refactor(backups): linting 2023-07-20 18:24:26 +03:00
Houkime 1cefaefa3b feature(backups): expose restore strategies to the API 2023-07-07 13:24:05 +00:00
Houkime c74b3df32c feature(backups): restore strategies enum 2023-07-07 10:50:59 +00:00
Inex Code 64e7afe53e feat(backups): Add backup descriptions for UI 2023-06-29 14:27:08 +03:00
Inex Code 15ce344bc8 feat(backups): expose if the service can be backed up 2023-06-29 13:45:00 +03:00
Inex Code 11184a55e8 feat(jobs): return type_id of the job in graphql api 2023-06-28 15:56:30 +03:00
Houkime bae81b2f69 refactor(backups): rename force_snapshot_reload to force_snapshot_cache_reload 2023-06-26 19:20:49 +00:00
Inex Code 1664f857ea fix(backups): Providers were not initialized corretly 2023-06-23 14:36:16 +03:00
Inex Code e7e0fdc4a1 refactor(backups): fix typing errors 2023-06-23 12:40:10 +03:00
Inex Code c6919293b6 refactor(api): Group mutations
I've learned that there is no problem in grouping mutations like we do with queries.
This is a big mistake from my side, now we have legacy not so conveniently placed endpoints.
I've grouped all mutations, left the copies of old ones flattened in the root for backwards compatibility.
We will migrate to mutation groups on client side, and backups now only use grouped mutations.
Tests are updated.
2023-06-21 06:46:56 +03:00
Houkime 25f3115c05 test(backups): setting autobackup period 2023-06-19 13:28:02 +00:00
Houkime 47aee3c1f1 fix(backups): fix output API return types for configuration 2023-06-16 14:39:00 +00:00
Houkime 8e1e37c766 test(backups): preliminary test of repo reset 2023-06-16 14:33:48 +00:00
Houkime 33c60f971d test(backups): test reinitting repository 2023-06-16 13:43:41 +00:00
Houkime 8554879dc2 Merge remote-tracking branch 'upstream/restic-rewrite-api' into restic-rewrite 2023-06-14 10:27:50 +00:00
Houkime d9bde6930b fix(backups): register queries 2023-06-14 10:16:53 +00:00
Houkime 865e304f42 test(backups): test backup API - backing up 2023-06-14 10:16:31 +00:00
Inex Code d356fad534 fix(backups): Handle orphaned snapshots 2023-06-14 02:52:10 +03:00
Inex Code f4df1f6a62 fix(backups): return type of encryption key 2023-06-14 01:40:53 +03:00
Inex Code 0ef6569d97 fix(backups): try to actually get backup configuration 2023-06-14 00:43:01 +03:00
Inex Code f950dd1e93 feat(backups): register backups in GraphQL schema 2023-06-14 00:00:29 +03:00
Inex Code d02302c7b2 fix: BackupConfiguration argument order 2023-06-13 23:54:02 +03:00
Houkime 98de85e569 fix(backups): return one job, not an array of one 2023-06-07 14:27:37 +00:00
Houkime 4b8abb6a66 fix(backups): return 400, not 300 2023-06-07 14:25:17 +00:00
Houkime 0c95c5913b BREAKING CHANGE(backups): support only individual service backup requests(combinable) 2023-06-07 14:11:22 +00:00
Houkime ff58bdccbb feature(backups): set autobackup period from gql 2023-06-05 11:49:37 +00:00
Houkime d6609b29e8 feature(backups): get all snapshots if requested by api 2023-06-05 11:36:58 +00:00
Houkime 9a94f7624e feature(backups): a graphql call to invalidate cache 2023-06-01 16:12:32 +00:00
Houkime 50952d688a feature(backups): graphql mutation for restore 2023-06-01 14:03:40 +00:00
Houkime 603ed2ddf9 feature(backups): start backup graphql API 2023-05-31 12:07:47 +00:00
Houkime 9c4d2a0ba5 feature(backups): drop repository call 2023-05-29 18:24:38 +00:00
Houkime 345e2c10c4 feature(backups): a graphql query to get provider info 2023-05-29 16:12:31 +00:00
Houkime 97e4c529f6 feature(backups): init repo mutation 2023-05-29 15:34:26 +00:00
Houkime 1b1052d205 refactor(services): rename get_location() to get_drive() 2023-05-17 20:27:41 +00:00
Houkime f1987edd99 feature(backups): register localfile backend 2023-05-17 20:27:40 +00:00
Houkime a66a3f35fc feat(backup): add in-memory backup 2023-05-17 20:27:40 +00:00
Houkime 6d73405118 feature(backups): add backup structures and queries 2023-05-17 20:27:40 +00:00
inexcode 670911a92a feat(dns): Add deSec as a DNS provider 2023-05-09 11:58:30 +03:00
Inex Code 8ce13f0ad2 feat: Add Digital Ocean as a DNS provider 2023-02-06 11:50:43 +03:00
Houkime 8235c3595c refactor(tokens-repo): delete is_token_valid from auth utils 2022-12-26 15:20:58 +00:00
Houkime b11e5a5f77 refactor(tokens-repo): delete recovery key quieries from auth utils 2022-12-26 14:51:37 +00:00
Houkime 69577c2854 refactor(tokens-repo): delete get_recovery_key_status from auth utils 2022-12-26 14:29:05 +00:00
Houkime 7cf295450b refactor(tokens-repo): do not use tokens repo directly from graphql 2022-12-26 14:13:46 +00:00
Houkime f33d5155b0 refactor(tokens-repo): delete use_new_device_auth_token from auth utils 2022-12-26 14:03:55 +00:00
Houkime 29723b9f3a refactor(tokens-repo): delete use_mnemonic_recoverery_token from auth utils 2022-12-26 11:01:07 +00:00
Houkime cb1906144c refactor(tokens-repo): delete get_new_device_auth_token from auth utils 2022-12-26 10:27:10 +00:00
Houkime 3f6aa9bd06 refactor(tokens-repo): delete delete_new_device_auth_token from auth utils 2022-12-26 10:13:37 +00:00
Houkime 3021584adc refactor(tokens-repo): delete refresh_token() from auth 2022-12-21 15:23:42 +00:00
Houkime 39277419ac refactor(tokens-repo): use tokens-repo to refresh tokens 2022-12-21 13:09:51 +00:00
Houkime 009a89fa02 refactor(tokens-repo): use token repo for graphql use_recovery_api_key 2022-12-21 10:33:06 +00:00
Inex Code 57794c9535 style(graphql): Add missing comma
\
2022-11-28 15:49:48 +03:00
Houkime a723311b36 reroute system provider query 2022-11-02 13:52:33 +00:00
Houkime dd15e0ab65 reroute dns provider query 2022-11-02 13:52:33 +00:00
Houkime 9540e26ce1 add digitalocean and backblaze options 2022-11-02 13:52:33 +00:00
inexcode 8cdacb73dd refactor: Use singleton metaclass for all singleton classes 2022-10-27 18:31:52 +03:00
Inex Code 9489180363 Fix job deletion 2022-09-09 17:51:41 +03:00
Inex Code d7cba49c4a Fix job uid generation 2022-09-09 17:42:40 +03:00
inexcode 4f2332f8a0 Add permission check for deleting job 2022-08-25 22:42:37 +04:00
Inex Code 7935de0fe1 Migrate to FastAPI (#13)
Co-authored-by: inexcode <inex.code@selfprivacy.org>
Reviewed-on: https://git.selfprivacy.org/SelfPrivacy/selfprivacy-rest-api/pulls/13
2022-08-25 20:03:56 +03:00