misaf/vendra-console

The console (platform admin) panel for the Vendra platform

Maintainers

Package info

github.com/misaf/vendra-console

Type:vendra-module

pkg:composer/misaf/vendra-console

Transparency log

Statistics

Installs: 0

Dependents: 1

Suggesters: 0

Stars: 1

Open Issues: 0

1.x-dev 2026-08-17 00:19 UTC

This package is auto-updated.

Last update: 2026-08-17 00:19:31 UTC


README

The console (platform admin) panel for Laravel. It is the operator's cross-tenant view of the platform: resellers, plans, and every property with its domains and storefront state.

The panel is presentation. Every state change it performs belongs to a domain package's action, so this package stays thin on purpose.

Requirements

  • PHP 8.3+
  • Laravel 13
  • Filament 5
  • misaf/vendra-reseller, misaf/vendra-property, misaf/vendra-subscription, misaf/vendra-tenant, misaf/vendra-localization and misaf/vendra-support

Installation

composer require misaf/vendra-console
php artisan migrate

The console_users table and the console guard, console_users provider, and console_password_reset_tokens broker are configured by the host application's config/auth.php and migrations.

The panel

Providers\ConsolePanelServiceProvider registers everything:

  • served on console.<app host>, derived from app.url — no hard-coded host
  • console auth guard against Models\ConsoleUser, with the console_users password broker, password reset, and required email verification
  • top navigation, global search key bindings, database notifications and transactions

It runs outside the tenant middleware stack so an operator can work across every tenant. There is no current tenant: never scope a console query with tenant-aware helpers, and join explicitly where a listing must be per-tenant.

Resources

Resource Delegates to
PropertyResource Misaf\VendraProperty's CreatePropertyPage (which runs ProvisionPropertyAction), StorefrontConfigurationFields and ReplaceDomainAction
ResellerResource Misaf\VendraReseller's CreateResellerAction, CreateResellerOwnerAction and OffboardResellerAction, plus misaf/vendra-subscription's SubscribeAction
PlanResource misaf/vendra-subscription's plan model

DomainsRelationManager manages a property's domains, and ConsoleOverview gives the operator the platform-wide counts.

The only intended difference from the reseller panel is which reseller is resolved as a property's billing owner — the console picks one from the form, the reseller panel uses the authenticated owner. Keep any other divergence out, and put a behaviour both panels need in the domain package instead.

Layering

This is the topmost layer:

vendra-console → vendra-reseller → vendra-property → vendra-container

Nothing depends on this package, so anything reusable belongs one layer down.

Testing

Act as a ConsoleUser on the console guard. A test that sets up a current tenant is testing the wrong panel. Assert that the domain action ran rather than re-asserting the domain package's own behaviour.

php artisan test --compact --testsuite=vendra-console

License

MIT. See LICENSE.