From 7fc7e0b93d8b0ae9bcbf5f775c73c59db5910af5 Mon Sep 17 00:00:00 2001 From: Eldad Fux Date: Fri, 1 Jan 2021 08:42:50 +0200 Subject: [PATCH] Added docs for all public API keys --- app/config/scopes.php | 75 ++++++++++++++++++++++---------- app/controllers/api/projects.php | 4 +- app/controllers/web/console.php | 2 +- 3 files changed, 54 insertions(+), 27 deletions(-) diff --git a/app/config/scopes.php b/app/config/scopes.php index 88c67d70dd..088502c5d8 100644 --- a/app/config/scopes.php +++ b/app/config/scopes.php @@ -1,28 +1,55 @@ [ + 'description' => 'Access to read your project\'s users', + ], + 'users.write' => [ + 'description' => 'Access to create, update, and delete your project\'s users', + ], + 'teams.read' => [ + 'description' => 'Access to read your project\'s teams', + ], + 'teams.write' => [ + 'description' => 'Access to create, update, and delete your project\'s teams', + ], + 'collections.read' => [ + 'description' => 'Access to read your project\'s database collections', + ], + 'collections.write' => [ + 'description' => 'Access to create, update, and delete your project\'s database collections', + ], + 'documents.read' => [ + 'description' => 'Access to read your project\'s database documents', + ], + 'documents.write' => [ + 'description' => 'Access to create, update, and delete your project\'s database documents', + ], + 'files.read' => [ + 'description' => 'Access to read your project\'s storage files and preview images', + ], + 'files.write' => [ + 'description' => 'Access to create, update, and delete your project\'s storage files', + ], + 'functions.read' => [ + 'description' => 'Access to read your project\'s functions and code tags', + ], + 'functions.write' => [ + 'description' => 'Access to create, update, and delete your project\'s functions and code tags', + ], + 'execution.read' => [ + 'description' => 'Access to read your project\'s execution logs', + ], + 'execution.write' => [ + 'description' => 'Access to execute your project\'s functions', + ], + 'locale.read' => [ + 'description' => 'Access to access your project\'s Locale service', + ], + 'avatars.read' => [ + 'description' => 'Access to access your project\'s Avatars service', + ], + 'health.read' => [ + 'description' => 'Access to read your project\'s health status', + ], ];; \ No newline at end of file diff --git a/app/controllers/api/projects.php b/app/controllers/api/projects.php index f2f5f7ad28..78f1343b61 100644 --- a/app/controllers/api/projects.php +++ b/app/controllers/api/projects.php @@ -715,7 +715,7 @@ App::post('/v1/projects/:projectId/keys') ->label('sdk.response.model', Response::MODEL_KEY) ->param('projectId', null, new UID(), 'Project unique ID.') ->param('name', null, new Text(128), 'Key name. Max length: 128 chars.') - ->param('scopes', null, new ArrayList(new WhiteList(Config::getParam('scopes'), true)), 'Key scopes list.') + ->param('scopes', null, new ArrayList(new WhiteList(array_keys(Config::getParam('scopes')), true)), 'Key scopes list.') ->inject('response') ->inject('consoleDB') ->action(function ($projectId, $name, $scopes, $response, $consoleDB) { @@ -828,7 +828,7 @@ App::put('/v1/projects/:projectId/keys/:keyId') ->param('projectId', null, new UID(), 'Project unique ID.') ->param('keyId', null, new UID(), 'Key unique ID.') ->param('name', null, new Text(128), 'Key name. Max length: 128 chars.') - ->param('scopes', null, new ArrayList(new WhiteList(Config::getParam('scopes'), true)), 'Key scopes list') + ->param('scopes', null, new ArrayList(new WhiteList(array_keys(Config::getParam('scopes')), true)), 'Key scopes list') ->inject('response') ->inject('consoleDB') ->action(function ($projectId, $keyId, $name, $scopes, $response, $consoleDB) { diff --git a/app/controllers/web/console.php b/app/controllers/web/console.php index 9c9a827091..bddc8ea8bb 100644 --- a/app/controllers/web/console.php +++ b/app/controllers/web/console.php @@ -177,7 +177,7 @@ App::get('/console/keys') ->action(function ($layout) { /** @var Utopia\View $layout */ - $scopes = Config::getParam('scopes'); + $scopes = array_keys(Config::getParam('scopes')); $page = new View(__DIR__.'/../../views/console/keys/index.phtml'); $page->setParam('scopes', $scopes);