SeviaFlow Get Started

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

KeyDefaultPurpose
paths.resourcesapp_path('SeviaFlow/Resources')Default resource path.
namespaces.resourcesApp\SeviaFlow\ResourcesDefault resource namespace.
resources[]Registered resource slug map.
performance.select_only_visible_columnstrueSelect only required visible columns where possible.
performance.pagination.default_per_page15Default page size.
performance.pagination.max_per_page100Maximum page size.
performance.pagination.per_page_options[15, 25, 50]UI page-size options.
performance.pagination.modelength_awarePagination mode.
performance.search.default_modestarts_withDefault table search mode.
performance.search.modestarts_withLegacy fallback search mode key.
performance.cache.enabledenv('SEVIAFLOW_CACHE_ENABLED', false)Core cache enablement.
performance.cache.storenullCache store.
performance.cache.ttl3600Cache TTL.
performance.cache.resourcestrueResource metadata cache flag.
permissions.enabledfalseEnable SeviaFlow role permissions for registered Resources.
permissions.admin_gatenullUI panel-access callback; the host must define it. Missing callback denies panel access.
permissions.user_modelnullOptional user model override.
permissions.role_management.resource__settings.rolesRole management permission resource.
permissions.role_management.abilityupdateRole management ability.
permissions.role_assignments.resource__settings.admin-usersRole assignment permission resource.
permissions.role_assignments.abilityupdateRole assignment ability.
forms.default_currencyUSDDefault currency metadata for money fields.
workflows.enabledtrueWorkflow capability flag.
export.max_rows5000Maximum export rows.
import.max_rows1000Maximum import rows.
import.preview_rows20CSV import preview rows.
analytics.default_limit20Default grouped analytics row limit.
analytics.max_limit500Maximum grouped analytics row limit.
analytics.max_dimensions4Maximum categorical dimensions in one semantic analytics query.
analytics.max_relationship_depth3Maximum governed BelongsTo relationship hops for semantic dimensions and related time dimensions.
analytics.max_ranking_limit25Maximum Top-N or Bottom-N size per semantic ranking partition.
analytics.max_complexity10Maximum 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

KeyDefaultPurpose
enabledenv('SEVIAFLOW_UI_ENABLED', true)Enable UI routes/services.
assets.enabledtrueEnable package assets.
assets.pathvendor/seviaflow/uiPublished asset path.
route_prefixadminUI route prefix.
route_name_prefixseviaflow.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.enabledtrueEnable built-in auth routes.
auth.guardwebAuth guard.
auth.password_brokerusersPassword broker.
auth.two_factor_authenticationtrueEnable 2FA screens.
dashboard.enabledtrueEnable dashboard routes.
dashboard.defaultnullDefault dashboard.
dashboard.recent_activity_limit10Recent activity count.
dashboard.cache_ttl60Dashboard cache TTL.
cache.navigationtrueNavigation cache flag.
cache.dashboardfalseDashboard cache flag.
cache.isolation_contextenv('SEVIAFLOW_CACHE_ISOLATION_CONTEXT')Explicit host or installation boundary included in dashboard cache keys.
cache.permission_versionenv('SEVIAFLOW_CACHE_PERMISSION_VERSION', 'v1')Manual permission invalidation version included in dashboard cache keys.
cache.data_versionenv('SEVIAFLOW_CACHE_DATA_VERSION', 'v1')Manual data invalidation version included in dashboard cache keys.
dashboards[]Dashboard registrations.
bulk_actions.max_selected100Bulk selection cap.
api_docs_navigation.show_in_navigationtrueShow API docs nav item.

API: config/seviaflow-api.php

KeyDefaultPurpose
enabledenv('SEVIAFLOW_API_ENABLED', true)Enable API routes.
prefixapi/adminAPI route prefix.
middleware['api', 'auth:sanctum']API middleware.
route_name_prefixseviaflow.api.API route-name prefix.
openapi.enabledtrueEnable schema route.
openapi.routeopenapi.jsonSchema route path.
openapi.middleware['web', 'auth']Schema middleware.
openapi.cache.enabledtrueOpenAPI cache flag.
docs.enabledtrueEnable API docs view.
docs.routeapi-docsDocs route path.
docs.middleware['web', 'auth']Docs route middleware.
docs.viewseviaflow-api::api-docsDocs view.

DevTools: config/seviaflow-devtools.php

KeyDefaultPurpose
enabledenv('SEVIAFLOW_DEVTOOLS_ENABLED', true)Enable DevTools services.
discovery.enabledtrueEnable discovery.
discovery.model_paths[app_path('Models')]Model scan paths.
discovery.model_namespaces['App\Models']Model namespaces.
discovery.ignored_models[]Ignored models.
generation.resources_pathapp_path('SeviaFlow/Resources')Generated resources path.
generation.resources_namespaceApp\SeviaFlow\ResourcesGenerated resources namespace.
generation.stubs_pathbase_path('stubs/seviaflow')Local stubs path.