Commit graph

963 commits

Author SHA1 Message Date
Houkime 5e07a9eaeb feature(backup): error handling for the full restore endpoint 2024-09-13 12:11:56 +00:00
Houkime 7de5d26a81 feature(backup): full restore task 2024-09-13 12:11:56 +00:00
Houkime be4e883b12 feature(backup): autobackup slice detection 2024-09-13 12:11:56 +00:00
Houkime 7ae550fd26 refactor(system): break out rebuild job creation 2024-09-13 12:11:56 +00:00
Houkime f068329153 fix(service manager): debug and test backup hooks 2024-09-13 12:11:56 +00:00
Houkime f8c6a8b9d6 refactor(utils): maybe make fsavail an int? 2024-09-13 12:11:56 +00:00
Houkime af014e8b83 feature(backup): support for perma-active services and services with no existing data 2024-09-13 12:11:56 +00:00
Houkime 0329addd1f feature(services): add perma-active services (api itself) 2024-09-13 12:11:56 +00:00
Houkime d4998ded46 refactor(services): migrate service management to a special service 2024-09-13 12:11:56 +00:00
Houkime 2ef674a037 refactor(services): PARTIAL migrate get_all_services 2024-09-13 12:11:56 +00:00
Houkime f6151ee451 feature(backup): add migration specific endpoints 2024-09-13 12:11:56 +00:00
Houkime 8c44f78bbb feature(services): add config service 2024-09-13 12:11:56 +00:00
Houkime f57eda5237 feature(services): allow moving uninitialized services 2024-09-13 12:11:56 +00:00
Inex Code e6b7a1c168 style: linting 2024-09-11 13:58:48 +03:00
Houkime 68d0ee8c5d test(system): dns migration 2024-09-11 13:58:48 +03:00
Houkime 77fb99d84e feature(system): dns migration 2024-09-11 13:58:48 +03:00
dettlaff ac07090784 style: blacked 2024-09-05 15:57:27 +04:00
def 81d082ff2a fix: nix collect garbage 2024-09-05 14:54:58 +03:00
Houkime 8ef63eb90e fix(backups): cover the case when service fails to stop 2024-08-16 15:36:22 +03:00
dettlaff 391e4802b2 tests: add tests for monitoring (#140)
Co-authored-by: nhnn <nhnn@disroot.org>
Co-authored-by: Inex Code <inex.code@selfprivacy.org>
Reviewed-on: https://git.selfprivacy.org/SelfPrivacy/selfprivacy-rest-api/pulls/140
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
Co-authored-by: dettlaff <dettlaff@riseup.net>
Co-committed-by: dettlaff <dettlaff@riseup.net>
2024-08-16 15:36:07 +03:00
Houkime 55bbb0f3cc test(services): add more debug to the dummy service 2024-08-16 14:14:56 +03:00
dettlaff bbd909a544 feat: timeout for monitoring 2024-08-12 21:45:21 +03:00
Houkime 3c3b0f6be0 fix(backups): allow retrying when deleting service files 2024-08-12 19:45:51 +03:00
nhnn 1bfe7cf8dc fix: stop prosody when jitsi stops 2024-08-09 11:17:27 +03:00
dettlaff 4cd90d0c93 feat: add Prometheus monitoring (#120)
Co-authored-by: nhnn <nhnn@disroot.org>
Co-authored-by: Inex Code <inex.code@selfprivacy.org>
Reviewed-on: https://git.selfprivacy.org/SelfPrivacy/selfprivacy-rest-api/pulls/120
Co-authored-by: dettlaff <dettlaff@riseup.net>
Co-committed-by: dettlaff <dettlaff@riseup.net>
2024-07-30 16:55:57 +03:00
Inex Code 1259c081ef style: Reformat with new Black version 2024-07-26 22:59:44 +03:00
Inex Code 659cfca8a3 chore: Migrate to NixOS 24.05 2024-07-26 22:59:32 +03:00
Inex Code 9b93107b36 feat: Service configuration (#127)
Reviewed-on: https://git.selfprivacy.org/SelfPrivacy/selfprivacy-rest-api/pulls/127
2024-07-26 18:33:04 +03:00
nhnn 3c024cb613 feat: add option to filter logs by unit or slice 2024-07-25 20:34:28 +03:00
Inex Code d18d644cec Merge remote-tracking branch 'origin/master' into roundcube 2024-07-15 17:30:59 +04:00
Inex Code 16d1f9f21a Merge pull request 'feat: graphql endpoint to fetch system logs' (#116) from nhnn/selfprivacy-rest-api:api-logs into master
Reviewed-on: https://git.selfprivacy.org/SelfPrivacy/selfprivacy-rest-api/pulls/116
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2024-07-15 16:23:30 +03:00
Inex Code d8fe54e0e9 fix: do not use bare 'except' 2024-07-15 17:05:38 +04:00
Inex Code 5c5e098bab style: do not break line before logic operator 2024-07-15 17:02:34 +04:00
Inex Code cc4b411657 refactor: Replace strawberry.types.Info with just Info 2024-07-15 16:59:27 +04:00
nhnn 94b0276f74 fix: extract business logic to utils/systemd_journal.py 2024-07-13 11:58:54 +03:00
Inex Code faa8952e9c chore: Bump version to 3.3.0 2024-07-10 19:51:10 +04:00
Inex Code 5f3fc0d96e chore: formatting 2024-07-10 19:18:22 +04:00
Inex Code 9f5f0507e3 Merge remote-tracking branch 'origin/master' into api-logs 2024-07-10 18:52:10 +04:00
Inex Code ceee6e4db9 fix: Read auth token from the connection initialization payload
Websockets do not provide headers, and sending a token as a query param is also not good (it gets into server's logs),
As an alternative, we can provide a token in the first ws payload.

Read more: https://strawberry.rocks/docs/general/subscriptions#authenticating-subscriptions
2024-07-05 18:14:18 +04:00
Inex Code a7be03a6d3 refactor: Remove setting KEA
This is already done via NixOS config
2024-07-04 18:49:17 +04:00
Houkime 05ffa036b3 refactor(jobs): offload job subscription logic to a separate file 2024-07-04 17:19:25 +03:00
Houkime ccf71078b8 feature(websocket): add auth to counter too 2024-07-04 17:19:25 +03:00
Houkime cb641e4f37 feature(websocket): add auth 2024-07-04 17:19:25 +03:00
Houkime 442538ee43 feature(jobs): UNSAFE endpoint to get job updates 2024-07-04 17:19:25 +03:00
Houkime 51ccde8b07 test(jobs): test simple counting 2024-07-04 17:19:25 +03:00
Houkime cbe5c56270 chore(jobs): shorter typehints and import sorting 2024-07-04 17:19:25 +03:00
Houkime ed777e3ebf feature(jobs): add subscription endpoint 2024-07-04 17:19:25 +03:00
Houkime 63d2e48a98 feature(jobs): websocket connection 2024-07-04 17:19:25 +03:00
Houkime 9bfffcd820 feature(jobs): job update generator 2024-07-04 17:19:25 +03:00
Houkime 6510d4cac6 feature(redis): enable key space notifications by default 2024-07-04 17:19:25 +03:00
Houkime fff8a49992 refactoring(jobs): break out a function returning all jobs 2024-07-04 17:19:25 +03:00
Houkime f08dc3ad23 test(async): pubsub 2024-07-04 17:19:25 +03:00
Houkime b6118465a0 feature(redis): async connections 2024-07-04 17:19:25 +03:00
Inex Code 4066be38ec chore: Bump version to 3.2.2 2024-07-01 19:25:54 +04:00
Inex Code 7522c2d796 refactor: Change gitea to Forgejo 2024-06-30 23:02:07 +04:00
Inex Code 6e0bf4f2a3 chore: PR cleanup 2024-06-27 17:43:13 +03:00
Inex Code c42e2ef3ac Revert "feat: move get_subdomain to parent class really"
This reverts commit 4eaefc8321.
2024-06-27 17:43:13 +03:00
Inex Code 8bb9166287 Revert "fix: remove get sub domain from services"
This reverts commit 46fd7a237c.
2024-06-27 17:43:13 +03:00
Inex Code 306b7f898d Revert "feat: rewrite get_url()"
This reverts commit f834c85401.
2024-06-27 17:43:13 +03:00
nhnn f1cc84b8c8 fix: add migrations to migration list in migrations/__init__.py 2024-06-27 17:43:13 +03:00
dettlaff 02bc74f4c4 fix: only roundcube migration, other services removed 2024-06-27 17:43:13 +03:00
dettlaff 416a0a8725 fix: from review 2024-06-27 17:43:13 +03:00
dettlaff 82a0b557e1 feat: add migration for userdata 2024-06-27 17:43:13 +03:00
dettlaff 7b9420c244 feat: rewrite get_url() 2024-06-27 17:43:13 +03:00
dettlaff 9125d03b35 fix: remove get sub domain from services 2024-06-27 17:43:13 +03:00
dettlaff 2b9b81890b feat: move get_subdomain to parent class really 2024-06-27 17:43:13 +03:00
dettlaff 78dec5c347 feat: move get_subdomain to parent class 2024-06-27 17:43:13 +03:00
dettlaff 4d898f4ee8 feat: add migration for services flake 2024-06-27 17:43:13 +03:00
dettlaff 31feeb211d fix: change roundcube to webmail 2024-06-27 17:43:13 +03:00
dettlaff a00c4d4268 fix: change return get_folders 2024-06-27 17:43:13 +03:00
dettlaff 9c50f8bba7 fix from review 2024-06-27 17:43:13 +03:00
dettlaff 1b91168d06 style: fix imports 2024-06-27 17:43:13 +03:00
dettlaff 4823491e3e feat: add roundcube service 2024-06-27 17:43:13 +03:00
Maxim Leshchenko 5602c96056 feat(services): rename "sda1" to "system disk" and etc (#122)
Closes #51

Reviewed-on: https://git.selfprivacy.org/SelfPrivacy/selfprivacy-rest-api/pulls/122
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
Co-authored-by: Maxim Leshchenko <cnmaks90@gmail.com>
Co-committed-by: Maxim Leshchenko <cnmaks90@gmail.com>
2024-06-27 17:41:46 +03:00
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