diff --git a/app/controllers/api/users.php b/app/controllers/api/users.php index 7541487ba0..7fcdffcc8b 100644 --- a/app/controllers/api/users.php +++ b/app/controllers/api/users.php @@ -621,10 +621,11 @@ App::get('/v1/users/usage') ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) ->label('sdk.response.model', Response::MODEL_USAGE_USERS) ->param('range', '30d', new WhiteList(['24h', '7d', '30d', '90d'], true), 'Date range.', true) + ->param('provider', '', new WhiteList(['email', 'anonymous', 'oauth2-google', 'oauth2-apple'], true), 'Provider Name.', true) ->inject('response') ->inject('dbForInternal') ->inject('register') - ->action(function ($range, $response, $dbForInternal) { + ->action(function ($range, $provider, $response, $dbForInternal) { /** @var Appwrite\Utopia\Response $response */ /** @var Utopia\Database\Database $dbForInternal */ @@ -656,6 +657,7 @@ App::get('/v1/users/usage') "users.update", "users.delete", "users.sessions.create", + "users.sessions.$provider.create", "users.sessions.delete" ]; @@ -687,6 +689,7 @@ App::get('/v1/users/usage') 'users.update' => $stats["users.update"], 'users.delete' => $stats["users.delete"], 'sessions.create' => $stats["users.sessions.create"], + 'sessions.provider.create' => $stats["users.sessions.$provider.create"], 'sessions.delete' => $stats["users.sessions.delete"] ]); diff --git a/src/Appwrite/Utopia/Response/Model/UsageUsers.php b/src/Appwrite/Utopia/Response/Model/UsageUsers.php index db8056f5c6..913c4f33fe 100644 --- a/src/Appwrite/Utopia/Response/Model/UsageUsers.php +++ b/src/Appwrite/Utopia/Response/Model/UsageUsers.php @@ -59,6 +59,13 @@ class UsageUsers extends Model 'example' => new stdClass, 'array' => true ]) + ->addRule('sessions.provider.create', [ + 'type' => Response::MODEL_METRIC_LIST, + 'description' => 'Aggregated stats for sessions created for a provider ( email, anonymous or oauth2 ).', + 'default' => null, + 'example' => new stdClass, + 'array' => true + ]) ->addRule('sessions.delete', [ 'type' => Response::MODEL_METRIC_LIST, 'description' => 'Aggregated stats for sessions deleted.',