How onderwijsin/directus-extensions works
This is a collection of Directus extensions and shared runtime utilities, rather than one application. Users interact with Studio modules, field interfaces, or Directus endpoints and operations; the extensions then provide authentication, deployment, contact synchronization, content/redirect management, health and policy access, and Sentry integration. The graph preserves these major product branches and a shared utility layer. README descriptions support the capabilities, while sampled source clarifies selected API calls and internal behavior; unsampled extension wiring is intentionally not inferred.
Main entry points: module.vue Deployment Studio · coolify-client/index.ts Coolify client · client.ts Loops client · magic-links-endpoint/index.ts Magic-link endpoint
Components 27
Authentication
- Magic-link endpoint
extensions/directus-magic-links-bundle/src/magic-links-endpoint/index.ts - Issue and redeem links
extensions/directus-magic-links-bundle/src/magic-links-endpoint/handlers.ts - Auth lifecycle hook
extensions/directus-magic-links-bundle/src/magic-links-hook/index.ts - Effective policies
extensions/directus-policies-endpoint/src/index.ts
External Integrations
- Deployment Studio
extensions/directus-coolify-deployments-bundle/src/coolify-deployments-module/module.vue - Deployment API
extensions/directus-coolify-deployments-bundle/src/coolify-deployments-endpoint/index.ts - Deploy operation
extensions/directus-coolify-deployments-bundle/src/coolify-deploy-operation/index.ts - Coolify client
extensions/directus-coolify-deployments-bundle/src/shared/coolify-client/index.ts - Contact sync hook
extensions/directus-loops-bundle/src/loops-webhook-hook/index.ts - Campaign ingestion
extensions/directus-loops-bundle/src/loops-webhook-operation/index.ts - Loops client
extensions/directus-loops-bundle/src/shared/client.ts - Health endpoint
extensions/directus-enhanced-server-health-endpoint/src/index.ts - Server checks
extensions/directus-enhanced-server-health-endpoint/src/health.ts - Sentry integration
extensions/directus-sentry-bundle/src/sentry-hook/index.ts
Content Tools
- Slug and redirect hooks
extensions/directus-sluggernaut-bundle/src/sluggernaut-hook/index.ts - Redirect rules
extensions/directus-sluggernaut-bundle/src/sluggernaut-hook/redirects/service.ts - Field recalculation
extensions/directus-sluggernaut-bundle/src/sluggernaut-recalculate/handler.ts
Studio Experience
- Copy field controls
extensions/directus-quick-copy-bundle/src/quick-copy-interface/interface.vue - Studio documentation
extensions/directus-studio-docs-bundle/src/studio-docs-module/module.vue
Shared Runtime
- Extension utilities
packages/extension-utils/src/index.ts - Auto-task coordinator
packages/extension-utils/src/server/auto-task/handler.ts - Task storage
packages/extension-utils/src/server/auto-task/storage.ts - Memory, Redis, filesystem
packages/extension-utils/src/server/auto-task/storage.ts
Other components
- Directus user
- Directus auth services
- Coolify service
- Loops service
Connections 22
- Directus user → Magic-link endpoint: requests link
- Magic-link endpoint → Issue and redeem links: dispatches
- Issue and redeem links → Directus auth services: refreshes session
- Auth lifecycle hook → Directus auth services: extends auth
- Directus user → Deployment Studio: views deployments
- Deployment Studio → Deployment API: requests status
- Deployment Studio → Deploy operation: triggers deploy
- Deployment API → Coolify client: uses client
- Deploy operation → Coolify client: uses client
- Coolify client → Coolify service: calls API
- Contact sync hook → Loops client: syncs profiles
- Campaign ingestion → Loops client: reads campaigns
- Loops client → Loops service: calls API
- Health endpoint → Server checks: runs checks
- Directus user → Effective policies: requests policies
- Slug and redirect hooks → Redirect rules: manages redirects
- Directus user → Field recalculation: starts recalculation
- Field recalculation → Redirect rules: creates redirects
- Directus user → Copy field controls: copies field value
- Directus user → Studio documentation: reads documentation
- Auto-task coordinator → Task storage: uses storage
- Task storage → Memory, Redis, filesystem: reads and writes