# websideproject/nuxt-auto architecture

> Architecture diagram of the GitHub repository websideproject/nuxt-auto, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-12). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/websideproject/nuxt-auto
- Repository: https://github.com/websideproject/nuxt-auto

## Overview

Nuxt Auto combines schema-generated REST APIs with a generated admin panel. A user interacts with the admin UI or an application using typed composables; requests reach generated resource routes, where shared context, authorization, tenant scoping, validation, and operation handlers govern database access. The API also documents bulk, aggregation, relation, export, and plugin capabilities, while the admin includes resource management and dashboards. The runtime pipeline and query composable are excerpted; several capability links below rely on README claims, so those edges are dashed where implementation wiring was not shown.

Main entry points: [`packages/nuxt-auto-api/src/runtime/composables/useAutoApiQuery.ts`](https://github.com/websideproject/nuxt-auto/blob/main/packages/nuxt-auto-api/src/runtime/composables/useAutoApiQuery.ts) (Typed API Queries), [`packages/nuxt-auto-api/src/runtime/server/handlers/pipeline.ts`](https://github.com/websideproject/nuxt-auto/blob/main/packages/nuxt-auto-api/src/runtime/server/handlers/pipeline.ts) (Generated API Routes), [`packages/nuxt-auto-api/src/runtime/server/handlers/createContextFromRegistry.ts`](https://github.com/websideproject/nuxt-auto/blob/main/packages/nuxt-auto-api/src/runtime/server/handlers/createContextFromRegistry.ts) (Request Context), [`packages/nuxt-auto-api/src/module.ts`](https://github.com/websideproject/nuxt-auto/blob/main/packages/nuxt-auto-api/src/module.ts) (API Module)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_setup["Schema and Setup"]
  node_drizzle["Drizzle Schema<br/>[index.ts]"]
  node_api_module["API Module<br/>[module.ts]"]
  node_admin_module["Admin Module<br/>[module.ts]"]
end

subgraph group_api["API Runtime"]
  node_api_client["Typed API Queries<br/>[useAutoApiQuery.ts]"]
  node_routes["Generated API Routes<br/>[pipeline.ts]"]
  node_crud["Resource Operations"]
  node_advanced["Bulk M2M Aggregate"]
end

subgraph group_security["Request Controls"]
  node_context["Request Context"]
  node_auth["Authorization<br/>[permissions.ts]"]
  node_tenant["Tenant Scoping<br/>[tenant.ts]"]
  node_validation["Schema Validation<br/>[schemaGenerator.ts]"]
end

subgraph group_admin["Admin Experience"]
  node_admin_ui["Admin Resource UI<br/>[ResourceTable.vue]"]
  node_admin_forms["Admin Forms<br/>[ResourceForm.vue]"]
  node_admin_permissions["Admin Permissions"]
  node_admin_dashboard["Admin Dashboard"]
end

subgraph group_data["Data and Extensions"]
  node_plugins["API Plugins<br/>[pluginRegistry.ts]"]
  node_adapters["Database Adapters"]
  node_database[("Drizzle Database<br/>[index.ts]")]
  node_api_extensions["Export Audit Upload"]
end

node_user(("User or App"))

node_user -.->|"manages resources"| node_admin_ui
node_user -.->|"queries resources"| node_api_client
node_drizzle -.->|"generates resources"| node_api_module
node_drizzle -.->|"generates panel"| node_admin_module
node_api_client -->|"fetches API"| node_routes
node_routes -->|"builds context"| node_context
node_routes -->|"executes operation"| node_crud
node_context -->|"authorizes request"| node_auth
node_context -->|"resolves tenant"| node_tenant
node_context -->|"creates validator"| node_validation
node_routes -->|"validates request"| node_validation
node_crud -.->|"reads and writes"| node_database
node_advanced -.->|"queries relations"| node_database
node_api_module -.->|"provides operations"| node_advanced
node_api_module -.->|"registers extensions"| node_plugins
node_plugins -.->|"enables routes"| node_api_extensions
node_database -.->|"uses engine adapter"| node_adapters
node_admin_module -.->|"generates interface"| node_admin_ui
node_admin_ui -.->|"loads resources"| node_api_client
node_admin_forms -.->|"submits changes"| node_api_client
node_admin_permissions -.->|"checks permissions"| node_api_client
node_admin_dashboard -.->|"loads dashboard data"| node_api_client

click node_drizzle "https://github.com/websideproject/nuxt-auto/blob/main/packages/nuxt-auto-api/src/runtime/schema/index.ts"
click node_api_module "https://github.com/websideproject/nuxt-auto/blob/main/packages/nuxt-auto-api/src/module.ts"
click node_admin_module "https://github.com/websideproject/nuxt-auto/blob/main/packages/nuxt-auto-admin/src/module.ts"
click node_api_client "https://github.com/websideproject/nuxt-auto/blob/main/packages/nuxt-auto-api/src/runtime/composables/useAutoApiQuery.ts"
click node_routes "https://github.com/websideproject/nuxt-auto/blob/main/packages/nuxt-auto-api/src/runtime/server/handlers/pipeline.ts"
click node_context "https://github.com/websideproject/nuxt-auto/blob/main/packages/nuxt-auto-api/src/runtime/server/handlers/createContextFromRegistry.ts"
click node_auth "https://github.com/websideproject/nuxt-auto/blob/main/packages/nuxt-auto-api/src/runtime/server/utils/permissions.ts"
click node_tenant "https://github.com/websideproject/nuxt-auto/blob/main/packages/nuxt-auto-api/src/runtime/server/utils/tenant.ts"
click node_validation "https://github.com/websideproject/nuxt-auto/blob/main/packages/nuxt-auto-api/src/runtime/server/validation/schemaGenerator.ts"
click node_crud "https://github.com/websideproject/nuxt-auto/tree/main/packages/nuxt-auto-api/src/runtime/server/handlers"
click node_advanced "https://github.com/websideproject/nuxt-auto/tree/main/packages/nuxt-auto-api/src/runtime/server/handlers"
click node_plugins "https://github.com/websideproject/nuxt-auto/blob/main/packages/nuxt-auto-api/src/runtime/server/plugins/pluginRegistry.ts"
click node_adapters "https://github.com/websideproject/nuxt-auto/tree/main/packages/nuxt-auto-api/src/runtime/server/database/adapters"
click node_database "https://github.com/websideproject/nuxt-auto/blob/main/packages/nuxt-auto-api/src/runtime/server/database/index.ts"
click node_admin_ui "https://github.com/websideproject/nuxt-auto/blob/main/packages/nuxt-auto-admin/src/runtime/components/ResourceTable.vue"
click node_admin_forms "https://github.com/websideproject/nuxt-auto/blob/main/packages/nuxt-auto-admin/src/runtime/components/ResourceForm.vue"
click node_admin_permissions "https://github.com/websideproject/nuxt-auto/blob/main/packages/nuxt-auto-admin/src/runtime/composables/useAdminPermissions.ts"
click node_admin_dashboard "https://github.com/websideproject/nuxt-auto/blob/main/packages/nuxt-auto-admin/src/runtime/components/AdminDashboardWidget.vue"
click node_api_extensions "https://github.com/websideproject/nuxt-auto/tree/main/packages/nuxt-auto-api/src/runtime/server/handlers/plugins"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_drizzle,node_api_module,node_admin_module,node_user toneBlue
class node_api_client,node_routes,node_crud,node_advanced toneAmber
class node_context,node_auth,node_tenant,node_validation toneMint
class node_admin_ui,node_admin_forms,node_admin_permissions,node_admin_dashboard toneRose
class node_plugins,node_adapters,node_database,node_api_extensions toneIndigo
```

## Components

### Schema and Setup

- [Drizzle Schema](https://github.com/websideproject/nuxt-auto/blob/main/packages/nuxt-auto-api/src/runtime/schema/index.ts): `packages/nuxt-auto-api/src/runtime/schema/index.ts`
- [API Module](https://github.com/websideproject/nuxt-auto/blob/main/packages/nuxt-auto-api/src/module.ts): `packages/nuxt-auto-api/src/module.ts`
- [Admin Module](https://github.com/websideproject/nuxt-auto/blob/main/packages/nuxt-auto-admin/src/module.ts): `packages/nuxt-auto-admin/src/module.ts`

### API Runtime

- [Typed API Queries](https://github.com/websideproject/nuxt-auto/blob/main/packages/nuxt-auto-api/src/runtime/composables/useAutoApiQuery.ts): `packages/nuxt-auto-api/src/runtime/composables/useAutoApiQuery.ts`
- [Generated API Routes](https://github.com/websideproject/nuxt-auto/blob/main/packages/nuxt-auto-api/src/runtime/server/handlers/pipeline.ts): `packages/nuxt-auto-api/src/runtime/server/handlers/pipeline.ts`
- [Resource Operations](https://github.com/websideproject/nuxt-auto/tree/main/packages/nuxt-auto-api/src/runtime/server/handlers): `packages/nuxt-auto-api/src/runtime/server/handlers`
- [Bulk M2M Aggregate](https://github.com/websideproject/nuxt-auto/tree/main/packages/nuxt-auto-api/src/runtime/server/handlers): `packages/nuxt-auto-api/src/runtime/server/handlers`

### Request Controls

- [Request Context](https://github.com/websideproject/nuxt-auto/blob/main/packages/nuxt-auto-api/src/runtime/server/handlers/createContextFromRegistry.ts): `packages/nuxt-auto-api/src/runtime/server/handlers/createContextFromRegistry.ts`
- [Authorization](https://github.com/websideproject/nuxt-auto/blob/main/packages/nuxt-auto-api/src/runtime/server/utils/permissions.ts): `packages/nuxt-auto-api/src/runtime/server/utils/permissions.ts`
- [Tenant Scoping](https://github.com/websideproject/nuxt-auto/blob/main/packages/nuxt-auto-api/src/runtime/server/utils/tenant.ts): `packages/nuxt-auto-api/src/runtime/server/utils/tenant.ts`
- [Schema Validation](https://github.com/websideproject/nuxt-auto/blob/main/packages/nuxt-auto-api/src/runtime/server/validation/schemaGenerator.ts): `packages/nuxt-auto-api/src/runtime/server/validation/schemaGenerator.ts`

### Admin Experience

- [Admin Resource UI](https://github.com/websideproject/nuxt-auto/blob/main/packages/nuxt-auto-admin/src/runtime/components/ResourceTable.vue): `packages/nuxt-auto-admin/src/runtime/components/ResourceTable.vue`
- [Admin Forms](https://github.com/websideproject/nuxt-auto/blob/main/packages/nuxt-auto-admin/src/runtime/components/ResourceForm.vue): `packages/nuxt-auto-admin/src/runtime/components/ResourceForm.vue`
- [Admin Permissions](https://github.com/websideproject/nuxt-auto/blob/main/packages/nuxt-auto-admin/src/runtime/composables/useAdminPermissions.ts): `packages/nuxt-auto-admin/src/runtime/composables/useAdminPermissions.ts`
- [Admin Dashboard](https://github.com/websideproject/nuxt-auto/blob/main/packages/nuxt-auto-admin/src/runtime/components/AdminDashboardWidget.vue): `packages/nuxt-auto-admin/src/runtime/components/AdminDashboardWidget.vue`

### Data and Extensions

- [API Plugins](https://github.com/websideproject/nuxt-auto/blob/main/packages/nuxt-auto-api/src/runtime/server/plugins/pluginRegistry.ts): `packages/nuxt-auto-api/src/runtime/server/plugins/pluginRegistry.ts`
- [Database Adapters](https://github.com/websideproject/nuxt-auto/tree/main/packages/nuxt-auto-api/src/runtime/server/database/adapters): `packages/nuxt-auto-api/src/runtime/server/database/adapters`
- [Drizzle Database](https://github.com/websideproject/nuxt-auto/blob/main/packages/nuxt-auto-api/src/runtime/server/database/index.ts): `packages/nuxt-auto-api/src/runtime/server/database/index.ts`
- [Export Audit Upload](https://github.com/websideproject/nuxt-auto/tree/main/packages/nuxt-auto-api/src/runtime/server/handlers/plugins): `packages/nuxt-auto-api/src/runtime/server/handlers/plugins`

### Other components

- **User or App**

## Connections

- User or App → Admin Resource UI: manages resources (evidence: `README.md`)
- User or App → Typed API Queries: queries resources (evidence: `README.md`)
- Drizzle Schema → API Module: generates resources (evidence: `README.md`)
- Drizzle Schema → Admin Module: generates panel (evidence: `README.md`)
- Typed API Queries → Generated API Routes: fetches API (evidence: `packages/nuxt-auto-api/src/runtime/composables/useAutoApiQuery.ts`)
- Generated API Routes → Request Context: builds context (evidence: `packages/nuxt-auto-api/src/runtime/server/handlers/pipeline.ts`)
- Generated API Routes → Resource Operations: executes operation (evidence: `packages/nuxt-auto-api/src/runtime/server/handlers/pipeline.ts`)
- Request Context → Authorization: authorizes request (evidence: `packages/nuxt-auto-api/src/runtime/server/handlers/createContextFromRegistry.ts`)
- Request Context → Tenant Scoping: resolves tenant (evidence: `packages/nuxt-auto-api/src/runtime/server/handlers/createContextFromRegistry.ts`)
- Request Context → Schema Validation: creates validator (evidence: `packages/nuxt-auto-api/src/runtime/server/handlers/createContextFromRegistry.ts`)
- Generated API Routes → Schema Validation: validates request (evidence: `packages/nuxt-auto-api/src/runtime/server/handlers/pipeline.ts`)
- Resource Operations → Drizzle Database: reads and writes (evidence: `packages/nuxt-auto-api/src/runtime/server/handlers/createContextFromRegistry.ts`)
- Bulk M2M Aggregate → Drizzle Database: queries relations (evidence: `README.md`)
- API Module → Bulk M2M Aggregate: provides operations (evidence: `README.md`)
- API Module → API Plugins: registers extensions
- API Plugins → Export Audit Upload: enables routes
- Drizzle Database → Database Adapters: uses engine adapter (evidence: `README.md`)
- Admin Module → Admin Resource UI: generates interface (evidence: `README.md`)
- Admin Resource UI → Typed API Queries: loads resources (evidence: `README.md`)
- Admin Forms → Typed API Queries: submits changes (evidence: `README.md`)
- Admin Permissions → Typed API Queries: checks permissions (evidence: `README.md`)
- Admin Dashboard → Typed API Queries: loads dashboard data
