Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions content/community/3.codebase/1.overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ The `/packages` directory modularizes smaller parts of the Directus project into
| [@directus/format-title](https://github.com/directus/directus/tree/main/packages/format-title/) | Custom formatter that converts any string into Title Case. |
| [@directus/memory](https://github.com/directus/directus/tree/main/packages/memory/) | Memory / Redis abstraction for Directus. |
| [@directus/pressure](https://github.com/directus/directus/tree/main/packages/pressure/) | Pressure based rate limiter. |
| [@directus/random](https://github.com/directus/directus/tree/main/packages/random/) | Set of random-utilities for use in tests. |
| @directus/random | Set of random-utilities for use in tests. |
| [@directus/release-notes-generator](https://github.com/directus/directus/tree/main/packages/release-notes-generator) | Package that generates release notes for Directus monorepo. |
| [@directus/schema](https://github.com/directus/directus/tree/main/packages/schema) | Utility for extracting information about the database schema. |
| [@directus/specs](https://github.com/directus/directus/tree/main/packages/specs) | OpenAPI Specification of the Directus API. |
Expand All @@ -80,7 +80,7 @@ The `/packages` directory modularizes smaller parts of the Directus project into
| [@directus/storage](https://github.com/directus/directus/tree/main/packages/storage) | Object storage abstraction layer for Directus. |
| [@directus/stores](https://github.com/directus/directus/tree/main/packages/stores/) | Shared Data Studio state for use in components, extensions, and the `@directus/app` routes. Stores use [Pinia](https://www.npmjs.com/package/pinia). |
| [@directus/system-data](https://github.com/directus/directus/tree/main/packages/system-data/) | Definitions and types for Directus system collections. |
| [@directus/tsconfig](https://github.com/directus/directus/tree/main/packages/tsconfig) | The shared TS Config files used by the projects in the Directus ecosystem. |
| @directus/tsconfig | The shared TS Config files used by the projects in the Directus ecosystem. |
| [@directus/types](https://github.com/directus/directus/tree/main/packages/types/) | Shared types for Directus. |
| [@directus/update-check](https://github.com/directus/directus/tree/main/packages/update-check/) | Check if an update is available for a given package. |
| [@directus/utils](https://github.com/directus/directus/tree/main/packages/utils) | Utilities shared between the Directus packages. |
Expand Down
2 changes: 1 addition & 1 deletion content/frameworks/01.nextjs/02.authentication.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ Authentication is a critical part of any modern web application, ensuring that u

You will need:

- [A Directus project with admin access](https://github.com/directus-labs/guest-authors/blob/next-live-preview/getting-started/create-a-project).
- [A Directus project with admin access](/getting-started/create-a-project).
- Fundamental understanding of Next.js concepts.
- Optional but recommended: Familiarity with data modeling in Directus.

Expand Down
4 changes: 2 additions & 2 deletions content/guides/11.ai/1.assistant/1.setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ For each model, you can specify:
| **Provider Options** | JSON object for model-specific parameters |

::callout{icon="i-lucide-info" color="info"}
The **Provider Options** field allows you to pass provider-specific parameters to the AI SDK. This is useful for enabling features like extended thinking or custom sampling parameters. See the [Vercel AI SDK documentation](https://sdk.vercel.ai/providers/openai-compatible) for details.
The **Provider Options** field allows you to pass provider-specific parameters to the AI SDK. This is useful for enabling features like extended thinking or custom sampling parameters. See the [Vercel AI SDK documentation](https://ai-sdk.dev/providers/openai-compatible-providers) for details.
::

### Example Configurations
Expand Down Expand Up @@ -231,7 +231,7 @@ See [Mistral AI documentation](https://docs.mistral.ai/) for available models an

Optionally customize how the AI assistant behaves in **Settings → AI → Custom System Prompt**.

The [default system prompt](https://github.com/directus/directus/blob/main/api/src/ai/assistant/constants/system-prompt.ts) provides the AI with helpful instructions on how to interact with Directus and is tuned to provide good results.
The default system prompt provides the AI with helpful instructions on how to interact with Directus and is tuned to provide good results.

If you choose to customize the system prompt, it's recommended to use the following template as a starting point:

Expand Down
2 changes: 1 addition & 1 deletion content/guides/11.ai/2.mcp/1.installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -214,7 +214,7 @@ Use this fallback when OAuth is not available for your setup.

VS Code uses Client ID Metadata Document registration and does not fall back to Dynamic Client Registration.

1. Install VS Code 1.102+ and the [GitHub Copilot extension](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot-chat).
1. Install VS Code 1.102+ and the [GitHub Copilot extension](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot).
2. Create or edit `mcp.json` in your workspace `.vscode` folder or user settings.
3. Add this configuration:

Expand Down
2 changes: 1 addition & 1 deletion content/guides/11.ai/2.mcp/8.local-mcp/0.index.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ Before starting, ensure you have:
- One of the supported MCP clients: Claude Desktop, Cursor, or Raycast

If you don't have an existing Directus project, you can:
- Start a free trial on [Directus Cloud](https://directus.cloud/register)
- Start a free trial on [Directus Cloud](https://directus.cloud)
- Create a local instance with `npx directus-template-cli@latest init`

## Get Directus Credentials
Expand Down
4 changes: 2 additions & 2 deletions content/releases/2.changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ This month we had two releases.
- In [11.7.0](https://github.com/directus/directus/releases/tag/v11.7.0) a Schema Builder package was published for mocking database schemas.
- The [Visual Editor](https://directus.com/docs/guides/content/visual-editor) has been updated, with improved UX & UI, adding the ability to add a dynamic URL as a route parameter and the ability to display the title of the current page in the URL drop-down and to reflect the URL of the current page as a route parameter of the Visual Editor module.
- Our revamped [SEO Plugin](https://github.com/directus-labs/extensions/tree/main/packages/seo-plugin) can now analyze your content for keywords to help cover even more SEO use cases.
- The [Super Header Interface](https://github.com/directus-labs/extensions/tree/main/packages/super-header-interface) adds contextual info, help, and actions right where users need it most - inside the CMS. Updated version includes support for relational fields and translating help content in any language.
- The Super Header Interface adds contextual info, help, and actions right where users need it most - inside the CMS. Updated version includes support for relational fields and translating help content in any language.
## April 2025

- [Directus 11.6.0.](https://github.com/directus/directus/releases/tag/v11.6.0) has a potential breaking change: Fixed filter hook altered payload not passed to action hook on create.
Expand Down Expand Up @@ -124,7 +124,7 @@ This month we had two releases.
- A [Tree View Table Layout](https://github.com/directus-labs/extensions/tree/main/packages/tree-view-table-layout) allows you to nest items within a table.
- Add a [Switch Interface](https://github.com/directus-labs/extensions/tree/main/packages/switch-interface) which displays a more traditional toggle switch for boolean fields as opposed to the default Toggle interface.
- The [Card Select Interfaces](https://github.com/directus-labs/extensions/tree/main/packages/card-select-interfaces) provides selection options for both radio (single select) and checkbox (multiple select) inputs.
- A [Super Header Interface](https://github.com/directus-labs/extensions/tree/main/packages/super-header-interface) allows you to create rich page headers with titles, subtitles, help information, and interactive actions.
- A Super Header Interface allows you to create rich page headers with titles, subtitles, help information, and interactive actions.

## December 2024

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -862,7 +862,7 @@ You will receive a response that looks like this:

In this tutorial, you've successfully created a hotel booking website fetching data from Directus and its relational datasets using Directus's powerful operators and filter rules, trigger a payment on Stripe, create a webhook that listens to the Stripe payment, and then make a reservation in Directus.

The complete code for this tutorial can be found [here](https://github.com/directs-labs/nextjs-hotel-booking).
The original example repository for this tutorial is no longer available.

Some possible steps to carry out next might include:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ description: Learn the advanced techniques used with Directus Flows to build a g
---
## You are standing in an open field…

[AIVenture](https://aiventure.craigharman.com) harks back to the days of text-based adventure games such at [Zork](https://en.wikipedia.org/wiki/Zork) and [Hitchhiker’s Guide to the Galaxy](https://en.wikipedia.org/wiki/The_Hitchhiker%27s_Guide_to_the_Galaxy_(video_game)) but with a modern AI twist. The game uses Directus Flows and user registration along with the [directus-extension-ai-pack](https://github.com/br41nslug/directus-extension-ai-pack) extension to create a low-code game engine offering players a unique story-telling experience.
AIVenture harks back to the days of text-based adventure games such at [Zork](https://en.wikipedia.org/wiki/Zork) and [Hitchhiker’s Guide to the Galaxy](https://en.wikipedia.org/wiki/The_Hitchhiker%27s_Guide_to_the_Galaxy_%28video_game%29) but with a modern AI twist. The game uses Directus Flows and user registration along with the [directus-extension-ai-pack](https://github.com/br41nslug/directus-extension-ai-pack) extension to create a low-code game engine offering players a unique story-telling experience.

![AIVenture in-game screenshot](/img/47ad01fe-84b9-46fd-9de2-438461385360.webp)

Expand Down Expand Up @@ -43,7 +43,7 @@ The emails sent to players are customized by directly editing the [liquid](https

AIVenture uses the [directus-extension-ai-pack](https://github.com/br41nslug/directus-extension-ai-pack) extension to interact with OpenAI’s **Chat Completion API** within Directus Flows. The extension requires minimal setup before allowing chat prompts to be sent to OpenAI and have responses returned for further processing in our flows.

OpenAI charges the API account owner for usage via [tokens](https://platform.openai.com/docs/guides/gpt/managing-tokens) allocated by the length of your prompts and the resulting responses. In order to keep OpenAI bills under control, AIVenture allocates daily, per user, token limits on a player’s progress through the game as well as a hard limit that indicates the game needs to reach a conclusion.
OpenAI charges the API account owner for usage via [tokens](https://platform.openai.com/docs/concepts) allocated by the length of your prompts and the resulting responses. In order to keep OpenAI bills under control, AIVenture allocates daily, per user, token limits on a player’s progress through the game as well as a hard limit that indicates the game needs to reach a conclusion.

The ChatGPT API returns a token count with each response, so we were able to access the ChatGPT usage data in our flow:

Expand Down Expand Up @@ -135,4 +135,4 @@ module.exports = async function(data) {

## Summary

AIVenture is a modern text-based adventure game engine that combines AI technology to create an engaging and immersive gaming experience. The use of Directus Flows simplifies game logic management, and uses sparing amounts of Javascript to handle forking game logic. If you’d like to play a game or two visit the [AIVenture website](https://aiventure.craigharman.com).
AIVenture is a modern text-based adventure game engine that combines AI technology to create an engaging and immersive gaming experience. The use of Directus Flows simplifies game logic management, and uses sparing amounts of Javascript to handle forking game logic. The original AIVenture demo is no longer available.
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ Create a Request operation with the final token we got from the authentication o

| Method | URL |
| --- | --- |
| GET | https://ads-field-eu-1a2039d9.aylanetworks.com/apiv1/devices.json |
| GET | `https://ads-field-eu-1a2039d9.aylanetworks.com/apiv1/devices.json` |

As header parameter, we set the following:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -394,7 +394,7 @@ export default defineEventHandler(async (event) => {
**Frontend Framework Sitemap Resources**

- [Next.js - XML Sitemap Documentation](https://nextjs.org/learn/seo/crawling-and-indexing/xml-sitemaps)
- [Nuxt - Nuxt Simple Sitemap Module](https://nuxt.com/modules/simple-sitemap)
- [Nuxt - Nuxt Sitemap Module](https://nuxtseo.com/docs/sitemap/getting-started/installation)
- [Astro - @astro/sitemap Integration](https://docs.astro.build/en/guides/integrations-guide/sitemap/)
- [Svelte - Sitemap Package](https://github.com/bartholomej/svelte-sitemap)
- [Remix - Remix SEO Package](https://github.com/balavishnuvj/remix-seo)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ Today I am excited to share my recent adventure of migrating my blog content fro

Well, Directus is not just another CMS. It offers a unique combination of flexibility, customization, and collaboration for content management. It also has built-in user roles and permissions and a JavaScript SDK which were core features I was particularly interested in.

💡 If you're new to Directus, create a Directus Cloud account [here](https://directus.cloud/register).
💡 If you're new to Directus, create a Directus Cloud account [here](https://directus.cloud).

## Creating the Blogs Collection and Data Model

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ authors:

Integrating external identity providers (e.g. Okta) with Directus often results in the need to accept a third-party JWT, validate it and translate it into a Directus **Accountability** object. This allows clients to authenticate with their external provider while Directus enforces access controls.

This guide walks through implementing this flow using Directus's `authenticate` hook. This guide assumes the provider exposes a [JWK](https://www.rfc-editor.org/rfc/rfc7517) endpoint.
This guide walks through implementing this flow using Directus's `authenticate` hook. This guide assumes the provider exposes a [JWK](https://www.rfc-editor.org/rfc/rfc7517.html) endpoint.

## 1. Create an `authenticate` filter hook

Expand Down
Loading