Merge branch 'master' of https://github.com/appwrite/appwrite into feat-release-0-12-1

This commit is contained in:
Torsten Dittmann 2022-01-07 13:58:44 +01:00
commit b4ee90a235
7 changed files with 62 additions and 27 deletions

View File

@ -40,6 +40,7 @@ Table of Contents:
- [Client](#client)
- [Server](#server)
- [Community](#community)
- [Architecture](#architecture)
- [Contributing](#contributing)
- [Security](#security)
- [Follow Us](#follow-us)
@ -143,6 +144,15 @@ Below is a list of currently supported platforms and languages. If you wish to h
Looking for more SDKs? - Help us by contributing a pull request to our [SDK Generator](https://github.com/appwrite/sdk-generator)!
## Architecture
![Appwrite Architecture](docs/specs/overview.drawio.svg)
Appwrite uses a microservices architecture that was designed for easy scaling and delegation of responsibilities. In addition, Appwrite supports multiple APIs (REST, WebSocket, and GraphQL-soon) to allow you to interact with your resources leveraging your existing knowledge and protocols of choice.
The Appwrite API layer was designed to be extremely fast by leveraging in-memory caching and delegating any heavy-lifting tasks to the Appwrite background workers. The background workers also allow you to precisely control your compute capacity and costs using a message queue to handle the load. You can learn more about our architecture in the [contribution guide](CONTRIBUTING.md#architecture-1).
## Contributing
All code contributions - including those of people having commit access - must go through a pull request and be approved by a core developer before being merged. This is to ensure a proper review of all the code.

View File

@ -97,13 +97,13 @@ $usageStatsEnabled = $this->getParam('usageStatsEnabled', true);
</div>
<div class="chart-metric">
<div class="value margin-bottom-small"><span class="sum" data-ls-bind="{{usage.requests|statsGetLast|statsTotal}}">N/A</span></div>
<div class="value margin-bottom-small"><span class="sum" data-ls-bind="{{usage.requests|statsGetSum|statsTotal}}">N/A</span></div>
<div class="unit margin-start-no margin-bottom-small">Requests</div>
</div>
</div>
<div class="col span-3">
<div class="value margin-bottom-small">
<span class="sum" data-ls-bind="{{realtime.current|accessProject}}" data-default="0">0</span>
<span class="sum" data-ls-bind="{{realtime.current|accessProject|statsTotal}}" data-default="0">0</span>
</div>
<div class="unit margin-start-no margin-bottom-small">Connections</div>
<div class="chart-bar margin-top-small margin-bottom-small" data-ls-attrs="data-history={{realtime.history|accessProject}}" data-forms-chart-bars="{{realtime.history|accessProject}}"></div>

View File

@ -1,4 +1,4 @@
<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1108px" height="839px" viewBox="-0.5 -0.5 1108 839" content="&lt;mxfile host=&quot;612c770d-d23c-4897-ac0d-72478d1c5aef&quot; modified=&quot;2021-02-22T07:17:54.650Z&quot; agent=&quot;5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Code/1.53.2 Chrome/87.0.4280.141 Electron/11.2.1 Safari/537.36&quot; etag=&quot;sAOb0L0gpVpMeEycjwCe&quot; version=&quot;14.2.4&quot; type=&quot;embed&quot;&gt;&lt;diagram id=&quot;WOshqXSVd2VkRfcggtcB&quot; name=&quot;Page-1&quot;&gt;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&lt;/diagram&gt;&lt;/mxfile&gt;">
<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1108px" height="839px" viewBox="-0.5 -0.5 1108 839" content="&lt;mxfile&gt;&lt;diagram id=&quot;WOshqXSVd2VkRfcggtcB&quot; name=&quot;Page-1&quot;&gt;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&lt;/diagram&gt;&lt;/mxfile&gt;">
<defs/>
<g>
<path d="M 77 40 L 77 80 L 397 80 L 397 113.63" fill="none" stroke="#23445d" stroke-miterlimit="10" pointer-events="stroke"/>
@ -201,13 +201,13 @@
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 520px; margin-left: 608px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
Pub/Sub (Redis)
Queue (Redis)
</div>
</div>
</div>
</foreignObject>
<text x="667" y="524" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
Pub/Sub (Redis)
Queue (Redis)
</text>
</switch>
</g>
@ -239,13 +239,13 @@
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 590px; margin-left: 468px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
Database (MariaDB)
Database
</div>
</div>
</div>
</foreignObject>
<text x="527" y="594" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
Database (MariaDB)
Database
</text>
</switch>
</g>
@ -404,22 +404,20 @@
</g>
<path d="M 437 720 L 437 820 L 297 820 L 297 590 L 460.63 590" fill="none" stroke="#d6b656" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 465.88 590 L 458.88 593.5 L 460.63 590 L 458.88 586.5 Z" fill="#d6b656" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 437 680 L 437 640 L 667 640 L 667 546.37" fill="none" stroke="#0e8088" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 667 541.12 L 670.5 548.12 L 667 546.37 L 663.5 548.12 Z" fill="#0e8088" stroke="#0e8088" stroke-miterlimit="10" pointer-events="all"/>
<rect x="397" y="680" width="80" height="40" fill="#b0e3e6" stroke="#0e8088" pointer-events="all"/>
<rect x="397" y="680" width="80" height="40" fill="#b1ddf0" stroke="#10739e" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 700px; margin-left: 398px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
Deletes
Maintenance
</div>
</div>
</div>
</foreignObject>
<text x="437" y="704" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
Deletes
Maintenance
</text>
</switch>
</g>
@ -450,9 +448,7 @@
<path d="M 347 541.12 L 350.5 548.12 L 347 546.37 L 343.5 548.12 Z" fill="#9673a6" stroke="#9673a6" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 347 720 L 347 740 L 207 740 L 207 546.37" fill="none" stroke="#9673a6" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 207 541.12 L 210.5 548.12 L 207 546.37 L 203.5 548.12 Z" fill="#9673a6" stroke="#9673a6" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 347 680 L 347 640 L 667 640 L 667 546.37" fill="none" stroke="#0e8088" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 667 541.12 L 670.5 548.12 L 667 546.37 L 663.5 548.12 Z" fill="#0e8088" stroke="#0e8088" stroke-miterlimit="10" pointer-events="all"/>
<rect x="307" y="680" width="80" height="40" fill="#b0e3e6" stroke="#0e8088" pointer-events="all"/>
<rect x="307" y="680" width="80" height="40" fill="#b1ddf0" stroke="#10739e" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
@ -530,8 +526,6 @@
</g>
<path d="M 707 720 L 707 820 L 297 820 L 297 590 L 460.63 590" fill="none" stroke="#d6b656" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 465.88 590 L 458.88 593.5 L 460.63 590 L 458.88 586.5 Z" fill="#d6b656" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 707 680 L 707 640 L 667 640 L 667 546.37" fill="none" stroke="#d4d4d4" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 667 541.12 L 670.5 548.12 L 667 546.37 L 663.5 548.12 Z" fill="#d4d4d4" stroke="#d4d4d4" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 707 680 L 707 640 L 667 640 L 667 546.37" fill="none" stroke="#0e8088" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 667 541.12 L 670.5 548.12 L 667 546.37 L 663.5 548.12 Z" fill="#0e8088" stroke="#0e8088" stroke-miterlimit="10" pointer-events="all"/>
<rect x="667" y="680" width="80" height="40" fill="#b0e3e6" stroke="#0e8088" pointer-events="all"/>
@ -541,13 +535,13 @@
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 700px; margin-left: 668px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
Tasks
Database
</div>
</div>
</div>
</foreignObject>
<text x="707" y="704" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
Tasks
Database
</text>
</switch>
</g>
@ -678,13 +672,13 @@
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 700px; margin-left: 1028px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
Scheduler
Deletes
</div>
</div>
</div>
</foreignObject>
<text x="1067" y="704" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
Scheduler
Deletes
</text>
</switch>
</g>
@ -714,13 +708,13 @@
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 520px; margin-left: 748px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
Antivirus (ClamAV)
AntiVirus (ClamAV)
</div>
</div>
</div>
</foreignObject>
<text x="807" y="524" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
Antivirus (ClamAV)
AntiVirus (ClamAV)
</text>
</switch>
</g>
@ -743,6 +737,23 @@
</text>
</switch>
</g>
<rect x="217" y="680" width="80" height="40" fill="#b1ddf0" stroke="#10739e" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 700px; margin-left: 218px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
Scheduler
</div>
</div>
</div>
</foreignObject>
<text x="257" y="704" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
Scheduler
</text>
</switch>
</g>
</g>
<switch>
<g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/>

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 64 KiB

View File

@ -3647,7 +3647,8 @@ let units=["kB","MB","GB","TB","PB","EB","ZB","YB"];let u=-1;do{$value/=thresh;+
let thresh=1000;if(Math.abs($value)<thresh){return'B';}
let units=["kB","MB","GB","TB","PB","EB","ZB","YB"];let u=-1;do{$value/=thresh;++u;}while(Math.abs($value)>=thresh&&u<units.length-1);return units[u];}).add("statsTotal",function($value){if(!$value){return 0;}
$value=abbreviate($value,0,false,false);return $value??"N/A";}).add("statsGetLast",function($value){if(!$value||$value.length<1){return 0;}
return $value[$value.length-1].value;}).add("isEmpty",function($value){return(!!$value);}).add("isEmptyObject",function($value){return((Object.keys($value).length===0&&$value.constructor===Object)||$value.length===0)}).add("activeDomainsCount",function($value){let result=[];if(Array.isArray($value)){result=$value.filter(function(node){return(node.verification&&node.certificateId);});}
return $value[$value.length-1].value;}).add("statsGetSum",function($value){if(!$value||$value.length<1){return 0;}
return $value.reduce(function(value,object){return value+object.value},0);}).add("isEmpty",function($value){return(!!$value);}).add("isEmptyObject",function($value){return((Object.keys($value).length===0&&$value.constructor===Object)||$value.length===0)}).add("activeDomainsCount",function($value){let result=[];if(Array.isArray($value)){result=$value.filter(function(node){return(node.verification&&node.certificateId);});}
return result.length;}).add("documentAction",function(container){let collection=container.get('project-collection');let document=container.get('project-document');if(collection&&document&&!document.$id){return'database.createDocument';}
return'database.updateDocument';}).add("documentSuccess",function(container){let document=container.get('project-document');if(document&&!document.$id){return',redirect';}
return'';}).add("firstElement",function($value){if($value&&$value[0]){return $value[0];}

View File

@ -668,7 +668,8 @@ let units=["kB","MB","GB","TB","PB","EB","ZB","YB"];let u=-1;do{$value/=thresh;+
let thresh=1000;if(Math.abs($value)<thresh){return'B';}
let units=["kB","MB","GB","TB","PB","EB","ZB","YB"];let u=-1;do{$value/=thresh;++u;}while(Math.abs($value)>=thresh&&u<units.length-1);return units[u];}).add("statsTotal",function($value){if(!$value){return 0;}
$value=abbreviate($value,0,false,false);return $value??"N/A";}).add("statsGetLast",function($value){if(!$value||$value.length<1){return 0;}
return $value[$value.length-1].value;}).add("isEmpty",function($value){return(!!$value);}).add("isEmptyObject",function($value){return((Object.keys($value).length===0&&$value.constructor===Object)||$value.length===0)}).add("activeDomainsCount",function($value){let result=[];if(Array.isArray($value)){result=$value.filter(function(node){return(node.verification&&node.certificateId);});}
return $value[$value.length-1].value;}).add("statsGetSum",function($value){if(!$value||$value.length<1){return 0;}
return $value.reduce(function(value,object){return value+object.value},0);}).add("isEmpty",function($value){return(!!$value);}).add("isEmptyObject",function($value){return((Object.keys($value).length===0&&$value.constructor===Object)||$value.length===0)}).add("activeDomainsCount",function($value){let result=[];if(Array.isArray($value)){result=$value.filter(function(node){return(node.verification&&node.certificateId);});}
return result.length;}).add("documentAction",function(container){let collection=container.get('project-collection');let document=container.get('project-document');if(collection&&document&&!document.$id){return'database.createDocument';}
return'database.updateDocument';}).add("documentSuccess",function(container){let document=container.get('project-document');if(document&&!document.$id){return',redirect';}
return'';}).add("firstElement",function($value){if($value&&$value[0]){return $value[0];}

View File

@ -183,6 +183,13 @@ window.ls.filter
return $value[$value.length - 1].value;
})
.add("statsGetSum", function ($value) {
if (!$value || $value.length < 1) {
return 0;
}
return $value.reduce(function(value, object) { return value + object.value }, 0);
})
.add("isEmpty", function ($value) {
return (!!$value);
})

View File

@ -141,7 +141,13 @@ class V12 extends Filter
if(isset($usedOperator)) {
[ $attributeKey, $filterValue ] = \explode($usedOperator, $filter);
$filterValue = \is_numeric($filterValue) ? $filterValue : '"' . $filterValue . '"';
if($filterValue === 'true' || $filterValue === 'false') {
// Let's keep it at true and false string, but without "" around
// No action needed
} else {
$filterValue = \is_numeric($filterValue) ? $filterValue : '"' . $filterValue . '"';
}
$query = $attributeKey . '.' . $operators[$usedOperator] . '(' . $filterValue . ')';
\array_push($queries, $query);
}
@ -152,7 +158,6 @@ class V12 extends Filter
unset($content['search']);
unset($content['filters']);
unset($content['search']);
$content['queries'] = $queries;
return $content;