aboutsummaryrefslogtreecommitdiff
path: root/userapi/api
diff options
context:
space:
mode:
authorkegsay <kegan@matrix.org>2021-07-27 12:47:32 +0100
committerGitHub <noreply@github.com>2021-07-27 12:47:32 +0100
commit32538640db6bfbdb890729e8137151ffbbec9a28 (patch)
treebcd98d8b0d977058492fce03d69f43cc3a41be51 /userapi/api
parente3679799ea6f6387d36fb1a2f938f8ea9711ad2d (diff)
Key backups (1/2) : Add E2E session backup metadata tables (#1943)
* Initial key backup paths and userapi API * Fix unit tests * Add key backup table * Glue REST API to database * Linting * use writer on sqlite
Diffstat (limited to 'userapi/api')
-rw-r--r--userapi/api/api.go33
1 files changed, 33 insertions, 0 deletions
diff --git a/userapi/api/api.go b/userapi/api/api.go
index 40735012..ff10bfcd 100644
--- a/userapi/api/api.go
+++ b/userapi/api/api.go
@@ -33,6 +33,8 @@ type UserInternalAPI interface {
PerformDeviceUpdate(ctx context.Context, req *PerformDeviceUpdateRequest, res *PerformDeviceUpdateResponse) error
PerformAccountDeactivation(ctx context.Context, req *PerformAccountDeactivationRequest, res *PerformAccountDeactivationResponse) error
PerformOpenIDTokenCreation(ctx context.Context, req *PerformOpenIDTokenCreationRequest, res *PerformOpenIDTokenCreationResponse) error
+ PerformKeyBackup(ctx context.Context, req *PerformKeyBackupRequest, res *PerformKeyBackupResponse)
+ QueryKeyBackup(ctx context.Context, req *QueryKeyBackupRequest, res *QueryKeyBackupResponse)
QueryProfile(ctx context.Context, req *QueryProfileRequest, res *QueryProfileResponse) error
QueryAccessToken(ctx context.Context, req *QueryAccessTokenRequest, res *QueryAccessTokenResponse) error
QueryDevices(ctx context.Context, req *QueryDevicesRequest, res *QueryDevicesResponse) error
@@ -42,6 +44,37 @@ type UserInternalAPI interface {
QueryOpenIDToken(ctx context.Context, req *QueryOpenIDTokenRequest, res *QueryOpenIDTokenResponse) error
}
+type PerformKeyBackupRequest struct {
+ UserID string
+ Version string // optional if modifying a key backup
+ AuthData json.RawMessage
+ Algorithm string
+ DeleteBackup bool // if true will delete the backup based on 'Version'.
+}
+
+type PerformKeyBackupResponse struct {
+ Error string // set if there was a problem performing the request
+ BadInput bool // if set, the Error was due to bad input (HTTP 400)
+ Exists bool // set to true if the Version exists
+ Version string
+}
+
+type QueryKeyBackupRequest struct {
+ UserID string
+ Version string // the version to query, if blank it means the latest
+}
+
+type QueryKeyBackupResponse struct {
+ Error string
+ Exists bool
+
+ Algorithm string `json:"algorithm"`
+ AuthData json.RawMessage `json:"auth_data"`
+ Count int `json:"count"`
+ ETag string `json:"etag"`
+ Version string `json:"version"`
+}
+
// InputAccountDataRequest is the request for InputAccountData
type InputAccountDataRequest struct {
UserID string // required: the user to set account data for