directus-main — package manifests
Every package below has a migrated
package.json
today —
yarn install
resolves all 40 plus the root, 41 manifests total. Grouped here by real role, not upstream's directory order. See
System Architecture
for the same information as a dependency-layer diagram, and
todo.md
's "Still to do" table for the live flat list.
directus
The published
bin
wrapper —
cli.js
, version helpers. Imports
@directus/api
+
@directus/update-check
, both still manifest-only.
api
Express/Knex backend — the largest single source tree still to come.
app
The Vue 3 Studio — the visual management interface.
sdk
TypeScript client for third-party integrators — a different audience than
app
.
extensions
Runtime extension loading — hooks, endpoints, interfaces, modules, panels.
extensions-registry
Marketplace registry client for discovering published extensions.
extensions-sdk
Build tooling and types for authoring third-party extensions.
create-directus-extension
Scaffolding CLI —
npm create directus-extension
.
storage
The shared driver interface every backend below implements.
storage-driver-local
Filesystem-backed storage — the default, no external service required.
storage-driver-s3
AWS S3 (and S3-compatible) object storage.
storage-driver-azure
Azure Blob Storage.
storage-driver-gcs
Google Cloud Storage.
storage-driver-cloudinary
Cloudinary — media-focused storage with built-in transforms.
storage-driver-supabase
Supabase Storage.
types
Shared TypeScript types — 56 of 56 planned files, complete. Depended on by nearly everything else.
constants
Shared string/enum constants — e.g.
PERMISSION_ACTIONS
, already referenced by
types
.
schema
Runtime schema introspection shared by
api
and
types
— 3 of 16 planned files.
schema-builder
Programmatic schema construction for testing and tooling.
errors
Shared error types —
DirectusError
, already referenced by
types
.
utils
Shared utility functions used across
api
,
app
, and extensions.
validation
Shared validation/filter-rule evaluation logic.
env
Environment-variable parsing and typing shared by
api
.
memory
In-memory cache/store abstraction used by
api
.
pressure
Process load/back-pressure monitoring for
api
.
system-data
Directus's own system-collection field/schema definitions.
specs
OpenAPI spec generation for the REST API surface.
format-title
Field/collection name humanization (
snake_case
→ "Snake Case").
stores
Shared Pinia store definitions for
app
.
composables
Shared Vue composables for
app
.
themes
Light/dark Studio theme definitions.
visual-editing
In-context "click to edit" bridge for front-end frameworks.
ai
Shared AI Assistant/MCP-adjacent types and helpers.
update-check
Checks npm for newer Directus releases —
directus/cli.js
already imports it, but this package itself has no source yet, which is why that import fails today.
create-directus-project
Scaffolding CLI —
npm create directus-project
.
release-notes-generator
Internal release-note tooling. Manifest is clean, but its real source still imports removed pnpm-only packages — see Yarn Migration 's open gap.
blackbox
Black-box API tests against a running instance, plus 2 extension-fixture manifests.
e2e
Playwright end-to-end Studio tests.
mock-license-server
Local stand-in for the real Directus license-check service, for offline testing.
sandbox
Scratch workspace for manual verification during development.
Root
build
/
test
scripts are scoped to
--include directus
today — the only workspace with real source and a working build — and that scope grows by name as each package
above lands source, not all at once. See
Yarn Migration
for how the manifest layer itself got built, and this repo's own
todo.md
for the live, evidence-linked version of everything on this page.