mirror of
https://github.com/directus/directus.git
synced 2026-04-25 03:00:53 -04:00
* items semi complete
* updated items page to use snippet toggler and migrated endpoint docs to use it
* updated files page to use snippet toggler and migrated REST and GraphQL endpoint docs to it
* updated activity page to use snippet toggler and migrated REST and GraphQL endpoint doc to it
* updated collections page to use snippet togglers and migrated REST and GraphQL endpoint docs to them
* updated dashboards page to use snippet togglers and migrated REST and GraphQL endpoint docs to them
* Updated extensions page to use snippet togglers and migrated REST and GraphQL endpoint docs to them
* Updated fields page to use snippet togglers and migrated REST and GraphQL endpoint docs to them
* Updated flows page to use snippet togglers and migrated REST and GraphQL endpoint docs to them
* Updated folders page to use snippet togglers and migrated REST and GraphQL endpoint docs to them
* Updated notifications page to use snippet togglers and migrated REST and GraphQL endpoint docs to them
* Updated operations page to use snippet togglers and migrated REST and GraphQL endpoint docs to them
* Updated panels page to use snippet togglers and migrated REST and GraphQL endpoint docs to them
* Updated permissions page to use snippet togglers and migrated REST and GraphQL endpoint docs to them
* Updated presets page to use snippet togglers and migrated REST and GraphQL endpoint docs to them
* Updated relations page to use snippet togglers and migrated REST and GraphQL endpoint docs to them
* Updated revisions page to use snippet togglers and migrated REST and GraphQL endpoint docs to them
* Updated roles page to use snippet togglers and migrated REST and GraphQL endpoint docs to them
* Made headlines consistant with the rest of the doc pages
* Updated server page to use snippet togglers and migrated REST and GraphQL endpoint docs to them
* Updated settings page to use snippet togglers and migrated REST and GraphQL endpoint docs to them
* Updated shares page to use snippet togglers and migrated REST and GraphQL endpoint docs to them
* Updated translations page to use snippet togglers and migrated REST endpoint docs to them
* Updated users page to use snippet togglers and migrated REST and GraphQL endpoint docs to them
* Updated utilities page to use snippet togglers and migrated REST and GraphQL endpoint docs to them
* Updated webhooks page to use snippet togglers and migrated REST and GraphQL endpoint docs to them
* Updated authentication page to use snippet togglers and migrated REST and GraphQL endpoint docs to them
* Updated Global Parameters page to use snippet togglers where there are adjacent REST and GraphQL Examples
* Added SDK code snippets to items page and made generic variables consistant
* Added SDK code snippets to files page and made generic variables consistant
* Few lang changes for files page
* Added SDK code snippets to activity page and made generic variables consistant
* Added SDK code snippets to collections page and made generic variables consistant
* Added SDK code snippets to dashboards page and made generic variables consistant
* removed query word from query parameter objects
* Added SDK code snippets to fields page and made generic variables consistant
* SnippetToggler border
* Used dynamic border color for snippettoggler heading
* Spacing top and bottom of snippet toggler in docs
* Removed extra HRs
* Remove manual TOC in query reference
* Small code styling change in items page
* Updated users page to use snippet togglers and migrated REST and GraphQL endpoint docs to them
* dashboards fixed up property names
* Small copy update on extensions page
* Updated keys in delete mult notifications REST
* Updated keys in operations
* Update keys in panel delete many
* Update keys in permissions
* Added quotes around generic example ID strings
* Added code formatting to final example in share public info
* Format files
* Refined sidebar
* Insert newline before ending template tags
* Fixed extra closing tags, causing an error, un users ref
* Text Formatting Users
* Put GQL related notes inside toggler
* Added SDK code snippets to flows page and made generic variables consistant
* Added SDK code snippets to folder page and made generic variables consistant
* fixing whitepsace for flows and folders page
* Consistent newlines in SnippetToggler usages
* Run prettier
* Fix 'alwaysDark' definition
* Home page snippet toggler style fixes
* Fix snippet toggler lang hover color in light mode
* Introduce different code theme for light mode
* Added SDK code snippets to notifications page and made generic variables consistant
* Switch to 'material-theme-lighter'
* Format file
* Fix tip
* Fix tip in sdk ref
* Consistent spacing for custom containers
* Added SDK code snippets to operations page and made generic variables consistant
* Lint & format code blocks
* Lint & format operations
* Added SDK code snippets to panels page and made generic variables consistant
* Added SDK code snippets to permissions page and made generic variables consistant
* Added SDK code snippets to presets page and made generic variables consistant
* Added SDK code snippets to relations page and made generic variables consistant
* Added SDK code snippets to revisions page and made generic variables consistant
* Added SDK code snippets to roles page and made generic variables consistant
* Added SDK code snippets to server page and made generic variables consistant
* Added SDK code snippets to settings page and made generic variables consistant
* app_url -> directus_project_url
* Omitted auth details in delete multiple files
* Added quotes to values in roles
* Upload a file snippets
* Pluralization for upload/import files
* More files functions typos
* Added SDK code snippets to shares page (still missing createShare(s) as endpoint not functioning currently) and made generic variables consistant
* Added SDK code snippets to translations page (missing delete endponts because not working) and made generic variables consistant
* Added SDK code snippets to users page and made generic variables consistant
* Added SDK code snippets to webhooks page and made generic variables consistant
* Added SDK code snippets to utilites page (except cleaning cache, will be tested and added in later commit) and made generic variables consistant
* Added SDK code snippets to auth page (not login, refresh, and logout though due to errors)
* Added SDK code snippets for utilsExport and clearCache
* added github username be7DOTis to contributors
* Omit auth commands in updateComment
* utilsImport
* rename app_url generic value
* changed instances of updated*operation* to update*Operation*
* missed some 'updated' changse
* Added SDK Snippets to Query Parameters page
* Add section on file security
* added create(s)Shares SDK snippet to shares page
* added console.log to create snippets
* Added delete(s)Webhook SDK snippet to webhooks page
* Added SDK snippets to extensions page
* Added create/updateSingleton section to items page
* Links in files security
* Added SDK Snippets to Schema page
* Added GQL Generic examples to snippet togglers and removed snippet toggler from Login Using SSO Providers
* Added create(s)Presets SDK Snippets to presets page
* replaced fields query in generics snippets for a more generic
* replaced fields query in generics snippets for a more generic
* Use storage value only if valid choice
* Sync snippet togglers across page
* Update docs/reference/system/activity.md
* Update docs/reference/system/activity.md
* Update docs/reference/system/extensions.md
* Update docs/reference/system/revisions.md
* Update docs/reference/system/settings.md
* Update docs/reference/system/revisions.md
* Update docs/reference/system/settings.md
* Update docs/reference/system/activity.md
* Update docs/reference/system/roles.md
* Update docs/reference/system/roles.md
* Update docs/reference/system/roles.md
* Update docs/reference/system/roles.md
* Update docs/reference/system/schema.md
* Update docs/reference/system/server.md
* Update docs/reference/system/shares.md
* Replace all directus_project_url placeholders
* Revert "Sync snippet togglers across page"
This reverts commit 8b36f0d778.
* Update docs/reference/system/shares.md
* Update docs/reference/system/webhooks.md
* Clarify singleton section
* Consistent newlines between SnippetToggler templates
* Format files
* Remove console.log(result) statements from snippet
* Add examples for shares & users
Co-authored-by: Brainslug <tim@brainslug.nl>
* Fix hash GraphQL example
* Clarify update singleton section
* Add auth examples
Co-authored-by: Brainslug <tim@brainslug.nl>
* Final run on consistent newlines between SnippetToggler
* Switch to github themes
* The "Last One"
Co-authored-by: Brainslug <tim@brainslug.nl>
* The "Big One"
* Fix dead links
---------
Co-authored-by: Bevis Halsey-Perry <hi@be7.is>
Co-authored-by: Kevin Lewis <kvn@lws.io>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
Co-authored-by: Brainslug <tim@brainslug.nl>
528 lines
9.3 KiB
Markdown
528 lines
9.3 KiB
Markdown
---
|
|
description: REST and GraphQL API documentation on the Server collection in Directus.
|
|
readTime: 4 min read
|
|
pageClass: page-reference
|
|
---
|
|
|
|
# Server
|
|
|
|
> Provides detailed information about the project server, its schema, and its health.
|
|
> [Learn more about Projects](/user-guide/overview/glossary#projects).
|
|
|
|
## Get OpenAPI Specification
|
|
|
|
Retrieve the OpenAPI spec for the current project.
|
|
|
|
::: tip Permissions
|
|
|
|
This OAS spec is based on the read permissions of the currently authenticated user.
|
|
|
|
:::
|
|
|
|
### Request
|
|
|
|
<SnippetToggler :choices="['REST', 'GraphQL', 'SDK']" label="API">
|
|
<template #rest>
|
|
|
|
`GET /server/specs/oas`
|
|
|
|
</template>
|
|
<template #graphql>
|
|
|
|
`POST /graphql/system`
|
|
|
|
```graphql
|
|
type Query {
|
|
server_specs_oas: String
|
|
}
|
|
```
|
|
|
|
</template>
|
|
<template #sdk>
|
|
|
|
```js
|
|
import { createDirectus } from '@directus/sdk';
|
|
import { rest, readOpenApiSpec } from '@directus/sdk/rest';
|
|
|
|
const client = createDirectus('https://directus.example.com').with(rest());
|
|
|
|
const result = await client.request(readOpenApiSpec());
|
|
```
|
|
|
|
</template>
|
|
</SnippetToggler>
|
|
|
|
### Response
|
|
|
|
Object conforming to [the OpenAPI Specification](https://swagger.io/specification)
|
|
|
|
### Example
|
|
|
|
<SnippetToggler :choices="['REST', 'GraphQL', 'SDK']" label="API">
|
|
<template #rest>
|
|
|
|
`GET /server/specs/oas`
|
|
|
|
</template>
|
|
<template #graphql>
|
|
|
|
```graphql
|
|
query {
|
|
server_specs_oas
|
|
}
|
|
```
|
|
|
|
</template>
|
|
<template #sdk>
|
|
|
|
```js
|
|
import { createDirectus } from '@directus/sdk';
|
|
import { rest, readOpenApiSpec } from '@directus/sdk/rest';
|
|
|
|
const client = createDirectus('https://directus.example.com').with(rest());
|
|
|
|
const result = await client.request(readOpenApiSpec());
|
|
```
|
|
|
|
</template>
|
|
</SnippetToggler>
|
|
|
|
## Get GraphQL SDL
|
|
|
|
Retrieve the GraphQL SDL for the current project.
|
|
|
|
::: tip Permissions
|
|
|
|
The SDL is based on the permissions of the currently authenticated user.
|
|
|
|
:::
|
|
|
|
### Request
|
|
|
|
<SnippetToggler :choices="['REST', 'GraphQL', 'SDK']" label="API">
|
|
<template #rest>
|
|
|
|
`GET /server/specs/graphql/`
|
|
|
|
`GET /server/specs/graphql/system`
|
|
|
|
</template>
|
|
<template #graphql>
|
|
|
|
`POST /graphql/system`
|
|
|
|
```graphql
|
|
type Query {
|
|
server_specs_graphql(scope: graphql_sdl_scope): String
|
|
}
|
|
```
|
|
|
|
</template>
|
|
<template #sdk>
|
|
|
|
```js
|
|
import { createDirectus } from '@directus/sdk';
|
|
import { rest, readGraphqlSdl } from '@directus/sdk/rest';
|
|
|
|
const client = createDirectus('https://directus.example.com').with(rest());
|
|
|
|
const result = await client.request(readGraphqlSdl('scope'));
|
|
```
|
|
|
|
</template>
|
|
</SnippetToggler>
|
|
|
|
### Returns
|
|
|
|
GraphQL SDL file.
|
|
|
|
```graphql
|
|
type about_us {
|
|
id: Int
|
|
introduction: String
|
|
our_process: String
|
|
sales_email: String
|
|
general_email: String
|
|
primary_color: String
|
|
secondary_color: String
|
|
logo: directus_files
|
|
mark: directus_files
|
|
}
|
|
|
|
type articles {
|
|
id: Int
|
|
status: String
|
|
# ...
|
|
}
|
|
|
|
# etc
|
|
```
|
|
|
|
### Example
|
|
|
|
<SnippetToggler :choices="['REST', 'GraphQL', 'SDK']" label="API">
|
|
<template #rest>
|
|
|
|
`GET /server/specs/graphql/`
|
|
|
|
`GET /server/specs/graphql/system`
|
|
|
|
</template>
|
|
<template #graphql>
|
|
|
|
`POST /graphql/system`
|
|
|
|
```graphql
|
|
query {
|
|
server_specs_graphql(scope: system)
|
|
}
|
|
```
|
|
|
|
</template>
|
|
<template #sdk>
|
|
|
|
```js
|
|
import { createDirectus } from '@directus/sdk';
|
|
import { rest, readGraphqlSdl } from '@directus/sdk/rest';
|
|
|
|
const client = createDirectus('https://directus.example.com').with(rest());
|
|
|
|
const result = await client.request(readGraphqlSdl('item'));
|
|
```
|
|
|
|
</template>
|
|
</SnippetToggler>
|
|
|
|
## Ping
|
|
|
|
Ping... pong! 🏓
|
|
|
|
### Request
|
|
|
|
<SnippetToggler :choices="['REST', 'GraphQL', 'SDK']" label="API">
|
|
<template #rest>
|
|
|
|
`GET /server/ping`
|
|
|
|
</template>
|
|
<template #graphql>
|
|
|
|
`POST /graphql/system`
|
|
|
|
```graphql
|
|
type Query {
|
|
server_ping: String
|
|
}
|
|
```
|
|
|
|
</template>
|
|
<template #sdk>
|
|
|
|
```js
|
|
import { createDirectus } from '@directus/sdk';
|
|
import { rest, serverPing } from '@directus/sdk/rest';
|
|
|
|
const client = createDirectus('https://directus.example.com').with(rest());
|
|
|
|
const result = await client.request(serverPing());
|
|
```
|
|
|
|
</template>
|
|
</SnippetToggler>
|
|
|
|
### Returns
|
|
|
|
Pong.
|
|
|
|
### Example
|
|
|
|
<SnippetToggler :choices="['REST', 'GraphQL', 'SDK']" label="API">
|
|
<template #rest>
|
|
|
|
`GET /server/ping`
|
|
|
|
</template>
|
|
<template #graphql>
|
|
|
|
`POST /graphql/system`
|
|
|
|
```graphql
|
|
query {
|
|
server_ping
|
|
}
|
|
```
|
|
|
|
</template>
|
|
<template #sdk>
|
|
|
|
```js
|
|
import { createDirectus } from '@directus/sdk';
|
|
import { rest, serverPing } from '@directus/sdk/rest';
|
|
|
|
const client = createDirectus('https://directus.example.com').with(rest());
|
|
|
|
const result = await client.request(serverPing());
|
|
```
|
|
|
|
</template>
|
|
</SnippetToggler>
|
|
|
|
## Info
|
|
|
|
Information about the current installation.
|
|
|
|
::: tip Permissions
|
|
|
|
The public information is returned for everybody. Admin users get additional information (see below).
|
|
|
|
:::
|
|
|
|
### Request
|
|
|
|
<SnippetToggler :choices="['REST', 'GraphQL', 'SDK']" label="API">
|
|
<template #rest>
|
|
|
|
`GET /server/info`
|
|
|
|
</template>
|
|
<template #graphql>
|
|
|
|
`POST /graphql/system`
|
|
|
|
```graphql
|
|
type Query {
|
|
server_info: server_info
|
|
}
|
|
```
|
|
|
|
</template>
|
|
<template #sdk>
|
|
|
|
```js
|
|
import { createDirectus } from '@directus/sdk';
|
|
import { rest, serverInfo } from '@directus/sdk/rest';
|
|
|
|
const client = createDirectus('https://directus.example.com').with(rest());
|
|
|
|
const result = await client.request(serverInfo());
|
|
```
|
|
|
|
</template>
|
|
</SnippetToggler>
|
|
|
|
### Response
|
|
|
|
`project` **object**\
|
|
Public information about the project. Used to render the Admin App public pages.
|
|
|
|
See [the settings object](/reference/system/settings#the-settings-object) for more information on the individual
|
|
properties of the `project` object.
|
|
|
|
Logged in users also get the following information:
|
|
|
|
`rateLimit` **false | object**\
|
|
Whether or not the rate limiter is enabled.
|
|
|
|
`rateLimit.points` **number**\
|
|
If rate-limiter is enabled, amount of allowed points per duration
|
|
|
|
`rateLimit.duration` **number**\
|
|
If rate-limiter is enabled, duration in seconds in which points are counted
|
|
|
|
`queryLimit.default` **number**\
|
|
The default query limit used when not defined in the API request
|
|
|
|
`queryLimit.max` **number**\
|
|
The maximum query limit accepted on API requests
|
|
|
|
### Example
|
|
|
|
<SnippetToggler :choices="['REST', 'GraphQL', 'SDK']" label="API">
|
|
<template #rest>
|
|
|
|
`GET /server/info`
|
|
|
|
</template>
|
|
<template #graphql>
|
|
|
|
`POST /graphql/system`
|
|
|
|
```graphql
|
|
query {
|
|
server_info {
|
|
project {
|
|
project_name
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
</template>
|
|
<template #sdk>
|
|
|
|
```js
|
|
import { createDirectus } from '@directus/sdk';
|
|
import { rest, serverInfo } from '@directus/sdk/rest';
|
|
|
|
const client = createDirectus('https://directus.example.com').with(rest());
|
|
|
|
const result = await client.request(serverInfo());
|
|
```
|
|
|
|
</template>
|
|
</SnippetToggler>
|
|
|
|
## Health
|
|
|
|
Get the current health status of the server.
|
|
|
|
The `/server/health` endpoint shows you a general health status for the server and all connected (third party) services,
|
|
such as Redis or S3.
|
|
|
|
The output is based on the "Health Check Response for HTTP APIs" draft spec:
|
|
[Health Check Response Format for HTTP APIs Draft Specification](https://datatracker.ietf.org/doc/html/draft-inadarei-api-health-check-06).
|
|
|
|
This endpoint can be used to ensure a healthy system when running in a horizontally scaled setup, like Kubernetes,
|
|
Google Cloud Platform or AWS Elastic Beanstalk.
|
|
|
|
By default, the endpoint only returns a `status` of `ok`, `warn` or `error`. By authenticating as an admin, it will
|
|
return more in-depth information about the current health status of the system.
|
|
|
|
::: code-group
|
|
|
|
```json [Non-Admin Response]
|
|
{
|
|
"status": "ok"
|
|
}
|
|
```
|
|
|
|
```json [Admin Response]
|
|
{
|
|
"status": "ok",
|
|
"releaseId": "10.0.0",
|
|
"serviceId": "3292c816-ae02-43b4-ba91-f0bb549f040c",
|
|
"checks": {
|
|
"pg:responseTime": [
|
|
{
|
|
"status": "ok",
|
|
"componentType": "datastore",
|
|
"observedUnit": "ms",
|
|
"observedValue": 0.489
|
|
}
|
|
],
|
|
"pg:connectionsAvailable": [
|
|
{
|
|
"status": "ok",
|
|
"componentType": "datastore",
|
|
"observedValue": 2
|
|
}
|
|
],
|
|
"pg:connectionsUsed": [
|
|
{
|
|
"status": "ok",
|
|
"componentType": "datastore",
|
|
"observedValue": 0
|
|
}
|
|
],
|
|
"storage:local:responseTime": [
|
|
{
|
|
"status": "ok",
|
|
"componentType": "objectstore",
|
|
"observedValue": 1.038,
|
|
"observedUnit": "ms"
|
|
}
|
|
],
|
|
"email:connection": [
|
|
{
|
|
"status": "ok",
|
|
"componentType": "email"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
```
|
|
|
|
:::
|
|
|
|
### Request
|
|
|
|
<SnippetToggler :choices="['REST', 'GraphQL', 'SDK']" label="API">
|
|
<template #rest>
|
|
|
|
`GET /server/health`
|
|
|
|
</template>
|
|
<template #graphql>
|
|
|
|
`POST /graphql/system`
|
|
|
|
```graphql
|
|
type Query {
|
|
server_health: JSON
|
|
}
|
|
```
|
|
|
|
</template>
|
|
<template #sdk>
|
|
|
|
```js
|
|
import { createDirectus } from '@directus/sdk';
|
|
import { rest, serverHealth } from '@directus/sdk/rest';
|
|
|
|
const client = createDirectus('https://directus.example.com').with(rest());
|
|
|
|
const result = await client.request(serverHealth());
|
|
```
|
|
|
|
</template>
|
|
</SnippetToggler>
|
|
|
|
### Returns
|
|
|
|
`status` **string**\
|
|
One of `ok`, `warn`, `error`.
|
|
|
|
Authenticated admin users also get the following information:
|
|
|
|
`releaseId` **string**\
|
|
Directus version in use.
|
|
|
|
`serviceId` **string**\
|
|
UUID of the current Directus instance.
|
|
|
|
`checks` **array**\
|
|
Array with the status of all individually connected services.
|
|
|
|
### Example
|
|
|
|
<SnippetToggler :choices="['REST', 'GraphQL', 'SDK']" label="API">
|
|
<template #rest>
|
|
|
|
`GET /server/health`
|
|
|
|
</template>
|
|
<template #graphql>
|
|
|
|
`POST /graphql/system`
|
|
|
|
```graphql
|
|
query {
|
|
server_health
|
|
}
|
|
```
|
|
|
|
</template>
|
|
<template #sdk>
|
|
|
|
```js
|
|
import { createDirectus } from '@directus/sdk';
|
|
import { rest, serverHealth } from '@directus/sdk/rest';
|
|
|
|
const client = createDirectus('https://directus.example.com').with(rest());
|
|
|
|
const result = await client.request(serverHealth());
|
|
```
|
|
|
|
</template>
|
|
</SnippetToggler>
|