From 8ea83b24c3a1e4aee4977f5dea6f14917b9b2ff9 Mon Sep 17 00:00:00 2001 From: Eldad Fux Date: Mon, 29 Mar 2021 00:22:12 +0300 Subject: [PATCH] Added new JWT as SDK auth method --- CHANGES.md | 2 +- app/controllers/api/account.php | 42 ++++++++-------- app/controllers/api/avatars.php | 14 +++--- app/controllers/api/database.php | 20 ++++---- app/controllers/api/functions.php | 28 +++++------ app/controllers/api/health.php | 26 +++++----- app/controllers/api/locale.php | 14 +++--- app/controllers/api/projects.php | 32 +++++++++++++ app/controllers/api/storage.php | 18 +++---- app/controllers/api/teams.php | 18 +++---- app/controllers/api/users.php | 22 ++++----- app/controllers/general.php | 2 +- app/controllers/mock.php | 36 +++++++------- app/controllers/web/home.php | 48 +++++++++++++++---- app/init.php | 5 ++ src/Appwrite/Specification/Format.php | 9 +--- .../Specification/Format/OpenAPI3.php | 11 ++++- .../Specification/Format/Swagger2.php | 11 ++++- 18 files changed, 217 insertions(+), 141 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 36d9ff5271..f9bdd28c92 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -3,8 +3,8 @@ ## Features - Added Anonymous Login ([RFC-010](https://github.com/appwrite/rfc/blob/main/010-anonymous-login.md), #914) -- Added new Environment Variable to enable or disable Anonymous Login - Added events for functions and executions (#971) +- Added JWT support ## Bugs diff --git a/app/controllers/api/account.php b/app/controllers/api/account.php index 067fe58767..3a3e771007 100644 --- a/app/controllers/api/account.php +++ b/app/controllers/api/account.php @@ -34,7 +34,7 @@ App::post('/v1/account') ->groups(['api', 'account']) ->label('event', 'account.create') ->label('scope', 'public') - ->label('sdk.platform', [APP_PLATFORM_CLIENT]) + ->label('sdk.security', []) ->label('sdk.namespace', 'account') ->label('sdk.method', 'create') ->label('sdk.description', '/docs/references/account/create.md') @@ -136,7 +136,7 @@ App::post('/v1/account/sessions') ->groups(['api', 'account']) ->label('event', 'account.sessions.create') ->label('scope', 'public') - ->label('sdk.platform', [APP_PLATFORM_CLIENT]) + ->label('sdk.security', []) ->label('sdk.namespace', 'account') ->label('sdk.method', 'createSession') ->label('sdk.description', '/docs/references/account/create-session.md') @@ -251,7 +251,7 @@ App::get('/v1/account/sessions/oauth2/:provider') ->groups(['api', 'account']) ->label('error', __DIR__.'/../../views/general/error.phtml') ->label('scope', 'public') - ->label('sdk.platform', [APP_PLATFORM_CLIENT]) + ->label('sdk.security', []) ->label('sdk.namespace', 'account') ->label('sdk.method', 'createOAuth2Session') ->label('sdk.description', '/docs/references/account/create-session-oauth2.md') @@ -579,8 +579,7 @@ App::post('/v1/account/sessions/anonymous') ->desc('Create Anonymous Session') ->groups(['api', 'account']) ->label('event', 'account.sessions.create') - ->label('scope', 'public') - ->label('sdk.platform', [APP_PLATFORM_CLIENT]) + ->label('sdk.security', []) ->label('sdk.namespace', 'account') ->label('sdk.method', 'createAnonymousSession') ->label('sdk.description', '/docs/references/account/create-session-anonymous.md') @@ -703,8 +702,7 @@ App::post('/v1/account/jwt') ->desc('Create Account JWT') ->groups(['api', 'account']) ->label('scope', 'account') - ->label('docs', false) // Hidden for now - private beta - ->label('sdk.platform', [APP_PLATFORM_CLIENT]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION]) ->label('sdk.namespace', 'account') ->label('sdk.method', 'createJWT') ->label('sdk.description', '/docs/references/account/create-jwt.md') @@ -747,7 +745,7 @@ App::get('/v1/account') ->desc('Get Account') ->groups(['api', 'account']) ->label('scope', 'account') - ->label('sdk.platform', [APP_PLATFORM_CLIENT]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'account') ->label('sdk.method', 'get') ->label('sdk.description', '/docs/references/account/get.md') @@ -767,7 +765,7 @@ App::get('/v1/account/prefs') ->desc('Get Account Preferences') ->groups(['api', 'account']) ->label('scope', 'account') - ->label('sdk.platform', [APP_PLATFORM_CLIENT]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'account') ->label('sdk.method', 'getPrefs') ->label('sdk.description', '/docs/references/account/get-prefs.md') @@ -789,7 +787,7 @@ App::get('/v1/account/sessions') ->desc('Get Account Sessions') ->groups(['api', 'account']) ->label('scope', 'account') - ->label('sdk.platform', [APP_PLATFORM_CLIENT]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'account') ->label('sdk.method', 'getSessions') ->label('sdk.description', '/docs/references/account/get-sessions.md') @@ -832,7 +830,7 @@ App::get('/v1/account/logs') ->desc('Get Account Logs') ->groups(['api', 'account']) ->label('scope', 'account') - ->label('sdk.platform', [APP_PLATFORM_CLIENT]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'account') ->label('sdk.method', 'getLogs') ->label('sdk.description', '/docs/references/account/get-logs.md') @@ -909,7 +907,7 @@ App::patch('/v1/account/name') ->groups(['api', 'account']) ->label('event', 'account.update.name') ->label('scope', 'account') - ->label('sdk.platform', [APP_PLATFORM_CLIENT]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'account') ->label('sdk.method', 'updateName') ->label('sdk.description', '/docs/references/account/update-name.md') @@ -949,7 +947,7 @@ App::patch('/v1/account/password') ->groups(['api', 'account']) ->label('event', 'account.update.password') ->label('scope', 'account') - ->label('sdk.platform', [APP_PLATFORM_CLIENT]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'account') ->label('sdk.method', 'updatePassword') ->label('sdk.description', '/docs/references/account/update-password.md') @@ -994,7 +992,7 @@ App::patch('/v1/account/email') ->groups(['api', 'account']) ->label('event', 'account.update.email') ->label('scope', 'account') - ->label('sdk.platform', [APP_PLATFORM_CLIENT]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'account') ->label('sdk.method', 'updateEmail') ->label('sdk.description', '/docs/references/account/update-email.md') @@ -1063,7 +1061,7 @@ App::patch('/v1/account/prefs') ->groups(['api', 'account']) ->label('event', 'account.update.prefs') ->label('scope', 'account') - ->label('sdk.platform', [APP_PLATFORM_CLIENT]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'account') ->label('sdk.method', 'updatePrefs') ->label('sdk.description', '/docs/references/account/update-prefs.md') @@ -1102,7 +1100,7 @@ App::delete('/v1/account') ->groups(['api', 'account']) ->label('event', 'account.delete') ->label('scope', 'account') - ->label('sdk.platform', [APP_PLATFORM_CLIENT]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'account') ->label('sdk.method', 'delete') ->label('sdk.description', '/docs/references/account/delete.md') @@ -1168,7 +1166,7 @@ App::delete('/v1/account/sessions/:sessionId') ->groups(['api', 'account']) ->label('scope', 'account') ->label('event', 'account.sessions.delete') - ->label('sdk.platform', [APP_PLATFORM_CLIENT]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'account') ->label('sdk.method', 'deleteSession') ->label('sdk.description', '/docs/references/account/delete-session.md') @@ -1242,7 +1240,7 @@ App::delete('/v1/account/sessions') ->groups(['api', 'account']) ->label('scope', 'account') ->label('event', 'account.sessions.delete') - ->label('sdk.platform', [APP_PLATFORM_CLIENT]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'account') ->label('sdk.method', 'deleteSessions') ->label('sdk.description', '/docs/references/account/delete-sessions.md') @@ -1309,7 +1307,7 @@ App::post('/v1/account/recovery') ->groups(['api', 'account']) ->label('scope', 'public') ->label('event', 'account.recovery.create') - ->label('sdk.platform', [APP_PLATFORM_CLIENT]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'account') ->label('sdk.method', 'createRecovery') ->label('sdk.description', '/docs/references/account/create-recovery.md') @@ -1447,7 +1445,7 @@ App::put('/v1/account/recovery') ->groups(['api', 'account']) ->label('scope', 'public') ->label('event', 'account.recovery.update') - ->label('sdk.platform', [APP_PLATFORM_CLIENT]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'account') ->label('sdk.method', 'updateRecovery') ->label('sdk.description', '/docs/references/account/update-recovery.md') @@ -1526,7 +1524,7 @@ App::post('/v1/account/verification') ->groups(['api', 'account']) ->label('scope', 'account') ->label('event', 'account.verification.create') - ->label('sdk.platform', [APP_PLATFORM_CLIENT]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'account') ->label('sdk.method', 'createVerification') ->label('sdk.description', '/docs/references/account/create-verification.md') @@ -1650,7 +1648,7 @@ App::put('/v1/account/verification') ->groups(['api', 'account']) ->label('scope', 'public') ->label('event', 'account.verification.update') - ->label('sdk.platform', [APP_PLATFORM_CLIENT]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'account') ->label('sdk.method', 'updateVerification') ->label('sdk.description', '/docs/references/account/update-verification.md') diff --git a/app/controllers/api/avatars.php b/app/controllers/api/avatars.php index a094dc672a..3f79b2f57e 100644 --- a/app/controllers/api/avatars.php +++ b/app/controllers/api/avatars.php @@ -83,7 +83,7 @@ App::get('/v1/avatars/credit-cards/:code') ->desc('Get Credit Card Icon') ->groups(['api', 'avatars']) ->label('scope', 'avatars.read') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'avatars') ->label('sdk.method', 'getCreditCard') ->label('sdk.methodType', 'location') @@ -103,7 +103,7 @@ App::get('/v1/avatars/browsers/:code') ->desc('Get Browser Icon') ->groups(['api', 'avatars']) ->label('scope', 'avatars.read') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'avatars') ->label('sdk.method', 'getBrowser') ->label('sdk.methodType', 'location') @@ -123,7 +123,7 @@ App::get('/v1/avatars/flags/:code') ->desc('Get Country Flag') ->groups(['api', 'avatars']) ->label('scope', 'avatars.read') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'avatars') ->label('sdk.method', 'getFlag') ->label('sdk.methodType', 'location') @@ -143,7 +143,7 @@ App::get('/v1/avatars/image') ->desc('Get Image from URL') ->groups(['api', 'avatars']) ->label('scope', 'avatars.read') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'avatars') ->label('sdk.method', 'getImage') ->label('sdk.methodType', 'location') @@ -212,7 +212,7 @@ App::get('/v1/avatars/favicon') ->desc('Get Favicon') ->groups(['api', 'avatars']) ->label('scope', 'avatars.read') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'avatars') ->label('sdk.method', 'getFavicon') ->label('sdk.methodType', 'location') @@ -365,7 +365,7 @@ App::get('/v1/avatars/qr') ->desc('Get QR Code') ->groups(['api', 'avatars']) ->label('scope', 'avatars.read') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'avatars') ->label('sdk.method', 'getQR') ->label('sdk.methodType', 'location') @@ -408,7 +408,7 @@ App::get('/v1/avatars/initials') ->desc('Get User Initials') ->groups(['api', 'avatars']) ->label('scope', 'avatars.read') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'avatars') ->label('sdk.method', 'getInitials') ->label('sdk.methodType', 'location') diff --git a/app/controllers/api/database.php b/app/controllers/api/database.php index 2c32ae981e..1724d53fdd 100644 --- a/app/controllers/api/database.php +++ b/app/controllers/api/database.php @@ -24,7 +24,7 @@ App::post('/v1/database/collections') ->label('event', 'database.collections.create') ->label('scope', 'collections.write') ->label('sdk.namespace', 'database') - ->label('sdk.platform', [APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_KEY]) ->label('sdk.method', 'createCollection') ->label('sdk.description', '/docs/references/database/create-collection.md') ->label('sdk.response.code', Response::STATUS_CODE_CREATED) @@ -96,7 +96,7 @@ App::get('/v1/database/collections') ->groups(['api', 'database']) ->label('scope', 'collections.read') ->label('sdk.namespace', 'database') - ->label('sdk.platform', [APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_KEY]) ->label('sdk.method', 'listCollections') ->label('sdk.description', '/docs/references/database/list-collections.md') ->label('sdk.response.code', Response::STATUS_CODE_OK) @@ -133,7 +133,7 @@ App::get('/v1/database/collections/:collectionId') ->groups(['api', 'database']) ->label('scope', 'collections.read') ->label('sdk.namespace', 'database') - ->label('sdk.platform', [APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_KEY]) ->label('sdk.method', 'getCollection') ->label('sdk.description', '/docs/references/database/get-collection.md') ->label('sdk.response.code', Response::STATUS_CODE_OK) @@ -161,7 +161,7 @@ App::put('/v1/database/collections/:collectionId') ->label('scope', 'collections.write') ->label('event', 'database.collections.update') ->label('sdk.namespace', 'database') - ->label('sdk.platform', [APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_KEY]) ->label('sdk.method', 'updateCollection') ->label('sdk.description', '/docs/references/database/update-collection.md') ->label('sdk.response.code', Response::STATUS_CODE_OK) @@ -238,7 +238,7 @@ App::delete('/v1/database/collections/:collectionId') ->label('scope', 'collections.write') ->label('event', 'database.collections.delete') ->label('sdk.namespace', 'database') - ->label('sdk.platform', [APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_KEY]) ->label('sdk.method', 'deleteCollection') ->label('sdk.description', '/docs/references/database/delete-collection.md') ->label('sdk.response.code', Response::STATUS_CODE_NOCONTENT) @@ -289,7 +289,7 @@ App::post('/v1/database/collections/:collectionId/documents') ->label('event', 'database.documents.create') ->label('scope', 'documents.write') ->label('sdk.namespace', 'database') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.method', 'createDocument') ->label('sdk.description', '/docs/references/database/create-document.md') ->label('sdk.response.code', Response::STATUS_CODE_CREATED) @@ -410,7 +410,7 @@ App::get('/v1/database/collections/:collectionId/documents') ->groups(['api', 'database']) ->label('scope', 'documents.read') ->label('sdk.namespace', 'database') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.method', 'listDocuments') ->label('sdk.description', '/docs/references/database/list-documents.md') ->label('sdk.response.code', Response::STATUS_CODE_OK) @@ -473,7 +473,7 @@ App::get('/v1/database/collections/:collectionId/documents/:documentId') ->groups(['api', 'database']) ->label('scope', 'documents.read') ->label('sdk.namespace', 'database') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.method', 'getDocument') ->label('sdk.description', '/docs/references/database/get-document.md') ->label('sdk.response.code', Response::STATUS_CODE_OK) @@ -503,7 +503,7 @@ App::patch('/v1/database/collections/:collectionId/documents/:documentId') ->label('event', 'database.documents.update') ->label('scope', 'documents.write') ->label('sdk.namespace', 'database') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.method', 'updateDocument') ->label('sdk.description', '/docs/references/database/update-document.md') ->label('sdk.response.code', Response::STATUS_CODE_OK) @@ -575,7 +575,7 @@ App::delete('/v1/database/collections/:collectionId/documents/:documentId') ->label('scope', 'documents.write') ->label('event', 'database.documents.delete') ->label('sdk.namespace', 'database') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.method', 'deleteDocument') ->label('sdk.description', '/docs/references/database/delete-document.md') ->label('sdk.response.code', Response::STATUS_CODE_NOCONTENT) diff --git a/app/controllers/api/functions.php b/app/controllers/api/functions.php index c2664f9dc3..0d86137546 100644 --- a/app/controllers/api/functions.php +++ b/app/controllers/api/functions.php @@ -30,7 +30,7 @@ App::post('/v1/functions') ->desc('Create Function') ->label('scope', 'functions.write') ->label('event', 'functions.create') - ->label('sdk.platform', [APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_KEY]) ->label('sdk.namespace', 'functions') ->label('sdk.method', 'create') ->label('sdk.description', '/docs/references/functions/create-function.md') @@ -83,7 +83,7 @@ App::get('/v1/functions') ->groups(['api', 'functions']) ->desc('List Functions') ->label('scope', 'functions.read') - ->label('sdk.platform', [APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_KEY]) ->label('sdk.namespace', 'functions') ->label('sdk.method', 'list') ->label('sdk.description', '/docs/references/functions/list-functions.md') @@ -120,7 +120,7 @@ App::get('/v1/functions/:functionId') ->groups(['api', 'functions']) ->desc('Get Function') ->label('scope', 'functions.read') - ->label('sdk.platform', [APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_KEY]) ->label('sdk.namespace', 'functions') ->label('sdk.method', 'get') ->label('sdk.description', '/docs/references/functions/get-function.md') @@ -147,7 +147,7 @@ App::get('/v1/functions/:functionId/usage') ->desc('Get Function Usage') ->groups(['api', 'functions']) ->label('scope', 'functions.read') - ->label('sdk.platform', [APP_PLATFORM_CONSOLE]) + ->label('sdk.security', [APP_AUTH_TYPE_ADMIN]) ->label('sdk.namespace', 'functions') ->label('sdk.method', 'getUsage') ->param('functionId', '', new UID(), 'Function unique ID.') @@ -269,7 +269,7 @@ App::put('/v1/functions/:functionId') ->desc('Update Function') ->label('scope', 'functions.write') ->label('event', 'functions.update') - ->label('sdk.platform', [APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_KEY]) ->label('sdk.namespace', 'functions') ->label('sdk.method', 'update') ->label('sdk.description', '/docs/references/functions/update-function.md') @@ -335,7 +335,7 @@ App::patch('/v1/functions/:functionId/tag') ->desc('Update Function Tag') ->label('scope', 'functions.write') ->label('event', 'functions.tags.update') - ->label('sdk.platform', [APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_KEY]) ->label('sdk.namespace', 'functions') ->label('sdk.method', 'updateTag') ->label('sdk.description', '/docs/references/functions/update-function-tag.md') @@ -393,7 +393,7 @@ App::delete('/v1/functions/:functionId') ->desc('Delete Function') ->label('scope', 'functions.write') ->label('event', 'functions.delete') - ->label('sdk.platform', [APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_KEY]) ->label('sdk.namespace', 'functions') ->label('sdk.method', 'delete') ->label('sdk.description', '/docs/references/functions/delete-function.md') @@ -431,7 +431,7 @@ App::post('/v1/functions/:functionId/tags') ->desc('Create Tag') ->label('scope', 'functions.write') ->label('event', 'functions.tags.create') - ->label('sdk.platform', [APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_KEY]) ->label('sdk.namespace', 'functions') ->label('sdk.method', 'createTag') ->label('sdk.description', '/docs/references/functions/create-tag.md') @@ -525,7 +525,7 @@ App::get('/v1/functions/:functionId/tags') ->groups(['api', 'functions']) ->desc('List Tags') ->label('scope', 'functions.read') - ->label('sdk.platform', [APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_KEY]) ->label('sdk.namespace', 'functions') ->label('sdk.method', 'listTags') ->label('sdk.description', '/docs/references/functions/list-tags.md') @@ -570,7 +570,7 @@ App::get('/v1/functions/:functionId/tags/:tagId') ->groups(['api', 'functions']) ->desc('Get Tag') ->label('scope', 'functions.read') - ->label('sdk.platform', [APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_KEY]) ->label('sdk.namespace', 'functions') ->label('sdk.method', 'getTag') ->label('sdk.description', '/docs/references/functions/get-tag.md') @@ -609,7 +609,7 @@ App::delete('/v1/functions/:functionId/tags/:tagId') ->desc('Delete Tag') ->label('scope', 'functions.write') ->label('event', 'functions.tags.delete') - ->label('sdk.platform', [APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_KEY]) ->label('sdk.namespace', 'functions') ->label('sdk.method', 'deleteTag') ->label('sdk.description', '/docs/references/functions/delete-tag.md') @@ -671,7 +671,7 @@ App::post('/v1/functions/:functionId/executions') ->desc('Create Execution') ->label('scope', 'execution.write') ->label('event', 'functions.executions.create') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'functions') ->label('sdk.method', 'createExecution') ->label('sdk.description', '/docs/references/functions/create-execution.md') @@ -784,7 +784,7 @@ App::get('/v1/functions/:functionId/executions') ->groups(['api', 'functions']) ->desc('List Executions') ->label('scope', 'execution.read') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'functions') ->label('sdk.method', 'listExecutions') ->label('sdk.description', '/docs/references/functions/list-executions.md') @@ -829,7 +829,7 @@ App::get('/v1/functions/:functionId/executions/:executionId') ->groups(['api', 'functions']) ->desc('Get Execution') ->label('scope', 'execution.read') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'functions') ->label('sdk.method', 'getExecution') ->label('sdk.description', '/docs/references/functions/get-execution.md') diff --git a/app/controllers/api/health.php b/app/controllers/api/health.php index a4201d54d9..21377dbb18 100644 --- a/app/controllers/api/health.php +++ b/app/controllers/api/health.php @@ -11,7 +11,7 @@ App::get('/v1/health') ->desc('Get HTTP') ->groups(['api', 'health']) ->label('scope', 'health.read') - ->label('sdk.platform', [APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_KEY]) ->label('sdk.namespace', 'health') ->label('sdk.method', 'get') ->label('sdk.description', '/docs/references/health/get.md') @@ -37,7 +37,7 @@ App::get('/v1/health/db') ->desc('Get DB') ->groups(['api', 'health']) ->label('scope', 'health.read') - ->label('sdk.platform', [APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_KEY]) ->label('sdk.namespace', 'health') ->label('sdk.method', 'getDB') ->label('sdk.description', '/docs/references/health/get-db.md') @@ -56,7 +56,7 @@ App::get('/v1/health/cache') ->desc('Get Cache') ->groups(['api', 'health']) ->label('scope', 'health.read') - ->label('sdk.platform', [APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_KEY]) ->label('sdk.namespace', 'health') ->label('sdk.method', 'getCache') ->label('sdk.description', '/docs/references/health/get-cache.md') @@ -74,7 +74,7 @@ App::get('/v1/health/time') ->desc('Get Time') ->groups(['api', 'health']) ->label('scope', 'health.read') - ->label('sdk.platform', [APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_KEY]) ->label('sdk.namespace', 'health') ->label('sdk.method', 'getTime') ->label('sdk.description', '/docs/references/health/get-time.md') @@ -123,7 +123,7 @@ App::get('/v1/health/queue/webhooks') ->desc('Get Webhooks Queue') ->groups(['api', 'health']) ->label('scope', 'health.read') - ->label('sdk.platform', [APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_KEY]) ->label('sdk.namespace', 'health') ->label('sdk.method', 'getQueueWebhooks') ->label('sdk.description', '/docs/references/health/get-queue-webhooks.md') @@ -138,7 +138,7 @@ App::get('/v1/health/queue/tasks') ->desc('Get Tasks Queue') ->groups(['api', 'health']) ->label('scope', 'health.read') - ->label('sdk.platform', [APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_KEY]) ->label('sdk.namespace', 'health') ->label('sdk.method', 'getQueueTasks') ->label('sdk.description', '/docs/references/health/get-queue-tasks.md') @@ -153,7 +153,7 @@ App::get('/v1/health/queue/logs') ->desc('Get Logs Queue') ->groups(['api', 'health']) ->label('scope', 'health.read') - ->label('sdk.platform', [APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_KEY]) ->label('sdk.namespace', 'health') ->label('sdk.method', 'getQueueLogs') ->label('sdk.description', '/docs/references/health/get-queue-logs.md') @@ -168,7 +168,7 @@ App::get('/v1/health/queue/usage') ->desc('Get Usage Queue') ->groups(['api', 'health']) ->label('scope', 'health.read') - ->label('sdk.platform', [APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_KEY]) ->label('sdk.namespace', 'health') ->label('sdk.method', 'getQueueUsage') ->label('sdk.description', '/docs/references/health/get-queue-usage.md') @@ -183,7 +183,7 @@ App::get('/v1/health/queue/certificates') ->desc('Get Certificate Queue') ->groups(['api', 'health']) ->label('scope', 'health.read') - ->label('sdk.platform', [APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_KEY]) ->label('sdk.namespace', 'health') ->label('sdk.method', 'getQueueCertificates') ->label('sdk.description', '/docs/references/health/get-queue-certificates.md') @@ -198,7 +198,7 @@ App::get('/v1/health/queue/functions') ->desc('Get Functions Queue') ->groups(['api', 'health']) ->label('scope', 'health.read') - ->label('sdk.platform', [APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_KEY]) ->label('sdk.namespace', 'health') ->label('sdk.method', 'getQueueFunctions') ->label('sdk.description', '/docs/references/health/get-queue-functions.md') @@ -213,7 +213,7 @@ App::get('/v1/health/storage/local') ->desc('Get Local Storage') ->groups(['api', 'health']) ->label('scope', 'health.read') - ->label('sdk.platform', [APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_KEY]) ->label('sdk.namespace', 'health') ->label('sdk.method', 'getStorageLocal') ->label('sdk.description', '/docs/references/health/get-storage-local.md') @@ -245,7 +245,7 @@ App::get('/v1/health/anti-virus') ->desc('Get Anti virus') ->groups(['api', 'health']) ->label('scope', 'health.read') - ->label('sdk.platform', [APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_KEY]) ->label('sdk.namespace', 'health') ->label('sdk.method', 'getAntiVirus') ->label('sdk.description', '/docs/references/health/get-storage-anti-virus.md') @@ -273,7 +273,7 @@ App::get('/v1/health/stats') // Currently only used internally ->desc('Get System Stats') ->groups(['api', 'health']) ->label('scope', 'god') - // ->label('sdk.platform', [APP_PLATFORM_SERVER]) + // ->label('sdk.security', [APP_AUTH_TYPE_KEY]) // ->label('sdk.namespace', 'health') // ->label('sdk.method', 'getStats') ->label('docs', false) diff --git a/app/controllers/api/locale.php b/app/controllers/api/locale.php index 80826bdc03..36f5171c98 100644 --- a/app/controllers/api/locale.php +++ b/app/controllers/api/locale.php @@ -9,7 +9,7 @@ App::get('/v1/locale') ->desc('Get User Locale') ->groups(['api', 'locale']) ->label('scope', 'locale.read') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'locale') ->label('sdk.method', 'get') ->label('sdk.description', '/docs/references/locale/get-locale.md') @@ -74,7 +74,7 @@ App::get('/v1/locale/countries') ->desc('List Countries') ->groups(['api', 'locale']) ->label('scope', 'locale.read') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'locale') ->label('sdk.method', 'getCountries') ->label('sdk.description', '/docs/references/locale/get-countries.md') @@ -106,7 +106,7 @@ App::get('/v1/locale/countries/eu') ->desc('List EU Countries') ->groups(['api', 'locale']) ->label('scope', 'locale.read') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'locale') ->label('sdk.method', 'getCountriesEU') ->label('sdk.description', '/docs/references/locale/get-countries-eu.md') @@ -141,7 +141,7 @@ App::get('/v1/locale/countries/phones') ->desc('List Countries Phone Codes') ->groups(['api', 'locale']) ->label('scope', 'locale.read') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'locale') ->label('sdk.method', 'getCountriesPhones') ->label('sdk.description', '/docs/references/locale/get-countries-phones.md') @@ -177,7 +177,7 @@ App::get('/v1/locale/continents') ->desc('List Continents') ->groups(['api', 'locale']) ->label('scope', 'locale.read') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'locale') ->label('sdk.method', 'getContinents') ->label('sdk.description', '/docs/references/locale/get-continents.md') @@ -208,7 +208,7 @@ App::get('/v1/locale/currencies') ->desc('List Currencies') ->groups(['api', 'locale']) ->label('scope', 'locale.read') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'locale') ->label('sdk.method', 'getCurrencies') ->label('sdk.description', '/docs/references/locale/get-currencies.md') @@ -233,7 +233,7 @@ App::get('/v1/locale/languages') ->desc('List Languages') ->groups(['api', 'locale']) ->label('scope', 'locale.read') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'locale') ->label('sdk.method', 'getLanguages') ->label('sdk.description', '/docs/references/locale/get-languages.md') diff --git a/app/controllers/api/projects.php b/app/controllers/api/projects.php index 63c99ffaee..e7c23b4eab 100644 --- a/app/controllers/api/projects.php +++ b/app/controllers/api/projects.php @@ -24,6 +24,7 @@ App::post('/v1/projects') ->desc('Create Project') ->groups(['api', 'projects']) ->label('scope', 'projects.write') + ->label('sdk.security', [APP_AUTH_TYPE_ADMIN]) ->label('sdk.namespace', 'projects') ->label('sdk.method', 'create') ->label('sdk.response.code', Response::STATUS_CODE_CREATED) @@ -96,6 +97,7 @@ App::get('/v1/projects') ->desc('List Projects') ->groups(['api', 'projects']) ->label('scope', 'projects.read') + ->label('sdk.security', [APP_AUTH_TYPE_ADMIN]) ->label('sdk.namespace', 'projects') ->label('sdk.method', 'list') ->label('sdk.response.code', Response::STATUS_CODE_OK) @@ -131,6 +133,7 @@ App::get('/v1/projects/:projectId') ->desc('Get Project') ->groups(['api', 'projects']) ->label('scope', 'projects.read') + ->label('sdk.security', [APP_AUTH_TYPE_ADMIN]) ->label('sdk.namespace', 'projects') ->label('sdk.method', 'get') ->label('sdk.response.code', Response::STATUS_CODE_OK) @@ -156,6 +159,7 @@ App::get('/v1/projects/:projectId/usage') ->desc('Get Project') ->groups(['api', 'projects']) ->label('scope', 'projects.read') + ->label('sdk.security', [APP_AUTH_TYPE_ADMIN]) ->label('sdk.namespace', 'projects') ->label('sdk.method', 'getUsage') ->param('projectId', '', new UID(), 'Project unique ID.') @@ -356,6 +360,7 @@ App::patch('/v1/projects/:projectId') ->desc('Update Project') ->groups(['api', 'projects']) ->label('scope', 'projects.write') + ->label('sdk.security', [APP_AUTH_TYPE_ADMIN]) ->label('sdk.namespace', 'projects') ->label('sdk.method', 'update') ->label('sdk.response.code', Response::STATUS_CODE_OK) @@ -408,6 +413,7 @@ App::patch('/v1/projects/:projectId/oauth2') ->desc('Update Project OAuth2') ->groups(['api', 'projects']) ->label('scope', 'projects.write') + ->label('sdk.security', [APP_AUTH_TYPE_ADMIN]) ->label('sdk.namespace', 'projects') ->label('sdk.method', 'updateOAuth2') ->label('sdk.response.code', Response::STATUS_CODE_OK) @@ -445,6 +451,7 @@ App::delete('/v1/projects/:projectId') ->desc('Delete Project') ->groups(['api', 'projects']) ->label('scope', 'projects.write') + ->label('sdk.security', [APP_AUTH_TYPE_ADMIN]) ->label('sdk.namespace', 'projects') ->label('sdk.method', 'delete') ->label('sdk.response.code', Response::STATUS_CODE_NOCONTENT) @@ -510,6 +517,7 @@ App::post('/v1/projects/:projectId/webhooks') ->desc('Create Webhook') ->groups(['api', 'projects']) ->label('scope', 'projects.write') + ->label('sdk.security', [APP_AUTH_TYPE_ADMIN]) ->label('sdk.namespace', 'projects') ->label('sdk.method', 'createWebhook') ->label('sdk.response.code', Response::STATUS_CODE_CREATED) @@ -572,6 +580,7 @@ App::get('/v1/projects/:projectId/webhooks') ->desc('List Webhooks') ->groups(['api', 'projects']) ->label('scope', 'projects.read') + ->label('sdk.security', [APP_AUTH_TYPE_ADMIN]) ->label('sdk.namespace', 'projects') ->label('sdk.method', 'listWebhooks') ->label('sdk.response.code', Response::STATUS_CODE_OK) @@ -602,6 +611,7 @@ App::get('/v1/projects/:projectId/webhooks/:webhookId') ->desc('Get Webhook') ->groups(['api', 'projects']) ->label('scope', 'projects.read') + ->label('sdk.security', [APP_AUTH_TYPE_ADMIN]) ->label('sdk.namespace', 'projects') ->label('sdk.method', 'getWebhook') ->label('sdk.response.code', Response::STATUS_CODE_OK) @@ -634,6 +644,7 @@ App::put('/v1/projects/:projectId/webhooks/:webhookId') ->desc('Update Webhook') ->groups(['api', 'projects']) ->label('scope', 'projects.write') + ->label('sdk.security', [APP_AUTH_TYPE_ADMIN]) ->label('sdk.namespace', 'projects') ->label('sdk.method', 'updateWebhook') ->label('sdk.response.code', Response::STATUS_CODE_OK) @@ -687,6 +698,7 @@ App::delete('/v1/projects/:projectId/webhooks/:webhookId') ->desc('Delete Webhook') ->groups(['api', 'projects']) ->label('scope', 'projects.write') + ->label('sdk.security', [APP_AUTH_TYPE_ADMIN]) ->label('sdk.namespace', 'projects') ->label('sdk.method', 'deleteWebhook') ->label('sdk.response.code', Response::STATUS_CODE_NOCONTENT) @@ -724,6 +736,7 @@ App::post('/v1/projects/:projectId/keys') ->desc('Create Key') ->groups(['api', 'projects']) ->label('scope', 'projects.write') + ->label('sdk.security', [APP_AUTH_TYPE_ADMIN]) ->label('sdk.namespace', 'projects') ->label('sdk.method', 'createKey') ->label('sdk.response.code', Response::STATUS_CODE_CREATED) @@ -777,6 +790,7 @@ App::get('/v1/projects/:projectId/keys') ->desc('List Keys') ->groups(['api', 'projects']) ->label('scope', 'projects.read') + ->label('sdk.security', [APP_AUTH_TYPE_ADMIN]) ->label('sdk.namespace', 'projects') ->label('sdk.method', 'listKeys') ->label('sdk.response.code', Response::STATUS_CODE_OK) @@ -807,6 +821,7 @@ App::get('/v1/projects/:projectId/keys/:keyId') ->desc('Get Key') ->groups(['api', 'projects']) ->label('scope', 'projects.read') + ->label('sdk.security', [APP_AUTH_TYPE_ADMIN]) ->label('sdk.namespace', 'projects') ->label('sdk.method', 'getKey') ->label('sdk.response.code', Response::STATUS_CODE_OK) @@ -836,6 +851,7 @@ App::put('/v1/projects/:projectId/keys/:keyId') ->desc('Update Key') ->groups(['api', 'projects']) ->label('scope', 'projects.write') + ->label('sdk.security', [APP_AUTH_TYPE_ADMIN]) ->label('sdk.namespace', 'projects') ->label('sdk.method', 'updateKey') ->label('sdk.response.code', Response::STATUS_CODE_OK) @@ -879,6 +895,7 @@ App::delete('/v1/projects/:projectId/keys/:keyId') ->desc('Delete Key') ->groups(['api', 'projects']) ->label('scope', 'projects.write') + ->label('sdk.security', [APP_AUTH_TYPE_ADMIN]) ->label('sdk.namespace', 'projects') ->label('sdk.method', 'deleteKey') ->label('sdk.response.code', Response::STATUS_CODE_NOCONTENT) @@ -916,6 +933,7 @@ App::post('/v1/projects/:projectId/tasks') ->desc('Create Task') ->groups(['api', 'projects']) ->label('scope', 'projects.write') + ->label('sdk.security', [APP_AUTH_TYPE_ADMIN]) ->label('sdk.namespace', 'projects') ->label('sdk.method', 'createTask') ->label('sdk.response.code', Response::STATUS_CODE_CREATED) @@ -996,6 +1014,7 @@ App::get('/v1/projects/:projectId/tasks') ->desc('List Tasks') ->groups(['api', 'projects']) ->label('scope', 'projects.read') + ->label('sdk.security', [APP_AUTH_TYPE_ADMIN]) ->label('sdk.namespace', 'projects') ->label('sdk.method', 'listTasks') ->label('sdk.response.code', Response::STATUS_CODE_OK) @@ -1027,6 +1046,7 @@ App::get('/v1/projects/:projectId/tasks/:taskId') ->desc('Get Task') ->groups(['api', 'projects']) ->label('scope', 'projects.read') + ->label('sdk.security', [APP_AUTH_TYPE_ADMIN]) ->label('sdk.namespace', 'projects') ->label('sdk.method', 'getTask') ->label('sdk.response.code', Response::STATUS_CODE_OK) @@ -1059,6 +1079,7 @@ App::put('/v1/projects/:projectId/tasks/:taskId') ->desc('Update Task') ->groups(['api', 'projects']) ->label('scope', 'projects.write') + ->label('sdk.security', [APP_AUTH_TYPE_ADMIN]) ->label('sdk.namespace', 'projects') ->label('sdk.method', 'updateTask') ->label('sdk.response.code', Response::STATUS_CODE_OK) @@ -1127,6 +1148,7 @@ App::delete('/v1/projects/:projectId/tasks/:taskId') ->desc('Delete Task') ->groups(['api', 'projects']) ->label('scope', 'projects.write') + ->label('sdk.security', [APP_AUTH_TYPE_ADMIN]) ->label('sdk.namespace', 'projects') ->label('sdk.method', 'deleteTask') ->label('sdk.response.code', Response::STATUS_CODE_NOCONTENT) @@ -1164,6 +1186,7 @@ App::post('/v1/projects/:projectId/platforms') ->desc('Create Platform') ->groups(['api', 'projects']) ->label('scope', 'projects.write') + ->label('sdk.security', [APP_AUTH_TYPE_ADMIN]) ->label('sdk.namespace', 'projects') ->label('sdk.method', 'createPlatform') ->label('sdk.response.code', Response::STATUS_CODE_CREATED) @@ -1224,6 +1247,7 @@ App::get('/v1/projects/:projectId/platforms') ->desc('List Platforms') ->groups(['api', 'projects']) ->label('scope', 'projects.read') + ->label('sdk.security', [APP_AUTH_TYPE_ADMIN]) ->label('sdk.namespace', 'projects') ->label('sdk.method', 'listPlatforms') ->label('sdk.response.code', Response::STATUS_CODE_OK) @@ -1254,6 +1278,7 @@ App::get('/v1/projects/:projectId/platforms/:platformId') ->desc('Get Platform') ->groups(['api', 'projects']) ->label('scope', 'projects.read') + ->label('sdk.security', [APP_AUTH_TYPE_ADMIN]) ->label('sdk.namespace', 'projects') ->label('sdk.method', 'getPlatform') ->label('sdk.response.code', Response::STATUS_CODE_OK) @@ -1286,6 +1311,7 @@ App::put('/v1/projects/:projectId/platforms/:platformId') ->desc('Update Platform') ->groups(['api', 'projects']) ->label('scope', 'projects.write') + ->label('sdk.security', [APP_AUTH_TYPE_ADMIN]) ->label('sdk.namespace', 'projects') ->label('sdk.method', 'updatePlatform') ->label('sdk.response.code', Response::STATUS_CODE_OK) @@ -1334,6 +1360,7 @@ App::delete('/v1/projects/:projectId/platforms/:platformId') ->desc('Delete Platform') ->groups(['api', 'projects']) ->label('scope', 'projects.write') + ->label('sdk.security', [APP_AUTH_TYPE_ADMIN]) ->label('sdk.namespace', 'projects') ->label('sdk.method', 'deletePlatform') ->label('sdk.response.code', Response::STATUS_CODE_NOCONTENT) @@ -1371,6 +1398,7 @@ App::post('/v1/projects/:projectId/domains') ->desc('Create Domain') ->groups(['api', 'projects']) ->label('scope', 'projects.write') + ->label('sdk.security', [APP_AUTH_TYPE_ADMIN]) ->label('sdk.namespace', 'projects') ->label('sdk.method', 'createDomain') ->label('sdk.response.code', Response::STATUS_CODE_CREATED) @@ -1440,6 +1468,7 @@ App::get('/v1/projects/:projectId/domains') ->desc('List Domains') ->groups(['api', 'projects']) ->label('scope', 'projects.read') + ->label('sdk.security', [APP_AUTH_TYPE_ADMIN]) ->label('sdk.namespace', 'projects') ->label('sdk.method', 'listDomains') ->label('sdk.response.code', Response::STATUS_CODE_OK) @@ -1470,6 +1499,7 @@ App::get('/v1/projects/:projectId/domains/:domainId') ->desc('Get Domain') ->groups(['api', 'projects']) ->label('scope', 'projects.read') + ->label('sdk.security', [APP_AUTH_TYPE_ADMIN]) ->label('sdk.namespace', 'projects') ->label('sdk.method', 'getDomain') ->label('sdk.response.code', Response::STATUS_CODE_OK) @@ -1502,6 +1532,7 @@ App::patch('/v1/projects/:projectId/domains/:domainId/verification') ->desc('Update Domain Verification Status') ->groups(['api', 'projects']) ->label('scope', 'projects.write') + ->label('sdk.security', [APP_AUTH_TYPE_ADMIN]) ->label('sdk.namespace', 'projects') ->label('sdk.method', 'updateDomainVerification') ->label('sdk.response.code', Response::STATUS_CODE_OK) @@ -1565,6 +1596,7 @@ App::delete('/v1/projects/:projectId/domains/:domainId') ->desc('Delete Domain') ->groups(['api', 'projects']) ->label('scope', 'projects.write') + ->label('sdk.security', [APP_AUTH_TYPE_ADMIN]) ->label('sdk.namespace', 'projects') ->label('sdk.method', 'deleteDomain') ->label('sdk.response.code', Response::STATUS_CODE_NOCONTENT) diff --git a/app/controllers/api/storage.php b/app/controllers/api/storage.php index f0ce2e4050..6f6bd684e8 100644 --- a/app/controllers/api/storage.php +++ b/app/controllers/api/storage.php @@ -28,7 +28,7 @@ App::post('/v1/storage/files') ->groups(['api', 'storage']) ->label('scope', 'files.write') ->label('event', 'storage.files.create') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'storage') ->label('sdk.method', 'createFile') ->label('sdk.description', '/docs/references/storage/create-file.md') @@ -167,7 +167,7 @@ App::get('/v1/storage/files') ->desc('List Files') ->groups(['api', 'storage']) ->label('scope', 'files.read') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'storage') ->label('sdk.method', 'listFiles') ->label('sdk.description', '/docs/references/storage/list-files.md') @@ -204,7 +204,7 @@ App::get('/v1/storage/files/:fileId') ->desc('Get File') ->groups(['api', 'storage']) ->label('scope', 'files.read') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'storage') ->label('sdk.method', 'getFile') ->label('sdk.description', '/docs/references/storage/get-file.md') @@ -231,7 +231,7 @@ App::get('/v1/storage/files/:fileId/preview') ->desc('Get File Preview') ->groups(['api', 'storage']) ->label('scope', 'files.read') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'storage') ->label('sdk.method', 'getFilePreview') ->label('sdk.description', '/docs/references/storage/get-file-preview.md') @@ -362,7 +362,7 @@ App::get('/v1/storage/files/:fileId/download') ->desc('Get File for Download') ->groups(['api', 'storage']) ->label('scope', 'files.read') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'storage') ->label('sdk.method', 'getFileDownload') ->label('sdk.description', '/docs/references/storage/get-file-download.md') @@ -420,7 +420,7 @@ App::get('/v1/storage/files/:fileId/view') ->desc('Get File for View') ->groups(['api', 'storage']) ->label('scope', 'files.read') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'storage') ->label('sdk.method', 'getFileView') ->label('sdk.description', '/docs/references/storage/get-file-view.md') @@ -489,7 +489,7 @@ App::put('/v1/storage/files/:fileId') ->groups(['api', 'storage']) ->label('scope', 'files.write') ->label('event', 'storage.files.update') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'storage') ->label('sdk.method', 'updateFile') ->label('sdk.description', '/docs/references/storage/update-file.md') @@ -538,7 +538,7 @@ App::delete('/v1/storage/files/:fileId') ->groups(['api', 'storage']) ->label('scope', 'files.write') ->label('event', 'storage.files.delete') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'storage') ->label('sdk.method', 'deleteFile') ->label('sdk.description', '/docs/references/storage/delete-file.md') @@ -591,7 +591,7 @@ App::delete('/v1/storage/files/:fileId') // ->desc('Scan Storage') // ->groups(['api', 'storage']) // ->label('scope', 'god') -// ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) +// ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) // ->label('sdk.namespace', 'storage') // ->label('sdk.method', 'getFileScan') // ->label('sdk.hide', true) diff --git a/app/controllers/api/teams.php b/app/controllers/api/teams.php index c4a9e4875d..8a4a2d8818 100644 --- a/app/controllers/api/teams.php +++ b/app/controllers/api/teams.php @@ -25,7 +25,7 @@ App::post('/v1/teams') ->groups(['api', 'teams']) ->label('event', 'teams.create') ->label('scope', 'teams.write') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'teams') ->label('sdk.method', 'create') ->label('sdk.description', '/docs/references/teams/create-team.md') @@ -100,7 +100,7 @@ App::get('/v1/teams') ->desc('List Teams') ->groups(['api', 'teams']) ->label('scope', 'teams.read') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'teams') ->label('sdk.method', 'list') ->label('sdk.description', '/docs/references/teams/list-teams.md') @@ -137,7 +137,7 @@ App::get('/v1/teams/:teamId') ->desc('Get Team') ->groups(['api', 'teams']) ->label('scope', 'teams.read') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'teams') ->label('sdk.method', 'get') ->label('sdk.description', '/docs/references/teams/get-team.md') @@ -165,7 +165,7 @@ App::put('/v1/teams/:teamId') ->groups(['api', 'teams']) ->label('event', 'teams.update') ->label('scope', 'teams.write') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'teams') ->label('sdk.method', 'update') ->label('sdk.description', '/docs/references/teams/update-team.md') @@ -202,7 +202,7 @@ App::delete('/v1/teams/:teamId') ->groups(['api', 'teams']) ->label('event', 'teams.delete') ->label('scope', 'teams.write') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'teams') ->label('sdk.method', 'delete') ->label('sdk.description', '/docs/references/teams/delete-team.md') @@ -254,7 +254,7 @@ App::post('/v1/teams/:teamId/memberships') ->groups(['api', 'teams']) ->label('event', 'teams.memberships.create') ->label('scope', 'teams.write') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'teams') ->label('sdk.method', 'createMembership') ->label('sdk.description', '/docs/references/teams/create-team-membership.md') @@ -456,7 +456,7 @@ App::get('/v1/teams/:teamId/memberships') ->desc('Get Team Memberships') ->groups(['api', 'teams']) ->label('scope', 'teams.read') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'teams') ->label('sdk.method', 'getMemberships') ->label('sdk.description', '/docs/references/teams/get-team-members.md') @@ -510,7 +510,7 @@ App::patch('/v1/teams/:teamId/memberships/:inviteId/status') ->groups(['api', 'teams']) ->label('event', 'teams.memberships.update.status') ->label('scope', 'public') - ->label('sdk.platform', [APP_PLATFORM_CLIENT]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'teams') ->label('sdk.method', 'updateMembershipStatus') ->label('sdk.description', '/docs/references/teams/update-team-membership-status.md') @@ -656,7 +656,7 @@ App::delete('/v1/teams/:teamId/memberships/:inviteId') ->groups(['api', 'teams']) ->label('event', 'teams.memberships.delete') ->label('scope', 'teams.write') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'teams') ->label('sdk.method', 'deleteMembership') ->label('sdk.description', '/docs/references/teams/delete-team-membership.md') diff --git a/app/controllers/api/users.php b/app/controllers/api/users.php index 958dfc1488..b574274d7d 100644 --- a/app/controllers/api/users.php +++ b/app/controllers/api/users.php @@ -23,7 +23,7 @@ App::post('/v1/users') ->groups(['api', 'users']) ->label('event', 'users.create') ->label('scope', 'users.write') - ->label('sdk.platform', [APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_KEY]) ->label('sdk.namespace', 'users') ->label('sdk.method', 'create') ->label('sdk.description', '/docs/references/users/create-user.md') @@ -81,7 +81,7 @@ App::get('/v1/users') ->desc('List Users') ->groups(['api', 'users']) ->label('scope', 'users.read') - ->label('sdk.platform', [APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_KEY]) ->label('sdk.namespace', 'users') ->label('sdk.method', 'list') ->label('sdk.description', '/docs/references/users/list-users.md') @@ -118,7 +118,7 @@ App::get('/v1/users/:userId') ->desc('Get User') ->groups(['api', 'users']) ->label('scope', 'users.read') - ->label('sdk.platform', [APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_KEY]) ->label('sdk.namespace', 'users') ->label('sdk.method', 'get') ->label('sdk.description', '/docs/references/users/get-user.md') @@ -145,7 +145,7 @@ App::get('/v1/users/:userId/prefs') ->desc('Get User Preferences') ->groups(['api', 'users']) ->label('scope', 'users.read') - ->label('sdk.platform', [APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_KEY]) ->label('sdk.namespace', 'users') ->label('sdk.method', 'getPrefs') ->label('sdk.description', '/docs/references/users/get-user-prefs.md') @@ -174,7 +174,7 @@ App::get('/v1/users/:userId/sessions') ->desc('Get User Sessions') ->groups(['api', 'users']) ->label('scope', 'users.read') - ->label('sdk.platform', [APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_KEY]) ->label('sdk.namespace', 'users') ->label('sdk.method', 'getSessions') ->label('sdk.description', '/docs/references/users/get-user-sessions.md') @@ -223,7 +223,7 @@ App::get('/v1/users/:userId/logs') ->desc('Get User Logs') ->groups(['api', 'users']) ->label('scope', 'users.read') - ->label('sdk.platform', [APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_KEY]) ->label('sdk.namespace', 'users') ->label('sdk.method', 'getLogs') ->label('sdk.description', '/docs/references/users/get-user-logs.md') @@ -338,7 +338,7 @@ App::patch('/v1/users/:userId/status') ->groups(['api', 'users']) ->label('event', 'users.update.status') ->label('scope', 'users.write') - ->label('sdk.platform', [APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_KEY]) ->label('sdk.namespace', 'users') ->label('sdk.method', 'updateStatus') ->label('sdk.description', '/docs/references/users/update-user-status.md') @@ -375,7 +375,7 @@ App::patch('/v1/users/:userId/prefs') ->groups(['api', 'users']) ->label('event', 'users.update.prefs') ->label('scope', 'users.write') - ->label('sdk.platform', [APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_KEY]) ->label('sdk.namespace', 'users') ->label('sdk.method', 'updatePrefs') ->label('sdk.description', '/docs/references/users/update-user-prefs.md') @@ -412,7 +412,7 @@ App::delete('/v1/users/:userId/sessions/:sessionId') ->groups(['api', 'users']) ->label('event', 'users.sessions.delete') ->label('scope', 'users.write') - ->label('sdk.platform', [APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_KEY]) ->label('sdk.namespace', 'users') ->label('sdk.method', 'deleteSession') ->label('sdk.description', '/docs/references/users/delete-user-session.md') @@ -457,7 +457,7 @@ App::delete('/v1/users/:userId/sessions') ->groups(['api', 'users']) ->label('event', 'users.sessions.delete') ->label('scope', 'users.write') - ->label('sdk.platform', [APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_KEY]) ->label('sdk.namespace', 'users') ->label('sdk.method', 'deleteSessions') ->label('sdk.description', '/docs/references/users/delete-user-sessions.md') @@ -499,7 +499,7 @@ App::delete('/v1/users/:userId') ->groups(['api', 'users']) ->label('event', 'users.delete') ->label('scope', 'users.write') - ->label('sdk.platform', [APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_KEY]) ->label('sdk.namespace', 'users') ->label('sdk.method', 'deleteUser') ->label('sdk.description', '/docs/references/users/delete-user.md') diff --git a/app/controllers/general.php b/app/controllers/general.php index 18e1ab1bb1..43ccb25937 100644 --- a/app/controllers/general.php +++ b/app/controllers/general.php @@ -41,7 +41,7 @@ App::init(function ($utopia, $request, $response, $console, $project, $user, $lo $route = $utopia->match($request); - if (!empty($route->getLabel('sdk.platform', [])) && empty($project->getId()) && ($route->getLabel('scope', '') !== 'public')) { + if (!empty($route->getLabel('sdk.security', [])) && empty($project->getId()) && ($route->getLabel('scope', '') !== 'public')) { throw new Exception('Missing or unknown project ID', 400); } diff --git a/app/controllers/mock.php b/app/controllers/mock.php index 7e65e2d936..b768c5d516 100644 --- a/app/controllers/mock.php +++ b/app/controllers/mock.php @@ -15,7 +15,7 @@ App::get('/v1/mock/tests/foo') ->desc('Get Foo') ->groups(['mock']) ->label('scope', 'public') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'foo') ->label('sdk.method', 'get') ->label('sdk.description', 'Mock a get request.') @@ -33,7 +33,7 @@ App::post('/v1/mock/tests/foo') ->desc('Post Foo') ->groups(['mock']) ->label('scope', 'public') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'foo') ->label('sdk.method', 'post') ->label('sdk.description', 'Mock a post request.') @@ -51,7 +51,7 @@ App::patch('/v1/mock/tests/foo') ->desc('Patch Foo') ->groups(['mock']) ->label('scope', 'public') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'foo') ->label('sdk.method', 'patch') ->label('sdk.description', 'Mock a patch request.') @@ -69,7 +69,7 @@ App::put('/v1/mock/tests/foo') ->desc('Put Foo') ->groups(['mock']) ->label('scope', 'public') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'foo') ->label('sdk.method', 'put') ->label('sdk.description', 'Mock a put request.') @@ -87,7 +87,7 @@ App::delete('/v1/mock/tests/foo') ->desc('Delete Foo') ->groups(['mock']) ->label('scope', 'public') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'foo') ->label('sdk.method', 'delete') ->label('sdk.description', 'Mock a delete request.') @@ -105,7 +105,7 @@ App::get('/v1/mock/tests/bar') ->desc('Get Bar') ->groups(['mock']) ->label('scope', 'public') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'bar') ->label('sdk.method', 'get') ->label('sdk.description', 'Mock a get request.') @@ -123,7 +123,7 @@ App::post('/v1/mock/tests/bar') ->desc('Post Bar') ->groups(['mock']) ->label('scope', 'public') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'bar') ->label('sdk.method', 'post') ->label('sdk.description', 'Mock a post request.') @@ -141,7 +141,7 @@ App::patch('/v1/mock/tests/bar') ->desc('Patch Bar') ->groups(['mock']) ->label('scope', 'public') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'bar') ->label('sdk.method', 'patch') ->label('sdk.description', 'Mock a patch request.') @@ -159,7 +159,7 @@ App::put('/v1/mock/tests/bar') ->desc('Put Bar') ->groups(['mock']) ->label('scope', 'public') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'bar') ->label('sdk.method', 'put') ->label('sdk.description', 'Mock a put request.') @@ -177,7 +177,7 @@ App::delete('/v1/mock/tests/bar') ->desc('Delete Bar') ->groups(['mock']) ->label('scope', 'public') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'bar') ->label('sdk.method', 'delete') ->label('sdk.description', 'Mock a delete request.') @@ -195,7 +195,7 @@ App::post('/v1/mock/tests/general/upload') ->desc('Upload File') ->groups(['mock']) ->label('scope', 'public') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'general') ->label('sdk.method', 'upload') ->label('sdk.description', 'Mock a file upload request.') @@ -240,7 +240,7 @@ App::get('/v1/mock/tests/general/redirect') ->desc('Redirect') ->groups(['mock']) ->label('scope', 'public') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'general') ->label('sdk.method', 'redirect') ->label('sdk.description', 'Mock a redirect request.') @@ -258,7 +258,7 @@ App::get('/v1/mock/tests/general/redirect/done') ->desc('Redirected') ->groups(['mock']) ->label('scope', 'public') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'general') ->label('sdk.method', 'redirected') ->label('sdk.description', 'Mock a redirected request.') @@ -273,7 +273,7 @@ App::get('/v1/mock/tests/general/set-cookie') ->desc('Set Cookie') ->groups(['mock']) ->label('scope', 'public') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'general') ->label('sdk.method', 'setCookie') ->label('sdk.description', 'Mock a set cookie request.') @@ -292,7 +292,7 @@ App::get('/v1/mock/tests/general/get-cookie') ->desc('Get Cookie') ->groups(['mock']) ->label('scope', 'public') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'general') ->label('sdk.method', 'getCookie') ->label('sdk.description', 'Mock a cookie response.') @@ -313,7 +313,7 @@ App::get('/v1/mock/tests/general/empty') ->desc('Empty Response') ->groups(['mock']) ->label('scope', 'public') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'general') ->label('sdk.method', 'empty') ->label('sdk.description', 'Mock a an empty response.') @@ -331,7 +331,7 @@ App::get('/v1/mock/tests/general/400-error') ->desc('400 Error') ->groups(['mock']) ->label('scope', 'public') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'general') ->label('sdk.method', 'error400') ->label('sdk.description', 'Mock a an 400 failed request.') @@ -347,7 +347,7 @@ App::get('/v1/mock/tests/general/500-error') ->desc('500 Error') ->groups(['mock']) ->label('scope', 'public') - ->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER]) + ->label('sdk.security', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT]) ->label('sdk.namespace', 'general') ->label('sdk.method', 'error500') ->label('sdk.description', 'Mock a an 500 failed request.') diff --git a/app/controllers/web/home.php b/app/controllers/web/home.php index 1a25dc2ee6..b61af738e3 100644 --- a/app/controllers/web/home.php +++ b/app/controllers/web/home.php @@ -246,6 +246,12 @@ App::get('/specs/:format') 'description' => 'Your secret API key', 'in' => 'header', ], + 'JWT' => [ + 'type' => 'apiKey', + 'name' => 'X-Appwrite-JWT', + 'description' => 'Your secret JSON Web Token', + 'in' => 'header', + ], 'Locale' => [ 'type' => 'apiKey', 'name' => 'X-Appwrite-Locale', @@ -266,6 +272,12 @@ App::get('/specs/:format') 'description' => 'Your secret API key', 'in' => 'header', ], + 'JWT' => [ + 'type' => 'apiKey', + 'name' => 'X-Appwrite-JWT', + 'description' => 'Your secret JSON Web Token', + 'in' => 'header', + ], 'Locale' => [ 'type' => 'apiKey', 'name' => 'X-Appwrite-Locale', @@ -281,14 +293,32 @@ App::get('/specs/:format') ], ]; - $security = [ - APP_PLATFORM_CLIENT => ['Project' => []], - APP_PLATFORM_SERVER => ['Project' => [], 'Key' => []], - APP_PLATFORM_CONSOLE => ['Project' => [], 'Key' => []], - ]; - foreach ($utopia->getRoutes() as $key => $method) { foreach ($method as $route) { /** @var \Utopia\Route $route */ + $routeSecurity = $route->getLabel('sdk.security', []); + $sdkPlatofrms = []; + + foreach ($routeSecurity as $value) { + switch ($value) { + case APP_AUTH_TYPE_SESSION: + $sdkPlatofrms[] = APP_PLATFORM_CLIENT; + break; + case APP_AUTH_TYPE_KEY: + $sdkPlatofrms[] = APP_PLATFORM_SERVER; + break; + case APP_AUTH_TYPE_JWT: + $sdkPlatofrms[] = APP_PLATFORM_SERVER; + break; + case APP_AUTH_TYPE_ADMIN: + $sdkPlatofrms[] = APP_PLATFORM_CONSOLE; + break; + } + } + + if(empty($routeSecurity)) { + $sdkPlatofrms[] = APP_PLATFORM_CLIENT; + } + if (!$route->getLabel('docs', true)) { continue; } @@ -305,7 +335,7 @@ App::get('/specs/:format') continue; } - if ($platform !== APP_PLATFORM_CONSOLE && !\in_array($platforms[$platform], $route->getLabel('sdk.platform', []))) { + if ($platform !== APP_PLATFORM_CONSOLE && !\in_array($platforms[$platform], $sdkPlatofrms)) { continue; } @@ -342,11 +372,11 @@ App::get('/specs/:format') switch ($format) { case 'swagger2': - $format = new Swagger2($utopia, $services, $routes, $models, $keys[$platform], $security[$platform]); + $format = new Swagger2($utopia, $services, $routes, $models, $keys[$platform]); break; case 'open-api3': - $format = new OpenAPI3($utopia, $services, $routes, $models, $keys[$platform], $security[$platform]); + $format = new OpenAPI3($utopia, $services, $routes, $models, $keys[$platform]); break; default: diff --git a/app/init.php b/app/init.php index 2aa5fb0206..a774a8f074 100644 --- a/app/init.php +++ b/app/init.php @@ -61,6 +61,11 @@ const DELETE_TYPE_EXECUTIONS = 'executions'; const DELETE_TYPE_AUDIT = 'audit'; const DELETE_TYPE_ABUSE = 'abuse'; const DELETE_TYPE_CERTIFICATES = 'certificates'; +// Auth Types +const APP_AUTH_TYPE_SESSION = 'Session'; +const APP_AUTH_TYPE_JWT = 'JWT'; +const APP_AUTH_TYPE_KEY = 'Key'; +const APP_AUTH_TYPE_ADMIN = 'Admin'; $register = new Registry(); diff --git a/src/Appwrite/Specification/Format.php b/src/Appwrite/Specification/Format.php index cfe2a34a0f..0b801e8f7f 100644 --- a/src/Appwrite/Specification/Format.php +++ b/src/Appwrite/Specification/Format.php @@ -33,11 +33,6 @@ abstract class Format */ protected $keys; - /** - * @var array - */ - protected $security; - /** * @var array */ @@ -62,16 +57,14 @@ abstract class Format * @param Route[] $routes * @param Model[] $models * @param array $keys - * @param array $security */ - public function __construct(App $app, array $services, array $routes, array $models, array $keys, array $security) + public function __construct(App $app, array $services, array $routes, array $models, array $keys) { $this->app = $app; $this->services = $services; $this->routes = $routes; $this->models = $models; $this->keys = $keys; - $this->security = $security; } /** diff --git a/src/Appwrite/Specification/Format/OpenAPI3.php b/src/Appwrite/Specification/Format/OpenAPI3.php index 3c62daf5f7..f28cdd5976 100644 --- a/src/Appwrite/Specification/Format/OpenAPI3.php +++ b/src/Appwrite/Specification/Format/OpenAPI3.php @@ -164,7 +164,16 @@ class OpenAPI3 extends Format } if ((!empty($scope))) { // && 'public' != $scope - $temp['security'][] = $route->getLabel('sdk.security', $this->security); + $securities = ['Project' => []]; + + foreach($route->getLabel('sdk.security', []) as $security) { + if(array_key_exists($security, $this->keys)) { + $securities[$security] = []; + } + } + + $temp['x-appwrite']['auth'] = array_slice($securities, 0, 2); + $temp['security'][] = $securities; } $body = [ diff --git a/src/Appwrite/Specification/Format/Swagger2.php b/src/Appwrite/Specification/Format/Swagger2.php index 4dd0406088..8df08d1d40 100644 --- a/src/Appwrite/Specification/Format/Swagger2.php +++ b/src/Appwrite/Specification/Format/Swagger2.php @@ -162,7 +162,16 @@ class Swagger2 extends Format } if ((!empty($scope))) { // && 'public' != $scope - $temp['security'][] = $route->getLabel('sdk.security', $this->security); + $securities = ['Project' => []]; + + foreach($route->getLabel('sdk.security', []) as $security) { + if(array_key_exists($security, $this->keys)) { + $securities[$security] = []; + } + } + + $temp['x-appwrite']['auth'] = array_slice($securities, 0, 2); + $temp['security'][] = $securities; } $body = [