Command Reference

Available Commands

Data Lens provides several artisan commands to help manage and maintain your reporting system.

data-lens:install

Interactive installation wizard for Data Lens.

php artisan data-lens:install [--force]

Options:

  • --force - Force the operation to run, overwriting existing files

Features:

  • Detects existing Filament panels
  • Publishes configuration and migrations
  • Runs migrations with confirmation
  • Configures plugin settings interactively
  • Registers plugin in panel providers
  • Generates security policies

data-lens:clear-cache

Clear Data Lens cache entries.

php artisan data-lens:clear-cache [--type=TYPE] [--force]

Options:

  • --type - Specific cache type to clear (default: all)
    • all - Clear all Data Lens cache
    • relationship_class - Clear relationship class cache
    • relationship_type - Clear relationship type cache
    • model_relationships - Clear model relationships cache
    • model_fields - Clear model fields cache
    • filter_type - Clear filter type cache
  • --force - Skip confirmation prompt

Examples:

# Clear all cache
php artisan data-lens:clear-cache

# Clear only model fields cache
php artisan data-lens:clear-cache --type=model_fields

# Clear cache without confirmation
php artisan data-lens:clear-cache --force

Note: When using cache drivers that don't support tags (file, database), clearing a specific type will clear ALL Data Lens cache.

data-lens:suggest-excluded-columns

Scan models for sensitive columns that should be excluded from reports.

php artisan data-lens:suggest-excluded-columns [--model=MODEL] [--format=FORMAT]

Options:

  • --model - Specific model class to scan (e.g., "App\Models\User")
  • --format - Output format
    • table (default) - Display as formatted table
    • config - Output as copy-pastable config array

Examples:

# Scan all models
php artisan data-lens:suggest-excluded-columns

# Scan specific model
php artisan data-lens:suggest-excluded-columns --model="App\Models\User"

# Get config-ready output
php artisan data-lens:suggest-excluded-columns --format=config

Risk Levels:

  • HIGH: Passwords, tokens, API keys, secrets
  • MEDIUM: Personal information, financial data, salaries
  • LOW: Tracking data, analytics, configuration

data-lens:check-scheduled-reports

Check for scheduled reports that are due and queue them for processing.

php artisan data-lens:check-scheduled-reports [--debug]

Options:

  • --debug - Enable detailed debug output

Usage: This command should be scheduled to run regularly via Laravel's task scheduler:

// In routes/console.php (Laravel 11) or app/Console/Kernel.php
Schedule::command('data-lens:check-scheduled-reports')->everyMinute();

Features:

  • Identifies reports due for generation
  • Queues report generation jobs
  • Respects timezone settings
  • Handles recurring schedules (daily, weekly, monthly)
  • Updates next run times

data-lens:check

Check whether the database has the schema the installed Data Lens version requires. It inspects the live schema (tables and columns the runtime depends on), so it is robust to the package's own migration renames, and reports anything missing.

php artisan data-lens:check [--json]

Options:

  • --json - Output machine-readable JSON

Exit codes:

  • 0 - Schema is up to date
  • 1 - Required schema is missing (run the upgrade/migrate steps)

Usage: Run it in CI to catch schema drift before it reaches production:

php artisan data-lens:check || exit 1

php artisan about also reports the same schema status under the "Data Lens" section.

data-lens:upgrade

Sync published resources after upgrading the package: publishes any newly added migrations and clears Data Lens caches. It reports whether a migration run is needed but does not run migrations itself.

php artisan data-lens:upgrade [--force]

Options:

  • --force - Overwrite existing published files

Recommended: add it to your application's composer.json so published resources stay in sync after every composer update (see Installation → Upgrading Data Lens):

"scripts": {
    "post-autoload-dump": [
        "@php artisan data-lens:upgrade"
    ]
}

Deployment Commands

Cache Management in Production

# Clear cache after deploying model changes
php artisan data-lens:clear-cache --force

# Warm cache by accessing reports (optional)
php artisan tinker
>>> \Padmission\DataLens\Services\ModelService::make()->getAvailableModels();

Multi-Tenant Deployments

For multi-tenant applications, cache is isolated per tenant. To clear cache for all tenants:

# Clear all tenant caches
php artisan data-lens:clear-cache --force

# Or manually clear specific tenant cache
php artisan tinker
>>> app()->bind('tenant.id', fn() => 1); // Set tenant context
>>> \Padmission\DataLens\Services\CacheManager::clear();

Maintenance Commands

Database Cleanup

Remove old schedule history:

-- Remove history older than 90 days
DELETE FROM custom_report_schedule_history 
WHERE created_at < DATE_SUB(NOW(), INTERVAL 90 DAY);

Queue Monitoring

Monitor report generation jobs:

# Check failed jobs
php artisan queue:failed

# Retry failed report jobs
php artisan queue:retry all

Troubleshooting Commands

Debug Report Generation

# Test report generation without scheduling
php artisan tinker
>>> $report = \Padmission\DataLens\Models\CustomReport::find(1);
>>> $service = app(\Padmission\DataLens\Services\ReportDataService::class);
>>> $data = $service->getData($report, 1, 50);
>>> dd($data);

Check Configuration

# View current configuration
php artisan tinker
>>> config('data-lens');