* Moved refactoring from LDAP branch * Moved Auth into packages * Updated frontend to support custom auth providers and make implementation more flexible * Fixed exception handling and numerous bugs. Also added provider support to graphql * Updated frontend to be able to set provider and identifier * Fixed issue with setting the auth provider in app * Updated package-lock.json * Updated package-lock.json * Cleanup, adding type handling and disabled changing provider * Added title formatting to SSO links * Fixed incorrect type export * Fixed incorrect rc * Update api/src/services/authentication.ts * Updated sub-dependencies to rc87 * Fixed linting errors * Prefer sending provider name as config var * Pass clone of user info to auth provider instead of reference * Moved auth from packages into core * Removed generic login handler * Fixed graphql complaint * Moved exception back to api and cleaned up URLs * Minor tweak * Pulled across improvements from openid branch * Fixed fix that wasn't a fix * Update auth.ts * Update auth.ts * Update authentication.ts * Update login-form.vue * Regression fixes and cleanup * Minor flow improvements * Flipped if and fixed linting warning * Un-expanded object that didn't need to be expanded! * Trimmed auth interface for consistency when verifying passwords * Removed auth-manager, changed login endpoint, broke out SSO links, removed username support, disabled updating external_identifier, generate provider options as part of field generation * Cleaned up some code comments * Use named exports in local driver * Use async defaults for auth abstract class * Use JSON for auth_data field * Move session data blob to directus_sessions * Remove unused export, rename auth->authDriver * Opinionated changes * Move login route registration to driver file * Revert app changes in favor of PR #8277 * Send session token to auth provider and opinionated changes * Added missing translation * Fixed empty elements for users without email * Update api/src/auth/drivers/local.ts * Move pw verify to local driver, remove CRUD * Opinions > logical reasoning * Use session data, cleanup login method on auth serv * Remove useless null * Fixed breaking changes from refactor, and fixed build * Fixed lint warning * Ignore typescript nonsense * Update api/src/services/authentication.ts * Fix provider name passthrough Co-authored-by: Aiden Foxx <aiden.foxx@sbab.se> Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
🐰 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 pricing.
- REST & GraphQL API. Instantly adds a blazingly fast Node.js API layer to your database.
- Manage pure SQL. Works with existing SQL databases, or helps build new architectures from scratch.
- Choose your database. Supports PostgreSQL, MySQL, SQLite, OracleDB, MariaDB and MS-SQL.
- Allows self-hosting. Choose your hosting and infrastructure, run locally, or deeply integrate on-premises.
- Completely extensible. Built to white-label, it is easy to customize our modular platform.
- A modern dashboard. A Vue.js Admin App so safe and intuitive, non-technical users require no training.
Learn more about Directus on our website.
🚧 Release Candidate
This is pre-release software. While we're providing migrations between versions, changes may occur at any time, and certain features might be missing or broken. You can follow along with the issue tracker for an in-depth list of upcoming enhancements.
⚙️ Installation
Create a new Directus project by running the following npm command:
npx create-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.
🚀 One-Click Deployments
If you would like to completely avoid the manual installation process, the following self-hosted one-click apps will handle the heavy-lifting for you. While Directus is always completely free, you will likely need to pay for these services.
| DigitalOcean | Heroku | Platform.sh | Zeet |
|---|---|---|---|
📌 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 here)
- MariaDB 10.2+
- SQLite 3+
- MS-SQL X.X+
- OracleDB X.X+
Supported OS
- Ubuntu 18.04
- CentOS / RHEL 8
- macOS Catalina or newer
- Windows 10
- Docker (DockerHub + Dockerfile)
Other operating systems may also work, but are not officially supported.
🤔 Community Help
In addition to the Directus Documentation, you can also request help via the following 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-2021, Monospace Inc
