System Architecture

MWNF Inventory is the content layer that replaces direct dependency on legacy databases. Applications should use Inventory interfaces instead of reading the legacy databases directly.

Main parts

Part Role
Laravel application Owns the Inventory model, authentication, authorization, Filament back-office, management API, queues, and generated API documentation.
Filament /admin Main integrated back-office for authenticated content management.
Management API Authenticated read/write API for programmatic management access.
Importer Node.js tool that reads legacy databases, transforms content, and writes Inventory records.
Documentation site Jekyll site that explains the model, import, collaborator orientation, generated OpenAPI reference, and generated model reference.
Future read-only API Planned API optimized for public and lightweight front-end clients.

Data flow

Legacy databases feed the importer. The importer writes normalized content into Inventory. Content managers work through Filament. Programmatic management tools use the management API. Public clients should later use the read-only API, which is designed around delivery needs rather than raw database structure.

Legacy databases and files
        |
        v
Importer transformation
        |
        v
Inventory database and Laravel model
        |
        +--> Filament /admin back-office
        +--> Management API
        +--> Future read-only API
        +--> Documentation and validation references

Why a read-only API is separate

The management API reflects the management model and supports authenticated create, update, and delete workflows. The planned read-only API has a different purpose. It should shape content for fast public consumption, reduce client-side joins, and return data in forms that lightweight applications can use directly.

This keeps the Inventory model clean while still allowing public clients to receive practical responses.