### Install Laravel Boost with php artisan boost:install Source: https://github.com/jeffersongoncalves/filament-satis/blob/3.x/README.md Run this command to install Laravel Boost in your project. After installation, the plugin's AI guidelines and skills are automatically detected and available to your coding agent. ```bash php artisan boost:install ``` -------------------------------- ### Install filament-satis via Composer Source: https://github.com/jeffersongoncalves/filament-satis/blob/3.x/README.md Installs the filament-satis package via Composer. This automatically installs jeffersongoncalves/laravel-satis as a dependency. ```bash composer require jeffersongoncalves/filament-satis ``` -------------------------------- ### Use Filament Satis Translation Keys Source: https://github.com/jeffersongoncalves/filament-satis/blob/3.x/README.md Translation keys use the 'filament-satis::' namespace. These examples show how to access package-specific and general translation strings in your code. ```php __('filament-satis::package.navigation_label') __('filament-satis::package.fields.name') __('filament-satis::general.created_at') ``` -------------------------------- ### Override model in config/satis.php Source: https://github.com/jeffersongoncalves/filament-satis/blob/3.x/resources/boost/skills/filament-satis-development/SKILL.md Configuration example for overriding the package model class in config/satis.php. ```php 'models' => [ 'package' => \App\Models\CustomPackage::class, ], ``` -------------------------------- ### Build the Satis repository Source: https://github.com/jeffersongoncalves/filament-satis/blob/3.x/README.md Builds the Satis repository after creating packages and tokens. ```bash php artisan satis:build ``` -------------------------------- ### Enable Multi-Tenancy with FilamentSatisPlugin Source: https://github.com/jeffersongoncalves/filament-satis/blob/3.x/resources/boost/skills/filament-satis-development/SKILL.md Configures multi-tenancy for the Filament Satis plugin. Enables tenancy, sets the tenant model to Team, and uses the foreign key 'team_id'. The plugin automatically sets satis.tenancy.enabled to true during register(), configures the tenant resolver to use filament()->getTenant() during boot(), and registers all 5 resources. ```php $panel->plugin( FilamentSatisPlugin::make() ->tenancy( enabled: true, model: \App\Models\Team::class, foreignKey: 'team_id' ) ); ``` -------------------------------- ### Publish and run satis migrations Source: https://github.com/jeffersongoncalves/filament-satis/blob/3.x/README.md Publishes and runs the required migrations for the satis package. ```bash php artisan vendor:publish --tag="satis-migrations" php artisan migrate ``` -------------------------------- ### Publish optional config files Source: https://github.com/jeffersongoncalves/filament-satis/blob/3.x/README.md Optionally publishes the configuration files for filament-satis and satis. ```bash php artisan vendor:publish --tag="filament-satis-config" php artisan vendor:publish --tag="satis-config" ``` -------------------------------- ### Configure client composer.json repository Source: https://github.com/jeffersongoncalves/filament-satis/blob/3.x/README.md Configures the client project's composer.json to use the Satis repository URL. ```json { "repositories": [ { "type": "composer", "url": "https://your-app.com/satis" } ] } ``` -------------------------------- ### Run tests with composer test Source: https://github.com/jeffersongoncalves/filament-satis/blob/3.x/README.md Run the test suite for this package using Composer. ```bash composer test ``` -------------------------------- ### Authenticate with Satis token Source: https://github.com/jeffersongoncalves/filament-satis/blob/3.x/README.md Authenticates with the Satis repository using the generated token. ```bash composer config http-basic.your-app.com token "your-64-char-token-here" ``` -------------------------------- ### Configure package_resource in config/filament-satis.php Source: https://github.com/jeffersongoncalves/filament-satis/blob/3.x/resources/boost/skills/filament-satis-development/SKILL.md Defines per-resource configuration keys for the package resource. Each key controls a Filament behavior: cluster class, sidebar registration, navigation icon, sort order, and URL slug. ```php 'package_resource' => [ 'cluster' => null, // Filament cluster class 'should_register_navigation' => true, // Show in sidebar 'navigation_icon' => 'heroicon-o-cube', // Heroicon name 'navigation_sort' => 1, // Sort order 'slug' => 'satis/packages', // URL slug ], ``` -------------------------------- ### Configure Laravel Satis Backend in config/satis.php Source: https://github.com/jeffersongoncalves/filament-satis/blob/3.x/README.md Core backend configuration for Laravel Satis. Includes multi-tenancy settings, table prefix, model overrides, storage disk and path, Satis build options, queue settings, scheduled command frequencies, auth guard/provider, and route prefixes/middleware. ```php return [ // Multi-tenancy 'tenancy' => [ 'enabled' => false, 'model' => null, 'foreign_key' => null, 'ownership_relationship' => null, 'resolver' => null, ], // Database table prefix (set to null for unprefixed tables) 'table_prefix' => 'satis_', // Override default model classes 'models' => [ 'package' => \JeffersonGoncalves\LaravelSatis\Models\Package::class, 'token' => \JeffersonGoncalves\LaravelSatis\Models\Token::class, // ... ], // Storage for Satis builds 'storage_disk' => 'local', 'storage_path' => 'satis', // Satis build configuration 'satis' => [ 'name' => 'my/repository', 'output_html' => false, 'archive' => ['directory' => 'archives', 'skip_dev' => true], 'minimum_stability' => 'stable', 'secure_http' => false, ], // Queue settings 'queue' => [ 'connection' => null, 'queue_name' => null, 'timeout' => 86400, // 24 hours ], // Scheduled command frequencies 'schedule' => [ 'build' => 'weekly', 'token_build' => 'weekly', 'validate' => 'hourly', 'sanitize' => 'daily', 'dependencies' => 'weekly', ], // Auth guard and provider 'auth' => ['guard' => 'satis-token', 'provider' => 'satis-tokens'], // Route prefixes and middleware (set composer_prefix to null for no prefix) 'routes' => [ 'api_prefix' => 'api/satis', 'composer_prefix' => 'satis', 'middleware' => ['api'], ], ]; ``` -------------------------------- ### Publish filament-satis config Source: https://github.com/jeffersongoncalves/filament-satis/blob/3.x/resources/boost/skills/filament-satis-development/SKILL.md Publishes the package configuration file to the application's config directory using the filament-satis-config tag. ```bash php artisan vendor:publish --tag=filament-satis-config ``` -------------------------------- ### Publish filament-satis translations Source: https://github.com/jeffersongoncalves/filament-satis/blob/3.x/resources/boost/skills/filament-satis-development/SKILL.md Publishes the translation files for the filament-satis package. Run this command to make the translation files available for customization. ```bash php artisan vendor:publish --tag=filament-satis-translations ``` -------------------------------- ### Translation key pattern for filament-satis Source: https://github.com/jeffersongoncalves/filament-satis/blob/3.x/resources/boost/skills/filament-satis-development/SKILL.md Shows the translation key pattern used for filament-satis. Keys follow the namespace 'filament-satis::' followed by the translation file and the specific key path. ```php __('filament-satis::package.navigation_label') __('filament-satis::package.model_label') __('filament-satis::package.plural_model_label') __('filament-satis::package.sections.general') __('filament-satis::package.fields.name') __('filament-satis::general.created_at') ``` -------------------------------- ### Run tests with Pest Source: https://github.com/jeffersongoncalves/filament-satis/blob/3.x/resources/boost/skills/filament-satis-development/SKILL.md Runs the test suite using Pest with Orchestra Testbench. ```bash php vendor/bin/pest ``` -------------------------------- ### Custom URL slug for package resource Source: https://github.com/jeffersongoncalves/filament-satis/blob/3.x/resources/boost/skills/filament-satis-development/SKILL.md Sets a custom URL slug for the package resource to 'packages/composer'. ```php 'package_resource' => [ 'slug' => 'packages/composer', // ... ], ``` -------------------------------- ### Configure Filament Plugin Resources in config/filament-satis.php Source: https://github.com/jeffersongoncalves/filament-satis/blob/3.x/README.md Per-resource customization for the Filament plugin. Each resource can override the shared navigation group, set a cluster class, toggle sidebar registration, choose a Heroicon, set sort order, and define a URL slug. ```php return [ // Shared navigation group for all resources 'navigation_group' => 'Satis', // Per-resource configuration 'package_resource' => [ 'cluster' => null, // Filament cluster class 'should_register_navigation' => true, // Show in sidebar 'navigation_icon' => 'heroicon-o-cube', // Heroicon name 'navigation_sort' => 1, // Sort order 'slug' => 'satis/packages', // URL slug ], 'token_resource' => [ 'cluster' => null, 'should_register_navigation' => true, 'navigation_icon' => 'heroicon-o-key', 'navigation_sort' => 2, 'slug' => 'satis/tokens', ], 'package_release_resource' => [ 'cluster' => null, 'should_register_navigation' => true, 'navigation_icon' => 'heroicon-o-tag', 'navigation_sort' => 3, 'slug' => 'satis/package-releases', ], 'package_download_resource' => [ 'cluster' => null, 'should_register_navigation' => true, 'navigation_icon' => 'heroicon-o-arrow-down-tray', 'navigation_sort' => 4, 'slug' => 'satis/package-downloads', ], 'dependency_resource' => [ 'cluster' => null, 'should_register_navigation' => true, 'navigation_icon' => 'heroicon-o-link', 'navigation_sort' => 5, 'slug' => 'satis/dependencies', ], ]; ``` -------------------------------- ### FilamentSatisPlugin API Methods Source: https://github.com/jeffersongoncalves/filament-satis/blob/3.x/resources/boost/skills/filament-satis-development/SKILL.md Lists the public API methods of the FilamentSatisPlugin class. Use these to create, retrieve, and inspect the plugin instance, configure tenancy, and access tenant-related properties. ```php FilamentSatisPlugin::make() // Create new instance FilamentSatisPlugin::get() // Get registered instance $plugin->getId() // Returns 'filament-satis' $plugin->tenancy(...) // Configure tenancy $plugin->hasMultiTenancy() // Check if tenancy enabled $plugin->getTenantModel() // Get tenant model class $plugin->getTenantForeignKey() // Get tenant foreign key ``` -------------------------------- ### Change navigation icon for package resource Source: https://github.com/jeffersongoncalves/filament-satis/blob/3.x/resources/boost/skills/filament-satis-development/SKILL.md Changes the navigation icon for the package resource by setting the 'navigation_icon' key in the config. ```php 'package_resource' => [ 'navigation_icon' => 'heroicon-o-archive-box', // ... ], ``` -------------------------------- ### Package dependency tree Source: https://github.com/jeffersongoncalves/filament-satis/blob/3.x/resources/boost/skills/filament-satis-development/SKILL.md Shows the dependency hierarchy of the filament-satis plugin, which depends on the laravel-satis core package that contains models, enums, actions, jobs, controllers, routes, middleware, observers, traits, and support classes. ```text filament-satis (Filament plugin) -> laravel-satis (Core Laravel package) -> Models, Enums, Actions, Jobs -> Controllers, Routes, Middleware -> Observers, Traits, Support ``` -------------------------------- ### Group resources in a cluster Source: https://github.com/jeffersongoncalves/filament-satis/blob/3.x/resources/boost/skills/filament-satis-development/SKILL.md Groups the package and token resources into a Filament cluster by setting the 'cluster' key to the SatisCluster class. ```php 'package_resource' => [ 'cluster' => \App\Filament\Clusters\SatisCluster::class, // ... ], 'token_resource' => [ 'cluster' => \App\Filament\Clusters\SatisCluster::class, // ... ], ``` -------------------------------- ### Read config in Filament resource static methods Source: https://github.com/jeffersongoncalves/filament-satis/blob/3.x/resources/boost/skills/filament-satis-development/SKILL.md Overrides Filament static methods to read configuration values for the package resource. Each method provides a default fallback when the config key is missing. ```php public static function getNavigationIcon(): ?string { return config('filament-satis.package_resource.navigation_icon', 'heroicon-o-cube'); } public static function getNavigationSort(): ?int { return config('filament-satis.package_resource.navigation_sort', 1); } public static function getNavigationGroup(): ?string { return config('filament-satis.navigation_group', 'Satis'); } public static function shouldRegisterNavigation(): bool { return config('filament-satis.package_resource.should_register_navigation', true); } public static function getCluster(): ?string { return config('filament-satis.package_resource.cluster'); } public static function getSlug(): string { return config('filament-satis.package_resource.slug', 'satis/packages'); } ``` -------------------------------- ### Change navigation group Source: https://github.com/jeffersongoncalves/filament-satis/blob/3.x/resources/boost/skills/filament-satis-development/SKILL.md Changes the navigation group label to 'Package Management' for the resources. ```php 'navigation_group' => 'Package Management', ``` -------------------------------- ### Register FilamentSatisPlugin in AdminPanelProvider Source: https://github.com/jeffersongoncalves/filament-satis/blob/3.x/resources/boost/skills/filament-satis-development/SKILL.md Registers the Filament Satis plugin in a panel provider. Use this in the panel() method of a PanelProvider class to enable the plugin with default settings. ```php use JeffersonGoncalves\FilamentSatis\FilamentSatisPlugin; class AdminPanelProvider extends PanelProvider { public function panel(Panel $panel): Panel { return $panel ->plugin(FilamentSatisPlugin::make()); } } ``` -------------------------------- ### Hide a resource from navigation in filament-satis Source: https://github.com/jeffersongoncalves/filament-satis/blob/3.x/resources/boost/skills/filament-satis-development/SKILL.md Hides the package download resource from the Filament navigation by setting 'should_register_navigation' to false in the config file. ```php // config/filament-satis.php 'package_download_resource' => [ 'should_register_navigation' => false, // ... ], ``` -------------------------------- ### Configure navigation_group in config/filament-satis.php Source: https://github.com/jeffersongoncalves/filament-satis/blob/3.x/resources/boost/skills/filament-satis-development/SKILL.md Sets the navigation group label shared by all Filament resources in the package. The default value is 'Satis'. ```php 'navigation_group' => 'Satis', // Shared by all resources ``` -------------------------------- ### Model resolution with ModelResolver::package() Source: https://github.com/jeffersongoncalves/filament-satis/blob/3.x/resources/boost/skills/filament-satis-development/SKILL.md Used in Filament resources to resolve the model class via ModelResolver from laravel-satis, allowing users to override the model through config/satis.php. ```php public static function getModel(): string { return ModelResolver::package(); } ``` -------------------------------- ### Override model classes Source: https://github.com/jeffersongoncalves/filament-satis/blob/3.x/README.md Overrides the default package model with a custom model class. Custom models must extend the base models from the package. ```php // config/satis.php 'models' => [ 'package' => \App\Models\CustomPackage::class, ], ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.