diff --git a/CHANGES.md b/CHANGES.md index 1338e63823..184c02f0e8 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -2,9 +2,18 @@ ## Features +* New collections UI with ability to create and update a collection +* New documents UI with ability to create and update a document * Added support for Flutter iOS & Android apps +* Added support for default DB document values +* Exposed health API to all the server SDKs * New locale for Khmer * Added TypeScript type hinting to the JS SDK (@zevektor) +* Added LTR/RTL support for markdown editor +* Added cachebuster to version number on footer +* New OAuth logos +* Minor fixes to the dark mode theme +* Added JSON view for a project user ## Breaking Changes @@ -14,6 +23,7 @@ ## Bug Fixes * Fixed project users logout button +* Fixed wrong target in database back link # Version 0.5.3 (PRE-RELEASE) diff --git a/app/controllers/api/health.php b/app/controllers/api/health.php index 60685024f1..50f410717d 100644 --- a/app/controllers/api/health.php +++ b/app/controllers/api/health.php @@ -13,6 +13,7 @@ $utopia->get('/v1/health') ->label('sdk.platform', [APP_PLATFORM_SERVER]) ->label('sdk.namespace', 'health') ->label('sdk.method', 'get') + ->label('sdk.description', '/docs/references/health/get.md') ->label('docs', false) ->action( function () use ($response) { @@ -26,6 +27,7 @@ $utopia->get('/v1/health/db') ->label('sdk.platform', [APP_PLATFORM_SERVER]) ->label('sdk.namespace', 'health') ->label('sdk.method', 'getDB') + ->label('sdk.description', '/docs/references/health/get-db.md') ->label('docs', false) ->action( function () use ($response, $register) { @@ -41,6 +43,7 @@ $utopia->get('/v1/health/cache') ->label('sdk.platform', [APP_PLATFORM_SERVER]) ->label('sdk.namespace', 'health') ->label('sdk.method', 'getCache') + ->label('sdk.description', '/docs/references/health/get-cache.md') ->label('docs', false) ->action( function () use ($response, $register) { @@ -56,6 +59,7 @@ $utopia->get('/v1/health/time') ->label('sdk.platform', [APP_PLATFORM_SERVER]) ->label('sdk.namespace', 'health') ->label('sdk.method', 'getTime') + ->label('sdk.description', '/docs/references/health/get-time.md') ->label('docs', false) ->action( function () use ($response) { @@ -97,12 +101,13 @@ $utopia->get('/v1/health/time') } ); -$utopia->get('/v1/health/webhooks') - ->desc('Check Webhooks Health') +$utopia->get('/v1/health/queue/webhooks') + ->desc('Check number of pending webhook messages') ->label('scope', 'health.read') ->label('sdk.platform', [APP_PLATFORM_SERVER]) ->label('sdk.namespace', 'health') - ->label('sdk.method', 'getWebhooks') + ->label('sdk.method', 'getQueueWebhooks') + ->label('sdk.description', '/docs/references/health/get-queue-webhooks.md') ->label('docs', false) ->action( function () use ($response) { @@ -110,12 +115,69 @@ $utopia->get('/v1/health/webhooks') } ); +$utopia->get('/v1/health/queue/tasks') + ->desc('Check the number of pending task messages') + ->label('scope', 'health.read') + ->label('sdk.platform', [APP_PLATFORM_SERVER]) + ->label('sdk.namespace', 'health') + ->label('sdk.method', 'getQueueTasks') + ->label('sdk.description', '/docs/references/health/get-queue-tasks.md') + ->label('docs', false) + ->action( + function () use ($response) { + $response->json(['size' => Resque::size('v1-tasks')]); + } + ); + +$utopia->get('/v1/health/queue/logs') +->desc('Check the number of pending log messages') + ->label('scope', 'health.read') + ->label('sdk.platform', [APP_PLATFORM_SERVER]) + ->label('sdk.namespace', 'health') + ->label('sdk.method', 'getQueueLogs') + ->label('sdk.description', '/docs/references/health/get-queue-logs.md') + ->label('docs', false) + ->action( + function () use ($response) { + $response->json(['size' => Resque::size('v1-audit')]); + } + ); + +$utopia->get('/v1/health/queue/usage') + ->desc('Check the number of pending usage messages') + ->label('scope', 'health.read') + ->label('sdk.platform', [APP_PLATFORM_SERVER]) + ->label('sdk.namespace', 'health') + ->label('sdk.method', 'getQueueUsage') + ->label('sdk.description', '/docs/references/health/get-queue-usage.md') + ->label('docs', false) + ->action( + function () use ($response) { + $response->json(['size' => Resque::size('v1-usage')]); + } + ); + +$utopia->get('/v1/health/queue/certificates') + ->desc('Check the number of pending certificate messages') + ->label('scope', 'health.read') + ->label('sdk.platform', [APP_PLATFORM_SERVER]) + ->label('sdk.namespace', 'health') + ->label('sdk.method', 'getQueueCertificates') + ->label('sdk.description', '/docs/references/health/get-queue-certificates.md') + ->label('docs', false) + ->action( + function () use ($response) { + $response->json(['size' => Resque::size('v1-usage')]); + } + ); + $utopia->get('/v1/health/storage/local') ->desc('Check File System Health') ->label('scope', 'health.read') ->label('sdk.platform', [APP_PLATFORM_SERVER]) ->label('sdk.namespace', 'health') ->label('sdk.method', 'getStorageLocal') + ->label('sdk.description', '/docs/references/health/get-storage-local.md') ->label('docs', false) ->action( function () use ($response) { @@ -139,6 +201,7 @@ $utopia->get('/v1/health/storage/anti-virus') ->label('sdk.platform', [APP_PLATFORM_SERVER]) ->label('sdk.namespace', 'health') ->label('sdk.method', 'getStorageAntiVirus') + ->label('sdk.description', '/docs/references/health/get-storage-anti-virus.md') ->label('docs', false) ->action( function () use ($response) { @@ -151,12 +214,12 @@ $utopia->get('/v1/health/storage/anti-virus') } ); -$utopia->get('/v1/health/stats') +$utopia->get('/v1/health/stats') // Currently only used internally ->desc('System Stats') ->label('scope', 'god') - ->label('sdk.platform', [APP_PLATFORM_SERVER]) - ->label('sdk.namespace', 'health') - ->label('sdk.method', 'getStats') + // ->label('sdk.platform', [APP_PLATFORM_SERVER]) + // ->label('sdk.namespace', 'health') + // ->label('sdk.method', 'getStats') ->label('docs', false) ->action( function () use ($response, $register) { diff --git a/docs/references/health/get-cache.md b/docs/references/health/get-cache.md new file mode 100644 index 0000000000..91abcd6bc5 --- /dev/null +++ b/docs/references/health/get-cache.md @@ -0,0 +1 @@ +Check the Appwrite in-memory cache server is up and connection is successful. \ No newline at end of file diff --git a/docs/references/health/get-db.md b/docs/references/health/get-db.md new file mode 100644 index 0000000000..9652d0d3e3 --- /dev/null +++ b/docs/references/health/get-db.md @@ -0,0 +1 @@ +Check the Appwrite database server is up and connection is successful. \ No newline at end of file diff --git a/docs/references/health/get-queue-certificates.md b/docs/references/health/get-queue-certificates.md new file mode 100644 index 0000000000..d4a86f627d --- /dev/null +++ b/docs/references/health/get-queue-certificates.md @@ -0,0 +1 @@ +Get the number of certificates that are waiting to be issued against [Letsencrypt](https://letsencrypt.org/) in the Appwrite internal queue server. \ No newline at end of file diff --git a/docs/references/health/get-queue-logs.md b/docs/references/health/get-queue-logs.md new file mode 100644 index 0000000000..867af03a30 --- /dev/null +++ b/docs/references/health/get-queue-logs.md @@ -0,0 +1 @@ +Get the number of logs that are waiting to be processed in the Appwrite internal queue server. \ No newline at end of file diff --git a/docs/references/health/get-queue-tasks.md b/docs/references/health/get-queue-tasks.md new file mode 100644 index 0000000000..ea6fa22087 --- /dev/null +++ b/docs/references/health/get-queue-tasks.md @@ -0,0 +1 @@ +Get the number of tasks that are waiting to be processed in the Appwrite internal queue server. \ No newline at end of file diff --git a/docs/references/health/get-queue-usage.md b/docs/references/health/get-queue-usage.md new file mode 100644 index 0000000000..a066a11e89 --- /dev/null +++ b/docs/references/health/get-queue-usage.md @@ -0,0 +1 @@ +Get the number of usage stats that are waiting to be processed in the Appwrite internal queue server. \ No newline at end of file diff --git a/docs/references/health/get-queue-webhooks.md b/docs/references/health/get-queue-webhooks.md new file mode 100644 index 0000000000..1b582685d1 --- /dev/null +++ b/docs/references/health/get-queue-webhooks.md @@ -0,0 +1 @@ +Get the number of webhooks that are waiting to be processed in the Appwrite internal queue server. \ No newline at end of file diff --git a/docs/references/health/get-storage-anti-virus.md b/docs/references/health/get-storage-anti-virus.md new file mode 100644 index 0000000000..55bdb19636 --- /dev/null +++ b/docs/references/health/get-storage-anti-virus.md @@ -0,0 +1 @@ +Check the Appwrite Anti Virus server is up and connection is successful. \ No newline at end of file diff --git a/docs/references/health/get-storage-local.md b/docs/references/health/get-storage-local.md new file mode 100644 index 0000000000..9e49f836f1 --- /dev/null +++ b/docs/references/health/get-storage-local.md @@ -0,0 +1 @@ +Check the Appwrite local storage device is up and connection is successful. \ No newline at end of file diff --git a/docs/references/health/get-time.md b/docs/references/health/get-time.md new file mode 100644 index 0000000000..9773b61c94 --- /dev/null +++ b/docs/references/health/get-time.md @@ -0,0 +1 @@ +Check the Appwrite server time is synced with Google remote NTP server. We use this technology to smoothly handle leap seconds with no disruptive events. The [Network Time Protocol](https://en.wikipedia.org/wiki/Network_Time_Protocol) (NTP) is used by hundreds of millions of computers and devices to synchronize their clocks over the Internet. If your computer sets its own clock, it likely uses NTP. \ No newline at end of file diff --git a/docs/references/health/get.md b/docs/references/health/get.md new file mode 100644 index 0000000000..43689c3093 --- /dev/null +++ b/docs/references/health/get.md @@ -0,0 +1 @@ +Check the Appwrite HTTP server is up and responsive. \ No newline at end of file