Configuration
SeviaFlow configuration is split by package. Publish only the config files you need to customize.
Example: change the default page size
To show 25 records per page instead of 15, edit the pagination entry inside the existing performance array in config/seviaflow.php:
'pagination' => [
'default_per_page' => 25,
'max_per_page' => 100,
'per_page_options' => [25, 50, 100],
'mode' => 'length_aware',
],
default_per_page sets the starting page size, max_per_page caps requested page sizes, and per_page_options controls the choices shown in the UI. Keep the other entries in performance, such as search and cache.
Core: config/seviaflow.php
| Key | Default | Purpose |
|---|---|---|
paths.resources | app_path('SeviaFlow/Resources') | Default resource path. |
namespaces.resources | App\SeviaFlow\Resources | Default resource namespace. |
resources | [] | Registered resource slug map. |
performance.select_only_visible_columns | true | Select only required visible columns where possible. |
performance.pagination.default_per_page | 15 | Default page size. |
performance.pagination.max_per_page | 100 | Maximum page size. |
performance.pagination.per_page_options | [15, 25, 50] | UI page-size options. |
performance.pagination.mode | length_aware | Pagination mode. |
performance.search.default_mode | starts_with | Default table search mode. |
performance.search.mode | starts_with | Legacy fallback search mode key. |
performance.cache.enabled | env('SEVIAFLOW_CACHE_ENABLED', false) | Core cache enablement. |
performance.cache.store | null | Cache store. |
performance.cache.ttl | 3600 | Cache TTL. |
performance.cache.resources | true | Resource metadata cache flag. |
permissions.enabled | false | Enable SeviaFlow role permissions for registered Resources. |
permissions.admin_gate | null | UI panel-access callback; the host must define it. Missing callback denies panel access. |
permissions.user_model | null | Optional user model override. |
permissions.role_management.resource | __settings.roles | Role management permission resource. |
permissions.role_management.ability | update | Role management ability. |
permissions.role_assignments.resource | __settings.admin-users | Role assignment permission resource. |
permissions.role_assignments.ability | update | Role assignment ability. |
forms.default_currency | USD | Default currency metadata for money fields. |
workflows.enabled | true | Workflow capability flag. |
export.max_rows | 5000 | Maximum export rows. |
import.max_rows | 1000 | Maximum import rows. |
import.preview_rows | 20 | CSV import preview rows. |
analytics.default_limit | 20 | Default grouped analytics row limit. |
analytics.max_limit | 500 | Maximum grouped analytics row limit. |
analytics.max_dimensions | 4 | Maximum categorical dimensions in one semantic analytics query. |
analytics.max_relationship_depth | 3 | Maximum governed BelongsTo relationship hops for semantic dimensions and related time dimensions. |
analytics.max_ranking_limit | 25 | Maximum Top-N or Bottom-N size per semantic ranking partition. |
analytics.max_complexity | 10 | Maximum semantic query complexity score. |
permissions.admin_gate and permissions.enabled answer different questions. The first admits a user to the operator UI panel and fails closed when omitted. The second enables Core role-permission checks on Resource operations; Laravel model policies are checked separately when present. See Authorization for the request flow and setup example.
UI: config/seviaflow-ui.php
| Key | Default | Purpose |
|---|---|---|
enabled | env('SEVIAFLOW_UI_ENABLED', true) | Enable UI routes/services. |
assets.enabled | true | Enable package assets. |
assets.path | vendor/seviaflow/ui | Published asset path. |
route_prefix | admin | UI route prefix. |
route_name_prefix | seviaflow. | UI route-name prefix. |
admin_middleware | ['web', 'auth'] | Protected UI middleware. |
middleware | ['web', 'auth'] | Legacy middleware fallback. |
auth_middleware | ['web'] | Public auth routes middleware. |
auth.enabled | true | Enable built-in auth routes. |
auth.guard | web | Auth guard. |
auth.password_broker | users | Password broker. |
auth.two_factor_authentication | true | Enable 2FA screens. |
dashboard.enabled | true | Enable dashboard routes. |
dashboard.default | null | Default dashboard. |
dashboard.recent_activity_limit | 10 | Recent activity count. |
dashboard.cache_ttl | 60 | Dashboard cache TTL. |
cache.navigation | true | Navigation cache flag. |
cache.dashboard | false | Dashboard cache flag. |
cache.isolation_context | env('SEVIAFLOW_CACHE_ISOLATION_CONTEXT') | Explicit host or installation boundary included in dashboard cache keys. |
cache.permission_version | env('SEVIAFLOW_CACHE_PERMISSION_VERSION', 'v1') | Manual permission invalidation version included in dashboard cache keys. |
cache.data_version | env('SEVIAFLOW_CACHE_DATA_VERSION', 'v1') | Manual data invalidation version included in dashboard cache keys. |
dashboards | [] | Dashboard registrations. |
bulk_actions.max_selected | 100 | Bulk selection cap. |
api_docs_navigation.show_in_navigation | true | Show API docs nav item. |
API: config/seviaflow-api.php
| Key | Default | Purpose |
|---|---|---|
enabled | env('SEVIAFLOW_API_ENABLED', true) | Enable API routes. |
prefix | api/admin | API route prefix. |
middleware | ['api', 'auth:sanctum'] | API middleware. |
route_name_prefix | seviaflow.api. | API route-name prefix. |
openapi.enabled | true | Enable schema route. |
openapi.route | openapi.json | Schema route path. |
openapi.middleware | ['web', 'auth'] | Schema middleware. |
openapi.cache.enabled | true | OpenAPI cache flag. |
docs.enabled | true | Enable API docs view. |
docs.route | api-docs | Docs route path. |
docs.middleware | ['web', 'auth'] | Docs route middleware. |
docs.view | seviaflow-api::api-docs | Docs view. |
DevTools: config/seviaflow-devtools.php
| Key | Default | Purpose |
|---|---|---|
enabled | env('SEVIAFLOW_DEVTOOLS_ENABLED', true) | Enable DevTools services. |
discovery.enabled | true | Enable discovery. |
discovery.model_paths | [app_path('Models')] | Model scan paths. |
discovery.model_namespaces | ['App\Models'] | Model namespaces. |
discovery.ignored_models | [] | Ignored models. |
generation.resources_path | app_path('SeviaFlow/Resources') | Generated resources path. |
generation.resources_namespace | App\SeviaFlow\Resources | Generated resources namespace. |
generation.stubs_path | base_path('stubs/seviaflow') | Local stubs path. |
Get Started