* Add bundle type to constants and types * Add support for API bundle extensions * Rename generateExtensionsEntry to generateExtensionsEntrypoint * Add support for App bundle extensions * Refactor App extension registration * Replace extensions inject with useExtensions() * Replace getInterfaces() with useExtensions() * Replace getDisplays() with useExtensions() * Replace getLayouts() with useExtensions() * Replace getModules() with useExtensions() * Replace getPanels() with useExtensions() * Replace getOperations() with useExtensions() * Add useExtension() composable * Replace useExtensions() with useExtension() where applicable * Remove interface getters * Remove display getters * Remove layout getters * Remove module getter * Remove panel getters * Remove operation getters * Rename extension register.ts files to index.ts * Perform module pre register check in parallel * Remove Refs from AppExtensionConfigs type * Remove old extension shims * Ensure registration of modules is awaited when hydrating * Add support for scaffolding package extensions * Add support for building bundle extensions * Add JsonValue type * Use json for complex command line flags * Load internal extensions if custom ones are not available * Fix extension manifest validation for pack extensions * Fix tests in shared * Add SplitEntrypoint type * Move command specific utils to helpers * Add SDK version getter * Move extension dev deps generation to helpers * Move template path to getter util * Move template copying to a helper * Only rename copied template files * Add directus-extension add command * Convert provided extension source path to url * Replace deprecated import.meta.globEager * Mock URL.createObjectURL to make App unit tests pass * Update rollup-plugin-typescript2 * indentation * sort vite glob imported modules * fix unintentional wrong commit * Simplify app extension import logic * reinstall @rollup/plugin-virtual * add test for getInterfaces() expected sort order Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com> Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
🚀 We're hiring Software Engineers and Project Managers! See Discussion #15048 for more information.
🐰 Introduction
Directus is a real-time API and App dashboard for managing SQL database content.
- Free & open-source. No artificial limitations, vendor lock-in, or hidden paywalls.
- REST & GraphQL API. Instantly layers a blazingly fast Node.js API on top of any SQL database.
- Manage pure SQL. Works with new or existing SQL databases, no migration required.
- Choose your database. Supports PostgreSQL, MySQL, SQLite, OracleDB, CockroachDB, MariaDB, and MS-SQL.
- On-Prem or Cloud. Run locally, install on-premises, or use our self-service Cloud service (free tier available).
- Completely extensible. Built to white-label, it is easy to customize our modular platform.
- A modern dashboard. Our no-code Vue.js app is safe and intuitive for non-technical users, no training required.
🚀 Directus Cloud
Directus Cloud allows you to create free Community Cloud projects in 90 seconds.
- Free Community Cloud tier available (no credit card required)
- No product limitations or service usage quotas (unlimited users, API requests, etc)
- A modern self-service dashboard to create and monitor all your projects in one place
- End-to-end solution: Directus, database, serverless auto-scaling, storage, and a global CDN
- Hourly usage-based pricing for our Standard Cloud allows you to pay-as-you-go
- Select your desired region and provision a new project in ~90 seconds
⚙️ Installation
Create a new Directus project by running the following npm command:
npm init directus-project my-project
Or, using yarn:
yarn create directus-project my-project
Simply follow the setup prompts and the CLI will create your new project directory (eg: my-project), configuration
file, and initial database. To get the most out of Directus, and to ensure you have the latest security patches, it is
important to keep your projects up-to-date.
📌 Requirements
Directus only requires Node.js and supports most operating systems and SQL database vendors.
- Node.js 12.20+
- npm 6.x+
Supported Databases
- PostgreSQL 10+
- MySQL 5.7.8+ / 8+ (with mysql_native_password)
- MariaDB 10.2.7+
- SQLite 3+
- CockroachDB 21.1.13+[1]
- MS SQL 13+[1]
- OracleDB 19+[1]
[1] Older versions may work, but aren't officially tested/supported.
Supported OS
- Ubuntu 18.04
- CentOS / RHEL 8
- macOS Catalina or newer
- Windows 10/11
- Docker (DockerHub + Dockerfile)
Other operating systems may also work, but are not officially supported.
🤔 Community Help
The Directus Documentation is a great place to start, or explore these other channels:
- Discord (Live Discussions)
- GitHub Issues (Report Bugs)
- GitHub Discussions (Questions, Feature Requests)
- Twitter (Latest News)
- YouTube (Video Tutorials)
❤️ Contributing & Sponsoring
Please read our Contributing Guide before submitting Pull Requests.
All security vulnerabilities should be reported in accordance with our Security Policy.
Directus is a premium open-source (GPLv3) project, made possible with support from our passionate core team, talented contributors, and amazing GitHub Sponsors. Thank you all!
© 2004-2022, Monospace Inc
