mirror of
https://github.com/appwrite/appwrite.git
synced 2026-05-26 13:51:13 +00:00
Merge branch '1.9.x' into fix-param-name-consistency
This commit is contained in:
@@ -59,8 +59,8 @@ $admins = [
|
||||
'oauth2.write',
|
||||
'mocks.read',
|
||||
'mocks.write',
|
||||
'policies.read',
|
||||
'policies.write',
|
||||
'project.policies.read',
|
||||
'project.policies.write',
|
||||
'templates.read',
|
||||
'templates.write',
|
||||
'projects.write',
|
||||
|
||||
@@ -44,11 +44,23 @@ return [
|
||||
"category" => "Project",
|
||||
],
|
||||
"policies.read" => [
|
||||
"description" =>
|
||||
"Access to read project\'s policies. Replaced by \'project.policies.read\' for more granular control",
|
||||
"category" => "Project",
|
||||
'deprecated' => true,
|
||||
],
|
||||
"policies.write" => [
|
||||
"description" =>
|
||||
"Access to update project\'s policies. Replaces by \'project.policies.write\' for more granular control",
|
||||
"category" => "Project",
|
||||
'deprecated' => true,
|
||||
],
|
||||
"project.policies.read" => [
|
||||
"description" =>
|
||||
"Access to read project\'s policies",
|
||||
"category" => "Project",
|
||||
],
|
||||
"policies.write" => [
|
||||
"project.policies.write" => [
|
||||
"description" =>
|
||||
"Access to update project\'s policies",
|
||||
"category" => "Project",
|
||||
|
||||
+1
-1
@@ -93,7 +93,7 @@
|
||||
"chillerlan/php-qrcode": "4.3.*",
|
||||
"adhocore/jwt": "1.1.*",
|
||||
"spomky-labs/otphp": "11.*",
|
||||
"webonyx/graphql-php": "15.31.*",
|
||||
"webonyx/graphql-php": "15.32.*",
|
||||
"league/csv": "9.14.*",
|
||||
"enshrined/svg-sanitize": "0.22.*"
|
||||
},
|
||||
|
||||
@@ -27,7 +27,7 @@ class Get extends Action
|
||||
->setHttpPath('/v1/project/policies/:policyId')
|
||||
->desc('Get project policy')
|
||||
->groups(['api', 'project'])
|
||||
->label('scope', 'policies.read')
|
||||
->label('scope', ['policies.read', 'project.policies.read'])
|
||||
->label('sdk', new Method(
|
||||
namespace: 'project',
|
||||
group: 'policies',
|
||||
|
||||
+1
-1
@@ -31,7 +31,7 @@ class Update extends Action
|
||||
->httpAlias('/v1/projects/:projectId/auth/memberships-privacy')
|
||||
->desc('Update membership privacy policy')
|
||||
->groups(['api', 'project'])
|
||||
->label('scope', 'policies.write')
|
||||
->label('scope', ['policies.write', 'project.policies.write'])
|
||||
->label('event', 'projects.[projectId].policies.[policy].update')
|
||||
->label('audits.event', 'projects.[projectId].policies.[policy].update')
|
||||
->label('audits.resource', 'project/{response.$id}')
|
||||
|
||||
+1
-1
@@ -31,7 +31,7 @@ class Update extends Action
|
||||
->httpAlias('/v1/projects/:projectId/auth/password-dictionary')
|
||||
->desc('Update password dictionary policy')
|
||||
->groups(['api', 'project'])
|
||||
->label('scope', 'policies.write')
|
||||
->label('scope', ['policies.write', 'project.policies.write'])
|
||||
->label('event', 'projects.[projectId].policies.[policy].update')
|
||||
->label('audits.event', 'projects.[projectId].policies.[policy].update')
|
||||
->label('audits.resource', 'project/{response.$id}')
|
||||
|
||||
+1
-1
@@ -32,7 +32,7 @@ class Update extends Action
|
||||
->httpAlias('/v1/projects/:projectId/auth/password-history')
|
||||
->desc('Update password history policy')
|
||||
->groups(['api', 'project'])
|
||||
->label('scope', 'policies.write')
|
||||
->label('scope', ['policies.write', 'project.policies.write'])
|
||||
->label('event', 'projects.[projectId].policies.[policy].update')
|
||||
->label('audits.event', 'projects.[projectId].policies.[policy].update')
|
||||
->label('audits.resource', 'project/{response.$id}')
|
||||
|
||||
+1
-1
@@ -31,7 +31,7 @@ class Update extends Action
|
||||
->httpAlias('/v1/projects/:projectId/auth/personal-data')
|
||||
->desc('Update password personal data policy')
|
||||
->groups(['api', 'project'])
|
||||
->label('scope', 'policies.write')
|
||||
->label('scope', ['policies.write', 'project.policies.write'])
|
||||
->label('event', 'projects.[projectId].policies.[policy].update')
|
||||
->label('audits.event', 'projects.[projectId].policies.[policy].update')
|
||||
->label('audits.resource', 'project/{response.$id}')
|
||||
|
||||
@@ -31,7 +31,7 @@ class Update extends Action
|
||||
->httpAlias('/v1/projects/:projectId/auth/session-alerts')
|
||||
->desc('Update session alert policy')
|
||||
->groups(['api', 'project'])
|
||||
->label('scope', 'policies.write')
|
||||
->label('scope', ['policies.write', 'project.policies.write'])
|
||||
->label('event', 'projects.[projectId].policies.[policy].update')
|
||||
->label('audits.event', 'projects.[projectId].policies.[policy].update')
|
||||
->label('audits.resource', 'project/{response.$id}')
|
||||
|
||||
+1
-1
@@ -31,7 +31,7 @@ class Update extends Action
|
||||
->httpAlias('/v1/projects/:projectId/auth/duration')
|
||||
->desc('Update session duration policy')
|
||||
->groups(['api', 'project'])
|
||||
->label('scope', 'policies.write')
|
||||
->label('scope', ['policies.write', 'project.policies.write'])
|
||||
->label('event', 'projects.[projectId].policies.[policy].update')
|
||||
->label('audits.event', 'projects.[projectId].policies.[policy].update')
|
||||
->label('audits.resource', 'project/{response.$id}')
|
||||
|
||||
+1
-1
@@ -31,7 +31,7 @@ class Update extends Action
|
||||
->httpAlias('/v1/projects/:projectId/auth/session-invalidation')
|
||||
->desc('Update session invalidation policy')
|
||||
->groups(['api', 'project'])
|
||||
->label('scope', 'policies.write')
|
||||
->label('scope', ['policies.write', 'project.policies.write'])
|
||||
->label('event', 'projects.[projectId].policies.[policy].update')
|
||||
->label('audits.event', 'projects.[projectId].policies.[policy].update')
|
||||
->label('audits.resource', 'project/{response.$id}')
|
||||
|
||||
@@ -32,7 +32,7 @@ class Update extends Action
|
||||
->httpAlias('/v1/projects/:projectId/auth/max-sessions')
|
||||
->desc('Update session limit policy')
|
||||
->groups(['api', 'project'])
|
||||
->label('scope', 'policies.write')
|
||||
->label('scope', ['policies.write', 'project.policies.write'])
|
||||
->label('event', 'projects.[projectId].policies.[policy].update')
|
||||
->label('audits.event', 'projects.[projectId].policies.[policy].update')
|
||||
->label('audits.resource', 'project/{response.$id}')
|
||||
|
||||
@@ -32,7 +32,7 @@ class Update extends Action
|
||||
->httpAlias('/v1/projects/:projectId/auth/limit')
|
||||
->desc('Update user limit policy')
|
||||
->groups(['api', 'project'])
|
||||
->label('scope', 'policies.write')
|
||||
->label('scope', ['policies.write', 'project.policies.write'])
|
||||
->label('event', 'projects.[projectId].policies.[policy].update')
|
||||
->label('audits.event', 'projects.[projectId].policies.[policy].update')
|
||||
->label('audits.resource', 'project/{response.$id}')
|
||||
|
||||
@@ -33,7 +33,7 @@ class XList extends Action
|
||||
->setHttpPath('/v1/project/policies')
|
||||
->desc('List project policies')
|
||||
->groups(['api', 'project'])
|
||||
->label('scope', 'policies.read')
|
||||
->label('scope', ['policies.read', 'project.policies.read'])
|
||||
->label('sdk', new Method(
|
||||
namespace: 'project',
|
||||
group: 'policies',
|
||||
|
||||
@@ -163,6 +163,12 @@ class Specs extends Action
|
||||
'description' => 'Your secret dev API key',
|
||||
'in' => 'header',
|
||||
],
|
||||
'Cookie' => [
|
||||
'type' => 'apiKey',
|
||||
'name' => 'Cookie',
|
||||
'description' => 'The user cookie to authenticate with. Used by SDKs that forward an incoming Cookie header in server-side runtimes.',
|
||||
'in' => 'header',
|
||||
],
|
||||
'ImpersonateUserId' => [
|
||||
'type' => 'apiKey',
|
||||
'name' => 'X-Appwrite-Impersonate-User-Id',
|
||||
@@ -219,6 +225,18 @@ class Specs extends Action
|
||||
'description' => 'The user agent string of the client that made the request',
|
||||
'in' => 'header',
|
||||
],
|
||||
'DevKey' => [
|
||||
'type' => 'apiKey',
|
||||
'name' => 'X-Appwrite-Dev-Key',
|
||||
'description' => 'Your secret dev API key',
|
||||
'in' => 'header',
|
||||
],
|
||||
'Cookie' => [
|
||||
'type' => 'apiKey',
|
||||
'name' => 'Cookie',
|
||||
'description' => 'The user cookie to authenticate with. Used by SDKs that forward an incoming Cookie header in server-side runtimes.',
|
||||
'in' => 'header',
|
||||
],
|
||||
'ImpersonateUserId' => [
|
||||
'type' => 'apiKey',
|
||||
'name' => 'X-Appwrite-Impersonate-User-Id',
|
||||
@@ -272,7 +290,19 @@ class Specs extends Action
|
||||
'Cookie' => [
|
||||
'type' => 'apiKey',
|
||||
'name' => 'Cookie',
|
||||
'description' => 'The user cookie to authenticate with',
|
||||
'description' => 'The user cookie to authenticate with. Used by SDKs that forward an incoming Cookie header in server-side runtimes.',
|
||||
'in' => 'header',
|
||||
],
|
||||
'Session' => [
|
||||
'type' => 'apiKey',
|
||||
'name' => 'X-Appwrite-Session',
|
||||
'description' => 'The user session to authenticate with',
|
||||
'in' => 'header',
|
||||
],
|
||||
'DevKey' => [
|
||||
'type' => 'apiKey',
|
||||
'name' => 'X-Appwrite-Dev-Key',
|
||||
'description' => 'Your secret dev API key',
|
||||
'in' => 'header',
|
||||
],
|
||||
'ImpersonateUserId' => [
|
||||
|
||||
@@ -338,6 +338,55 @@ class Migrations extends Action
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array<string>
|
||||
*/
|
||||
protected function getAPIKeyScopes(): array
|
||||
{
|
||||
return [
|
||||
'users.read',
|
||||
'users.write',
|
||||
'teams.read',
|
||||
'teams.write',
|
||||
'buckets.read',
|
||||
'buckets.write',
|
||||
'files.read',
|
||||
'files.write',
|
||||
'functions.read',
|
||||
'functions.write',
|
||||
'sites.read',
|
||||
'sites.write',
|
||||
'tokens.read',
|
||||
'tokens.write',
|
||||
'providers.read',
|
||||
'providers.write',
|
||||
'topics.read',
|
||||
'topics.write',
|
||||
'subscribers.read',
|
||||
'subscribers.write',
|
||||
'messages.read',
|
||||
'messages.write',
|
||||
'targets.read',
|
||||
'targets.write',
|
||||
'webhooks.read',
|
||||
'webhooks.write',
|
||||
'project.read',
|
||||
'project.write',
|
||||
'keys.read',
|
||||
'keys.write',
|
||||
'platforms.read',
|
||||
'platforms.write',
|
||||
'oauth2.read',
|
||||
'oauth2.write',
|
||||
'mocks.read',
|
||||
'mocks.write',
|
||||
'project.policies.read',
|
||||
'project.policies.write',
|
||||
'templates.read',
|
||||
'templates.write',
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws Exception
|
||||
*/
|
||||
@@ -358,48 +407,7 @@ class Migrations extends Action
|
||||
METRIC_NETWORK_INBOUND,
|
||||
METRIC_NETWORK_OUTBOUND,
|
||||
],
|
||||
'scopes' => [
|
||||
'users.read',
|
||||
'users.write',
|
||||
'teams.read',
|
||||
'teams.write',
|
||||
'buckets.read',
|
||||
'buckets.write',
|
||||
'files.read',
|
||||
'files.write',
|
||||
'functions.read',
|
||||
'functions.write',
|
||||
'sites.read',
|
||||
'sites.write',
|
||||
'tokens.read',
|
||||
'tokens.write',
|
||||
'providers.read',
|
||||
'providers.write',
|
||||
'topics.read',
|
||||
'topics.write',
|
||||
'subscribers.read',
|
||||
'subscribers.write',
|
||||
'messages.read',
|
||||
'messages.write',
|
||||
'targets.read',
|
||||
'targets.write',
|
||||
'webhooks.read',
|
||||
'webhooks.write',
|
||||
'project.read',
|
||||
'project.write',
|
||||
'keys.read',
|
||||
'keys.write',
|
||||
'platforms.read',
|
||||
'platforms.write',
|
||||
'oauth2.read',
|
||||
'oauth2.write',
|
||||
'mocks.read',
|
||||
'mocks.write',
|
||||
'policies.read',
|
||||
'policies.write',
|
||||
'templates.read',
|
||||
'templates.write',
|
||||
]
|
||||
'scopes' => $this->getAPIKeyScopes(),
|
||||
]);
|
||||
|
||||
return API_KEY_EPHEMERAL . '_' . $apiKey;
|
||||
|
||||
@@ -173,8 +173,8 @@ trait ProjectCustom
|
||||
'oauth2.write',
|
||||
'mocks.read',
|
||||
'mocks.write',
|
||||
'policies.read',
|
||||
'policies.write',
|
||||
'project.policies.read',
|
||||
'project.policies.write',
|
||||
'templates.read',
|
||||
'templates.write',
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user