Architecture
SeviaFlow is package-split around one rule: Core defines resource behavior; adapters consume it.
Eloquent model
|
v
Resource
|-- table
|-- form / show
|-- actions
|-- relations
|-- workflow
|-- events
`-- API contract
|
v
SeviaFlow\Core
|-- SeviaFlow\Ui
`-- SeviaFlow\Api
SeviaFlow\DevTools --> generation / diagnostics
seviaflow/framework --> core + ui + api
Optional control plane
Dependency Direction
seviaflow/core has no Livewire dependency and does not load UI or API routes. It requires PHP ^8.2, illuminate/support and illuminate/database.
seviaflow/ui requires Core plus Livewire and Laravel view/routing components. It loads Livewire resource pages, dashboard routes, authentication screens and package assets.
seviaflow/api requires Core plus Laravel HTTP/routing components. It loads REST resource routes, workflow endpoints, OpenAPI schema output and an API docs view.
seviaflow/devtools requires Core and Illuminate Console. It does not need UI or API to generate resources or run diagnostics.
Runtime Flow
- You register resource slugs in
config/seviaflow.php. - Core resolves a slug to a Resource class through
SeviaFlow\Core\Resources\ResourceRegistry. - UI and API adapters ask the Resource for table, form, show, api, actions, relations, workflow, events, export or import definitions as needed.
- Core query infrastructure applies resource query customization before search, filters, sorting and pagination.
- Authorization runs through SeviaFlow permissions first, then Laravel policies when a policy exists.
Package Boundaries
SeviaFlow\Core\...for shared primitives.SeviaFlow\Ui\...for Livewire UI, dashboard, navigation and auth/profile surfaces.SeviaFlow\Api\...for REST, OpenAPI and API serialization.SeviaFlow\DevTools\...for console commands, discovery and generation.
WarningDo not treat Core as an all-in-one package. Core alone does not install the operator UI or REST API.
Get Started