diff --git a/app/views/console/database/collection.phtml b/app/views/console/database/collection.phtml index 7552abde93..1ddb3bf943 100644 --- a/app/views/console/database/collection.phtml +++ b/app/views/console/database/collection.phtml @@ -241,6 +241,7 @@ + @@ -367,6 +368,7 @@ + diff --git a/app/views/console/database/rules/markdown.phtml b/app/views/console/database/rules/markdown.phtml new file mode 100644 index 0000000000..538647e8ed --- /dev/null +++ b/app/views/console/database/rules/markdown.phtml @@ -0,0 +1,7 @@ +getParam('key', ''); +$required = $this->getParam('required', ''); +$namespace = $this->getParam('namespace', ''); +?> + + \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index a3605e9a99..891346152e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -57,7 +57,7 @@ services: depends_on: - mariadb - redis - - smtp + # - smtp - clamav - influxdb - telegraf @@ -99,14 +99,22 @@ services: - MYSQL_PASSWORD=password command: 'mysqld --innodb-flush-method=fsync' - smtp: - image: appwrite/smtp:1.0.1 + maildev: + image: djfarrelly/maildev restart: unless-stopped + ports: + - '1080:80' networks: - appwrite - environment: - - MAILNAME=appwrite - - RELAY_NETWORKS=:192.168.0.0/24:10.0.0.0/16 + + # smtp: + # image: appwrite/smtp:1.0.1 + # restart: unless-stopped + # networks: + # - appwrite + # environment: + # - MAILNAME=appwrite + # - RELAY_NETWORKS=:192.168.0.0/24:10.0.0.0/16 redis: image: redis:5.0 @@ -161,13 +169,23 @@ services: # - RESQUE_WEB_HTTP_BASIC_AUTH_USER=user # - RESQUE_WEB_HTTP_BASIC_AUTH_PASSWORD=password - maildev: - image: djfarrelly/maildev + chronograf: + image: chronograf:1.5 restart: unless-stopped - ports: - - '1080:80' networks: - - appwrite + - appwrite + volumes: + - appwrite-chronograf:/var/lib/chronograf + ports: + - "8888:8888" + environment: + - INFLUXDB_URL=http://influxdb:8086 + - KAPACITOR_URL=http://kapacitor:9092 + - AUTH_DURATION=48h + - TOKEN_SECRET=duperduper5674829!jwt + - GH_CLIENT_ID=d86f7145a41eacfc52cc + - GH_CLIENT_SECRET=9e0081062367a2134e7f2ea95ba1a32d08b6c8ab + - GH_ORGS=appwrite networks: gateway: @@ -180,4 +198,5 @@ volumes: appwrite-uploads: appwrite-certificates: appwrite-influxdb: + appwrite-chronograf: appwrite-config: diff --git a/src/Appwrite/Database/Validator/Structure.php b/src/Appwrite/Database/Validator/Structure.php index 7f0ea511b5..5ac3b3e012 100644 --- a/src/Appwrite/Database/Validator/Structure.php +++ b/src/Appwrite/Database/Validator/Structure.php @@ -8,6 +8,21 @@ use Utopia\Validator; class Structure extends Validator { + const RULE_TYPE_ID = 'id'; + const RULE_TYPE_PERMISSIONS = 'permissions'; + const RULE_TYPE_KEY = 'key'; + const RULE_TYPE_TEXT = 'text'; + const RULE_TYPE_MARKDOWN = 'markdown'; + const RULE_TYPE_NUMERIC = 'numeric'; + const RULE_TYPE_BOOLEAN = 'boolean'; + const RULE_TYPE_EMAIL = 'email'; + const RULE_TYPE_URL = 'url'; + const RULE_TYPE_IP = 'ip'; + const RULE_TYPE_WILDCARD = 'wildcard'; + const RULE_TYPE_DOCUMENT = 'document'; + const RULE_TYPE_DOCUMENTID = 'documentId'; + const RULE_TYPE_FILEID = 'fileId'; + /** * @var Database */ @@ -147,45 +162,46 @@ class Structure extends Validator $validator = null; switch ($ruleType) { - case 'id': + case self::RULE_TYPE_ID: $validator = new UID(); break; - case 'text': - $validator = new Validator\Text(0); - break; - case 'numeric': - $validator = new Validator\Numeric(); - break; - case 'boolean': - $validator = new Validator\Boolean(); - break; - case 'email': - $validator = new Validator\Email(); - break; - case 'url': - $validator = new Validator\URL(); - break; - case 'ip': - $validator = new Validator\IP(); - break; - case 'wildcard': - $validator = new Validator\Mock(); - break; - case 'permissions': + case self::RULE_TYPE_PERMISSIONS: $validator = new Permissions($document); //$validator = ($this->forcePermissions) ? new Authorization($original, 'write') : new Validator\Mock(); break; - case 'key': + case self::RULE_TYPE_KEY: $validator = new Key(); break; - case 'document': + case self::RULE_TYPE_TEXT: + case self::RULE_TYPE_MARKDOWN: + $validator = new Validator\Text(0); + break; + case self::RULE_TYPE_NUMERIC: + $validator = new Validator\Numeric(); + break; + case self::RULE_TYPE_BOOLEAN: + $validator = new Validator\Boolean(); + break; + case self::RULE_TYPE_EMAIL: + $validator = new Validator\Email(); + break; + case self::RULE_TYPE_URL: + $validator = new Validator\URL(); + break; + case self::RULE_TYPE_IP: + $validator = new Validator\IP(); + break; + case self::RULE_TYPE_WILDCARD: + $validator = new Validator\Mock(); + break; + case self::RULE_TYPE_DOCUMENT: $validator = new Collection($this->database, (isset($rule['list'])) ? $rule['list'] : []); $value = $document->getAttribute($key); break; - case 'documentId': + case self::RULE_TYPE_DOCUMENTID: $validator = new DocumentId($this->database, (isset($rule['list'])) ? $rule['list'] : []); $value = $document->getAttribute($key); break; - case 'fileId': + case self::RULE_TYPE_FILEID: $validator = new DocumentId($this->database, [Database::SYSTEM_COLLECTION_FILES]); $value = $document->getAttribute($key); break;