Merge branch '1.8.x' into allow-head-requests

This commit is contained in:
Chirag Aggarwal
2025-08-27 16:45:30 +07:00
committed by GitHub
99 changed files with 2069 additions and 610 deletions
+1 -1
View File
@@ -13,7 +13,7 @@ return [
'mastercard' => ['name' => 'Mastercard', 'path' => __DIR__ . '/credit-cards/mastercard.png'],
'naranja' => ['name' => 'Naranja', 'path' => __DIR__ . '/credit-cards/naranja.png'],
'targeta-shopping' => ['name' => 'Tarjeta Shopping', 'path' => __DIR__ . '/credit-cards/tarjeta-shopping.png'],
'union-china-pay' => ['name' => 'Union China Pay', 'path' => __DIR__ . '/credit-cards/union-china-pay.png'],
'unionpay' => ['name' => 'Union Pay', 'path' => __DIR__ . '/credit-cards/unionpay.png'],
'visa' => ['name' => 'Visa', 'path' => __DIR__ . '/credit-cards/visa.png'],
'mir' => ['name' => 'MIR', 'path' => __DIR__ . '/credit-cards/mir.png'],
'maestro' => ['name' => 'Maestro', 'path' => __DIR__ . '/credit-cards/maestro.png'],

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 78 KiB

+1 -1
View File
@@ -226,7 +226,7 @@ return [
[
'key' => 'cli',
'name' => 'Command Line',
'version' => '9.0.1',
'version' => '9.0.2',
'url' => 'https://github.com/appwrite/sdk-for-cli',
'package' => 'https://www.npmjs.com/package/appwrite-cli',
'enabled' => true,
+14 -7
View File
@@ -2622,7 +2622,7 @@
"tags": [
"account"
],
"description": "Sends the user an email with a secret key for creating a session. If the provided user ID has not be registered, a new user will be created. Use the returned user ID and secret and submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The secret sent to the user's email is valid for 15 minutes.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).",
"description": "Sends the user an email with a secret key for creating a session. If the email address has never been used, a **new account is created** using the provided `userId`. Otherwise, if the email address is already attached to an account, the **user ID is ignored**. Then, the user will receive an email with the one-time password. Use the returned user ID and secret and submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The secret sent to the user's email is valid for 15 minutes.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n",
"responses": {
"201": {
"description": "Token",
@@ -2673,7 +2673,7 @@
"properties": {
"userId": {
"type": "string",
"description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.",
"description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the email address has never been used, a new account is created using the provided userId. Otherwise, if the email address is already attached to an account, the user ID is ignored.",
"x-example": "<USER_ID>"
},
"email": {
@@ -2755,7 +2755,7 @@
"properties": {
"userId": {
"type": "string",
"description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.",
"description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the email address has never been used, a new account is created using the provided userId. Otherwise, if the email address is already attached to an account, the user ID is ignored.",
"x-example": "<USER_ID>"
},
"email": {
@@ -2977,7 +2977,7 @@
"properties": {
"userId": {
"type": "string",
"description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.",
"description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the phone number has never been used, a new account is created using the provided userId. Otherwise, if the phone number is already attached to an account, the user ID is ignored.",
"x-example": "<USER_ID>"
},
"phone": {
@@ -3440,7 +3440,7 @@
"parameters": [
{
"name": "code",
"description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, union-china-pay, visa, mir, maestro, rupay.",
"description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, unionpay, visa, mir, maestro, rupay.",
"required": true,
"schema": {
"type": "string",
@@ -3458,7 +3458,7 @@
"mastercard",
"naranja",
"targeta-shopping",
"union-china-pay",
"unionpay",
"visa",
"mir",
"maestro",
@@ -3478,7 +3478,7 @@
"Mastercard",
"Naranja",
"Tarjeta Shopping",
"Union China Pay",
"Union Pay",
"Visa",
"MIR",
"Maestro",
@@ -9847,6 +9847,11 @@
"description": "Function ID.",
"x-example": "5e5ea6g16897e"
},
"deploymentId": {
"type": "string",
"description": "Function's deployment ID used to create the execution.",
"x-example": "5e5ea5c16897e"
},
"trigger": {
"type": "string",
"description": "The trigger that caused the function to execute. Possible values can be: `http`, `schedule`, or `event`.",
@@ -9931,6 +9936,7 @@
"$updatedAt",
"$permissions",
"functionId",
"deploymentId",
"trigger",
"status",
"requestMethod",
@@ -9951,6 +9957,7 @@
"any"
],
"functionId": "5e5ea6g16897e",
"deploymentId": "5e5ea5c16897e",
"trigger": "http",
"status": "processing",
"requestMethod": "GET",
+14 -7
View File
@@ -2631,7 +2631,7 @@
"tags": [
"account"
],
"description": "Sends the user an email with a secret key for creating a session. If the provided user ID has not be registered, a new user will be created. Use the returned user ID and secret and submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The secret sent to the user's email is valid for 15 minutes.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).",
"description": "Sends the user an email with a secret key for creating a session. If the email address has never been used, a **new account is created** using the provided `userId`. Otherwise, if the email address is already attached to an account, the **user ID is ignored**. Then, the user will receive an email with the one-time password. Use the returned user ID and secret and submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The secret sent to the user's email is valid for 15 minutes.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n",
"responses": {
"201": {
"description": "Token",
@@ -2682,7 +2682,7 @@
"properties": {
"userId": {
"type": "string",
"description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.",
"description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the email address has never been used, a new account is created using the provided userId. Otherwise, if the email address is already attached to an account, the user ID is ignored.",
"x-example": "<USER_ID>"
},
"email": {
@@ -2764,7 +2764,7 @@
"properties": {
"userId": {
"type": "string",
"description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.",
"description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the email address has never been used, a new account is created using the provided userId. Otherwise, if the email address is already attached to an account, the user ID is ignored.",
"x-example": "<USER_ID>"
},
"email": {
@@ -2986,7 +2986,7 @@
"properties": {
"userId": {
"type": "string",
"description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.",
"description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the phone number has never been used, a new account is created using the provided userId. Otherwise, if the phone number is already attached to an account, the user ID is ignored.",
"x-example": "<USER_ID>"
},
"phone": {
@@ -3445,7 +3445,7 @@
"parameters": [
{
"name": "code",
"description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, union-china-pay, visa, mir, maestro, rupay.",
"description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, unionpay, visa, mir, maestro, rupay.",
"required": true,
"schema": {
"type": "string",
@@ -3463,7 +3463,7 @@
"mastercard",
"naranja",
"targeta-shopping",
"union-china-pay",
"unionpay",
"visa",
"mir",
"maestro",
@@ -3483,7 +3483,7 @@
"Mastercard",
"Naranja",
"Tarjeta Shopping",
"Union China Pay",
"Union Pay",
"Visa",
"MIR",
"Maestro",
@@ -41133,6 +41133,11 @@
"description": "Function ID.",
"x-example": "5e5ea6g16897e"
},
"deploymentId": {
"type": "string",
"description": "Function's deployment ID used to create the execution.",
"x-example": "5e5ea5c16897e"
},
"trigger": {
"type": "string",
"description": "The trigger that caused the function to execute. Possible values can be: `http`, `schedule`, or `event`.",
@@ -41217,6 +41222,7 @@
"$updatedAt",
"$permissions",
"functionId",
"deploymentId",
"trigger",
"status",
"requestMethod",
@@ -41237,6 +41243,7 @@
"any"
],
"functionId": "5e5ea6g16897e",
"deploymentId": "5e5ea5c16897e",
"trigger": "http",
"status": "processing",
"requestMethod": "GET",
+14 -7
View File
@@ -2303,7 +2303,7 @@
"tags": [
"account"
],
"description": "Sends the user an email with a secret key for creating a session. If the provided user ID has not be registered, a new user will be created. Use the returned user ID and secret and submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The secret sent to the user's email is valid for 15 minutes.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).",
"description": "Sends the user an email with a secret key for creating a session. If the email address has never been used, a **new account is created** using the provided `userId`. Otherwise, if the email address is already attached to an account, the **user ID is ignored**. Then, the user will receive an email with the one-time password. Use the returned user ID and secret and submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The secret sent to the user's email is valid for 15 minutes.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n",
"responses": {
"201": {
"description": "Token",
@@ -2354,7 +2354,7 @@
"properties": {
"userId": {
"type": "string",
"description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.",
"description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the email address has never been used, a new account is created using the provided userId. Otherwise, if the email address is already attached to an account, the user ID is ignored.",
"x-example": "<USER_ID>"
},
"email": {
@@ -2436,7 +2436,7 @@
"properties": {
"userId": {
"type": "string",
"description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.",
"description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the email address has never been used, a new account is created using the provided userId. Otherwise, if the email address is already attached to an account, the user ID is ignored.",
"x-example": "<USER_ID>"
},
"email": {
@@ -2658,7 +2658,7 @@
"properties": {
"userId": {
"type": "string",
"description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.",
"description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the phone number has never been used, a new account is created using the provided userId. Otherwise, if the phone number is already attached to an account, the user ID is ignored.",
"x-example": "<USER_ID>"
},
"phone": {
@@ -3129,7 +3129,7 @@
"parameters": [
{
"name": "code",
"description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, union-china-pay, visa, mir, maestro, rupay.",
"description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, unionpay, visa, mir, maestro, rupay.",
"required": true,
"schema": {
"type": "string",
@@ -3147,7 +3147,7 @@
"mastercard",
"naranja",
"targeta-shopping",
"union-china-pay",
"unionpay",
"visa",
"mir",
"maestro",
@@ -3167,7 +3167,7 @@
"Mastercard",
"Naranja",
"Tarjeta Shopping",
"Union China Pay",
"Union Pay",
"Visa",
"MIR",
"Maestro",
@@ -30230,6 +30230,11 @@
"description": "Function ID.",
"x-example": "5e5ea6g16897e"
},
"deploymentId": {
"type": "string",
"description": "Function's deployment ID used to create the execution.",
"x-example": "5e5ea5c16897e"
},
"trigger": {
"type": "string",
"description": "The trigger that caused the function to execute. Possible values can be: `http`, `schedule`, or `event`.",
@@ -30314,6 +30319,7 @@
"$updatedAt",
"$permissions",
"functionId",
"deploymentId",
"trigger",
"status",
"requestMethod",
@@ -30334,6 +30340,7 @@
"any"
],
"functionId": "5e5ea6g16897e",
"deploymentId": "5e5ea5c16897e",
"trigger": "http",
"status": "processing",
"requestMethod": "GET",
+35 -11
View File
@@ -3908,7 +3908,7 @@
"parameters": [
{
"name": "code",
"description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, union-china-pay, visa, mir, maestro, rupay.",
"description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, unionpay, visa, mir, maestro, rupay.",
"required": true,
"schema": {
"type": "string",
@@ -3926,7 +3926,7 @@
"mastercard",
"naranja",
"targeta-shopping",
"union-china-pay",
"unionpay",
"visa",
"mir",
"maestro",
@@ -3946,7 +3946,7 @@
"Mastercard",
"Naranja",
"Tarjeta Shopping",
"Union China Pay",
"Union Pay",
"Visa",
"MIR",
"Maestro",
@@ -7499,7 +7499,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "rows.read",
"scope": [
"rows.read",
"documents.read"
],
"platforms": [
"client",
"server",
@@ -7584,7 +7587,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server",
@@ -7726,7 +7732,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "rows.read",
"scope": [
"rows.read",
"documents.read"
],
"platforms": [
"client",
"server",
@@ -7821,7 +7830,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server",
@@ -7957,7 +7969,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server",
@@ -8056,7 +8071,10 @@
"rate-limit": 60,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server",
@@ -8140,7 +8158,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server",
@@ -8255,7 +8276,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server",
+195 -51
View File
@@ -3913,7 +3913,7 @@
"parameters": [
{
"name": "code",
"description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, union-china-pay, visa, mir, maestro, rupay.",
"description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, unionpay, visa, mir, maestro, rupay.",
"required": true,
"schema": {
"type": "string",
@@ -3931,7 +3931,7 @@
"mastercard",
"naranja",
"targeta-shopping",
"union-china-pay",
"unionpay",
"visa",
"mir",
"maestro",
@@ -3951,7 +3951,7 @@
"Mastercard",
"Naranja",
"Tarjeta Shopping",
"Union China Pay",
"Union Pay",
"Visa",
"MIR",
"Maestro",
@@ -32162,7 +32162,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"console"
],
@@ -32452,7 +32455,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"server"
],
@@ -32535,7 +32541,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -32639,7 +32648,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"server"
],
@@ -32708,7 +32720,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -32807,7 +32822,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -32878,7 +32896,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"server"
],
@@ -32962,7 +32983,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -33068,7 +33092,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -33179,7 +33206,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -33285,7 +33315,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -33396,7 +33429,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -33502,7 +33538,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -33613,7 +33652,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -33728,7 +33770,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -33848,7 +33893,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -33964,7 +34012,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -34085,7 +34136,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -34201,7 +34255,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -34322,7 +34379,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -34428,7 +34488,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -34539,7 +34602,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -34670,7 +34736,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -34787,7 +34856,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -34903,7 +34975,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -35009,7 +35084,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -35151,7 +35229,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"server"
],
@@ -35222,7 +35303,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -35302,7 +35386,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -35410,7 +35497,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"server"
],
@@ -35492,7 +35582,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -35620,7 +35713,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"server"
],
@@ -35691,7 +35787,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -35771,7 +35870,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"console"
],
@@ -35854,7 +35956,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "rows.read",
"scope": [
"rows.read",
"documents.read"
],
"platforms": [
"client",
"server",
@@ -35939,7 +36044,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server",
@@ -36105,7 +36213,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"console",
"server"
@@ -36225,7 +36336,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"console",
"server"
@@ -36319,7 +36433,10 @@
"rate-limit": 60,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"console",
"server"
@@ -36410,7 +36527,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "rows.read",
"scope": [
"rows.read",
"documents.read"
],
"platforms": [
"client",
"server",
@@ -36505,7 +36625,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server",
@@ -36641,7 +36764,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server",
@@ -36740,7 +36866,10 @@
"rate-limit": 60,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server",
@@ -36824,7 +36953,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "rows.read",
"scope": [
"rows.read",
"documents.read"
],
"platforms": [
"console"
],
@@ -36917,7 +37049,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server",
@@ -37032,7 +37167,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server",
@@ -37147,7 +37285,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"console"
],
@@ -37239,7 +37380,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"console"
],
+175 -46
View File
@@ -3613,7 +3613,7 @@
"parameters": [
{
"name": "code",
"description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, union-china-pay, visa, mir, maestro, rupay.",
"description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, unionpay, visa, mir, maestro, rupay.",
"required": true,
"schema": {
"type": "string",
@@ -3631,7 +3631,7 @@
"mastercard",
"naranja",
"targeta-shopping",
"union-china-pay",
"unionpay",
"visa",
"mir",
"maestro",
@@ -3651,7 +3651,7 @@
"Mastercard",
"Naranja",
"Tarjeta Shopping",
"Union China Pay",
"Union Pay",
"Visa",
"MIR",
"Maestro",
@@ -22862,7 +22862,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"server"
],
@@ -22946,7 +22949,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -23051,7 +23057,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"server"
],
@@ -23121,7 +23130,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -23221,7 +23233,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -23293,7 +23308,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"server"
],
@@ -23378,7 +23396,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -23485,7 +23506,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -23597,7 +23621,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -23704,7 +23731,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -23816,7 +23846,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -23923,7 +23956,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -24035,7 +24071,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -24151,7 +24190,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -24272,7 +24314,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -24389,7 +24434,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -24511,7 +24559,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -24628,7 +24679,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -24750,7 +24804,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -24857,7 +24914,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -24969,7 +25029,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -25101,7 +25164,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -25219,7 +25285,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -25336,7 +25405,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -25443,7 +25515,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -25586,7 +25661,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"server"
],
@@ -25658,7 +25736,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -25739,7 +25820,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -25848,7 +25932,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"server"
],
@@ -25931,7 +26018,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -26060,7 +26150,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"server"
],
@@ -26132,7 +26225,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -26213,7 +26309,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "rows.read",
"scope": [
"rows.read",
"documents.read"
],
"platforms": [
"client",
"server",
@@ -26300,7 +26399,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server",
@@ -26470,7 +26572,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"console",
"server"
@@ -26592,7 +26697,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"console",
"server"
@@ -26687,7 +26795,10 @@
"rate-limit": 60,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"console",
"server"
@@ -26779,7 +26890,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "rows.read",
"scope": [
"rows.read",
"documents.read"
],
"platforms": [
"client",
"server",
@@ -26876,7 +26990,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server",
@@ -27015,7 +27132,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server",
@@ -27116,7 +27236,10 @@
"rate-limit": 60,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server",
@@ -27202,7 +27325,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server",
@@ -27319,7 +27445,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server",
+35 -11
View File
@@ -3908,7 +3908,7 @@
"parameters": [
{
"name": "code",
"description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, union-china-pay, visa, mir, maestro, rupay.",
"description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, unionpay, visa, mir, maestro, rupay.",
"required": true,
"schema": {
"type": "string",
@@ -3926,7 +3926,7 @@
"mastercard",
"naranja",
"targeta-shopping",
"union-china-pay",
"unionpay",
"visa",
"mir",
"maestro",
@@ -3946,7 +3946,7 @@
"Mastercard",
"Naranja",
"Tarjeta Shopping",
"Union China Pay",
"Union Pay",
"Visa",
"MIR",
"Maestro",
@@ -7499,7 +7499,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "rows.read",
"scope": [
"rows.read",
"documents.read"
],
"platforms": [
"client",
"server",
@@ -7584,7 +7587,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server",
@@ -7726,7 +7732,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "rows.read",
"scope": [
"rows.read",
"documents.read"
],
"platforms": [
"client",
"server",
@@ -7821,7 +7830,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server",
@@ -7957,7 +7969,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server",
@@ -8056,7 +8071,10 @@
"rate-limit": 60,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server",
@@ -8140,7 +8158,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server",
@@ -8255,7 +8276,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server",
+195 -51
View File
@@ -3913,7 +3913,7 @@
"parameters": [
{
"name": "code",
"description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, union-china-pay, visa, mir, maestro, rupay.",
"description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, unionpay, visa, mir, maestro, rupay.",
"required": true,
"schema": {
"type": "string",
@@ -3931,7 +3931,7 @@
"mastercard",
"naranja",
"targeta-shopping",
"union-china-pay",
"unionpay",
"visa",
"mir",
"maestro",
@@ -3951,7 +3951,7 @@
"Mastercard",
"Naranja",
"Tarjeta Shopping",
"Union China Pay",
"Union Pay",
"Visa",
"MIR",
"Maestro",
@@ -32162,7 +32162,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"console"
],
@@ -32452,7 +32455,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"server"
],
@@ -32535,7 +32541,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -32639,7 +32648,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"server"
],
@@ -32708,7 +32720,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -32807,7 +32822,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -32878,7 +32896,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"server"
],
@@ -32962,7 +32983,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -33068,7 +33092,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -33179,7 +33206,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -33285,7 +33315,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -33396,7 +33429,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -33502,7 +33538,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -33613,7 +33652,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -33728,7 +33770,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -33848,7 +33893,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -33964,7 +34012,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -34085,7 +34136,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -34201,7 +34255,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -34322,7 +34379,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -34428,7 +34488,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -34539,7 +34602,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -34670,7 +34736,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -34787,7 +34856,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -34903,7 +34975,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -35009,7 +35084,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -35151,7 +35229,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"server"
],
@@ -35222,7 +35303,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -35302,7 +35386,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -35410,7 +35497,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"server"
],
@@ -35492,7 +35582,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -35620,7 +35713,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"server"
],
@@ -35691,7 +35787,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -35771,7 +35870,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"console"
],
@@ -35854,7 +35956,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "rows.read",
"scope": [
"rows.read",
"documents.read"
],
"platforms": [
"client",
"server",
@@ -35939,7 +36044,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server",
@@ -36105,7 +36213,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"console",
"server"
@@ -36225,7 +36336,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"console",
"server"
@@ -36319,7 +36433,10 @@
"rate-limit": 60,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"console",
"server"
@@ -36410,7 +36527,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "rows.read",
"scope": [
"rows.read",
"documents.read"
],
"platforms": [
"client",
"server",
@@ -36505,7 +36625,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server",
@@ -36641,7 +36764,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server",
@@ -36740,7 +36866,10 @@
"rate-limit": 60,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server",
@@ -36824,7 +36953,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "rows.read",
"scope": [
"rows.read",
"documents.read"
],
"platforms": [
"console"
],
@@ -36917,7 +37049,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server",
@@ -37032,7 +37167,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server",
@@ -37147,7 +37285,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"console"
],
@@ -37239,7 +37380,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"console"
],
+175 -46
View File
@@ -3613,7 +3613,7 @@
"parameters": [
{
"name": "code",
"description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, union-china-pay, visa, mir, maestro, rupay.",
"description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, unionpay, visa, mir, maestro, rupay.",
"required": true,
"schema": {
"type": "string",
@@ -3631,7 +3631,7 @@
"mastercard",
"naranja",
"targeta-shopping",
"union-china-pay",
"unionpay",
"visa",
"mir",
"maestro",
@@ -3651,7 +3651,7 @@
"Mastercard",
"Naranja",
"Tarjeta Shopping",
"Union China Pay",
"Union Pay",
"Visa",
"MIR",
"Maestro",
@@ -22862,7 +22862,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"server"
],
@@ -22946,7 +22949,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -23051,7 +23057,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"server"
],
@@ -23121,7 +23130,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -23221,7 +23233,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -23293,7 +23308,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"server"
],
@@ -23378,7 +23396,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -23485,7 +23506,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -23597,7 +23621,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -23704,7 +23731,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -23816,7 +23846,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -23923,7 +23956,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -24035,7 +24071,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -24151,7 +24190,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -24272,7 +24314,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -24389,7 +24434,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -24511,7 +24559,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -24628,7 +24679,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -24750,7 +24804,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -24857,7 +24914,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -24969,7 +25029,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -25101,7 +25164,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -25219,7 +25285,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -25336,7 +25405,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -25443,7 +25515,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -25586,7 +25661,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"server"
],
@@ -25658,7 +25736,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -25739,7 +25820,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -25848,7 +25932,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"server"
],
@@ -25931,7 +26018,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -26060,7 +26150,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"server"
],
@@ -26132,7 +26225,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -26213,7 +26309,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "rows.read",
"scope": [
"rows.read",
"documents.read"
],
"platforms": [
"client",
"server",
@@ -26300,7 +26399,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server",
@@ -26470,7 +26572,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"console",
"server"
@@ -26592,7 +26697,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"console",
"server"
@@ -26687,7 +26795,10 @@
"rate-limit": 60,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"console",
"server"
@@ -26779,7 +26890,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "rows.read",
"scope": [
"rows.read",
"documents.read"
],
"platforms": [
"client",
"server",
@@ -26876,7 +26990,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server",
@@ -27015,7 +27132,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server",
@@ -27116,7 +27236,10 @@
"rate-limit": 60,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server",
@@ -27202,7 +27325,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server",
@@ -27319,7 +27445,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server",
+14 -7
View File
@@ -2751,7 +2751,7 @@
"tags": [
"account"
],
"description": "Sends the user an email with a secret key for creating a session. If the provided user ID has not be registered, a new user will be created. Use the returned user ID and secret and submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The secret sent to the user's email is valid for 15 minutes.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).",
"description": "Sends the user an email with a secret key for creating a session. If the email address has never been used, a **new account is created** using the provided `userId`. Otherwise, if the email address is already attached to an account, the **user ID is ignored**. Then, the user will receive an email with the one-time password. Use the returned user ID and secret and submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The secret sent to the user's email is valid for 15 minutes.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n",
"responses": {
"201": {
"description": "Token",
@@ -2799,7 +2799,7 @@
"properties": {
"userId": {
"type": "string",
"description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.",
"description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the email address has never been used, a new account is created using the provided userId. Otherwise, if the email address is already attached to an account, the user ID is ignored.",
"default": null,
"x-example": "<USER_ID>"
},
@@ -2886,7 +2886,7 @@
"properties": {
"userId": {
"type": "string",
"description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.",
"description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the email address has never been used, a new account is created using the provided userId. Otherwise, if the email address is already attached to an account, the user ID is ignored.",
"default": null,
"x-example": "<USER_ID>"
},
@@ -3111,7 +3111,7 @@
"properties": {
"userId": {
"type": "string",
"description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.",
"description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the phone number has never been used, a new account is created using the provided userId. Otherwise, if the phone number is already attached to an account, the user ID is ignored.",
"default": null,
"x-example": "<USER_ID>"
},
@@ -3592,7 +3592,7 @@
"parameters": [
{
"name": "code",
"description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, union-china-pay, visa, mir, maestro, rupay.",
"description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, unionpay, visa, mir, maestro, rupay.",
"required": true,
"type": "string",
"x-example": "amex",
@@ -3609,7 +3609,7 @@
"mastercard",
"naranja",
"targeta-shopping",
"union-china-pay",
"unionpay",
"visa",
"mir",
"maestro",
@@ -3629,7 +3629,7 @@
"Mastercard",
"Naranja",
"Tarjeta Shopping",
"Union China Pay",
"Union Pay",
"Visa",
"MIR",
"Maestro",
@@ -9885,6 +9885,11 @@
"description": "Function ID.",
"x-example": "5e5ea6g16897e"
},
"deploymentId": {
"type": "string",
"description": "Function's deployment ID used to create the execution.",
"x-example": "5e5ea5c16897e"
},
"trigger": {
"type": "string",
"description": "The trigger that caused the function to execute. Possible values can be: `http`, `schedule`, or `event`.",
@@ -9971,6 +9976,7 @@
"$updatedAt",
"$permissions",
"functionId",
"deploymentId",
"trigger",
"status",
"requestMethod",
@@ -9991,6 +9997,7 @@
"any"
],
"functionId": "5e5ea6g16897e",
"deploymentId": "5e5ea5c16897e",
"trigger": "http",
"status": "processing",
"requestMethod": "GET",
+14 -7
View File
@@ -2770,7 +2770,7 @@
"tags": [
"account"
],
"description": "Sends the user an email with a secret key for creating a session. If the provided user ID has not be registered, a new user will be created. Use the returned user ID and secret and submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The secret sent to the user's email is valid for 15 minutes.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).",
"description": "Sends the user an email with a secret key for creating a session. If the email address has never been used, a **new account is created** using the provided `userId`. Otherwise, if the email address is already attached to an account, the **user ID is ignored**. Then, the user will receive an email with the one-time password. Use the returned user ID and secret and submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The secret sent to the user's email is valid for 15 minutes.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n",
"responses": {
"201": {
"description": "Token",
@@ -2818,7 +2818,7 @@
"properties": {
"userId": {
"type": "string",
"description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.",
"description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the email address has never been used, a new account is created using the provided userId. Otherwise, if the email address is already attached to an account, the user ID is ignored.",
"default": null,
"x-example": "<USER_ID>"
},
@@ -2905,7 +2905,7 @@
"properties": {
"userId": {
"type": "string",
"description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.",
"description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the email address has never been used, a new account is created using the provided userId. Otherwise, if the email address is already attached to an account, the user ID is ignored.",
"default": null,
"x-example": "<USER_ID>"
},
@@ -3130,7 +3130,7 @@
"properties": {
"userId": {
"type": "string",
"description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.",
"description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the phone number has never been used, a new account is created using the provided userId. Otherwise, if the phone number is already attached to an account, the user ID is ignored.",
"default": null,
"x-example": "<USER_ID>"
},
@@ -3607,7 +3607,7 @@
"parameters": [
{
"name": "code",
"description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, union-china-pay, visa, mir, maestro, rupay.",
"description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, unionpay, visa, mir, maestro, rupay.",
"required": true,
"type": "string",
"x-example": "amex",
@@ -3624,7 +3624,7 @@
"mastercard",
"naranja",
"targeta-shopping",
"union-china-pay",
"unionpay",
"visa",
"mir",
"maestro",
@@ -3644,7 +3644,7 @@
"Mastercard",
"Naranja",
"Tarjeta Shopping",
"Union China Pay",
"Union Pay",
"Visa",
"MIR",
"Maestro",
@@ -41300,6 +41300,11 @@
"description": "Function ID.",
"x-example": "5e5ea6g16897e"
},
"deploymentId": {
"type": "string",
"description": "Function's deployment ID used to create the execution.",
"x-example": "5e5ea5c16897e"
},
"trigger": {
"type": "string",
"description": "The trigger that caused the function to execute. Possible values can be: `http`, `schedule`, or `event`.",
@@ -41386,6 +41391,7 @@
"$updatedAt",
"$permissions",
"functionId",
"deploymentId",
"trigger",
"status",
"requestMethod",
@@ -41406,6 +41412,7 @@
"any"
],
"functionId": "5e5ea6g16897e",
"deploymentId": "5e5ea5c16897e",
"trigger": "http",
"status": "processing",
"requestMethod": "GET",
+14 -7
View File
@@ -2438,7 +2438,7 @@
"tags": [
"account"
],
"description": "Sends the user an email with a secret key for creating a session. If the provided user ID has not be registered, a new user will be created. Use the returned user ID and secret and submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The secret sent to the user's email is valid for 15 minutes.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).",
"description": "Sends the user an email with a secret key for creating a session. If the email address has never been used, a **new account is created** using the provided `userId`. Otherwise, if the email address is already attached to an account, the **user ID is ignored**. Then, the user will receive an email with the one-time password. Use the returned user ID and secret and submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The secret sent to the user's email is valid for 15 minutes.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n",
"responses": {
"201": {
"description": "Token",
@@ -2486,7 +2486,7 @@
"properties": {
"userId": {
"type": "string",
"description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.",
"description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the email address has never been used, a new account is created using the provided userId. Otherwise, if the email address is already attached to an account, the user ID is ignored.",
"default": null,
"x-example": "<USER_ID>"
},
@@ -2573,7 +2573,7 @@
"properties": {
"userId": {
"type": "string",
"description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.",
"description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the email address has never been used, a new account is created using the provided userId. Otherwise, if the email address is already attached to an account, the user ID is ignored.",
"default": null,
"x-example": "<USER_ID>"
},
@@ -2798,7 +2798,7 @@
"properties": {
"userId": {
"type": "string",
"description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.",
"description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the phone number has never been used, a new account is created using the provided userId. Otherwise, if the phone number is already attached to an account, the user ID is ignored.",
"default": null,
"x-example": "<USER_ID>"
},
@@ -3287,7 +3287,7 @@
"parameters": [
{
"name": "code",
"description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, union-china-pay, visa, mir, maestro, rupay.",
"description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, unionpay, visa, mir, maestro, rupay.",
"required": true,
"type": "string",
"x-example": "amex",
@@ -3304,7 +3304,7 @@
"mastercard",
"naranja",
"targeta-shopping",
"union-china-pay",
"unionpay",
"visa",
"mir",
"maestro",
@@ -3324,7 +3324,7 @@
"Mastercard",
"Naranja",
"Tarjeta Shopping",
"Union China Pay",
"Union Pay",
"Visa",
"MIR",
"Maestro",
@@ -30460,6 +30460,11 @@
"description": "Function ID.",
"x-example": "5e5ea6g16897e"
},
"deploymentId": {
"type": "string",
"description": "Function's deployment ID used to create the execution.",
"x-example": "5e5ea5c16897e"
},
"trigger": {
"type": "string",
"description": "The trigger that caused the function to execute. Possible values can be: `http`, `schedule`, or `event`.",
@@ -30546,6 +30551,7 @@
"$updatedAt",
"$permissions",
"functionId",
"deploymentId",
"trigger",
"status",
"requestMethod",
@@ -30566,6 +30572,7 @@
"any"
],
"functionId": "5e5ea6g16897e",
"deploymentId": "5e5ea5c16897e",
"trigger": "http",
"status": "processing",
"requestMethod": "GET",
+35 -11
View File
@@ -4060,7 +4060,7 @@
"parameters": [
{
"name": "code",
"description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, union-china-pay, visa, mir, maestro, rupay.",
"description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, unionpay, visa, mir, maestro, rupay.",
"required": true,
"type": "string",
"x-example": "amex",
@@ -4077,7 +4077,7 @@
"mastercard",
"naranja",
"targeta-shopping",
"union-china-pay",
"unionpay",
"visa",
"mir",
"maestro",
@@ -4097,7 +4097,7 @@
"Mastercard",
"Naranja",
"Tarjeta Shopping",
"Union China Pay",
"Union Pay",
"Visa",
"MIR",
"Maestro",
@@ -7581,7 +7581,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "rows.read",
"scope": [
"rows.read",
"documents.read"
],
"platforms": [
"client",
"server"
@@ -7662,7 +7665,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server"
@@ -7801,7 +7807,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "rows.read",
"scope": [
"rows.read",
"documents.read"
],
"platforms": [
"client",
"server"
@@ -7890,7 +7899,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server"
@@ -8021,7 +8033,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server"
@@ -8117,7 +8132,10 @@
"rate-limit": 60,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server"
@@ -8196,7 +8214,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server",
@@ -8304,7 +8325,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server",
+195 -51
View File
@@ -4075,7 +4075,7 @@
"parameters": [
{
"name": "code",
"description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, union-china-pay, visa, mir, maestro, rupay.",
"description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, unionpay, visa, mir, maestro, rupay.",
"required": true,
"type": "string",
"x-example": "amex",
@@ -4092,7 +4092,7 @@
"mastercard",
"naranja",
"targeta-shopping",
"union-china-pay",
"unionpay",
"visa",
"mir",
"maestro",
@@ -4112,7 +4112,7 @@
"Mastercard",
"Naranja",
"Tarjeta Shopping",
"Union China Pay",
"Union Pay",
"Visa",
"MIR",
"Maestro",
@@ -32346,7 +32346,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"console"
],
@@ -32634,7 +32637,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"server"
],
@@ -32714,7 +32720,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -32819,7 +32828,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"server"
],
@@ -32886,7 +32898,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -32987,7 +33002,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -33054,7 +33072,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"server"
],
@@ -33135,7 +33156,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -33241,7 +33265,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -33349,7 +33376,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -33455,7 +33485,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -33563,7 +33596,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -33669,7 +33705,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -33777,7 +33816,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -33893,7 +33935,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -34011,7 +34056,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -34129,7 +34177,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -34249,7 +34300,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -34367,7 +34421,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -34487,7 +34544,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -34593,7 +34653,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -34701,7 +34764,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -34834,7 +34900,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -34953,7 +35022,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -35067,7 +35139,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -35173,7 +35248,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -35310,7 +35388,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"server"
],
@@ -35379,7 +35460,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -35455,7 +35539,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -35557,7 +35644,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"server"
],
@@ -35636,7 +35726,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -35763,7 +35856,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"server"
],
@@ -35832,7 +35928,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -35906,7 +36005,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"console"
],
@@ -35984,7 +36086,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "rows.read",
"scope": [
"rows.read",
"documents.read"
],
"platforms": [
"client",
"server"
@@ -36065,7 +36170,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server"
@@ -36230,7 +36338,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"console",
"server"
@@ -36347,7 +36458,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"console",
"server"
@@ -36439,7 +36553,10 @@
"rate-limit": 60,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"console",
"server"
@@ -36525,7 +36642,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "rows.read",
"scope": [
"rows.read",
"documents.read"
],
"platforms": [
"client",
"server"
@@ -36614,7 +36734,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server"
@@ -36745,7 +36868,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server"
@@ -36841,7 +36967,10 @@
"rate-limit": 60,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server"
@@ -36918,7 +37047,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "rows.read",
"scope": [
"rows.read",
"documents.read"
],
"platforms": [
"console"
],
@@ -37006,7 +37138,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server",
@@ -37114,7 +37249,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server",
@@ -37220,7 +37358,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"console"
],
@@ -37306,7 +37447,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"console"
],
+175 -46
View File
@@ -3771,7 +3771,7 @@
"parameters": [
{
"name": "code",
"description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, union-china-pay, visa, mir, maestro, rupay.",
"description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, unionpay, visa, mir, maestro, rupay.",
"required": true,
"type": "string",
"x-example": "amex",
@@ -3788,7 +3788,7 @@
"mastercard",
"naranja",
"targeta-shopping",
"union-china-pay",
"unionpay",
"visa",
"mir",
"maestro",
@@ -3808,7 +3808,7 @@
"Mastercard",
"Naranja",
"Tarjeta Shopping",
"Union China Pay",
"Union Pay",
"Visa",
"MIR",
"Maestro",
@@ -23099,7 +23099,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"server"
],
@@ -23180,7 +23183,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -23286,7 +23292,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"server"
],
@@ -23354,7 +23363,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -23456,7 +23468,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -23524,7 +23539,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"server"
],
@@ -23606,7 +23624,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -23713,7 +23734,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -23822,7 +23846,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -23929,7 +23956,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -24038,7 +24068,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -24145,7 +24178,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -24254,7 +24290,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -24371,7 +24410,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -24490,7 +24532,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -24609,7 +24654,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -24730,7 +24778,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -24849,7 +24900,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -24970,7 +25024,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -25077,7 +25134,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -25186,7 +25246,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -25320,7 +25383,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -25440,7 +25506,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -25555,7 +25624,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -25662,7 +25734,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -25800,7 +25875,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"server"
],
@@ -25870,7 +25948,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -25947,7 +26028,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -26050,7 +26134,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"server"
],
@@ -26130,7 +26217,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -26258,7 +26348,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"server"
],
@@ -26328,7 +26421,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -26403,7 +26499,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "rows.read",
"scope": [
"rows.read",
"documents.read"
],
"platforms": [
"client",
"server"
@@ -26486,7 +26585,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server"
@@ -26655,7 +26757,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"console",
"server"
@@ -26774,7 +26879,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"console",
"server"
@@ -26867,7 +26975,10 @@
"rate-limit": 60,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"console",
"server"
@@ -26954,7 +27065,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "rows.read",
"scope": [
"rows.read",
"documents.read"
],
"platforms": [
"client",
"server"
@@ -27045,7 +27159,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server"
@@ -27179,7 +27296,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server"
@@ -27277,7 +27397,10 @@
"rate-limit": 60,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server"
@@ -27358,7 +27481,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server",
@@ -27468,7 +27594,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server",
+35 -11
View File
@@ -4060,7 +4060,7 @@
"parameters": [
{
"name": "code",
"description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, union-china-pay, visa, mir, maestro, rupay.",
"description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, unionpay, visa, mir, maestro, rupay.",
"required": true,
"type": "string",
"x-example": "amex",
@@ -4077,7 +4077,7 @@
"mastercard",
"naranja",
"targeta-shopping",
"union-china-pay",
"unionpay",
"visa",
"mir",
"maestro",
@@ -4097,7 +4097,7 @@
"Mastercard",
"Naranja",
"Tarjeta Shopping",
"Union China Pay",
"Union Pay",
"Visa",
"MIR",
"Maestro",
@@ -7581,7 +7581,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "rows.read",
"scope": [
"rows.read",
"documents.read"
],
"platforms": [
"client",
"server"
@@ -7662,7 +7665,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server"
@@ -7801,7 +7807,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "rows.read",
"scope": [
"rows.read",
"documents.read"
],
"platforms": [
"client",
"server"
@@ -7890,7 +7899,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server"
@@ -8021,7 +8033,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server"
@@ -8117,7 +8132,10 @@
"rate-limit": 60,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server"
@@ -8196,7 +8214,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server",
@@ -8304,7 +8325,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server",
+195 -51
View File
@@ -4075,7 +4075,7 @@
"parameters": [
{
"name": "code",
"description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, union-china-pay, visa, mir, maestro, rupay.",
"description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, unionpay, visa, mir, maestro, rupay.",
"required": true,
"type": "string",
"x-example": "amex",
@@ -4092,7 +4092,7 @@
"mastercard",
"naranja",
"targeta-shopping",
"union-china-pay",
"unionpay",
"visa",
"mir",
"maestro",
@@ -4112,7 +4112,7 @@
"Mastercard",
"Naranja",
"Tarjeta Shopping",
"Union China Pay",
"Union Pay",
"Visa",
"MIR",
"Maestro",
@@ -32346,7 +32346,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"console"
],
@@ -32634,7 +32637,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"server"
],
@@ -32714,7 +32720,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -32819,7 +32828,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"server"
],
@@ -32886,7 +32898,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -32987,7 +33002,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -33054,7 +33072,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"server"
],
@@ -33135,7 +33156,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -33241,7 +33265,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -33349,7 +33376,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -33455,7 +33485,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -33563,7 +33596,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -33669,7 +33705,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -33777,7 +33816,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -33893,7 +33935,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -34011,7 +34056,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -34129,7 +34177,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -34249,7 +34300,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -34367,7 +34421,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -34487,7 +34544,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -34593,7 +34653,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -34701,7 +34764,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -34834,7 +34900,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -34953,7 +35022,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -35067,7 +35139,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -35173,7 +35248,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -35310,7 +35388,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"server"
],
@@ -35379,7 +35460,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -35455,7 +35539,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -35557,7 +35644,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"server"
],
@@ -35636,7 +35726,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -35763,7 +35856,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"server"
],
@@ -35832,7 +35928,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -35906,7 +36005,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"console"
],
@@ -35984,7 +36086,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "rows.read",
"scope": [
"rows.read",
"documents.read"
],
"platforms": [
"client",
"server"
@@ -36065,7 +36170,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server"
@@ -36230,7 +36338,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"console",
"server"
@@ -36347,7 +36458,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"console",
"server"
@@ -36439,7 +36553,10 @@
"rate-limit": 60,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"console",
"server"
@@ -36525,7 +36642,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "rows.read",
"scope": [
"rows.read",
"documents.read"
],
"platforms": [
"client",
"server"
@@ -36614,7 +36734,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server"
@@ -36745,7 +36868,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server"
@@ -36841,7 +36967,10 @@
"rate-limit": 60,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server"
@@ -36918,7 +37047,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "rows.read",
"scope": [
"rows.read",
"documents.read"
],
"platforms": [
"console"
],
@@ -37006,7 +37138,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server",
@@ -37114,7 +37249,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server",
@@ -37220,7 +37358,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"console"
],
@@ -37306,7 +37447,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"console"
],
+175 -46
View File
@@ -3771,7 +3771,7 @@
"parameters": [
{
"name": "code",
"description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, union-china-pay, visa, mir, maestro, rupay.",
"description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, unionpay, visa, mir, maestro, rupay.",
"required": true,
"type": "string",
"x-example": "amex",
@@ -3788,7 +3788,7 @@
"mastercard",
"naranja",
"targeta-shopping",
"union-china-pay",
"unionpay",
"visa",
"mir",
"maestro",
@@ -3808,7 +3808,7 @@
"Mastercard",
"Naranja",
"Tarjeta Shopping",
"Union China Pay",
"Union Pay",
"Visa",
"MIR",
"Maestro",
@@ -23099,7 +23099,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"server"
],
@@ -23180,7 +23183,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -23286,7 +23292,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"server"
],
@@ -23354,7 +23363,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -23456,7 +23468,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -23524,7 +23539,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"server"
],
@@ -23606,7 +23624,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -23713,7 +23734,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -23822,7 +23846,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -23929,7 +23956,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -24038,7 +24068,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -24145,7 +24178,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -24254,7 +24290,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -24371,7 +24410,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -24490,7 +24532,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -24609,7 +24654,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -24730,7 +24778,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -24849,7 +24900,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -24970,7 +25024,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -25077,7 +25134,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -25186,7 +25246,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -25320,7 +25383,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -25440,7 +25506,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -25555,7 +25624,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -25662,7 +25734,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -25800,7 +25875,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"server"
],
@@ -25870,7 +25948,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -25947,7 +26028,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -26050,7 +26134,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"server"
],
@@ -26130,7 +26217,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -26258,7 +26348,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.read",
"scope": [
"tables.read",
"collections.read"
],
"platforms": [
"server"
],
@@ -26328,7 +26421,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "tables.write",
"scope": [
"tables.write",
"collections.write"
],
"platforms": [
"server"
],
@@ -26403,7 +26499,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "rows.read",
"scope": [
"rows.read",
"documents.read"
],
"platforms": [
"client",
"server"
@@ -26486,7 +26585,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server"
@@ -26655,7 +26757,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"console",
"server"
@@ -26774,7 +26879,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"console",
"server"
@@ -26867,7 +26975,10 @@
"rate-limit": 60,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"console",
"server"
@@ -26954,7 +27065,10 @@
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",
"scope": "rows.read",
"scope": [
"rows.read",
"documents.read"
],
"platforms": [
"client",
"server"
@@ -27045,7 +27159,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server"
@@ -27179,7 +27296,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server"
@@ -27277,7 +27397,10 @@
"rate-limit": 60,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server"
@@ -27358,7 +27481,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server",
@@ -27468,7 +27594,10 @@
"rate-limit": 120,
"rate-time": 60,
"rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}",
"scope": "rows.write",
"scope": [
"rows.write",
"documents.write"
],
"platforms": [
"client",
"server",
+12 -8
View File
@@ -28,7 +28,6 @@ use Appwrite\Utopia\Response\Filters\V16 as ResponseV16;
use Appwrite\Utopia\Response\Filters\V17 as ResponseV17;
use Appwrite\Utopia\Response\Filters\V18 as ResponseV18;
use Appwrite\Utopia\Response\Filters\V19 as ResponseV19;
use Appwrite\Utopia\Response\Filters\V20 as ResponseV20;
use Appwrite\Utopia\View;
use Executor\Executor;
use MaxMind\Db\Reader;
@@ -357,11 +356,16 @@ function router(App $utopia, Database $dbForPlatform, callable $getProjectDB, Sw
}
}
$executionId = ID::unique();
$headers = \array_merge([], $requestHeaders);
$headers['x-appwrite-execution-id'] = $executionId ?? '';
$headers['x-appwrite-user-id'] = '';
$headers['x-appwrite-country-code'] = '';
$headers['x-appwrite-continent-code'] = '';
$headers['x-appwrite-continent-eu'] = 'false';
$ip = $request->getIP();
$headers['x-appwrite-client-ip'] = $ip;
$jwtExpiry = $resource->getAttribute('timeout', 900) + 60; // 1min extra to account for possible cold-starts
$jwtObj = new JWT(System::getEnv('_APP_OPENSSL_KEY_V1'), 'HS256', $jwtExpiry, 0);
@@ -373,7 +377,6 @@ function router(App $utopia, Database $dbForPlatform, callable $getProjectDB, Sw
$headers['x-appwrite-trigger'] = 'http';
$headers['x-appwrite-user-jwt'] = '';
$ip = $headers['x-real-ip'] ?? '';
if (!empty($ip)) {
$record = $geodb->get($ip);
@@ -393,8 +396,6 @@ function router(App $utopia, Database $dbForPlatform, callable $getProjectDB, Sw
}
}
$executionId = ID::unique();
$execution = new Document([
'$id' => $executionId,
'$permissions' => [],
@@ -610,6 +611,12 @@ function router(App $utopia, Database $dbForPlatform, callable $getProjectDB, Sw
}
}
if ($deployment->getAttribute('resourceType') === 'functions') {
$executionResponse['headers']['x-appwrite-execution-id'] = $execution->getId();
} elseif ($deployment->getAttribute('resourceType') === 'sites') {
$executionResponse['headers']['x-appwrite-log-id'] = $execution->getId();
}
$headersFiltered = [];
foreach ($executionResponse['headers'] as $key => $value) {
if (\in_array(\strtolower($key), FUNCTION_ALLOWLIST_HEADERS_RESPONSE)) {
@@ -875,7 +882,7 @@ App::init()
}
if (version_compare($requestFormat, '1.8.0', '<')) {
$dbForProject = $getProjectDB($project);
$request->addFilter(new RequestV20($dbForProject, $request->getParams()));
$request->addFilter(new RequestV20($dbForProject, $route->getPathValues($request)));
}
}
@@ -1015,9 +1022,6 @@ App::init()
if (version_compare($responseFormat, '1.7.0', '<')) {
$response->addFilter(new ResponseV19());
}
if (version_compare($responseFormat, '1.8.0', '<')) {
$response->addFilter(new ResponseV20());
}
if (version_compare($responseFormat, APP_VERSION_STABLE, '>')) {
$warnings[] = "The current SDK is built for Appwrite " . $responseFormat . ". However, the current Appwrite server version is " . APP_VERSION_STABLE . ". Please downgrade your SDK to match the Appwrite version: https://appwrite.io/docs/sdks";
}
+3 -3
View File
@@ -379,9 +379,9 @@ App::init()
}
// Do now allow access if scope is not allowed
$scope = $route->getLabel('scope', 'none');
if (!\in_array($scope, $scopes)) {
throw new Exception(Exception::GENERAL_UNAUTHORIZED_SCOPE, $user->getAttribute('email', 'User') . ' (role: ' . \strtolower($roles[$role]['label']) . ') missing scope (' . $scope . ')');
$allowed = (array)$route->getLabel('scope', 'none');
if (empty(\array_intersect($allowed, $scopes))) {
throw new Exception(Exception::GENERAL_UNAUTHORIZED_SCOPE, $user->getAttribute('email', 'User') . ' (role: ' . \strtolower($roles[$role]['label']) . ') missing scopes (' . \json_encode($allowed) . ')');
}
// Do not allow access to blocked accounts
+1 -1
View File
@@ -146,7 +146,7 @@ const MAX_OUTPUT_CHUNK_SIZE = 10 * 1024 * 1024; // 10MB
const APP_FUNCTION_LOG_LENGTH_LIMIT = 1000000;
const APP_FUNCTION_ERROR_LENGTH_LIMIT = 1000000;
// Function headers
const FUNCTION_ALLOWLIST_HEADERS_REQUEST = ['content-type', 'agent', 'content-length', 'host'];
const FUNCTION_ALLOWLIST_HEADERS_REQUEST = ['content-type', 'agent', 'content-length', 'host', 'x-appwrite-client-ip'];
const FUNCTION_ALLOWLIST_HEADERS_RESPONSE = ['content-type', 'content-length'];
// Message types
const MESSAGE_TYPE_EMAIL = 'email';
+1 -1
View File
@@ -179,7 +179,7 @@ $image = $this->getParam('image', '');
appwrite-console:
<<: *x-logging
container_name: appwrite-console
image: <?php echo $organization; ?>/console:6.2.0
image: <?php echo $organization; ?>/console:7.0.2
restart: unless-stopped
networks:
- appwrite
Generated
+12 -12
View File
@@ -3557,16 +3557,16 @@
},
{
"name": "utopia-php/database",
"version": "1.2.0",
"version": "1.2.1",
"source": {
"type": "git",
"url": "https://github.com/utopia-php/database.git",
"reference": "653e19d26c5607b9dce917c50737824772cd3dd8"
"reference": "99beaf1dd6dc3561c8332f9893325777553644a4"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/utopia-php/database/zipball/653e19d26c5607b9dce917c50737824772cd3dd8",
"reference": "653e19d26c5607b9dce917c50737824772cd3dd8",
"url": "https://api.github.com/repos/utopia-php/database/zipball/99beaf1dd6dc3561c8332f9893325777553644a4",
"reference": "99beaf1dd6dc3561c8332f9893325777553644a4",
"shasum": ""
},
"require": {
@@ -3607,9 +3607,9 @@
],
"support": {
"issues": "https://github.com/utopia-php/database/issues",
"source": "https://github.com/utopia-php/database/tree/1.2.0"
"source": "https://github.com/utopia-php/database/tree/1.2.1"
},
"time": "2025-08-26T12:51:42+00:00"
"time": "2025-08-26T16:05:26+00:00"
},
{
"name": "utopia-php/detector",
@@ -4926,16 +4926,16 @@
"packages-dev": [
{
"name": "appwrite/sdk-generator",
"version": "1.1.14",
"version": "1.1.15",
"source": {
"type": "git",
"url": "https://github.com/appwrite/sdk-generator.git",
"reference": "662c7a53e683ed941c7d1374cfd32533bf54fbca"
"reference": "8e8e39634ba7558704522959d88f3542563a5444"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/662c7a53e683ed941c7d1374cfd32533bf54fbca",
"reference": "662c7a53e683ed941c7d1374cfd32533bf54fbca",
"url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/8e8e39634ba7558704522959d88f3542563a5444",
"reference": "8e8e39634ba7558704522959d88f3542563a5444",
"shasum": ""
},
"require": {
@@ -4971,9 +4971,9 @@
"description": "Appwrite PHP library for generating API SDKs for multiple programming languages and platforms",
"support": {
"issues": "https://github.com/appwrite/sdk-generator/issues",
"source": "https://github.com/appwrite/sdk-generator/tree/1.1.14"
"source": "https://github.com/appwrite/sdk-generator/tree/1.1.15"
},
"time": "2025-08-26T13:17:07+00:00"
"time": "2025-08-27T04:59:35+00:00"
},
{
"name": "doctrine/annotations",
+1 -1
View File
@@ -219,7 +219,7 @@ services:
appwrite-console:
<<: *x-logging
container_name: appwrite-console
image: appwrite/console:7.0.0-qa.8
image: appwrite/console:7.0.2
restart: unless-stopped
networks:
- appwrite
@@ -11,9 +11,11 @@ use Appwrite\Utopia\Response;
use Utopia\Database\Database;
use Utopia\Database\Query;
use Utopia\Database\Validator\Authorization;
use Utopia\Domains\Domain as Domain;
use Utopia\Platform\Action;
use Utopia\Platform\Scope\HTTP;
use Utopia\Validator\Domain;
use Utopia\System\System;
use Utopia\Validator\Domain as DomainValidator;
use Utopia\Validator\Text;
use Utopia\Validator\WhiteList;
@@ -67,10 +69,59 @@ class Get extends Action
Database $dbForPlatform
) {
if ($type === 'rules') {
$validator = new Domain($value);
$sitesDomain = System::getEnv('_APP_DOMAIN_SITES', '');
$functionsDomain = System::getEnv('_APP_DOMAIN_FUNCTIONS', '');
$restrictions = [];
if (!empty($sitesDomain)) {
// Ensure site domains are exactly 1 subdomain, and dont start with reserved prefix
$domainLevel = \count(\explode('.', $sitesDomain));
$restrictions[] = DomainValidator::createRestriction($sitesDomain, $domainLevel + 1, ['commit-', 'branch-']);
}
if (!empty($functionsDomain)) {
// Ensure function domains are exactly 1 subdomain
$domainLevel = \count(\explode('.', $functionsDomain));
$restrictions[] = DomainValidator::createRestriction($functionsDomain, $domainLevel + 1);
}
$validator = new DomainValidator($restrictions);
if (!$validator->isValid($value)) {
throw new Exception(Exception::GENERAL_ARGUMENT_INVALID, $validator->getDescription());
throw new Exception(Exception::GENERAL_ARGUMENT_INVALID, 'This domain name is not allowed. Please use a different domain.');
}
$deniedDomains = [
'localhost',
APP_HOSTNAME_INTERNAL
];
$mainDomain = System::getEnv('_APP_DOMAIN', '');
$deniedDomains[] = $mainDomain;
if (!empty($sitesDomain)) {
$deniedDomains[] = $sitesDomain;
}
if (!empty($functionsDomain)) {
$deniedDomains[] = $functionsDomain;
}
$denyListDomains = System::getEnv('_APP_CUSTOM_DOMAIN_DENY_LIST', '');
$denyListDomains = \array_map('trim', explode(',', $denyListDomains));
foreach ($denyListDomains as $denyListDomain) {
if (empty($denyListDomain)) {
continue;
}
$deniedDomains[] = $denyListDomain;
}
if (\in_array($value, $deniedDomains)) {
throw new Exception(Exception::GENERAL_ARGUMENT_INVALID, 'This domain name is not allowed. Please use a different domain.');
}
try {
$domain = new Domain($value);
} catch (\Throwable) {
throw new Exception(Exception::GENERAL_ARGUMENT_INVALID, 'Domain may not start with http:// or https://.');
}
$document = Authorization::skip(fn () => $dbForPlatform->findOne('rules', [
@@ -29,7 +29,7 @@ abstract class Action extends AppwriteAction
// Use the same helper method to ensure consistency
$contextId = '$' . $this->getCollectionsEventsContext() . 'Id';
$this->removableAttributes = ['$databaseId', $contextId];
$this->removableAttributes = ['$databaseId', $contextId, '$sequence'];
return parent::setHttpPath($path);
}
@@ -127,6 +127,9 @@ class Update extends Action
}
}
// Remove sequence if set
unset($document['$sequence']);
$documents = [];
try {
@@ -351,6 +351,9 @@ class Create extends Action
}
}
// Remove sequence if set
unset($document['$sequence']);
// Assign a unique ID if needed, otherwise use the provided ID.
$document['$id'] = $sourceId === 'unique()' ? ID::unique() : $sourceId;
@@ -159,6 +159,9 @@ class Update extends Action
$permissions = $document->getPermissions() ?? [];
}
// Remove sequence if set
unset($document['$sequence']);
$data['$id'] = $documentId;
$data['$permissions'] = $permissions;
$newDocument = new Document($data);
@@ -32,7 +32,7 @@ class Create extends BooleanCreate
->desc('Create boolean column')
->groups(['api', 'database', 'schema'])
->label('event', 'databases.[databaseId].tables.[tableId].columns.[columnId].create')
->label('scope', 'tables.write')
->label('scope', ['tables.write', 'collections.write'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('audits.event', 'column.create')
->label('audits.resource', 'database/{request.databaseId}/table/{request.tableId}')
@@ -33,7 +33,7 @@ class Update extends BooleanUpdate
->setHttpPath('/v1/tablesdb/:databaseId/tables/:tableId/columns/boolean/:key')
->desc('Update boolean column')
->groups(['api', 'database', 'schema'])
->label('scope', 'tables.write')
->label('scope', ['tables.write', 'collections.write'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('event', 'databases.[databaseId].tables.[tableId].columns.[columnId].update')
->label('audits.event', 'column.update')
@@ -33,7 +33,7 @@ class Create extends DatetimeCreate
->setHttpPath('/v1/tablesdb/:databaseId/tables/:tableId/columns/datetime')
->desc('Create datetime column')
->groups(['api', 'database'])
->label('scope', 'tables.write')
->label('scope', ['tables.write', 'collections.write'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('event', 'databases.[databaseId].tables.[tableId].columns.[columnId].create')
->label('audits.event', 'column.create')
@@ -35,7 +35,7 @@ class Update extends DatetimeUpdate
->setHttpPath('/v1/tablesdb/:databaseId/tables/:tableId/columns/datetime/:key')
->desc('Update dateTime column')
->groups(['api', 'database', 'schema'])
->label('scope', 'tables.write')
->label('scope', ['tables.write', 'collections.write'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('event', 'databases.[databaseId].tables.[tableId].columns.[columnId].update')
->label('audits.event', 'column.update')
@@ -32,7 +32,7 @@ class Delete extends AttributesDelete
->setHttpPath('/v1/tablesdb/:databaseId/tables/:tableId/columns/:key')
->desc('Delete column')
->groups(['api', 'database', 'schema'])
->label('scope', 'tables.write')
->label('scope', ['tables.write', 'collections.write'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('event', 'databases.[databaseId].tables.[tableId].columns.[columnId].update')
->label('audits.event', 'column.delete')
@@ -32,7 +32,7 @@ class Create extends EmailCreate
->setHttpPath('/v1/tablesdb/:databaseId/tables/:tableId/columns/email')
->desc('Create email column')
->groups(['api', 'database', 'schema'])
->label('scope', 'tables.write')
->label('scope', ['tables.write', 'collections.write'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('event', 'databases.[databaseId].tables.[tableId].columns.[columnId].create')
->label('audits.event', 'column.create')
@@ -34,7 +34,7 @@ class Update extends EmailUpdate
->setHttpPath('/v1/tablesdb/:databaseId/tables/:tableId/columns/email/:key')
->desc('Update email column')
->groups(['api', 'database', 'schema'])
->label('scope', 'tables.write')
->label('scope', ['tables.write', 'collections.write'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('event', 'databases.[databaseId].tables.[tableId].columns.[columnId].update')
->label('audits.event', 'column.update')
@@ -34,7 +34,7 @@ class Create extends EnumCreate
->setHttpPath('/v1/tablesdb/:databaseId/tables/:tableId/columns/enum')
->desc('Create enum column')
->groups(['api', 'database', 'schema'])
->label('scope', 'tables.write')
->label('scope', ['tables.write', 'collections.write'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('event', 'databases.[databaseId].tables.[tableId].columns.[columnId].create')
->label('audits.event', 'column.create')
@@ -36,7 +36,7 @@ class Update extends EnumUpdate
->setHttpPath('/v1/tablesdb/:databaseId/tables/:tableId/columns/enum/:key')
->desc('Update enum column')
->groups(['api', 'database', 'schema'])
->label('scope', 'tables.write')
->label('scope', ['tables.write', 'collections.write'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('event', 'databases.[databaseId].tables.[tableId].columns.[columnId].update')
->label('audits.event', 'column.update')
@@ -32,7 +32,7 @@ class Create extends FloatCreate
->setHttpPath('/v1/tablesdb/:databaseId/tables/:tableId/columns/float')
->desc('Create float column')
->groups(['api', 'database', 'schema'])
->label('scope', 'tables.write')
->label('scope', ['tables.write', 'collections.write'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('event', 'databases.[databaseId].tables.[tableId].columns.[columnId].create')
->label('audits.event', 'column.create')
@@ -34,7 +34,7 @@ class Update extends FloatUpdate
->setHttpPath('/v1/tablesdb/:databaseId/tables/:tableId/columns/float/:key')
->desc('Update float column')
->groups(['api', 'database', 'schema'])
->label('scope', 'tables.write')
->label('scope', ['tables.write', 'collections.write'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('event', 'databases.[databaseId].tables.[tableId].columns.[columnId].update')
->label('audits.event', 'column.update')
@@ -41,7 +41,7 @@ class Get extends AttributesGet
->setHttpPath('/v1/tablesdb/:databaseId/tables/:tableId/columns/:key')
->desc('Get column')
->groups(['api', 'database'])
->label('scope', 'tables.read')
->label('scope', ['tables.read', 'collections.read'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
@@ -32,7 +32,7 @@ class Create extends IPCreate
->setHttpPath('/v1/tablesdb/:databaseId/tables/:tableId/columns/ip')
->desc('Create IP address column')
->groups(['api', 'database', 'schema'])
->label('scope', 'tables.write')
->label('scope', ['tables.write', 'collections.write'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('event', 'databases.[databaseId].tables.[tableId].columns.[columnId].create')
->label('audits.event', 'column.create')
@@ -34,7 +34,7 @@ class Update extends IPUpdate
->setHttpPath('/v1/tablesdb/:databaseId/tables/:tableId/columns/ip/:key')
->desc('Update IP address column')
->groups(['api', 'database', 'schema'])
->label('scope', 'tables.write')
->label('scope', ['tables.write', 'collections.write'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('event', 'databases.[databaseId].tables.[tableId].columns.[columnId].update')
->label('audits.event', 'column.update')
@@ -32,7 +32,7 @@ class Create extends IntegerCreate
->setHttpPath('/v1/tablesdb/:databaseId/tables/:tableId/columns/integer')
->desc('Create integer column')
->groups(['api', 'database', 'schema'])
->label('scope', 'tables.write')
->label('scope', ['tables.write', 'collections.write'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('event', 'databases.[databaseId].tables.[tableId].columns.[columnId].create')
->label('audits.event', 'column.create')
@@ -34,7 +34,7 @@ class Update extends IntegerUpdate
->setHttpPath('/v1/tablesdb/:databaseId/tables/:tableId/columns/integer/:key')
->desc('Update integer column')
->groups(['api', 'database', 'schema'])
->label('scope', 'tables.write')
->label('scope', ['tables.write', 'collections.write'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('event', 'databases.[databaseId].tables.[tableId].columns.[columnId].update')
->label('audits.event', 'column.update')
@@ -33,7 +33,7 @@ class Create extends RelationshipCreate
->setHttpPath('/v1/tablesdb/:databaseId/tables/:tableId/columns/relationship')
->desc('Create relationship column')
->groups(['api', 'database'])
->label('scope', 'tables.write')
->label('scope', ['tables.write', 'collections.write'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('event', 'databases.[databaseId].tables.[tableId].columns.[columnId].create')
->label('audits.event', 'column.create')
@@ -33,7 +33,7 @@ class Update extends RelationshipUpdate
->setHttpPath('/v1/tablesdb/:databaseId/tables/:tableId/columns/:key/relationship')
->desc('Update relationship column')
->groups(['api', 'database', 'schema'])
->label('scope', 'tables.write')
->label('scope', ['tables.write', 'collections.write'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('event', 'databases.[databaseId].tables.[tableId].columns.[columnId].update')
->label('audits.event', 'column.update')
@@ -34,7 +34,7 @@ class Create extends StringCreate
->setHttpPath('/v1/tablesdb/:databaseId/tables/:tableId/columns/string')
->desc('Create string column')
->groups(['api', 'database', 'schema'])
->label('scope', 'tables.write')
->label('scope', ['tables.write', 'collections.write'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('event', 'databases.[databaseId].tables.[tableId].columns.[columnId].create')
->label('audits.event', 'column.create')
@@ -36,7 +36,7 @@ class Update extends StringUpdate
->setHttpPath('/v1/tablesdb/:databaseId/tables/:tableId/columns/string/:key')
->desc('Update string column')
->groups(['api', 'database', 'schema'])
->label('scope', 'tables.write')
->label('scope', ['tables.write', 'collections.write'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('event', 'databases.[databaseId].tables.[tableId].columns.[columnId].update')
->label('audits.event', 'column.update')
@@ -32,7 +32,7 @@ class Create extends URLCreate
->setHttpPath('/v1/tablesdb/:databaseId/tables/:tableId/columns/url')
->desc('Create URL column')
->groups(['api', 'database', 'schema'])
->label('scope', 'tables.write')
->label('scope', ['tables.write', 'collections.write'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('event', 'databases.[databaseId].tables.[tableId].columns.[columnId].create')
->label('audits.event', 'column.create')
@@ -34,7 +34,7 @@ class Update extends URLUpdate
->setHttpPath('/v1/tablesdb/:databaseId/tables/:tableId/columns/url/:key')
->desc('Update URL column')
->groups(['api', 'database', 'schema'])
->label('scope', 'tables.write')
->label('scope', ['tables.write', 'collections.write'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('event', 'databases.[databaseId].tables.[tableId].columns.[columnId].update')
->label('audits.event', 'column.update')
@@ -30,7 +30,7 @@ class XList extends AttributesXList
->setHttpPath('/v1/tablesdb/:databaseId/tables/:tableId/columns')
->desc('List columns')
->groups(['api', 'database'])
->label('scope', 'tables.read')
->label('scope', ['tables.read', 'collections.read'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
@@ -35,7 +35,7 @@ class Create extends CollectionCreate
->desc('Create table')
->groups(['api', 'database'])
->label('event', 'databases.[databaseId].tables.[tableId].create')
->label('scope', 'tables.write')
->label('scope', ['tables.write', 'collections.write'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('audits.event', 'table.create')
->label('audits.resource', 'database/{request.databaseId}/table/{response.$id}')
@@ -30,7 +30,7 @@ class Delete extends CollectionDelete
->setHttpPath('/v1/tablesdb/:databaseId/tables/:tableId')
->desc('Delete table')
->groups(['api', 'database', 'schema'])
->label('scope', 'tables.write')
->label('scope', ['tables.write', 'collections.write'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('event', 'databases.[databaseId].tables.[tableId].delete')
->label('audits.event', 'table.delete')
@@ -30,7 +30,7 @@ class Get extends CollectionGet
->setHttpPath('/v1/tablesdb/:databaseId/tables/:tableId')
->desc('Get table')
->groups(['api', 'database'])
->label('scope', 'tables.read')
->label('scope', ['tables.read', 'collections.read'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
@@ -37,7 +37,7 @@ class Create extends IndexCreate
->desc('Create index')
->groups(['api', 'database'])
->label('event', 'databases.[databaseId].tables.[tableId].indexes.[indexId].create')
->label('scope', 'tables.write')
->label('scope', ['tables.write', 'collections.write'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('audits.event', 'index.create')
->label('audits.resource', 'database/{request.databaseId}/table/{request.tableId}')
@@ -35,7 +35,7 @@ class Delete extends IndexDelete
->setHttpPath('/v1/tablesdb/:databaseId/tables/:tableId/indexes/:key')
->desc('Delete index')
->groups(['api', 'database'])
->label('scope', 'tables.write')
->label('scope', ['tables.write', 'collections.write'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('event', 'databases.[databaseId].tables.[tableId].indexes.[indexId].update')
->label('audits.event', 'index.delete')
@@ -31,7 +31,7 @@ class Get extends IndexGet
->setHttpPath('/v1/tablesdb/:databaseId/tables/:tableId/indexes/:key')
->desc('Get index')
->groups(['api', 'database'])
->label('scope', 'tables.read')
->label('scope', ['tables.read', 'collections.read'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
@@ -31,7 +31,7 @@ class XList extends IndexXList
->setHttpPath('/v1/tablesdb/:databaseId/tables/:tableId/indexes')
->desc('List indexes')
->groups(['api', 'database'])
->label('scope', 'tables.read')
->label('scope', ['tables.read', 'collections.read'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
@@ -27,7 +27,7 @@ class XList extends CollectionLogXList
->setHttpPath('/v1/tablesdb/:databaseId/tables/:tableId/logs')
->desc('List table logs')
->groups(['api', 'database'])
->label('scope', 'tables.read')
->label('scope', ['tables.read', 'collections.read'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
@@ -32,7 +32,7 @@ class Delete extends DocumentsDelete
->setHttpPath('/v1/tablesdb/:databaseId/tables/:tableId/rows')
->desc('Delete rows')
->groups(['api', 'database'])
->label('scope', 'rows.write')
->label('scope', ['rows.write', 'documents.write'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('audits.event', 'rows.delete')
->label('audits.resource', 'database/{request.databaseId}/table/{request.tableId}')
@@ -33,7 +33,7 @@ class Update extends DocumentsUpdate
->setHttpPath('/v1/tablesdb/:databaseId/tables/:tableId/rows')
->desc('Update rows')
->groups(['api', 'database'])
->label('scope', 'rows.write')
->label('scope', ['rows.write', 'documents.write'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('audits.event', 'rows.update')
->label('audits.resource', 'database/{request.databaseId}/table/{request.tableId}')
@@ -32,7 +32,7 @@ class Upsert extends DocumentsUpsert
->setHttpPath('/v1/tablesdb/:databaseId/tables/:tableId/rows')
->desc('Create or update rows')
->groups(['api', 'database'])
->label('scope', 'rows.write')
->label('scope', ['rows.write', 'documents.write'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('audits.event', 'row.create')
->label('audits.resource', 'database/{request.databaseId}/table/{request.tableId}')
@@ -33,7 +33,7 @@ class Decrement extends DecrementDocumentAttribute
->desc('Decrement row column')
->groups(['api', 'database'])
->label('event', 'databases.[databaseId].tables.[tableId].rows.[rowId].update')
->label('scope', 'rows.write')
->label('scope', ['rows.write', 'documents.write'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('audits.event', 'rows.update')
->label('audits.resource', 'database/{request.databaseId}/table/{request.tableId}')
@@ -33,7 +33,7 @@ class Increment extends IncrementDocumentAttribute
->desc('Increment row column')
->groups(['api', 'database'])
->label('event', 'databases.[databaseId].tables.[tableId].rows.[rowId].update')
->label('scope', 'rows.write')
->label('scope', ['rows.write', 'documents.write'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('audits.event', 'rows.update')
->label('audits.resource', 'database/{request.databaseId}/table/{request.tableId}')
@@ -41,7 +41,7 @@ class Create extends DocumentCreate
->setHttpPath('/v1/tablesdb/:databaseId/tables/:tableId/rows')
->desc('Create row')
->groups(['api', 'database'])
->label('scope', 'rows.write')
->label('scope', ['rows.write', 'documents.write'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('audits.event', 'row.create')
->label('audits.resource', 'database/{request.databaseId}/table/{request.tableId}')
@@ -36,7 +36,7 @@ class Delete extends DocumentDelete
->setHttpPath('/v1/tablesdb/:databaseId/tables/:tableId/rows/:rowId')
->desc('Delete row')
->groups(['api', 'database'])
->label('scope', 'rows.write')
->label('scope', ['rows.write', 'documents.write'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('event', 'databases.[databaseId].tables.[tableId].rows.[rowId].delete')
->label('audits.event', 'row.delete')
@@ -32,7 +32,7 @@ class Get extends DocumentGet
->setHttpPath('/v1/tablesdb/:databaseId/tables/:tableId/rows/:rowId')
->desc('Get row')
->groups(['api', 'database'])
->label('scope', 'rows.read')
->label('scope', ['rows.read', 'documents.read'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
@@ -27,7 +27,7 @@ class XList extends DocumentLogXList
->setHttpPath('/v1/tablesdb/:databaseId/tables/:tableId/rows/:rowId/logs')
->desc('List row logs')
->groups(['api', 'database'])
->label('scope', 'rows.read')
->label('scope', ['rows.read', 'documents.read'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
@@ -34,7 +34,7 @@ class Update extends DocumentUpdate
->desc('Update row')
->groups(['api', 'database'])
->label('event', 'databases.[databaseId].tables.[tableId].rows.[rowId].update')
->label('scope', 'rows.write')
->label('scope', ['rows.write', 'documents.write'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('audits.event', 'row.update')
->label('audits.resource', 'database/{request.databaseId}/table/{request.tableId}/row/{response.$id}')
@@ -34,7 +34,7 @@ class Upsert extends DocumentUpsert
->desc('Create or update a row')
->groups(['api', 'database'])
->label('event', 'databases.[databaseId].tables.[tableId].rows.[rowId].upsert')
->label('scope', 'rows.write')
->label('scope', ['rows.write', 'documents.write'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('audits.event', 'row.upsert')
->label('audits.resource', 'database/{request.databaseId}/table/{request.tableId}/row/{response.$id}')
@@ -32,7 +32,7 @@ class XList extends DocumentXList
->setHttpPath('/v1/tablesdb/:databaseId/tables/:tableId/rows')
->desc('List rows')
->groups(['api', 'database'])
->label('scope', 'rows.read')
->label('scope', ['rows.read', 'documents.read'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
@@ -33,7 +33,7 @@ class Update extends CollectionUpdate
->setHttpPath('/v1/tablesdb/:databaseId/tables/:tableId')
->desc('Update table')
->groups(['api', 'database', 'schema'])
->label('scope', 'tables.write')
->label('scope', ['tables.write', 'collections.write'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('event', 'databases.[databaseId].tables.[tableId].update')
->label('audits.event', 'table.update')
@@ -31,7 +31,7 @@ class Get extends CollectionUsageGet
->setHttpPath('/v1/tablesdb/:databaseId/tables/:tableId/usage')
->desc('Get table usage stats')
->groups(['api', 'database', 'usage'])
->label('scope', 'tables.read')
->label('scope', ['tables.read', 'collections.read'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
@@ -32,7 +32,7 @@ class XList extends CollectionXList
->setHttpPath('/v1/tablesdb/:databaseId/tables')
->desc('List tables')
->groups(['api', 'database'])
->label('scope', 'tables.read')
->label('scope', ['tables.read', 'collections.read'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('sdk', new Method(
namespace: $this->getSdkNamespace(),
@@ -26,7 +26,7 @@ class Get extends DatabaseUsageGet
->setHttpPath('/v1/tablesdb/:databaseId/usage')
->desc('Get TablesDB usage stats')
->groups(['api', 'database', 'usage'])
->label('scope', 'tables.read')
->label('scope', ['tables.read', 'collections.read'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('sdk', [
new Method(
@@ -25,7 +25,7 @@ class XList extends DatabaseUsageXList
->setHttpPath('/v1/tablesdb/usage')
->desc('Get TablesDB usage stats')
->groups(['api', 'database', 'usage'])
->label('scope', 'tables.read')
->label('scope', ['tables.read', 'collections.read'])
->label('resourceType', RESOURCE_TYPE_DATABASES)
->label('sdk', [
new Method(
@@ -80,7 +80,7 @@ class Create extends Base
->param('body', '', new Text(10485760, 0), 'HTTP body of execution. Default value is empty string.', true)
->param('async', false, new Boolean(true), 'Execute code in the background. Default value is false.', true)
->param('path', '/', new Text(2048), 'HTTP path of execution. Path can include query params. Default value is /', true)
->param('method', 'POST', new Whitelist(['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS', 'HEAD'], true), 'HTTP method of execution. Default value is GET.', true)
->param('method', 'POST', new Whitelist(['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS', 'HEAD'], true), 'HTTP method of execution. Default value is POST.', true)
->param('headers', [], new AnyOf([new Assoc(), new Text(65535)], AnyOf::TYPE_MIXED), 'HTTP headers of execution. Defaults to empty.', true)
->param('scheduledAt', null, new Text(100), 'Scheduled execution time in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. DateTime value must be in future with precision in minutes.', true)
->inject('response')
@@ -221,6 +221,8 @@ class Create extends Base
'scopes' => $function->getAttribute('scopes', [])
]);
$executionId = ID::unique();
$headers['x-appwrite-execution-id'] = $executionId ?? '';
$headers['x-appwrite-key'] = API_KEY_DYNAMIC . '_' . $apiKey;
$headers['x-appwrite-trigger'] = 'http';
$headers['x-appwrite-user-id'] = $user->getId() ?? '';
@@ -228,8 +230,9 @@ class Create extends Base
$headers['x-appwrite-country-code'] = '';
$headers['x-appwrite-continent-code'] = '';
$headers['x-appwrite-continent-eu'] = 'false';
$ip = $request->getIP();
$headers['x-appwrite-client-ip'] = $ip;
$ip = $headers['x-real-ip'] ?? '';
if (!empty($ip)) {
$record = $geodb->get($ip);
@@ -249,7 +252,7 @@ class Create extends Base
}
}
$executionId = ID::unique();
$status = $async ? 'waiting' : 'processing';
@@ -481,6 +484,8 @@ class Create extends Base
$execution = Authorization::skip(fn () => $dbForProject->createDocument('executions', $execution));
}
$executionResponse['headers']['x-appwrite-execution-id'] = $execution->getId();
$headers = [];
foreach (($executionResponse['headers'] ?? []) as $key => $value) {
$headers[] = ['name' => $key, 'value' => $value];
@@ -71,6 +71,24 @@ class Create extends Action
public function action(string $domain, Response $response, Document $project, Certificate $queueForCertificates, Event $queueForEvents, Database $dbForPlatform)
{
$sitesDomain = System::getEnv('_APP_DOMAIN_SITES', '');
$functionsDomain = System::getEnv('_APP_DOMAIN_FUNCTIONS', '');
$restrictions = [];
if (!empty($sitesDomain)) {
$domainLevel = \count(\explode('.', $sitesDomain));
$restrictions[] = ValidatorDomain::createRestriction($sitesDomain, $domainLevel + 1, ['commit-', 'branch-']);
}
if (!empty($functionsDomain)) {
$domainLevel = \count(\explode('.', $functionsDomain));
$restrictions[] = ValidatorDomain::createRestriction($functionsDomain, $domainLevel + 1);
}
$validator = new ValidatorDomain($restrictions);
if (!$validator->isValid($domain)) {
throw new Exception(Exception::GENERAL_ARGUMENT_INVALID, 'This domain name is not allowed. Please use a different domain.');
}
$deniedDomains = [
'localhost',
APP_HOSTNAME_INTERNAL
@@ -79,12 +97,10 @@ class Create extends Action
$mainDomain = System::getEnv('_APP_DOMAIN', '');
$deniedDomains[] = $mainDomain;
$sitesDomain = System::getEnv('_APP_DOMAIN_SITES', '');
if (!empty($sitesDomain)) {
$deniedDomains[] = $sitesDomain;
}
$functionsDomain = System::getEnv('_APP_DOMAIN_FUNCTIONS', '');
if (!empty($functionsDomain)) {
$deniedDomains[] = $functionsDomain;
}
@@ -102,10 +118,6 @@ class Create extends Action
throw new Exception(Exception::GENERAL_ARGUMENT_INVALID, 'This domain name is not allowed. Please use a different domain.');
}
if (\str_starts_with($domain, 'commit-') || \str_starts_with($domain, 'branch-')) {
throw new Exception(Exception::GENERAL_ARGUMENT_INVALID, 'This domain name is not allowed. Please use a different domain.');
}
try {
$domain = new Domain($domain);
} catch (\Throwable) {
@@ -76,6 +76,24 @@ class Create extends Action
public function action(string $domain, string $functionId, string $branch, Response $response, Document $project, Certificate $queueForCertificates, Event $queueForEvents, Database $dbForPlatform, Database $dbForProject)
{
$sitesDomain = System::getEnv('_APP_DOMAIN_SITES', '');
$functionsDomain = System::getEnv('_APP_DOMAIN_FUNCTIONS', '');
$restrictions = [];
if (!empty($sitesDomain)) {
$domainLevel = \count(\explode('.', $sitesDomain));
$restrictions[] = ValidatorDomain::createRestriction($sitesDomain, $domainLevel + 1, ['commit-', 'branch-']);
}
if (!empty($functionsDomain)) {
$domainLevel = \count(\explode('.', $functionsDomain));
$restrictions[] = ValidatorDomain::createRestriction($functionsDomain, $domainLevel + 1);
}
$validator = new ValidatorDomain($restrictions);
if (!$validator->isValid($domain)) {
throw new Exception(Exception::GENERAL_ARGUMENT_INVALID, 'This domain name is not allowed. Please use a different domain.');
}
$deniedDomains = [
'localhost',
APP_HOSTNAME_INTERNAL
@@ -84,12 +102,10 @@ class Create extends Action
$mainDomain = System::getEnv('_APP_DOMAIN', '');
$deniedDomains[] = $mainDomain;
$sitesDomain = System::getEnv('_APP_DOMAIN_SITES', '');
if (!empty($sitesDomain)) {
$deniedDomains[] = $sitesDomain;
}
$functionsDomain = System::getEnv('_APP_DOMAIN_FUNCTIONS', '');
if (!empty($functionsDomain)) {
$deniedDomains[] = $functionsDomain;
}
@@ -107,10 +123,6 @@ class Create extends Action
throw new Exception(Exception::GENERAL_ARGUMENT_INVALID, 'This domain name is not allowed. Please use a different domain.');
}
if (\str_starts_with($domain, 'commit-') || \str_starts_with($domain, 'branch-')) {
throw new Exception(Exception::GENERAL_ARGUMENT_INVALID, 'This domain name is not allowed. Please use a different domain.');
}
try {
$domain = new Domain($domain);
} catch (\Throwable) {
@@ -79,6 +79,24 @@ class Create extends Action
public function action(string $domain, string $url, int $statusCode, string $resourceId, string $resourceType, Response $response, Document $project, Certificate $queueForCertificates, Event $queueForEvents, Database $dbForPlatform, Database $dbForProject)
{
$sitesDomain = System::getEnv('_APP_DOMAIN_SITES', '');
$functionsDomain = System::getEnv('_APP_DOMAIN_FUNCTIONS', '');
$restrictions = [];
if (!empty($sitesDomain)) {
$domainLevel = \count(\explode('.', $sitesDomain));
$restrictions[] = ValidatorDomain::createRestriction($sitesDomain, $domainLevel + 1, ['commit-', 'branch-']);
}
if (!empty($functionsDomain)) {
$domainLevel = \count(\explode('.', $functionsDomain));
$restrictions[] = ValidatorDomain::createRestriction($functionsDomain, $domainLevel + 1);
}
$validator = new ValidatorDomain($restrictions);
if (!$validator->isValid($domain)) {
throw new Exception(Exception::GENERAL_ARGUMENT_INVALID, 'This domain name is not allowed. Please use a different domain.');
}
$deniedDomains = [
'localhost',
APP_HOSTNAME_INTERNAL
@@ -87,12 +105,10 @@ class Create extends Action
$mainDomain = System::getEnv('_APP_DOMAIN', '');
$deniedDomains[] = $mainDomain;
$sitesDomain = System::getEnv('_APP_DOMAIN_SITES', '');
if (!empty($sitesDomain)) {
$deniedDomains[] = $sitesDomain;
}
$functionsDomain = System::getEnv('_APP_DOMAIN_FUNCTIONS', '');
if (!empty($functionsDomain)) {
$deniedDomains[] = $functionsDomain;
}
@@ -110,10 +126,6 @@ class Create extends Action
throw new Exception(Exception::GENERAL_ARGUMENT_INVALID, 'This domain name is not allowed. Please use a different domain.');
}
if (\str_starts_with($domain, 'commit-') || \str_starts_with($domain, 'branch-')) {
throw new Exception(Exception::GENERAL_ARGUMENT_INVALID, 'This domain name is not allowed. Please use a different domain.');
}
try {
$domain = new Domain($domain);
} catch (\Throwable) {
@@ -76,6 +76,24 @@ class Create extends Action
public function action(string $domain, string $siteId, string $branch, Response $response, Document $project, Certificate $queueForCertificates, Event $queueForEvents, Database $dbForPlatform, Database $dbForProject)
{
$sitesDomain = System::getEnv('_APP_DOMAIN_SITES', '');
$functionsDomain = System::getEnv('_APP_DOMAIN_FUNCTIONS', '');
$restrictions = [];
if (!empty($sitesDomain)) {
$domainLevel = \count(\explode('.', $sitesDomain));
$restrictions[] = ValidatorDomain::createRestriction($sitesDomain, $domainLevel + 1, ['commit-', 'branch-']);
}
if (!empty($functionsDomain)) {
$domainLevel = \count(\explode('.', $functionsDomain));
$restrictions[] = ValidatorDomain::createRestriction($functionsDomain, $domainLevel + 1);
}
$validator = new ValidatorDomain($restrictions);
if (!$validator->isValid($domain)) {
throw new Exception(Exception::GENERAL_ARGUMENT_INVALID, 'This domain name is not allowed. Please use a different domain.');
}
$deniedDomains = [
'localhost',
APP_HOSTNAME_INTERNAL
@@ -84,12 +102,10 @@ class Create extends Action
$mainDomain = System::getEnv('_APP_DOMAIN', '');
$deniedDomains[] = $mainDomain;
$sitesDomain = System::getEnv('_APP_DOMAIN_SITES', '');
if (!empty($sitesDomain)) {
$deniedDomains[] = $sitesDomain;
}
$functionsDomain = System::getEnv('_APP_DOMAIN_FUNCTIONS', '');
if (!empty($functionsDomain)) {
$deniedDomains[] = $functionsDomain;
}
@@ -107,10 +123,6 @@ class Create extends Action
throw new Exception(Exception::GENERAL_ARGUMENT_INVALID, 'This domain name is not allowed. Please use a different domain.');
}
if (\str_starts_with($domain, 'commit-') || \str_starts_with($domain, 'branch-')) {
throw new Exception(Exception::GENERAL_ARGUMENT_INVALID, 'This domain name is not allowed. Please use a different domain.');
}
try {
$domain = new Domain($domain);
} catch (\Throwable) {
+7 -2
View File
@@ -264,6 +264,8 @@ class Functions extends Action
string $jwt = null,
string $event = null,
): void {
$executionId = ID::unique();
$headers['x-appwrite-execution-id'] = $executionId ?? '';
$headers['x-appwrite-trigger'] = $trigger;
$headers['x-appwrite-event'] = $event ?? '';
$headers['x-appwrite-user-id'] = $user->getId() ?? '';
@@ -276,7 +278,6 @@ class Functions extends Action
}
}
$executionId = ID::unique();
$execution = new Document([
'$id' => $executionId,
'$permissions' => $user->isEmpty() ? [] : [Permission::read(Role::user($user->getId()))],
@@ -397,6 +398,7 @@ class Functions extends Action
'scopes' => $function->getAttribute('scopes', [])
]);
$headers['x-appwrite-execution-id'] = $executionId ?? '';
$headers['x-appwrite-key'] = API_KEY_DYNAMIC . '_' . $apiKey;
$headers['x-appwrite-trigger'] = $trigger;
$headers['x-appwrite-event'] = $event ?? '';
@@ -409,6 +411,8 @@ class Functions extends Action
/** Create execution or update execution status */
$execution = $dbForProject->getDocument('executions', $executionId ?? '');
if ($execution->isEmpty()) {
$executionId = ID::unique();
$headers['x-appwrite-execution-id'] = $executionId;
$headersFiltered = [];
foreach ($headers as $key => $value) {
if (\in_array(\strtolower($key), FUNCTION_ALLOWLIST_HEADERS_REQUEST)) {
@@ -416,7 +420,6 @@ class Functions extends Action
}
}
$executionId = ID::unique();
$execution = new Document([
'$id' => $executionId,
'$permissions' => $user->isEmpty() ? [] : [Permission::read(Role::user($user->getId()))],
@@ -543,6 +546,8 @@ class Functions extends Action
$status = $executionResponse['statusCode'] >= 500 ? 'failed' : 'completed';
$executionResponse['headers']['x-appwrite-execution-id'] = $execution->getId();
$headersFiltered = [];
foreach ($executionResponse['headers'] as $key => $value) {
if (\in_array(\strtolower($key), FUNCTION_ALLOWLIST_HEADERS_RESPONSE)) {
@@ -349,11 +349,10 @@ class Swagger2 extends Format
}
}
if (!empty($scope)) { // && 'public' != $scope
if (!empty($scope)) {
$securities = ['Project' => []];
foreach ($sdk->getAuth() as $security) {
/** @var AuthType $security */
if (\array_key_exists($security->value, $this->keys)) {
$securities[$security->value] = [];
}
+56 -18
View File
@@ -96,36 +96,74 @@ class V20 extends Filter
/**
* Returns all relationship attribute keys in `key.*` format for use with `Query::select`.
*/
private function getRelatedCollectionKeys(): array
{
$dbForProject = $this->getDbForProject();
private function getRelatedCollectionKeys(
?string $databaseId = null,
?string $collectionId = null,
?string $prefix = null,
int $depth = 1,
): array {
$databaseId ??= $this->getParamValue('databaseId');
$collectionId ??= $this->getParamValue('collectionId');
if (
empty($databaseId) ||
empty($collectionId) ||
$depth > Database::RELATION_MAX_DEPTH
) {
return [];
}
$dbForProject = $this->getDbForProject();
if ($dbForProject === null) {
return [];
}
$databaseId = $this->getParamValue('databaseId');
$collectionId = $this->getParamValue('collectionId');
if (empty($databaseId) || empty($collectionId)) {
$database = Authorization::skip(fn () => $dbForProject->getDocument('databases', $databaseId));
if ($database->isEmpty()) {
return [];
}
$database = Authorization::skip(fn () => $dbForProject->getDocument('databases', $databaseId));
$collection = $dbForProject->getDocument(
$collection = Authorization::skip(fn () => $dbForProject->getDocument(
'database_' . $database->getSequence(),
$collectionId
);
));
if ($collection->isEmpty()) {
return [];
}
$attributes = $collection->getAttribute('attributes', []);
$relationshipKeys = [];
return \array_values(\array_map(
fn ($attr) => $attr['key'] . '.*',
\array_filter(
$attributes,
fn ($attr) => ($attr['type'] ?? null) === Database::VAR_RELATIONSHIP
)
));
foreach ($attributes as $attr) {
if (
($attr['type'] ?? null) !== Database::VAR_RELATIONSHIP ||
$attr['status'] !== 'available'
) {
continue;
}
$key = $attr['key'];
$fullKey = $prefix ? $prefix . '.' . $key : $key;
// Add the wildcard select for this relationship
$relationshipKeys[] = $fullKey . '.*';
// Get the related collection for nested relationships
$relatedCollectionId = $attr['relatedCollection'] ?? null;
if ($relatedCollectionId) {
// Recursively get nested relationship keys
$nestedKeys = $this->getRelatedCollectionKeys(
$databaseId,
$relatedCollectionId,
$fullKey,
$depth + 1,
);
$relationshipKeys = \array_merge($relationshipKeys, $nestedKeys);
}
}
return \array_values(\array_unique($relationshipKeys));
}
}
+1 -4
View File
@@ -12,18 +12,15 @@ class V20 extends Filter
{
$parsedResponse = $content;
$parsedResponse = match($model) {
return match($model) {
Response::MODEL_DOCUMENT => $this->parseDocument($content),
Response::MODEL_DOCUMENT_LIST => $this->handleList($content, 'documents', fn ($item) => $this->parseDocument($item)),
default => $parsedResponse,
};
return $parsedResponse;
}
protected function parseDocument(array $content): array
{
unset($content['$sequence']);
return $content;
}
}
@@ -79,6 +79,7 @@ class Row extends Any
{
$document->removeAttribute('$collection');
$document->removeAttribute('$tenant');
$document->setAttribute('$sequence', (int)$document->getAttribute('$sequence', 0));
foreach ($document->getAttributes() as $column) {
if (\is_array($column)) {
+1 -1
View File
@@ -1290,7 +1290,7 @@ class UsageTest extends Scope
'x-appwrite-project' => $this->getProject()['$id'],
], $this->getHeaders()),
[
'domain' => 'test-' . ID::unique() . System::getEnv('_APP_DOMAIN_FUNCTIONS'),
'domain' => 'test-' . ID::unique() . '.' . System::getEnv('_APP_DOMAIN_FUNCTIONS'),
'functionId' => $functionId,
],
);
@@ -1625,6 +1625,8 @@ trait DatabasesBase
$this->assertEquals($row1['body']['actors'][0], 'Chris Evans');
$this->assertEquals($row1['body']['actors'][1], 'Samuel Jackson');
$this->assertEquals($row1['body']['birthDay'], '1975-06-12T12:12:55.000+00:00');
$this->assertTrue(array_key_exists('$sequence', $row1['body']));
$this->assertIsInt($row1['body']['$sequence']);
$this->assertEquals(201, $row2['headers']['status-code']);
$this->assertEquals($data['moviesId'], $row2['body']['$tableId']);
@@ -142,6 +142,19 @@ class FunctionsCustomClientTest extends Scope
]);
$output = json_decode($execution['body']['responseBody'], true);
$this->assertEquals(201, $execution['headers']['status-code']);
$this->assertNotEmpty($execution['body']['responseHeaders']);
$executionIdHeader = null;
foreach ($execution['body']['responseHeaders'] as $header) {
if ($header['name'] === 'x-appwrite-execution-id') {
$executionIdHeader = $header['value'];
break;
}
}
$this->assertNotEmpty($executionIdHeader);
$this->assertEquals($execution['body']['$id'], $executionIdHeader);
$this->assertEquals(200, $execution['body']['responseStatusCode']);
$this->assertGreaterThan(0, $execution['body']['duration']);
$this->assertEquals('completed', $execution['body']['status']);
@@ -159,6 +172,11 @@ class FunctionsCustomClientTest extends Scope
$this->assertNotEmpty($output['APPWRITE_FUNCTION_JWT']);
$this->assertEquals($this->getProject()['$id'], $output['APPWRITE_FUNCTION_PROJECT_ID']);
$executionId = $execution['body']['$id'] ?? '';
$this->assertNotEmpty($output['APPWRITE_FUNCTION_EXECUTION_ID']);
$this->assertEquals($executionId, $output['APPWRITE_FUNCTION_EXECUTION_ID']);
$this->assertNotEmpty($output['APPWRITE_FUNCTION_CLIENT_IP']);
$execution = $this->createExecution($functionId, [
'body' => 'foobar',
'async' => true
@@ -892,6 +892,19 @@ class FunctionsCustomServerTest extends Scope
]);
$this->assertEquals(201, $execution['headers']['status-code']);
$this->assertNotEmpty($execution['body']['responseHeaders']);
$executionIdHeader = null;
foreach ($execution['body']['responseHeaders'] as $header) {
if ($header['name'] === 'x-appwrite-execution-id') {
$executionIdHeader = $header['value'];
break;
}
}
$this->assertNotEmpty($executionIdHeader);
$this->assertEquals($execution['body']['$id'], $executionIdHeader);
$this->assertNotEmpty($execution['body']['$id']);
$this->assertNotEmpty($execution['body']['functionId']);
$this->assertEquals(true, (new DatetimeValidator())->isValid($execution['body']['$createdAt']));
@@ -1160,6 +1173,12 @@ class FunctionsCustomServerTest extends Scope
$this->assertEquals(1, $output['APPWRITE_FUNCTION_CPUS']);
$this->assertEquals(1024, $output['APPWRITE_FUNCTION_MEMORY']);
// Test execution ID and client IP
$executionId = $execution['body']['$id'] ?? '';
$this->assertNotEmpty($output['APPWRITE_FUNCTION_EXECUTION_ID']);
$this->assertEquals($executionId, $output['APPWRITE_FUNCTION_EXECUTION_ID']);
$this->assertNotEmpty($output['APPWRITE_FUNCTION_CLIENT_IP']);
// Change the specs to 1vcpu 512mb
$function = $this->client->call(Client::METHOD_PUT, '/functions/' . $data['functionId'], array_merge([
'content-type' => 'application/json',
@@ -1532,6 +1551,9 @@ class FunctionsCustomServerTest extends Scope
$this->assertEquals(204, $lastExecution['responseStatusCode']);
$this->assertStringContainsString($userId, $lastExecution['logs']);
$this->assertStringContainsString('Event User', $lastExecution['logs']);
$this->assertNotEmpty($lastExecution['$id']);
$headers = array_column($lastExecution['requestHeaders'] ?? [], 'value', 'name');
$this->assertEmpty($headers['x-appwrite-client-ip'] ?? '');
}, 20_000, 500);
$this->cleanupFunction($functionId);
@@ -1676,6 +1698,9 @@ class FunctionsCustomServerTest extends Scope
$this->assertEquals(200, $response['headers']['status-code']);
$this->assertEquals($cookie, $response['body']);
$this->assertArrayHasKey('x-appwrite-execution-id', $response['headers']);
$this->assertNotEmpty($response['headers']['x-appwrite-execution-id']);
// Async execution document creation
$this->assertEventually(function () use ($functionId) {
$executions = $this->client->call(Client::METHOD_GET, '/functions/' . $functionId . '/executions', array_merge([
@@ -62,6 +62,9 @@ class FunctionsScheduleTest extends Scope
$this->assertNotEmpty($asyncExecution['logs']);
$this->assertNotEmpty($asyncExecution['errors']);
$this->assertGreaterThan(0, $asyncExecution['duration']);
$this->assertNotEmpty($asyncExecution['$id']);
$headers = array_column($asyncExecution['requestHeaders'] ?? [], 'value', 'name');
$this->assertEmpty($headers['x-appwrite-client-ip'] ?? '');
}, 60000, 500);
$this->cleanupFunction($functionId);
@@ -118,7 +121,9 @@ class FunctionsScheduleTest extends Scope
$this->assertEquals('scheduled', $execution['body']['status']);
$this->assertEquals('PATCH', $execution['body']['requestMethod']);
$this->assertEquals('/custom-path', $execution['body']['requestPath']);
$this->assertCount(0, $execution['body']['requestHeaders']);
$this->assertCount(1, $execution['body']['requestHeaders']);
$this->assertEquals('x-appwrite-client-ip', $execution['body']['requestHeaders'][0]['name']);
$this->assertNotEmpty($execution['body']['requestHeaders'][0]['value']);
\sleep(120);
+1 -1
View File
@@ -33,7 +33,7 @@ class ScopeTest extends Scope
'x-appwrite-key' => $apiKey,
], $gqlPayload);
$message = "app.{$projectId}@service.localhost (role: applications) missing scope (databases.write)";
$message = "app.{$projectId}@service.localhost (role: applications) missing scopes ([\"databases.write\"])";
$this->assertArrayHasKey('errors', $database['body']);
$this->assertEquals($message, $database['body']['errors'][0]['message']);
}
@@ -70,12 +70,29 @@ class ProxyCustomServerTest extends Scope
$this->assertNotEmpty($siteId);
$this->assertNotEmpty($deploymentId);
$rule = $this->createSiteRule('commit-' . $domain, $siteId);
$this->assertEquals(201, $rule['headers']['status-code']);
$this->cleanupRule($rule['body']['$id']);
$rule = $this->createSiteRule('branch-' . $domain, $siteId);
$this->assertEquals(201, $rule['headers']['status-code']);
$this->cleanupRule($rule['body']['$id']);
$rule = $this->createSiteRule('anything-' . $domain, $siteId);
$this->assertEquals(201, $rule['headers']['status-code']);
$this->cleanupRule($rule['body']['$id']);
$domain = \uniqid() . '-vcs.' . System::getEnv('_APP_DOMAIN_SITES', '');
$rule = $this->createSiteRule('commit-' . $domain, $siteId);
$this->assertEquals(400, $rule['headers']['status-code']);
$rule = $this->createSiteRule('branch-' . $domain, $siteId);
$this->assertEquals(400, $rule['headers']['status-code']);
$rule = $this->createSiteRule('subdomain.anything-' . $domain, $siteId);
$this->assertEquals(400, $rule['headers']['status-code']);
$rule = $this->createSiteRule('anything-' . $domain, $siteId);
$this->assertEquals(201, $rule['headers']['status-code']);
$this->cleanupRule($rule['body']['$id']);
@@ -1433,6 +1433,9 @@ class SitesCustomServerTest extends Scope
$this->assertEquals(200, $response['headers']['status-code']);
$this->assertStringContainsString("Index page", $response['body']);
$this->assertArrayHasKey('x-appwrite-log-id', $response['headers']);
$this->assertNotEmpty($response['headers']['x-appwrite-log-id']);
$response = $proxyClient->call(Client::METHOD_GET, '/contact', array_merge([
'content-type' => 'application/json',
'x-appwrite-project' => $this->getProject()['$id'],
+2
View File
@@ -41,6 +41,8 @@ module.exports = async(context) => {
'APPWRITE_FUNCTION_PROJECT_ID' : process.env.APPWRITE_FUNCTION_PROJECT_ID,
'APPWRITE_FUNCTION_MEMORY' : process.env.APPWRITE_FUNCTION_MEMORY,
'APPWRITE_FUNCTION_CPUS' : process.env.APPWRITE_FUNCTION_CPUS,
'APPWRITE_FUNCTION_EXECUTION_ID': context.req.headers['x-appwrite-execution-id'] ?? '',
'APPWRITE_FUNCTION_CLIENT_IP': context.req.headers['x-appwrite-client-ip'] ?? '',
'CUSTOM_VARIABLE' : process.env.CUSTOM_VARIABLE
}, +statusCode);
}