mirror of
https://github.com/appwrite/appwrite
synced 2026-05-24 01:18:37 +00:00
chore: refactor file tokens with new project structuring
This commit is contained in:
parent
ca7cf765b2
commit
c7611ed382
9 changed files with 122 additions and 61 deletions
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
|
||||
namespace Appwrite\Platform\Modules\Tokens\Http\Tokens\Buckets\Files;
|
||||
namespace Appwrite\Platform\Modules\Storage\Http\Tokens\Buckets\Files;
|
||||
|
||||
use Appwrite\Auth\Auth;
|
||||
use Appwrite\Extend\Exception;
|
||||
|
|
@ -1,10 +1,14 @@
|
|||
<?php
|
||||
|
||||
namespace Appwrite\Platform\Modules\Tokens\Http\Tokens\Buckets\Files;
|
||||
namespace Appwrite\Platform\Modules\Storage\Http\Tokens\Buckets\Files;
|
||||
|
||||
use Appwrite\Auth\Auth;
|
||||
use Appwrite\Event\Event;
|
||||
use Appwrite\Extend\Exception;
|
||||
use Appwrite\SDK\AuthType;
|
||||
use Appwrite\SDK\ContentType;
|
||||
use Appwrite\SDK\Method;
|
||||
use Appwrite\SDK\Response as SDKResponse;
|
||||
use Appwrite\Utopia\Response;
|
||||
use Utopia\Database\Database;
|
||||
use Utopia\Database\Document;
|
||||
|
|
@ -16,7 +20,7 @@ use Utopia\Database\Validator\UID;
|
|||
use Utopia\Platform\Scope\HTTP;
|
||||
use Utopia\Validator\Nullable;
|
||||
|
||||
class CreateFileToken extends Action
|
||||
class Create extends Action
|
||||
{
|
||||
use HTTP;
|
||||
|
||||
|
|
@ -40,13 +44,19 @@ class CreateFileToken extends Action
|
|||
->label('abuse-key', 'ip:{ip},method:{method},url:{url},userId:{userId}')
|
||||
->label('abuse-limit', APP_LIMIT_WRITE_RATE_DEFAULT)
|
||||
->label('abuse-time', APP_LIMIT_WRITE_RATE_PERIOD_DEFAULT)
|
||||
->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT])
|
||||
->label('sdk.namespace', 'tokens')
|
||||
->label('sdk.method', 'createFileToken')
|
||||
->label('sdk.description', '/docs/references/tokens/create_file_token.md')
|
||||
->label('sdk.response.code', Response::STATUS_CODE_CREATED)
|
||||
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
|
||||
->label('sdk.response.model', Response::MODEL_RESOURCE_TOKEN)
|
||||
->label('sdk', new Method(
|
||||
namespace: 'tokens',
|
||||
name: 'createFileToken',
|
||||
description: '',
|
||||
auth: [AuthType::SESSION, AuthType::KEY, AuthType::JWT],
|
||||
responses: [
|
||||
new SDKResponse(
|
||||
code: Response::STATUS_CODE_OK,
|
||||
model: Response::MODEL_RESOURCE_TOKEN,
|
||||
)
|
||||
],
|
||||
contentType: ContentType::JSON
|
||||
))
|
||||
->param('bucketId', '', new UID(), 'Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https://appwrite.io/docs/server/storage#createBucket).')
|
||||
->param('fileId', '', new UID(), 'File unique ID.')
|
||||
->param('expire', null, new Nullable(new DatetimeValidator()), 'Token expiry date', true)
|
||||
|
|
@ -1,8 +1,12 @@
|
|||
<?php
|
||||
|
||||
namespace Appwrite\Platform\Modules\Tokens\Http\Tokens\Buckets\Files;
|
||||
namespace Appwrite\Platform\Modules\Storage\Http\Tokens\Buckets\Files;
|
||||
|
||||
use Appwrite\Extend\Exception as ExtendException;
|
||||
use Appwrite\SDK\AuthType;
|
||||
use Appwrite\SDK\ContentType;
|
||||
use Appwrite\SDK\Method;
|
||||
use Appwrite\SDK\Response as SDKResponse;
|
||||
use Appwrite\Utopia\Database\Validator\Queries\FileTokens;
|
||||
use Appwrite\Utopia\Response;
|
||||
use Exception;
|
||||
|
|
@ -12,7 +16,7 @@ use Utopia\Database\Query;
|
|||
use Utopia\Database\Validator\UID;
|
||||
use Utopia\Platform\Scope\HTTP;
|
||||
|
||||
class ListFileTokens extends Action
|
||||
class XList extends Action
|
||||
{
|
||||
use HTTP;
|
||||
|
||||
|
|
@ -30,13 +34,19 @@ class ListFileTokens extends Action
|
|||
->groups(['api', 'tokens'])
|
||||
->label('scope', 'tokens.read')
|
||||
->label('usage.metric', 'tokens.requests.read')
|
||||
->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT])
|
||||
->label('sdk.namespace', 'tokens')
|
||||
->label('sdk.method', 'list')
|
||||
->label('sdk.description', '/docs/references/storage/list.md')
|
||||
->label('sdk.response.code', Response::STATUS_CODE_OK)
|
||||
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
|
||||
->label('sdk.response.model', Response::MODEL_RESOURCE_TOKEN_LIST)
|
||||
->label('sdk', new Method(
|
||||
namespace: 'tokens',
|
||||
name: 'list',
|
||||
description: '',
|
||||
auth: [AuthType::SESSION, AuthType::KEY, AuthType::JWT],
|
||||
responses: [
|
||||
new SDKResponse(
|
||||
code: Response::STATUS_CODE_OK,
|
||||
model: Response::MODEL_RESOURCE_TOKEN_LIST,
|
||||
)
|
||||
],
|
||||
contentType: ContentType::JSON
|
||||
))
|
||||
->param('bucketId', '', new UID(), 'Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https://appwrite.io/docs/server/storage#createBucket).')
|
||||
->param('fileId', '', new UID(), 'File unique ID.')
|
||||
->param('queries', [], new FileTokens(), 'Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of ' . APP_LIMIT_ARRAY_PARAMS_SIZE . ' queries are allowed, each ' . APP_LIMIT_ARRAY_ELEMENT_SIZE . ' characters long. You may filter on the following attributes: ' . implode(', ', FileTokens::ALLOWED_ATTRIBUTES), true)
|
||||
|
|
@ -1,16 +1,20 @@
|
|||
<?php
|
||||
|
||||
namespace Appwrite\Platform\Modules\Tokens\Http\Tokens;
|
||||
namespace Appwrite\Platform\Modules\Storage\Http\Tokens;
|
||||
|
||||
use Appwrite\Event\Event;
|
||||
use Appwrite\Extend\Exception;
|
||||
use Appwrite\SDK\AuthType;
|
||||
use Appwrite\SDK\ContentType;
|
||||
use Appwrite\SDK\Method;
|
||||
use Appwrite\SDK\Response as SDKResponse;
|
||||
use Appwrite\Utopia\Response;
|
||||
use Utopia\Database\Database;
|
||||
use Utopia\Database\Validator\UID;
|
||||
use Utopia\Platform\Action;
|
||||
use Utopia\Platform\Scope\HTTP;
|
||||
|
||||
class DeleteToken extends Action
|
||||
class Delete extends Action
|
||||
{
|
||||
use HTTP;
|
||||
|
||||
|
|
@ -34,12 +38,19 @@ class DeleteToken extends Action
|
|||
->label('abuse-key', 'ip:{ip},method:{method},url:{url},userId:{userId}')
|
||||
->label('abuse-limit', APP_LIMIT_WRITE_RATE_DEFAULT)
|
||||
->label('abuse-time', APP_LIMIT_WRITE_RATE_PERIOD_DEFAULT)
|
||||
->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT])
|
||||
->label('sdk.namespace', 'tokens')
|
||||
->label('sdk.method', 'delete')
|
||||
->label('sdk.description', '/docs/references/tokens/delete.md')
|
||||
->label('sdk.response.code', Response::STATUS_CODE_NOCONTENT)
|
||||
->label('sdk.response.model', Response::MODEL_NONE)
|
||||
->label('sdk', new Method(
|
||||
namespace: 'tokens',
|
||||
name: 'delete',
|
||||
description: '',
|
||||
auth: [AuthType::SESSION, AuthType::KEY, AuthType::JWT],
|
||||
responses: [
|
||||
new SDKResponse(
|
||||
code: Response::STATUS_CODE_NOCONTENT,
|
||||
model: Response::MODEL_NONE,
|
||||
)
|
||||
],
|
||||
contentType: ContentType::NONE
|
||||
))
|
||||
->param('tokenId', '', new UID(), 'Token ID.')
|
||||
->inject('response')
|
||||
->inject('dbForProject')
|
||||
|
|
@ -1,15 +1,19 @@
|
|||
<?php
|
||||
|
||||
namespace Appwrite\Platform\Modules\Tokens\Http\Tokens;
|
||||
namespace Appwrite\Platform\Modules\Storage\Http\Tokens;
|
||||
|
||||
use Appwrite\Extend\Exception;
|
||||
use Appwrite\SDK\AuthType;
|
||||
use Appwrite\SDK\ContentType;
|
||||
use Appwrite\SDK\Method;
|
||||
use Appwrite\SDK\Response as SDKResponse;
|
||||
use Appwrite\Utopia\Response;
|
||||
use Utopia\Database\Database;
|
||||
use Utopia\Database\Validator\UID;
|
||||
use Utopia\Platform\Action;
|
||||
use Utopia\Platform\Scope\HTTP;
|
||||
|
||||
class GetToken extends Action
|
||||
class Get extends Action
|
||||
{
|
||||
use HTTP;
|
||||
|
||||
|
|
@ -27,13 +31,19 @@ class GetToken extends Action
|
|||
->label('scope', 'tokens.read')
|
||||
->label('usage.metric', 'tokens.{scope}.requests.read')
|
||||
->label('usage.params', ['tokenId:{request.tokenId}'])
|
||||
->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT])
|
||||
->label('sdk.namespace', 'tokens')
|
||||
->label('sdk.method', 'get')
|
||||
->label('sdk.description', '/docs/references/tokens/get.md')
|
||||
->label('sdk.response.code', Response::STATUS_CODE_OK)
|
||||
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
|
||||
->label('sdk.response.model', Response::MODEL_RESOURCE_TOKEN)
|
||||
->label('sdk', new Method(
|
||||
namespace: 'tokens',
|
||||
name: 'get',
|
||||
description: '',
|
||||
auth: [AuthType::SESSION, AuthType::KEY, AuthType::JWT],
|
||||
responses: [
|
||||
new SDKResponse(
|
||||
code: Response::STATUS_CODE_OK,
|
||||
model: Response::MODEL_RESOURCE_TOKEN,
|
||||
)
|
||||
],
|
||||
contentType: ContentType::JSON
|
||||
))
|
||||
->param('tokenId', '', new UID(), 'Token ID.')
|
||||
->inject('response')
|
||||
->inject('dbForProject')
|
||||
|
|
@ -1,9 +1,13 @@
|
|||
<?php
|
||||
|
||||
namespace Appwrite\Platform\Modules\Tokens\Http\Tokens;
|
||||
namespace Appwrite\Platform\Modules\Storage\Http\Tokens\JWT;
|
||||
|
||||
use Ahc\Jwt\JWT;
|
||||
use Appwrite\Extend\Exception;
|
||||
use Appwrite\SDK\AuthType;
|
||||
use Appwrite\SDK\ContentType;
|
||||
use Appwrite\SDK\Method;
|
||||
use Appwrite\SDK\Response as SDKResponse;
|
||||
use Appwrite\Utopia\Response;
|
||||
use Utopia\Database\Database;
|
||||
use Utopia\Database\Document;
|
||||
|
|
@ -12,7 +16,7 @@ use Utopia\Platform\Action;
|
|||
use Utopia\Platform\Scope\HTTP;
|
||||
use Utopia\System\System;
|
||||
|
||||
class GetTokenJWT extends Action
|
||||
class Get extends Action
|
||||
{
|
||||
use HTTP;
|
||||
|
||||
|
|
@ -30,13 +34,19 @@ class GetTokenJWT extends Action
|
|||
->label('scope', 'tokens.read')
|
||||
->label('usage.metric', 'tokens.{scope}.requests.read')
|
||||
->label('usage.params', ['tokenId:{request.tokenId}'])
|
||||
->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT])
|
||||
->label('sdk.namespace', 'tokens')
|
||||
->label('sdk.method', 'getJWT')
|
||||
->label('sdk.description', '/docs/references/storage/get-file-token-jwt.md')
|
||||
->label('sdk.response.code', Response::STATUS_CODE_OK)
|
||||
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
|
||||
->label('sdk.response.model', Response::MODEL_JWT)
|
||||
->label('sdk', new Method(
|
||||
namespace: 'tokens',
|
||||
name: 'getJWT',
|
||||
description: '',
|
||||
auth: [AuthType::SESSION, AuthType::KEY, AuthType::JWT],
|
||||
responses: [
|
||||
new SDKResponse(
|
||||
code: Response::STATUS_CODE_OK,
|
||||
model: Response::MODEL_JWT,
|
||||
)
|
||||
],
|
||||
contentType: ContentType::JSON
|
||||
))
|
||||
->param('tokenId', '', new UID(), 'File token ID.')
|
||||
->inject('response')
|
||||
->inject('dbForProject')
|
||||
|
|
@ -1,10 +1,14 @@
|
|||
<?php
|
||||
|
||||
namespace Appwrite\Platform\Modules\Tokens\Http\Tokens;
|
||||
namespace Appwrite\Platform\Modules\Storage\Http\Tokens;
|
||||
|
||||
use Appwrite\Auth\Auth;
|
||||
use Appwrite\Event\Event;
|
||||
use Appwrite\Extend\Exception;
|
||||
use Appwrite\SDK\AuthType;
|
||||
use Appwrite\SDK\ContentType;
|
||||
use Appwrite\SDK\Method;
|
||||
use Appwrite\SDK\Response as SDKResponse;
|
||||
use Appwrite\Utopia\Response;
|
||||
use Utopia\Database\Database;
|
||||
use Utopia\Database\Helpers\Permission;
|
||||
|
|
@ -17,7 +21,7 @@ use Utopia\Platform\Action;
|
|||
use Utopia\Platform\Scope\HTTP;
|
||||
use Utopia\Validator\Nullable;
|
||||
|
||||
class UpdateToken extends Action
|
||||
class Update extends Action
|
||||
{
|
||||
use HTTP;
|
||||
|
||||
|
|
@ -41,13 +45,19 @@ class UpdateToken extends Action
|
|||
->label('abuse-key', 'ip:{ip},method:{method},url:{url},userId:{userId}')
|
||||
->label('abuse-limit', APP_LIMIT_WRITE_RATE_DEFAULT)
|
||||
->label('abuse-time', APP_LIMIT_WRITE_RATE_PERIOD_DEFAULT)
|
||||
->label('sdk.auth', [APP_AUTH_TYPE_SESSION, APP_AUTH_TYPE_KEY, APP_AUTH_TYPE_JWT])
|
||||
->label('sdk.namespace', 'tokens')
|
||||
->label('sdk.method', 'update')
|
||||
->label('sdk.description', '/docs/references/tokens/update.md')
|
||||
->label('sdk.response.code', Response::STATUS_CODE_OK)
|
||||
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
|
||||
->label('sdk.response.model', Response::MODEL_RESOURCE_TOKEN)
|
||||
->label('sdk', new Method(
|
||||
namespace: 'tokens',
|
||||
name: 'update',
|
||||
description: '',
|
||||
auth: [AuthType::SESSION, AuthType::KEY, AuthType::JWT],
|
||||
responses: [
|
||||
new SDKResponse(
|
||||
code: Response::STATUS_CODE_OK,
|
||||
model: Response::MODEL_RESOURCE_TOKEN,
|
||||
)
|
||||
],
|
||||
contentType: ContentType::JSON
|
||||
))
|
||||
->param('tokenId', '', new UID(), 'Token unique ID.')
|
||||
->param('expire', null, new Nullable(new DatetimeValidator()), 'File token expiry date', true)
|
||||
->param('permissions', null, new Permissions(APP_LIMIT_ARRAY_PARAMS_SIZE, [Database::PERMISSION_READ, Database::PERMISSION_UPDATE, Database::PERMISSION_DELETE, Database::PERMISSION_WRITE]), 'An array of permission string. By default, the current permissions are inherited. [Learn more about permissions](https://appwrite.io/docs/permissions).', true)
|
||||
|
|
@ -2,12 +2,12 @@
|
|||
|
||||
namespace Appwrite\Platform\Modules\Tokens\Services;
|
||||
|
||||
use Appwrite\Platform\Modules\Tokens\Http\Tokens\Buckets\Files\CreateFileToken;
|
||||
use Appwrite\Platform\Modules\Tokens\Http\Tokens\Buckets\Files\ListFileTokens;
|
||||
use Appwrite\Platform\Modules\Tokens\Http\Tokens\DeleteToken;
|
||||
use Appwrite\Platform\Modules\Tokens\Http\Tokens\GetToken;
|
||||
use Appwrite\Platform\Modules\Tokens\Http\Tokens\GetTokenJWT;
|
||||
use Appwrite\Platform\Modules\Tokens\Http\Tokens\UpdateToken;
|
||||
use Appwrite\Platform\Modules\Storage\Http\Tokens\Buckets\Files\Create as CreateFileToken;
|
||||
use Appwrite\Platform\Modules\Storage\Http\Tokens\Buckets\Files\XList as ListFileTokens;
|
||||
use Appwrite\Platform\Modules\Storage\Http\Tokens\Delete as DeleteToken;
|
||||
use Appwrite\Platform\Modules\Storage\Http\Tokens\Get as GetToken;
|
||||
use Appwrite\Platform\Modules\Storage\Http\Tokens\JWT\Get as GetTokenJWT;
|
||||
use Appwrite\Platform\Modules\Storage\Http\Tokens\Update as UpdateToken;
|
||||
use Utopia\Platform\Service;
|
||||
|
||||
class Http extends Service
|
||||
|
|
@ -17,11 +17,11 @@ class Http extends Service
|
|||
$this->type = Service::TYPE_HTTP;
|
||||
$this
|
||||
->addAction(CreateFileToken::getName(), new CreateFileToken())
|
||||
->addAction(DeleteToken::getName(), new DeleteToken())
|
||||
->addAction(GetToken::getName(), new GetToken())
|
||||
->addAction(GetTokenJWT::getName(), new GetTokenJWT())
|
||||
->addAction(ListFileTokens::getName(), new ListFileTokens())
|
||||
->addAction(UpdateToken::getName(), new UpdateToken())
|
||||
->addAction(DeleteToken::getName(), new DeleteToken())
|
||||
;
|
||||
|
||||
}
|
||||
Loading…
Reference in a new issue