more complete admin API #298

Merged
lx merged 48 commits from admin-api into main 2022-05-24 10:16:40 +00:00
Owner

Spec:

  • Start writing
  • Specify all layout endpoints
  • Specify all endpoints for operations on keys
  • Specify all endpoints for operations on key/bucket permissions
  • Specify all endpoints for operations on buckets
  • Specify all endpoints for operations on bucket aliases

View rendered spec at https://git.deuxfleurs.fr/Deuxfleurs/garage/src/branch/admin-api/doc/drafts/admin-api.md

Code:

  • Refactor code for admin api to use common api code that was created for K2V

General endpoints:

  • Metrics
  • GetClusterStatus
  • ConnectClusterNodes
  • GetClusterLayout
  • UpdateClusterLayout
  • ApplyClusterLayout
  • RevertClusterLayout

Key-related endpoints:

  • ListKeys
  • CreateKey
  • ImportKey
  • GetKeyInfo
  • UpdateKey
  • DeleteKey

Bucket-related endpoints:

  • ListBuckets
  • CreateBucket
  • GetBucketInfo
  • DeleteBucket
  • PutBucketWebsite
  • DeleteBucketWebsite

Operations on key/bucket permissions:

  • BucketAllowKey
  • BucketDenyKey

Operations on bucket aliases:

  • GlobalAliasBucket
  • GlobalUnaliasBucket
  • LocalAliasBucket
  • LocalUnaliasBucket

And also:

  • Separate error type for the admin API (this PR includes a quite big refactoring of error handling)
  • Add management of website access
  • Check that nothing is missing wrt what can be done using the CLI
  • Improve formatting of the spec
  • Make sure everyone is cool with the API design

Fix #231
Fix #295

**Spec:** - [x] Start writing - [x] Specify all layout endpoints - [x] Specify all endpoints for operations on keys - [x] Specify all endpoints for operations on key/bucket permissions - [x] Specify all endpoints for operations on buckets - [x] Specify all endpoints for operations on bucket aliases View rendered spec at <https://git.deuxfleurs.fr/Deuxfleurs/garage/src/branch/admin-api/doc/drafts/admin-api.md> **Code:** - [x] Refactor code for admin api to use common api code that was created for K2V **General endpoints:** - [x] Metrics - [x] GetClusterStatus - [x] ConnectClusterNodes - [x] GetClusterLayout - [x] UpdateClusterLayout - [x] ApplyClusterLayout - [x] RevertClusterLayout **Key-related endpoints:** - [x] ListKeys - [x] CreateKey - [x] ImportKey - [x] GetKeyInfo - [x] UpdateKey - [x] DeleteKey **Bucket-related endpoints:** - [x] ListBuckets - [x] CreateBucket - [x] GetBucketInfo - [x] DeleteBucket - [x] PutBucketWebsite - [x] DeleteBucketWebsite **Operations on key/bucket permissions:** - [x] BucketAllowKey - [x] BucketDenyKey **Operations on bucket aliases:** - [x] GlobalAliasBucket - [x] GlobalUnaliasBucket - [x] LocalAliasBucket - [x] LocalUnaliasBucket **And also:** - [x] Separate error type for the admin API (this PR includes a quite big refactoring of error handling) - [x] Add management of website access - [ ] Check that nothing is missing wrt what can be done using the CLI - [ ] Improve formatting of the spec - [x] Make sure everyone is cool with the API design Fix #231 Fix #295
lx force-pushed admin-api from 60af164433 to d19ed12f92 2022-05-09 09:13:46 +00:00 Compare
lx changed target branch from k2v to main 2022-05-10 11:13:36 +00:00
lx added 1 commit 2022-05-10 11:15:51 +00:00
continuous-integration/drone/pr Build is failing Details
continuous-integration/drone/push Build was killed Details
aa5b54fe19
Merge branch 'main' into k2v
lx force-pushed admin-api from e97d24e008 to dd54d0b2b1 2022-05-10 11:25:20 +00:00 Compare
lx added 1 commit 2022-05-10 11:36:49 +00:00
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
bb6ec9ebd9
Update Cargo.nix and improve log message
lx added 1 commit 2022-05-11 08:28:06 +00:00
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
f97a7845e9
Add API access key admin endpoints
lx added 1 commit 2022-05-11 09:10:41 +00:00
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
5c00c9fb46
First key endpoints: ListKeys and GetKeyInfo
lx added 1 commit 2022-05-11 09:40:44 +00:00
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
393b76ecba
Implement CreateKey, DeleteKey and rudimentary UpdateKey
lx added 1 commit 2022-05-11 09:51:23 +00:00
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
aeb978552a
Short doc on UpdateKey
lx added 1 commit 2022-05-12 08:22:52 +00:00
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2b93a01d2b
ListBucket and GetBucketInfo
lx added 1 commit 2022-05-12 08:45:21 +00:00
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
de1a5b87b6
CreateBucket
lx added 1 commit 2022-05-12 09:02:48 +00:00
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
fe399a3265
DeleteBucket
lx added 1 commit 2022-05-12 09:19:53 +00:00
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
fc2f73ddb5
BucketAllowKey and BucketDenyKey
lx added 1 commit 2022-05-12 09:21:31 +00:00
continuous-integration/drone/pr Build is failing Details
continuous-integration/drone/push Build is failing Details
ed76893581
Simplify
lx added 2 commits 2022-05-12 15:12:27 +00:00
continuous-integration/drone/pr Build is failing Details
continuous-integration/drone/push Build is passing Details
e4e1f8f0d6
Fix clippy
lx added 3 commits 2022-05-13 13:05:16 +00:00
lx added 2 commits 2022-05-13 13:21:50 +00:00
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
7a5d329e49
More error refactoring
lx added 1 commit 2022-05-13 13:44:52 +00:00
continuous-integration/drone/pr Build is failing Details
continuous-integration/drone/push Build is failing Details
ec16d166f9
Separate error types for k2v and signature
lx added 1 commit 2022-05-13 17:19:06 +00:00
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
ea325d78d3
More error refactoring
lx added 1 commit 2022-05-13 17:28:38 +00:00
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
5a535788fc
Json body for custom errors
lx added 1 commit 2022-05-13 17:36:31 +00:00
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
8033bdb0b4
More precisions in errors & small refactoring
lx added 1 commit 2022-05-13 17:43:56 +00:00
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
d7736cb614
Revert useless thing
lx added 1 commit 2022-05-13 17:49:16 +00:00
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
ec50ffac42
Remove useless string conversions
lx added 4 commits 2022-05-17 11:11:03 +00:00
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
176715c5b2
Fix ReadIndex spec and add JSON5 remark to doc
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
c692f55d5c
K2V: Fix `end` parameter and add tests (fix #305)
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
86a3fe8ec5
Merge branch 'main' into admin-api
lx added 1 commit 2022-05-17 14:43:10 +00:00
continuous-integration/drone/pr Build is failing Details
continuous-integration/drone/push Build is failing Details
8ff95f09c9
Return website config in GetBucketInfo, use serde(rename_all)
lx added 1 commit 2022-05-17 14:48:42 +00:00
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
8b1338ef2f
Fix error code
lx added 2 commits 2022-05-17 15:17:01 +00:00
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2ce3513c10
Specify and implement {Global,Local}{Alias,Unalias}Bucket
lx added 2 commits 2022-05-17 15:52:18 +00:00
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
440a577563
Prefix all APIs with `v0/`
lx added 1 commit 2022-05-17 16:44:06 +00:00
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
70383b4363
Implement ConnectClusterNodes
lx added 1 commit 2022-05-17 17:02:38 +00:00
continuous-integration/drone/pr Build is failing Details
continuous-integration/drone/push Build is failing Details
dcfa408887
Implement ImportKey
lx added 1 commit 2022-05-17 22:28:31 +00:00
continuous-integration/drone/pr Build is failing Details
continuous-integration/drone/push Build is failing Details
926b3c0fad
Rename error varian for Clippy
lx added 1 commit 2022-05-17 22:33:06 +00:00
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
30e393b439
Fix fmt
lx added 1 commit 2022-05-18 08:10:34 +00:00
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
5367f8adb2
Refactor bucket emptiness check and add k2v check
lx added 1 commit 2022-05-18 20:36:04 +00:00
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
99976e11f8
Merge branch 'main' into admin-api
lx added 1 commit 2022-05-23 10:06:23 +00:00
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
d768f559da
Update documentation with warning
lx added 1 commit 2022-05-23 14:40:37 +00:00
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
1c88ee9bc5
Make authorization token mandatory for admin API
lx added 1 commit 2022-05-23 15:39:33 +00:00
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2f250a83e1
fix doc
lx added 1 commit 2022-05-24 09:53:09 +00:00
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
0b43a71351
Fix some docs and change syntax of CreateBucket permissions
lx added 1 commit 2022-05-24 09:54:04 +00:00
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
be59cafd47
cargo fmt
lx changed title from WIP: more complete admin API to more complete admin API 2022-05-24 10:16:01 +00:00
lx merged commit 382e74c798 into main 2022-05-24 10:16:40 +00:00
Sign in to join this conversation.
No description provided.