Commit graph

377 commits

Author SHA1 Message Date
Houkime 208e256c0f refactor(services): remove special storage counting from jitsi 2023-07-17 16:05:00 +03:00
Houkime 44041662c2 refactor(services): remove special storage counting from gitea 2023-07-17 16:05:00 +03:00
Houkime 3b8168c25d refactor(services): remove special storage counting from bitwarden 2023-07-17 16:05:00 +03:00
Houkime c2cd972805 refactor(services): add a generic storage counter 2023-07-17 16:05:00 +03:00
Houkime 0a9848be47 refactor(services): make get_folders() a mandatory part of Service interface 2023-07-17 16:05:00 +03:00
Houkime ac04425221 refactor(services): add get_folders() to the rest of the services 2023-07-17 16:05:00 +03:00
Houkime 1019031b5b fix(services): use get_foldername() for moving around 2023-07-17 16:05:00 +03:00
Houkime 95b88ea2e4 test(backups): implement get_folders() for gitea 2023-07-17 16:05:00 +03:00
Houkime 498208f083 test(backups): implement get_folders() for bitwarden 2023-07-17 16:05:00 +03:00
Houkime b21d63be63 refactor(backups): set a list of folders for our dummy service 2023-07-17 16:05:00 +03:00
Houkime 3aefbaaf0b refactor(backups): actually accept a list of folders 2023-07-17 16:05:00 +03:00
Houkime f0aabec947 refactor(backups): make api accept a list of folders 2023-07-17 16:05:00 +03:00
Houkime d1e1039519 refactor(backups): make a dedicated get_folders() function 2023-07-17 16:05:00 +03:00
Houkime 507cdb3bbd refactor(services): rename get_location() to get_drive() 2023-07-17 16:05:00 +03:00
Houkime 6132f1bb4c test(backups): register dummy service 2023-07-17 16:05:00 +03:00
Houkime 1940b29161 feature(backups): automatic backup 2023-07-17 16:05:00 +03:00
Houkime 5e9c651c65 test(backups): test autobackup timing 2023-07-17 16:05:00 +03:00
Houkime b305c19559 refactor(backups): split out storage 2023-07-17 16:05:00 +03:00
Houkime f9eaaab929 feature(backups): enable snapshot cache usage 2023-07-17 16:05:00 +03:00
Houkime 2c510ae884 feature(backups): add snapshot cache sync functions 2023-07-17 16:05:00 +03:00
Houkime ed0861aacc test(backups): test last backup date retrieval 2023-07-17 16:05:00 +03:00
Houkime 054b07baa3 feature(backups): add a datetime validator function for huey autobackups 2023-07-17 16:05:00 +03:00
Houkime 343fda0630 test(backups): test setting autobackup period 2023-07-17 16:05:00 +03:00
Houkime 0a4338596b test(backups): test setting services as enabled for autobackups 2023-07-17 16:05:00 +03:00
Houkime 79b9bb352a feature(backups): methods for autobackup period setting and getting 2023-07-17 16:05:00 +03:00
Houkime 951bb8d5ec fix(backups): remove self from static method 2023-07-17 16:05:00 +03:00
Houkime d354f4ac0b feature(backups): check, set and unset service autobackup status 2023-07-17 16:05:00 +03:00
Houkime 43b6ebd04d feature(backups): cache snapshots and last backup timestamps 2023-07-17 16:05:00 +03:00
Houkime d57dc3f7d2 test(backups): test that we do return snapshot on backup 2023-07-17 16:05:00 +03:00
Houkime 35a4fec9d4 feature(backups): return snapshot info from backup function 2023-07-17 16:05:00 +03:00
Houkime a134009165 feature(backups): huey task to back up 2023-07-17 16:05:00 +03:00
Houkime d972fdc3cc refactor(backups): make backups stateless 2023-07-17 16:05:00 +03:00
Houkime 6f8f5cbb9e feature(backups): repo init tracking 2023-07-17 16:05:00 +03:00
Houkime 02deae217d feature(backups): provider storage and retrieval 2023-07-17 16:05:00 +03:00
Houkime 48dc63a590 refactor(backups): add a provider model for redis storage 2023-07-17 16:05:00 +03:00
Houkime 873bc8282e refactor(backups): redis model storage utils 2023-07-17 16:05:00 +03:00
Houkime c928263fce feature(backups): load from json 2023-07-17 16:05:00 +03:00
Houkime 0847e16089 feat(backups): local secret generation and storage 2023-07-17 16:05:00 +03:00
Houkime 60dcde458c feat(backups): sizing up snapshots 2023-07-17 16:05:00 +03:00
Houkime 1d403b0e94 test(backups): test restoring a file 2023-07-17 16:05:00 +03:00
Houkime c8a8d45110 feat(backups): add restore_snapshot and restore_service_from_snapshot 2023-07-17 16:05:00 +03:00
Houkime ff6bc2a142 feat(backups): a better error on failed snapshot retrieval 2023-07-17 16:05:00 +03:00
Houkime e56907f2cd feat(backups): return proper snapshot structs when listing 2023-07-17 16:05:00 +03:00
Houkime 228eab44bb feat(backups): throw an error on a failed backup 2023-07-17 16:05:00 +03:00
Houkime 348ece8b9c fix(backups): singleton metaclass was screwing with tests 2023-07-17 16:05:00 +03:00
Houkime a280e5c999 test(backups): localfile repo by default in tests 2023-07-17 16:05:00 +03:00
Houkime add4e21f39 feature(backups): throw an error if repo init fails 2023-07-17 16:05:00 +03:00
Houkime 5efb351159 feature(backups): register localfile backend 2023-07-17 16:05:00 +03:00
Houkime 529608d52e feature(backups): localfile repo 2023-07-17 16:05:00 +03:00
Houkime 3f30469532 refactor(backups): repo init service method 2023-07-17 16:05:00 +03:00
Houkime a405eddbcf refactor(backups): add repo init 2023-07-17 16:05:00 +03:00
Houkime 5371c7feef refactor(backups): snapshotlist and local secret groundwork 2023-07-17 16:05:00 +03:00
Houkime e156e9cd58 test(backup): no snapshots 2023-07-17 16:05:00 +03:00
Houkime 83b24f5fcd refactor(backup): snapshot model 2023-07-17 16:05:00 +03:00
Houkime 4ca2e62b5c feature(backup): loading snapshots 2023-07-17 16:05:00 +03:00
Houkime a42294b706 feature(backup): add a restore function to restic backuper 2023-07-17 16:05:00 +03:00
Houkime a0a0e1fb3b feat(backup): hooks 2023-07-17 16:05:00 +03:00
Houkime 178c456593 refactor(backup): add a backup function to Backups singleton class 2023-07-17 16:05:00 +03:00
Houkime ff72d4124e refactor(backup): add a placeholder Backups singleton class 2023-07-17 16:05:00 +03:00
Houkime 54103973bc test(backup): try to back up! 2023-07-17 16:05:00 +03:00
Houkime a9cd8dda37 fix(backup): add memory backup class,forgot to add to git 2023-07-17 16:05:00 +03:00
Houkime 86c99c0be8 feat(backup): add backuping to restic backuper 2023-07-17 16:05:00 +03:00
Houkime 37c18ead99 feat(backup): add in-memory backup 2023-07-17 16:05:00 +03:00
Houkime e5a965ea29 feat(backup): allow no auth 2023-07-17 16:05:00 +03:00
Houkime 45ab9423b9 test(backup): dummy service 2023-07-17 16:05:00 +03:00
Houkime 9097ba02d7 test(backup): provider class selection 2023-07-17 16:05:00 +03:00
Houkime 7d76b74dbc feature(backups): copy cli logic to new restic backuper 2023-07-17 16:05:00 +03:00
Houkime 1e5fb67374 feature(backups): placeholders for the backupers and backup providers 2023-07-17 16:05:00 +03:00
Houkime a3d58be0d5 feature(backups): placeholders for the modules of the new backup system 2023-07-17 16:05:00 +03:00
Houkime a1071fd2c9 feature(backups): add backup structures and queries 2023-07-17 16:05:00 +03:00
Houkime 7b7f782185 refactor(backup): do not use config file 2023-07-17 16:05:00 +03:00
Houkime f65c0522b0 refactor(backup): pass key and account to exec 2023-07-17 16:05:00 +03:00
Houkime 6bf5ee4b64 refactor(backup): extract restic repo 2023-07-17 16:05:00 +03:00
Houkime 8eab26d552 refactor(backup): extract rclone args 2023-07-17 16:05:00 +03:00
Houkime 70cf0306a9 refactor(backup): delete unused import 2023-07-17 16:05:00 +03:00
Inex Code b3a37e8b1f fix: Migrate to SP channel from 22.11 installations 2023-06-14 19:27:11 +03:00
inexcode 670911a92a feat(dns): Add deSec as a DNS provider 2023-05-09 11:58:30 +03:00
Inex Code 5ada12d2f3 feat: Add a migration that will prepare server for 22.11 upgrade 2023-03-17 16:37:47 +03:00
Inex Code 8ce13f0ad2 feat: Add Digital Ocean as a DNS provider 2023-02-06 11:50:43 +03:00
Inex Code 4e7261c9c4 fix(dns-records): Fix DKIM parser
Previously API relied on client to parse DKIM DNS string, as it was a
separate endpoint. But now client blindly trusts the API, but parser
was not migrated over to the API.
2023-01-16 18:41:54 +03:00
Inex Code e7a49e170d fix: module models not found 2022-12-30 21:39:28 +03:00
Inex Code 24353ca56a chore: bump API version 2022-12-30 21:10:55 +03:00
Inex Code cb403a94bd fix: typing 2022-12-30 21:06:16 +03:00
Houkime 3ecfb2eacb refactor(tokens-repo): delete auth utils 2022-12-26 15:54:33 +00:00
Houkime 450ff41ebd feat(tokens-repo): make device names unique before storage 2022-12-26 15:51:12 +00:00
Houkime 8235c3595c refactor(tokens-repo): delete is_token_valid from auth utils 2022-12-26 15:20:58 +00:00
Houkime 7d9bccf4ec fix(tokens-repo): make is_token_valid infallible 2022-12-26 15:18:02 +00:00
Houkime 87ea88c50a refactor(tokens-repo): delete get token name from auth utils 2022-12-26 14:56:39 +00:00
Houkime 25326b75ca refactor(tokens-repo): delete create token from auth utils 2022-12-26 14:55:40 +00:00
Houkime b3d6251d11 refactor(tokens-repo): delete generare recovery key from auth utils 2022-12-26 14:54:07 +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 5d4ed73435 fix(tokens-repo): properly expire new device keys 2022-12-26 14:01:36 +00:00
Houkime c037a12f4d refactor(tokens-repo): break out _store_new_device_key() 2022-12-26 12:31:09 +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 5dedbda41f refactor(tokens-repo): delete get_tokens_info() from auth utils 2022-12-23 12:41:29 +00:00
Houkime e817de6228 refactor(tokens-repo): use token repo in get_api_tokens_with_caller_flag 2022-12-23 12:29:32 +00:00
Houkime f928ca160a refactor(tokens-repo): use token repo in get_api_recovery_token_status action 2022-12-23 12:00:35 +00:00
Houkime a2ac47b0f5 refactor(tokens-repo): delete delete_token from auth utils 2022-12-23 11:14:52 +00:00
Houkime 5a1f64b1e7 refactor(tokens-repo): delete is_name_exists() from auth utils 2022-12-21 17:09:49 +00:00
Houkime 22a309466e fix(tokens-repo): fix is_name_exists() being fallible 2022-12-21 17:04:18 +00:00
Houkime 2a239e35ad refactor(tokens-repo): delete is_token_name_pair_valid from auth 2022-12-21 16:17:56 +00:00
Houkime 20410ec790 fix(tokens-repo): fix name pair validation being able to raise a notfound error 2022-12-21 16:10:41 +00:00
Houkime 3021584adc refactor(tokens-repo): delete refresh_token() from auth 2022-12-21 15:23:42 +00:00
Houkime 16f71b0b09 refactor(tokens-repo): use tokens-repo to create recovery token 2022-12-21 13:53:39 +00:00
Houkime 39277419ac refactor(tokens-repo): use tokens-repo to refresh tokens 2022-12-21 13:09:51 +00:00
Houkime d3bf867bb5 fix(tokens-repo): do not change the date on token refresh 2022-12-21 13:05:00 +00:00
Houkime 009a89fa02 refactor(tokens-repo): use token repo for graphql use_recovery_api_key 2022-12-21 10:33:06 +00:00
Houkime a97705ef25 fix(tokens-repository): fix getting and setting recovery token expiration date 2022-12-21 10:24:05 +00:00
Houkime ab70687c61 fix(tokens-repository) :make NONE-uses-left eternally valid and test for it 2022-12-19 12:57:32 +00:00
Houkime 5a25e2a270 feat(tokens-repo): getting stored device key 2022-12-16 13:05:06 +00:00
Houkime 0ae7c43ebf refactor(tokens-repo): break out generic hash_as_model casting 2022-12-16 13:05:00 +00:00
Houkime fda5d315a9 fix(tokens-repo): return device key instead of NewDeviceKey class 2022-12-16 13:04:51 +00:00
Houkime 13e84e2697 feat(tokens-repo): recovery key uses decrement 2022-12-16 13:04:47 +00:00
Houkime eba1d01b3d feat(tokens-repo): recovery key creation 2022-12-16 13:04:43 +00:00
Houkime 8dfb3eb936 feat(tokens-repo): fuller reset 2022-12-16 13:04:39 +00:00
Houkime 4579fec569 feat(tokens-repo): get recovery key 2022-12-16 13:04:35 +00:00
Houkime 257096084f refactor(tokens-repo): split out date field detection 2022-12-16 13:04:26 +00:00
Houkime bf6c230ae0 fix(tokens-repo): raise token not found when deleting nonexistent token
even if device name exists
2022-12-16 13:04:26 +00:00
Houkime 95e200bfc5 feat(tokens-repo): reset function 2022-12-16 13:04:19 +00:00
Houkime 9ffd67fa19 feat(tokens-repo): get new device key 2022-12-16 13:04:14 +00:00
Houkime b98ccb88d1 refactor(tokens-repo): separate getting model dict 2022-12-16 13:04:04 +00:00
Houkime 3cb7f29593 refactor(tokens-repo): detach preparing a dict before a model cast 2022-12-16 13:03:57 +00:00
Houkime 647e02f25b feat(tokens-repo): redis delete token 2022-12-16 13:03:46 +00:00
Houkime ba6a5261fa refactor(tokens-repo): redis token key func 2022-12-16 13:03:41 +00:00
Houkime d8e3cd67e0 feat(tokens-repo): redis store token 2022-12-16 13:03:36 +00:00
Houkime 256c16fa9f feat(tokens-repo): redis get tokens 2022-12-16 13:03:27 +00:00
Houkime f2fa47466b feat(tokens-repo):empty implementation of redis token repo
But it initializes and fails tests!
2022-12-16 13:03:27 +00:00
Houkime ca822cdf6f refactor(tokens-repository): move use_mnemonic_new_device_key() to abstract class 2022-12-16 13:03:27 +00:00
Houkime 2797c6f88f fix(tokens-repository): use_mnemonic_new_device_key() now stores a token 2022-12-16 13:03:27 +00:00
Houkime 4498003aca refactor(tokens-repository): dissect use_mnemonic_new_device_key() 2022-12-16 13:03:27 +00:00
Houkime 772c0dfc64 refactor(tokens-repository): move use_mnemonic_recovery_key() to abstract class 2022-12-16 13:03:27 +00:00
Houkime 671203e990 refactor(tokens-repository): dissect use_mnemonic_recovery_key() 2022-12-16 13:03:26 +00:00
Houkime 9a49067e53 refactor(tokens-repo): move token refreshing to parent class 2022-12-16 13:03:12 +00:00
Houkime 682cd4ae87 refactor(tokens-repo): move create_token to abstract class 2022-12-16 13:02:55 +00:00
Houkime 572ec75c39 refactor(tokens-repo): rewrite token refresh
now it is not json-dependent.
2022-12-16 13:02:43 +00:00
Houkime 27a7c24bc3 refactor(tokens-repo): separate token storing 2022-12-16 13:02:21 +00:00
Houkime 4e60d1d37a refactor(tokens-repo): move token getters to abstract class
Not performance-optimal, but not in critical path either.
100 tokens max irl?
2022-12-16 13:02:05 +00:00
Houkime ff264ec808 refactor(tokens-repo): simplify getting tokens
get_token_by_token_string and get_token_by_name are no longer tied to
json.
2022-12-16 13:01:28 +00:00
def 16e0bd56ce refactor(repository): Tokens repository JSON backend (#18)
Co-authored-by: def <dettlaff@riseup.net>
Co-authored-by: Inex Code <inex.code@selfprivacy.org>
Reviewed-on: https://git.selfprivacy.org/SelfPrivacy/selfprivacy-rest-api/pulls/18
Co-authored-by: def <dettlaff@riseup.net>
Co-committed-by: def <dettlaff@riseup.net>
2022-12-02 14:19:57 +03:00
Houkime 063dfafc19 Jobs: fix return value of remove_by_uid
And add a test for said return value.
2022-11-30 17:06:43 +00:00
Houkime 5c86706f4b Jobs: fix value access in is_busy()
Also added a test for is_busy() that highlighted this bug.
2022-11-30 16:41:20 +00:00
Houkime 14c4ae26ab explicitly mark helper functions private
I thought about making them private class members, but that would get
unreadable and do more harm than good.
2022-11-30 16:22:46 +00:00
Houkime 106a083ca2 jobs: simplify reset
Also ups test coverage
2022-11-30 14:47:56 +00:00
Inex Code 57794c9535 style(graphql): Add missing comma
\
2022-11-28 15:49:48 +03:00
Houkime 2e9cdf15ab Autostart a redis instance in nix shell.
As a part of test environment, an unprivileged redis server is started on localhost:6379.
Redis connection pool detects when it is run in a development nix shell
and uses this port instead of a production unix socket. This way, redis
tests pass even on computers without redis installed.
2022-11-28 14:38:21 +02:00