Houkime
789fd71e2f
refactor(services): add a generic storage counter
2023-05-17 20:27:41 +00:00
Houkime
a34b14449b
refactor(services): make get_folders() a mandatory part of Service interface
2023-05-17 20:27:41 +00:00
Houkime
8a4f256c12
refactor(services): add get_folders() to the rest of the services
2023-05-17 20:27:41 +00:00
Houkime
0207b5a473
fix(services): use get_foldername() for moving around
2023-05-17 20:27:41 +00:00
Houkime
1c0e3f0f92
test(backups): implement get_folders() for gitea
2023-05-17 20:27:41 +00:00
Houkime
378f0ebd73
test(backups): implement get_folders() for bitwarden
2023-05-17 20:27:41 +00:00
Houkime
30ac990985
refactor(backups): set a list of folders for our dummy service
2023-05-17 20:27:41 +00:00
Houkime
fa26379a68
refactor(backups): actually accept a list of folders
2023-05-17 20:27:41 +00:00
Houkime
08739f7ca8
refactor(backups): make api accept a list of folders
2023-05-17 20:27:41 +00:00
Houkime
919ba1ad03
refactor(backups): make a dedicated get_folders() function
2023-05-17 20:27:41 +00:00
Houkime
1b1052d205
refactor(services): rename get_location() to get_drive()
2023-05-17 20:27:41 +00:00
Houkime
0ae4192081
test(backups): register dummy service
2023-05-17 20:27:41 +00:00
Houkime
4018dca184
feature(backups): automatic backup
2023-05-17 20:27:41 +00:00
Houkime
ec85f060f8
test(backups): test autobackup timing
2023-05-17 20:27:41 +00:00
Houkime
283c8d09cc
refactor(backups): split out storage
2023-05-17 20:27:41 +00:00
Houkime
5ad9f50b94
feature(backups): enable snapshot cache usage
2023-05-17 20:27:41 +00:00
Houkime
a2ff74244e
feature(backups): add snapshot cache sync functions
2023-05-17 20:27:41 +00:00
Houkime
7699ba0d9b
test(backups): test last backup date retrieval
2023-05-17 20:27:41 +00:00
Houkime
146b0ca02f
feature(backups): add a datetime validator function for huey autobackups
2023-05-17 20:27:41 +00:00
Houkime
d4cad61d56
test(backups): test setting autobackup period
2023-05-17 20:27:41 +00:00
Houkime
3c42d8c413
test(backups): test setting services as enabled for autobackups
2023-05-17 20:27:41 +00:00
Houkime
e043720289
feature(backups): methods for autobackup period setting and getting
2023-05-17 20:27:41 +00:00
Houkime
417533fc04
fix(backups): remove self from static method
2023-05-17 20:27:41 +00:00
Houkime
45f33e2d31
feature(backups): check, set and unset service autobackup status
2023-05-17 20:27:41 +00:00
Houkime
18d5cd2b83
feature(backups): cache snapshots and last backup timestamps
2023-05-17 20:27:41 +00:00
Houkime
ae065867b3
test(backups): test that we do return snapshot on backup
2023-05-17 20:27:41 +00:00
Houkime
2eb64db199
feature(backups): return snapshot info from backup function
2023-05-17 20:27:41 +00:00
Houkime
772b499b46
feature(backups): huey task to back up
2023-05-17 20:27:41 +00:00
Houkime
144e4e5e91
refactor(backups): make backups stateless
2023-05-17 20:27:41 +00:00
Houkime
a2dd47130b
feature(backups): repo init tracking
2023-05-17 20:27:41 +00:00
Houkime
4b2cecac8f
feature(backups): provider storage and retrieval
2023-05-17 20:27:41 +00:00
Houkime
6524c98131
refactor(backups): add a provider model for redis storage
2023-05-17 20:27:41 +00:00
Houkime
a0afe63b3d
refactor(backups): redis model storage utils
2023-05-17 20:27:41 +00:00
Houkime
ea6a047478
feature(backups): load from json
2023-05-17 20:27:41 +00:00
Houkime
4e329299e0
feat(backups): local secret generation and storage
2023-05-17 20:27:40 +00:00
Houkime
23ee958bfb
feat(backups): sizing up snapshots
2023-05-17 20:27:40 +00:00
Houkime
d62d7534d7
test(backups): test restoring a file
2023-05-17 20:27:40 +00:00
Houkime
dc3032eb03
feat(backups): add restore_snapshot and restore_service_from_snapshot
2023-05-17 20:27:40 +00:00
Houkime
98e1c9ebaa
feat(backups): a better error on failed snapshot retrieval
2023-05-17 20:27:40 +00:00
Houkime
c32353fe9b
feat(backups): return proper snapshot structs when listing
2023-05-17 20:27:40 +00:00
Houkime
b3633d1a96
feat(backups): throw an error on a failed backup
2023-05-17 20:27:40 +00:00
Houkime
01797cb922
fix(backups): singleton metaclass was screwing with tests
2023-05-17 20:27:40 +00:00
Houkime
06deb83b33
test(backups): localfile repo by default in tests
2023-05-17 20:27:40 +00:00
Houkime
e091fbd4a2
feature(backups): throw an error if repo init fails
2023-05-17 20:27:40 +00:00
Houkime
f1987edd99
feature(backups): register localfile backend
2023-05-17 20:27:40 +00:00
Houkime
c493a49daa
feature(backups): localfile repo
2023-05-17 20:27:40 +00:00
Houkime
bd744ba211
refactor(backups): repo init service method
2023-05-17 20:27:40 +00:00
Houkime
86e2b90bef
refactor(backups): add repo init
2023-05-17 20:27:40 +00:00
Houkime
c9fd656181
refactor(backups): snapshotlist and local secret groundwork
2023-05-17 20:27:40 +00:00
Houkime
a043392b7b
test(backup): no snapshots
2023-05-17 20:27:40 +00:00
Houkime
e447419f96
refactor(backup): snapshot model
2023-05-17 20:27:40 +00:00
Houkime
3afe196901
feature(backup): loading snapshots
2023-05-17 20:27:40 +00:00
Houkime
1568ee68a4
feature(backup): add a restore function to restic backuper
2023-05-17 20:27:40 +00:00
Houkime
3970524bce
feat(backup): hooks
2023-05-17 20:27:40 +00:00
Houkime
7e243146db
refactor(backup): add a backup function to Backups singleton class
2023-05-17 20:27:40 +00:00
Houkime
d5881cc523
refactor(backup): add a placeholder Backups singleton class
2023-05-17 20:27:40 +00:00
Houkime
17df21964a
test(backup): try to back up!
2023-05-17 20:27:40 +00:00
Houkime
6fa72dbac1
fix(backup): add memory backup class,forgot to add to git
2023-05-17 20:27:40 +00:00
Houkime
474f04f923
feat(backup): add backuping to restic backuper
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
f5066082c8
feat(backup): allow no auth
2023-05-17 20:27:40 +00:00
Houkime
934afeb531
test(backup): dummy service
2023-05-17 20:27:40 +00:00
Houkime
af6a49b0a3
test(backup): provider class selection
2023-05-17 20:27:40 +00:00
Houkime
24d170b3cb
feature(backups): copy cli logic to new restic backuper
2023-05-17 20:27:40 +00:00
Houkime
23e3d553e6
feature(backups): placeholders for the backupers and backup providers
2023-05-17 20:27:40 +00:00
Houkime
a98314bb60
feature(backups): placeholders for the modules of the new backup system
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
Houkime
740b072b07
refactor(backup): do not use config file
2023-05-17 20:27:40 +00:00
Houkime
cf3cbd179f
refactor(backup): pass key and account to exec
2023-05-17 20:27:40 +00:00
Houkime
4871958534
refactor(backup): extract restic repo
2023-05-17 20:27:40 +00:00
Houkime
060117a355
refactor(backup): extract rclone args
2023-05-17 20:27:40 +00:00
Houkime
80f2c99ba4
refactor(backup): delete unused import
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
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
Houkime
d6ef01c0c7
Add TTL to storage of finished or failed jobs
...
Defaulting to 10 days.
2022-11-23 16:29:50 +00:00
Houkime
244851c7cc
jobs: remove 'jobs' list, and use 'jobs:' prefix
...
Less complexity, easier to add redis-native TTL
2022-11-23 15:04:39 +00:00
Houkime
5afa2338ca
Migrate Jobs to redis
...
Jobs API shall now use redis to store and retrieve jobs. This will make
it possible to add pubsub for jobs updates. For now it uses blocking api
of redis.
2022-11-23 14:43:06 +00:00
Houkime
f7b7e5a0be
migrate Jobs to redis
2022-11-16 13:54:54 +00:00