Nicola Krumschmidt 7bf90efa62 Add support for a package extension bundle type (#15672)
* 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>
2022-11-16 11:28:52 -05:00
2022-03-01 11:13:49 -05:00
2022-08-27 18:31:36 -04:00
2022-10-21 15:41:57 -04:00
2021-05-04 18:52:08 -04:00
2021-11-03 17:34:48 -04:00
2020-07-29 11:40:38 -04:00
2022-08-31 18:08:06 +00:00
2021-05-04 18:52:08 -04:00

Directus Logo


🚀 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.

Learn more about Directus


🚀 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

Create your Free Project


⚙️ 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:


❤️ 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

Description
No description provided
Readme 642 MiB
Languages
TypeScript 73.3%
Vue 24.6%
SCSS 0.7%
JavaScript 0.7%
Liquid 0.4%
Other 0.3%