Houkime
aa7cc71557
feature(backups):add a function to set provider from env
2023-07-26 11:54:17 +00:00
Houkime
e9bb6d9973
test(backups):check that snapshot cache invalidation invalidates both ways.
2023-07-26 10:09:35 +00:00
Houkime
26488aa12f
fix(backup):force backup function to return same length ids as when getting snapshots
2023-07-21 11:11:24 +00:00
Houkime
f4ac3d29a9
feature(backup):remove code for finegrained autobackup control
2023-07-19 15:36:25 +00:00
Houkime
466160dbf9
feature(backup):disable finegrain control over services to back up
2023-07-19 15:36:25 +00:00
Inex Code
3067d353d8
fix(backups): Do not remove failsafe snapshot after recovery
2023-07-19 15:59:29 +03:00
Houkime
926d0c27c5
test(backup): test moving preventing backups
2023-07-14 11:41:03 +00:00
Houkime
e43478d437
feature(backups): stop services before restores
2023-07-12 16:53:49 +00:00
Houkime
7af7600599
feature(backups): stop services before backups
2023-07-12 16:43:26 +00:00
Houkime
e7a6700522
test(backups): test async service start n stop simulation
2023-07-12 12:10:40 +00:00
Houkime
9075afd38a
test(backups): test out that pre-restore backup plays nice with jobs
2023-07-07 12:50:20 +00:00
Houkime
53bb5cc4e2
feature(backups): forgetting snapshots
2023-07-05 13:13:30 +00:00
Houkime
3dc6fb91f2
refactor(backups): download a copy before replacing original
2023-07-03 20:41:52 +00:00
Houkime
b6eb27dc5e
feature(backups): mounting a repo
2023-07-03 15:32:00 +00:00
Houkime
c5088e0e2c
test(backups): remove the 100mb file after test
2023-07-03 15:32:00 +00:00
Houkime
953860a02c
refactor(backups): move syncing (non-restic) into backup utils
2023-07-03 15:32:00 +00:00
Houkime
08cc7740b3
test(backups): actually list folders
2023-07-03 15:32:00 +00:00
Houkime
9793201ca1
feature(backups): a wrapper for rclone sync
2023-07-03 15:32:00 +00:00
Inex Code
b480c84041
style: fix styling
2023-06-29 13:44:29 +03:00
Houkime
3ee90617ba
test(backup): make large testfile larger
2023-06-28 13:06:03 +00:00
Houkime
e4865aa094
fix(services): proper backup progress reporting
2023-06-28 11:45:07 +00:00
Houkime
ae16a527a2
refactor(backups): rename service_snapshot_size to snapshot_restored_size
2023-06-26 19:41:26 +00:00
Houkime
b9be0be6a2
refactor(backups): privatize assert_restorable and restore_snapshot_from_id
2023-06-26 18:42:26 +00:00
Houkime
1593474dc1
refactor(backups): make redis and json provider related lowlevels private
2023-06-26 18:20:22 +00:00
Houkime
2f71469f39
refactoring(backups): backuper -> backupper
2023-06-23 12:04:33 +00: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
e3a87f1d98
test(backups): ensure asking to reload snaps does not explode the server
2023-06-19 14:12:50 +00:00
Houkime
25f3115c05
test(backups): setting autobackup period
2023-06-19 13:28:02 +00:00
Houkime
612a46ee42
feature(backups): actually dealing with situation when the provider is not configured
2023-06-19 11:09:10 +00:00
Houkime
f02e27cf06
test(backups): add a backend json reset test
2023-06-16 15:19:22 +00:00
Houkime
79c3b9598c
feature(backups): resetting json config too
2023-06-16 15:09:39 +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
9e0b0d8caa
refactor(backups): make localfile repos normal
2023-06-14 14:07:51 +00:00
Houkime
cbedd196e4
fix(backups): non-nullable service when backing up
2023-06-14 13:06:32 +00:00
Houkime
4862cdc72f
test(backups): test restore
2023-06-14 13:00:39 +00:00
Houkime
17c7dffb07
test(backups): use get_data
2023-06-14 12:41:45 +00:00
Houkime
39cd4b714b
test(backups): check snapshots getting created
2023-06-14 12:35:41 +00:00
Houkime
92322d8fad
test(backups): test dummy service compliance
2023-06-14 12:08:07 +00:00
Houkime
aa9d082adc
test(backups): display errors from api
2023-06-14 11:54:24 +00:00
Houkime
f1654c699c
fix(backups): shorten snapshot query signature
2023-06-14 11:52:57 +00:00
Houkime
928f026e7c
test(backups): snapshot query
2023-06-14 11:14:52 +00:00
Houkime
5fbfaa73ea
feat(tokens-repo): add clone() method
2023-06-14 14:02:23 +03:00
Houkime
158c1f13a6
refactor(tokens-repo): switch token backend to redis
...
And use timezone-aware comparisons for expiry checks
2023-06-14 14:02:23 +03:00
Houkime
9cc6e304c0
test(tokens-repo): remove device order dependence from graphql test__api
2023-06-14 14:02:23 +03:00
Houkime
e5756a0dd1
test(tokens-repo): cleanup recovery tests
2023-06-14 14:02:23 +03:00
Houkime
72fdd412d9
test(tokens-repo): complete the recovery test rework
2023-06-14 14:02:23 +03:00
Houkime
0b28fa2637
test(tokens-repo): rework limited uses test
2023-06-14 14:02:23 +03:00
Houkime
2d6406c8c1
test(tokens-repo): rework recovery expiration in the past
2023-06-14 14:02:23 +03:00
Houkime
18f5ff815c
test(tokens-repo): rework expiring recovery key tests
2023-06-14 14:02:23 +03:00
Houkime
ce4fbdae0a
test(tokens-repo): check for token existense in recovery tests
2023-06-14 14:02:23 +03:00
Houkime
de27032191
test(tokens-repo): move token utils to graphql common
2023-06-14 14:02:23 +03:00
Houkime
137ae58b42
test(tokens-repo): break out using recovery key
2023-06-14 14:02:23 +03:00
Houkime
92b2a67479
test(tokens-repo): use get recovery status in test of recovery use
2023-06-14 14:02:23 +03:00
Houkime
6cb9cc6d03
test(tokens-repo): use assert recent
2023-06-14 14:02:23 +03:00
Houkime
851d90b30c
test(tokens-repo): break out getting recovery key
2023-06-14 14:02:23 +03:00
Houkime
503c9c99ef
test(tokens-repo): break out getting status
2023-06-14 14:02:23 +03:00
Houkime
d09cd1bbe1
test(tokens-repo): use assert_empty consistently
2023-06-14 14:02:22 +03:00
Houkime
1305144112
test(tokens-repo): complete untying graphql device tests from json
2023-06-14 14:02:22 +03:00
Houkime
0aaa90f54a
test(tokens-repo): shrink invalid new device test
2023-06-14 14:02:22 +03:00
Houkime
592d62f53f
test(tokens-repo): untie double new device auth from json
2023-06-14 14:02:22 +03:00
Houkime
367ba51c9d
test(tokens-repo): untie authorize new device from json
2023-06-14 14:02:22 +03:00
Houkime
e739921835
test(tokens-repo): untie get and delete new device from json
2023-06-14 14:02:22 +03:00
Houkime
102d6b1c5c
test(tokens-repo): delete get new device key standalone test
...
we can only see if device key is valid by using it or deleting it.
another test does it
2023-06-14 14:02:22 +03:00
Houkime
6eb5800e4e
test(tokens-repo): untie refresh token testing from token repo
2023-06-14 14:02:22 +03:00
Houkime
469f9d292d
test(tokens-repo): make sure we try to delete the token we authed with
2023-06-14 14:02:22 +03:00
Houkime
ba5f91b000
test(tokens-repo): apply assert_ok and assert_error()
2023-06-14 14:02:22 +03:00
Houkime
4676e364a6
test(tokens-repo): break out assert_data()
2023-06-14 14:02:22 +03:00
Houkime
5a1b48fa3d
test(tokens-repo): break out assert_empty()
2023-06-14 14:02:22 +03:00
Houkime
7f5236701e
test(tokens-repo): break out assert_ok() and assert_errorcode() in graphql
2023-06-14 14:02:22 +03:00
Houkime
d8c78cc14c
test(tokens-repo): untie token deletion tests from json
2023-06-14 14:02:22 +03:00
Houkime
d26d115172
test(tokens-repo): break out assert_original() in graphql device tests
2023-06-14 14:02:22 +03:00
Houkime
2f707cc0cc
test(tokens-repo): delete extraneous test token content copies
2023-06-14 14:02:22 +03:00
Houkime
824b018487
test(tokens-repo): make shared test token state use token repo api for loading
2023-06-14 14:02:22 +03:00
Houkime
e125f3a4b1
test(tokens-repo): remove test tokens.json files
...
except for one which will temporarily remain
gitkeeps are to prevent shared_datadir from erroring out in a freshly
cloned repo. for now huey database and jobs fixtures use shared_datadir
2023-06-14 14:02:22 +03:00
Houkime
889c7eee6a
test(tokens-repo): offload empty_keys fixture to json tests
2023-06-14 14:02:22 +03:00
Houkime
8065921862
test(tokens-repo): make empty_tokens fixture, even more minimal
2023-06-14 14:02:22 +03:00
Houkime
3e7ea01a42
test(tokens-repo): make empty_keys fixture (and derived) shareable
2023-06-14 14:02:22 +03:00
Houkime
c47977c100
test(backups): actual testfile
2023-06-14 10:16:53 +00:00
Houkime
9d5335f62c
feature(backups): feature(backups): return a snapshot from start_backup
2023-06-05 11:26:58 +00:00
Houkime
4b07d4de41
refactor(backups): global snapshots
2023-05-31 13:16:08 +00:00
Houkime
c3696d3a4b
feature(backups): global init instead of per-service
2023-05-29 16:50:14 +00:00
Houkime
0dc6f74754
fix(backups): make sure location and credentials get properly passed around
2023-05-22 16:01:57 +00:00
Houkime
b1d0a80963
feature(backups): realtime progress updates of backups
2023-05-17 20:27:42 +00:00
Houkime
54a8e0b2b0
test(backups): break out obtaining finished jobs
2023-05-17 20:27:42 +00:00
Houkime
e25aa2cb33
test(backups): test that the job has run
2023-05-17 20:27:42 +00:00
Houkime
396b42b69c
test(backups): test jobs starting and finishing when from Backups
2023-05-17 20:27:42 +00:00
Houkime
d340b0ca67
test(backups): break out a finished job checker
2023-05-17 20:27:42 +00:00
Houkime
cb1dd1011e
test(backups): assure that jobs are created and not duplicated
2023-05-17 20:27:42 +00:00
Houkime
d1425561d9
feature(backups): restore task
2023-05-17 20:27:42 +00:00
Houkime
72f4fc8ae7
test(backups): test local secrets
2023-05-17 20:27:42 +00:00
Houkime
48359ffd20
test(backups): test 2-folder restoration
2023-05-17 20:27:41 +00:00
Houkime
a68e94fad3
test(backups): actually back up 2 folders
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
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
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
f25e57c51a
test(backups): test that we do use cache
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
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
ae065867b3
test(backups): test that we do return snapshot on backup
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
ea6a047478
feature(backups): load from json
2023-05-17 20:27:41 +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
c32353fe9b
feat(backups): return proper snapshot structs when listing
2023-05-17 20:27:40 +00:00
Houkime
8a1b3be9fa
test(backups): reenable snapshot testing
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
e944f4a267
test(backups): basic file backend init test
2023-05-17 20:27:40 +00:00
Houkime
865c8f5280
test(backups): test 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
bf263f68b9
test(backup): use a backup service function
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
90c2524800
test(backup): make a testfile to backup
2023-05-17 20:27:40 +00:00
Houkime
e54224f15d
test(backup): init an in-memory backup class
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
def
bcfb8e62e9
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-30 21:20:17 +03:00
Houkime
67872d7c55
test(tokens-repo): use mnemonic_from_hex consistently
2022-12-26 16:22:16 +00:00
Houkime
450ff41ebd
feat(tokens-repo): make device names unique before storage
2022-12-26 15:51:12 +00:00
Houkime
7d9bccf4ec
fix(tokens-repo): make is_token_valid infallible
2022-12-26 15:18:02 +00:00
Houkime
5d4ed73435
fix(tokens-repo): properly expire new device keys
2022-12-26 14:01:36 +00:00
Houkime
22a309466e
fix(tokens-repo): fix is_name_exists() being fallible
2022-12-21 17:04:18 +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
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
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
6f6a9f5ef0
test(tokens-repo): do not require order in test_delete_not_found_token
2022-12-16 13:04:56 +00:00
Houkime
95e200bfc5
feat(tokens-repo): reset function
2022-12-16 13:04:19 +00:00
Houkime
e504585437
test(tokens-repo): do not require order
2022-12-16 13:03:53 +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
2797c6f88f
fix(tokens-repository): use_mnemonic_new_device_key() now stores a token
2022-12-16 13:03:27 +00:00
Houkime
b856a2aad3
test(tokens-repo): re-add delete token test
2022-12-16 13:01:19 +00:00
Houkime
0d748d7ab1
test(tokens-repo): move original token content to json tests
2022-12-16 13:01:09 +00:00
Houkime
c12dca9d9b
refactor(tokens-repo): delete unused timezone import
2022-12-16 13:00:44 +00:00
Houkime
4492bbe995
test(tokens-repo): move null keys and tokens fixtures to json tests
...
and remove corresponding json files from the folder
2022-12-16 13:00:31 +00:00
Houkime
84bfa333fa
test(tokens-repo): move new device key null test to json tests
2022-12-16 13:00:16 +00:00
Houkime
be13d6163e
test(tokens-repo): use a mnemonic device key on an empty repo
2022-12-16 13:00:07 +00:00
Houkime
ce411e9291
test(tokens-repo): using a mnemonic device key
2022-12-16 12:59:57 +00:00
Houkime
cf7b7eb8a7
test(tokens-repo): notfound mnemonic new device key
2022-12-16 12:59:49 +00:00
Houkime
3feebd5290
test(tokens-repo): invalid mnemonic new device key
2022-12-16 12:59:38 +00:00
Houkime
73584872f0
test(tokens-repo): agnosticise simple new device key tests
...
the state of json file is tested separately in test_json_tokens_repository.py
2022-12-16 12:59:27 +00:00
Houkime
dc778b545e
test(tokens-repo): get new device key
2022-12-16 12:59:16 +00:00
Houkime
f96d8b7d7c
test(tokens-repo): make another mock token generator agnostic
2022-12-16 12:58:50 +00:00
Houkime
dd525fe723
test(tokens-repo): agnostic use recovery token
...
converted json-reading asserts to backend-agnostic asserts
2022-12-16 12:58:27 +00:00
Houkime
b9c570720b
test(tokens-repo): move null recovery token test to json tests
...
Because the null state seems to be specific to json and not reproducible
in abstract case.
2022-12-16 12:57:14 +00:00
Houkime
732e72d414
test(tokens-repo): mnemonic non-null invalid
2022-12-16 12:56:50 +00:00
Houkime
6f400911fc
test(tokens-repo): agnostic recovery keys testing
2022-12-16 12:56:25 +00:00
Houkime
c86eb8b786
test(tokens-repo): agnostic refresh token nonexistent
2022-12-16 12:56:04 +00:00
Houkime
fa54220327
test(tokens-repo): agnostic refresh token
2022-12-16 12:55:46 +00:00
Houkime
b43c4014e2
test(tokens-repo): agnostic delete not found
2022-12-16 12:55:28 +00:00
Houkime
db55685488
test(tokens-repo): use 'repo' for consistency
2022-12-16 12:55:07 +00:00
Houkime
3921d9fe4c
test(tokens-repo): agnostic token creation test
2022-12-16 12:54:46 +00:00
Houkime
2e2d344f43
test(tokens-repo): get_tokens metaproperties test
2022-12-16 12:54:25 +00:00
Houkime
55ad2484b8
test(tokens-repo): agnostic test for getting by name
2022-12-16 12:53:33 +00:00
Houkime
8a05a55b80
test(tokens-repo): parameterized fixture
2022-12-16 12:51:56 +00:00
Houkime
4cfe0515ea
test(tokens-repo): split between abstract api and backend-specific tests
2022-12-16 12:50:08 +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
41e5f89b7b
migrate backblaze settings to new json format
...
And adjust methods and tests
2022-11-02 13:52:33 +00:00
Houkime
07af2e59be
tests: fix backblaze bucket
2022-11-02 13:52:33 +00:00
Houkime
2d7bc0f154
remove cloudflare tokens from the rest of the test jsons. nobody seems to care
2022-11-02 13:52:33 +00:00
Houkime
5efa85f877
add provider fields to the rest of test jsons
2022-11-02 13:52:33 +00:00
Houkime
f4a7986cfa
Remove old cloudflare apiKey field from system test jsons
...
Strangely, no test were broken. Probably more testing is needed for
token-dependent methods.
2022-11-02 13:52:33 +00:00
Houkime
2ec0548c09
add provider fields to the test jsons under system
2022-11-02 13:52:33 +00:00
Houkime
dd15e0ab65
reroute dns provider query
2022-11-02 13:52:33 +00: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
def
206589d5ad
add system nixos tasks
2022-08-01 21:32:20 +02:00
def
337cf29884
Add GraphQJ user and ssh management ( #12 )
...
Co-authored-by: Inex Code <inex.code@selfprivacy.org>
Reviewed-on: https://git.selfprivacy.org/SelfPrivacy/selfprivacy-rest-api/pulls/12
Co-authored-by: def <dettlaff@riseup.net>
Co-committed-by: def <dettlaff@riseup.net>
2022-08-01 13:40:40 +03:00
inexcode
5532114668
Add volume management
2022-07-25 17:08:31 +03:00
Inex Code
26f9393d95
Implement change system settings
...
Co-authored-by: Detlaff <dettlaff@riseup.net>
2022-07-12 16:24:29 +03:00
Inex Code
eb21b65bbc
More system tests
...
Co-authored-by: Detlaff <dettlaff@riseup.net>
2022-07-11 16:42:51 +03:00
Inex Code
e3354c73ef
Change datetime formats, more tests
2022-07-08 18:28:08 +03:00
def
9bd2896db8
fix recovery tests
2022-07-07 15:53:19 +02:00
Inex Code
63f3b2f4d1
Update tests for detlaff
2022-07-07 14:49:04 +03:00
Inex Code
e5405dfc6b
linting
2022-07-05 15:54:21 +03:00
Inex Code
5711cf66b0
Api fixes
2022-07-05 15:11:41 +03:00
Inex Code
376bf1ef77
Add more tests
2022-07-05 08:14:37 +03:00
Inex Code
503a39f390
API keys graphql tests
2022-06-29 20:39:46 +03:00
Inex Code
80e5550f7d
add basic system getters
2022-06-24 21:14:20 +03:00