Skip to content

Access Gate

This page is generated from public package documentation in capell-4/packages and the package manifest checked into the source repository.

FieldValue
Composer packagecapell-app/access-gate
Package slugaccess-gate
Product groupCapell Operations
Tierpremium
Bundleoperations
Runtime contextsadmin
Capell version^4.0
Source repositorycapell-app/packages
Source pathpackages/access-gate
Docs sourcepackages/access-gate/docs
Manifestcapell.json

Access gating foundations for Capell CMS.

  • Package: capell-app/access-gate
  • Namespace: Capell\AccessGate\
  • Surfaces: Filament admin, console, HTTP, database
  • Service providers: packages/access-gate/src/Providers/AccessGateServiceProvider.php
  • Capell dependencies: capell-app/core
  • Third-party dependencies: laravel/framework, lorisleiva/laravel-actions
  • Protect gated pages, downloads, or member-only areas without building a one-off approval system for each site.
  • Keeps request, grant, claim-token, and approval state in package tables so operators can audit access decisions.
  • Works well with public submission flows because access requests can stay separate from page rendering and cacheable public HTML.
  • Access gating foundations for Capell CMS.
  • Admin resources: AccessAreaResource, AccessGateEventResource, BrowserTokenResource, ClaimTokenResource, GrantResource, RegistrationResource.
  • Package setup or maintenance commands.
  • Public request, claim, status, and logout endpoints for gated access flows.
AreaPathPurpose
Actionspackages/access-gate/src/ActionsDomain operations. Test these directly where possible.
Datapackages/access-gate/src/DataStructured payloads, form state, view models, and integration data.
Enumspackages/access-gate/src/EnumsPersisted states and Filament option values.
Modelspackages/access-gate/src/ModelsEloquent records owned by the package.
Filamentpackages/access-gate/src/FilamentAdmin resources, pages, widgets, and settings UI.
HTTPpackages/access-gate/src/HttpControllers, middleware, and request handling.
Providerspackages/access-gate/src/ProvidersRegistration, extension hooks, routes, migrations, and resources.
Resourcespackages/access-gate/resourcesViews, translations, assets, and package resources.
Routespackages/access-gate/routesRoute files loaded by the service provider.
Configpackages/access-gate/configPackage configuration and publishable config.
Databasepackages/access-gate/databaseMigrations, seeders, and settings migrations.
Testspackages/access-gate/testsPackage-level Pest coverage.
  • Resources: AccessAreaResource, AccessGateEventResource, BrowserTokenResource, ClaimTokenResource, GrantResource, RegistrationResource.
  • Pages: CreateAccessArea, EditAccessArea, ListAccessAreas, ListAccessGateEvents, ListBrowserTokens, ListClaimTokens, ListGrants, ListRegistrations.
  • Controllers: AccessGateStatusController, ClaimAccessGateTokenController, LogoutAccessGateController, ShowAccessRequestController, StoreAccessRequestController.
  • Routes: packages/access-gate/routes/web.php.
  • capell:access-gate-doctor (packages/access-gate/src/Console/Commands/AccessGateDoctorCommand.php)
  • capell:access-gate-install (packages/access-gate/src/Console/Commands/AccessGateInstallCommand.php)
  • capell:access-gate-setup (packages/access-gate/src/Console/Commands/AccessGateSetupCommand.php)
  • Models: AccessGateModel, Area, BrowserToken, ClaimToken, Event, Grant, Registration.
  • Migrations: 2026_05_10_190838_01_create_access_gate_areas_table.php, 2026_05_10_190838_02_create_access_gate_registrations_table.php, 2026_05_10_190838_03_create_access_gate_grants_table.php, 2026_05_10_190838_04_create_access_gate_claim_tokens_table.php, 2026_05_10_190838_05_create_access_gate_browser_tokens_table.php, 2026_05_10_190838_06_create_access_gate_events_table.php, 2026_05_10_190838_07_add_site_id_to_access_gate_areas_table.php, 2026_05_12_120000_08_add_schedule_to_access_gate_areas_table.php, 2026_05_12_120001_09_add_download_resolver_indexes_to_access_gate_tables.php.
  • Config: packages/access-gate/config/access-gate.php.
  • Data objects live in src/Data/; use them for payloads, form state, and view models.
  • Contracts: AccessRequestMethod, RegistrationField.
  • Events: RegistrationApproved.
  • Register Capell extension points, routes, migrations, settings, render hooks, and resources from service providers.
  • Install with composer require capell-app/access-gate in the host Capell application.
  • Run migrations through the host application package install flow.
  • In this repository, verify package changes with vendor/bin/pest; do not use php artisan.

Run package tests from the repository root:

Terminal window
vendor/bin/pest packages/access-gate/tests --configuration=phpunit.xml
  • Treat public routes as untrusted input and keep validation, permission checks, and side effects inside actions or dedicated services.
  • Put behaviour changes in src/Actions/; UI classes, commands, and controllers should call actions instead of owning domain logic.
  • Use package Data classes at boundaries instead of passing anonymous arrays between layers.
  • Use backed enums for persisted values and enum labels for Filament options.