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
Houkime
41e5f89b7b
migrate backblaze settings to new json format
...
And adjust methods and tests
2022-11-02 13:52:33 +00: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
Houkime
7d58eb3d92
fix wrong cloudflare field key
2022-11-02 13:52:33 +00:00
Houkime
decb98afe2
add providers.py to the list of migrations
...
Makes providers.py actually run.
2022-11-02 13:52:33 +00:00
Houkime
b0c26b876a
add providers migration
2022-11-02 13:52:33 +00:00
inexcode
19a4ec5377
feat: Add redis pool singleton
2022-10-28 11:24:45 +03:00
inexcode
8cdacb73dd
refactor: Use singleton metaclass for all singleton classes
2022-10-27 18:31:52 +03:00
Inex Code
0a09a338b8
Register migration
2022-09-22 19:41:48 +03:00
Inex Code
7a1e8af8fe
Catch error during binds migration and delete the job if it is stuck during restart
2022-09-22 19:38:59 +03:00
Inex Code
e387e30983
Fix handling of FileNotFoundError during size calculation
2022-09-22 18:34:33 +03:00
Inex Code
582e38452d
Fix Gitea moving
2022-09-19 03:50:43 +03:00
Inex Code
6bbceca917
Fix ownership issue
2022-09-19 03:04:57 +03:00
Inex Code
9a339729b7
Fix Generic service mover success output
2022-09-19 02:57:22 +03:00
Inex Code
a7208c1a91
Fix generic service mover being unable to move
2022-09-19 02:43:06 +03:00
Inex Code
49571b6ef2
Fix generic service mover being unable to move to sda1
2022-09-19 02:32:29 +03:00
Inex Code
9489180363
Fix job deletion
2022-09-09 17:51:41 +03:00
Inex Code
97acae189f
Bump API version
2022-09-09 17:46:58 +03:00
Inex Code
d7cba49c4a
Fix job uid generation
2022-09-09 17:42:40 +03:00
inexcode
32278e9063
Bind to 127.0.0.1 instead of 0.0.0.0
2022-08-26 21:01:14 +04: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
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
Inex Code
bec99f29ec
Add a jobs singleton
2022-07-30 18:24:21 +03:00
Inex Code
8ea6548710
Fix typing
2022-07-30 18:01:51 +03:00
Inex Code
67c8486c9b
Add more fields to GraphQL storage query
2022-07-30 17:48:33 +03:00
inexcode
1f64a76723
Fix typo
2022-07-26 15:52:28 +03:00
inexcode
e3245cd26a
Add mount volume migration
2022-07-26 15:33:44 +03:00
inexcode
a6fe72608f
Bytes from int to str
2022-07-25 17:17:57 +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
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
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
45c3e3003d
hhh
2022-06-24 21:18:21 +03:00
Inex Code
80e5550f7d
add basic system getters
2022-06-24 21:14:20 +03:00
Inex Code
c6a3588e33
add CORS
2022-06-24 20:25:49 +03:00
Inex Code
07e723dec8
more precise permission control
2022-06-24 20:12:32 +03:00
Inex Code
517a769e5b
add auth check
2022-06-24 20:08:58 +03:00
Inex Code
e2ac429975
parser
2022-06-24 19:50:30 +03:00
Inex Code
71c70592b2
fixes
2022-06-24 19:35:42 +03:00
Inex Code
6ca723867e
once again
2022-06-24 19:28:58 +03:00
Inex Code
766edc657a
resolve circular import
2022-06-24 19:24:10 +03:00
Inex Code
9b25bc0d53
Add api status resolvers
2022-06-24 19:17:03 +03:00
Inex Code
17b8334c6e
typo
2022-06-24 18:23:09 +03:00
Inex Code
01dea50c1f
tmp allow access to graphql without auth
2022-06-24 18:21:13 +03:00
Inex Code
28db251f1f
rollback the rename
2022-06-24 18:13:54 +03:00
Inex Code
a6ad9aaf90
rename folder
2022-06-24 18:02:40 +03:00
Inex Code
fc971292c2
add __init__.py to resolvers
2022-06-24 17:49:52 +03:00
Inex Code
99beee40d6
Add integration with flask
2022-06-24 16:05:18 +03:00
inexcode
75e3143c82
strawberry init
2022-06-24 15:26:51 +03:00
Inex Code
c30e062210
Fix date formats
2022-05-31 11:46:58 +03:00
Inex Code
401dff23fb
bitwarden_rs -> vaultwarden
2022-05-26 18:40:07 +03:00
Inex Code
1ac5f72433
Fix API to allow returning user list with the master user
2022-05-12 18:55:57 +03:00
Inex Code
36bf1a80bf
Fix username length check
2022-05-02 14:48:55 +03:00
Inex Code
3044557963
Fix formatting
2022-05-02 10:59:04 +03:00
Inex Code
f31b1173a2
add migration to init
2022-04-29 14:27:13 +03:00
Inex Code
ac220c6968
some logging
2022-04-29 14:24:25 +03:00
Inex Code
f2c73853bc
Add migration to selfprivacy nix channel
2022-04-28 16:22:13 +03:00
Inex Code
6cd896f977
Delete rootKeys field instead of adding empty element
2022-03-20 19:48:00 +03:00
Inex Code
4cbb08cb6e
Fix root key deletion to not make system rebuild unpossible
2022-03-20 19:32:31 +03:00
inexcode
50a82a065e
Cover the case when uses is less than 1
2022-02-16 17:10:29 +03:00
inexcode
c22fe9e8bd
Linting
2022-02-16 16:03:38 +03:00
inexcode
f228db5b29
Bump version to 1.2.0
2022-02-16 15:50:12 +03:00
inexcode
2235358827
Auth module coverage and bug fixes
2022-02-16 15:49:10 +03:00
inexcode
98e60abe74
When returning the list of tokens, indicate which one is caller's
2022-02-16 09:40:31 +03:00
Inex Code
2ec9c8a441
Mark field as required in swagger docs
2022-02-02 14:51:48 +02:00
Inex Code
fbb82c87e8
Add new device token deletion endpoint
2022-01-27 14:12:49 +02:00
Inex Code
40501401b4
More auth tests
2022-01-24 22:01:37 +02:00
Inex Code
5140081cdb
Some test and bupfixes
2022-01-18 17:20:47 +02:00
Inex Code
759e90f734
Formatting and fix swagger test
2022-01-17 13:29:54 +02:00
Inex Code
ade7c77754
Fix bugs
2022-01-17 13:28:17 +02:00
Inex Code
fe86382819
Fix migration to run
2022-01-14 09:24:33 +02:00
Inex Code
d7fe7097e6
Remove redundant security strings from swagger
2022-01-14 10:08:41 +03:00
Inex Code
ea696d0f0e
Inital auth work, untested
2022-01-14 08:38:53 +03:00
Inex Code
aa76f87828
Allow user to disable all migrations entirely
2022-01-11 08:57:14 +03:00
Inex Code
6c0af38e27
Move is_migration_needed call under try block too
2022-01-11 08:54:57 +03:00
Inex Code
355fc68232
Fix newline
2022-01-11 08:52:43 +03:00
Inex Code
07cf926e79
Fix migration crashes.
2022-01-11 08:52:15 +03:00
Inex Code
650032bdab
Formatting
2022-01-11 08:41:25 +03:00
Inex Code
0c61c1abb5
Migrations mechanism and fix to the nixos-config branch
2022-01-11 08:36:11 +03:00
Inex Code
13cef67204
More unit tests and bugfixes ( #7 )
...
Reviewed-on: https://git.selfprivacy.org/SelfPrivacy/selfprivacy-rest-api/pulls/7
Co-authored-by: Inex Code <inex.code@selfprivacy.org>
Co-committed-by: Inex Code <inex.code@selfprivacy.org>
2022-01-10 22:35:00 +02:00
Inex Code
f24323606f
Fix restic to hide files instead of deleting
2021-12-08 07:45:27 +03:00
Inex Code
710925f3ea
Linting
2021-12-06 21:35:41 +03:00
Inex Code
f4288dacd6
debugging
2021-12-06 12:07:03 +03:00
Inex Code
340b50bb0d
Remove locks
2021-12-06 12:00:53 +03:00
Inex Code
f68bd88a31
Restic controller
2021-12-06 09:48:29 +03:00
Inex Code
dc4c9a89e1
Make list backups init backups
2021-12-02 23:08:25 +03:00
Inex Code
71fc93914a
Update backup endpoints
2021-12-02 18:06:23 +03:00
Inex Code
c53cab7b88
Move PullRepositoryChanges to system resource
2021-12-01 17:51:55 +03:00
Inex Code
077c886f40
Add endpoint to update b2 keys
2021-12-01 17:51:38 +03:00
Inex Code
69eb91a1ea
Reformat code with Black
2021-12-01 00:53:39 +03:00
Inex Code
8e0a5f5ec0
Merge branch 'master' of git.selfprivacy.org:SelfPrivacy/selfprivacy-rest-api into system-configuration
2021-11-30 23:30:26 +03:00
Illia Chub
1385835a7f
Removed useless imports from update module
2021-11-30 07:12:04 +02:00
Illia Chub
d1fdaf186d
Mitigated possible directory escape scenario
2021-11-30 07:10:00 +02:00
Illia Chub
fb98fd1e60
Implemented update check endpoint
2021-11-30 07:04:06 +02:00
Inex Code
245964c998
First wave of unit tests, and bugfixes caused by them
2021-11-29 22:16:08 +03:00
Illia Chub
205908b46c
Merge branch 'master' of git.selfprivacy.org:SelfPrivacy/selfprivacy-rest-api
2021-11-25 12:32:24 +02:00
Illia Chub
9a87fa43eb
Added backup restoration endpoint
2021-11-25 12:31:18 +02:00
Illia Chub
b201cd6ca2
Changed backup protocol to rclone
2021-11-24 07:59:55 +02:00
Inex Code
b185724000
Move SSH key validation to utils
2021-11-23 20:32:51 +02:00
Inex Code
ec7ff62d59
Add SSH and system settings endpoints
2021-11-22 18:50:50 +02:00
Inex Code
e00aaf7118
Hotfix: user and ssh key creation when no were defined
2021-11-18 20:54:45 +02:00
Inex Code
1432671cbe
API version endpoint
2021-11-18 09:35:50 +02:00
Inex Code
ec76484857
Add API version endpoint
2021-11-18 09:25:33 +02:00
Inex Code
dc56b6f4ad
Use systemd units for system rebuilds
2021-11-17 12:36:26 +02:00
Inex Code
c910b761d1
Changed /system/upgrade to /system/configuration/upgrade
2021-11-17 11:36:39 +02:00
Inex Code
8700642260
Hotfix: ssh root key adding
2021-11-17 11:18:17 +02:00
Inex Code
6df4204ca1
Hotfix: imports in services module
2021-11-16 18:19:31 +02:00
Inex Code
447cc5ff55
Input sanitization, added swagger
2021-11-16 18:14:01 +02:00
Illia Chub
48da8c2228
Merge pull request 'Add basic API auth' ( #4 ) from inex/selfprivacy-rest-api:json-manipulations into master
...
Reviewed-on: https://git.selfprivacy.org/ilchub/selfprivacy-rest-api/pulls/4
2021-11-16 12:35:53 +02:00
Illia Chub
af4907dda5
Fixed pipe path
2021-11-16 12:33:17 +02:00
Inex Code
6c3609f590
Add basic API auth
2021-11-16 12:32:10 +02:00
Illia Chub
59d251bb77
Optimized memory objects usage for status check endpoint
2021-11-16 12:06:36 +02:00
Illia Chub
5c4d871bcd
Added backup process status check endpoint
2021-11-16 12:02:36 +02:00
Illia Chub
a1e6c77cc1
Added backup creation message
2021-11-16 10:25:44 +02:00
Inex Code
767c504a1d
Move to JSON controlled server settings
2021-11-15 15:49:06 +02:00
Inex Code
2f03cb0756
Fix ssh key add
2021-11-11 20:45:57 +02:00
Inex Code
09f319d683
Decomposition
2021-11-11 20:31:28 +02:00