Package documentation
SatisHub
Sell private Composer packages with license-based access control and FilamentPHP.
Data Model
Catalog
packagespackage_versionsproductsproduct_checkout_mappings
Key intent:
packages: repository identity (vendor,name) and visibilityproducts: purchasable variants/pricing and checkout provider defaultsproduct_checkout_mappings: per-provider external IDs
Sales and Billing
orderscustomer_accountswebhook_events
Key intent:
orders: provider-neutral order ledgercustomer_accounts: provider customer identity linkswebhook_events: event idempotency and processing trail
Licensing
licenseslicense_activationslicense_checks
Key intent:
licenses: entitlement source of truthlicense_activations: domain/app installation recordslicense_checks: validation request history
Support
support_ticketssupport_ticket_messages
Support tables let you tie customer communications to product/license/order context.
Additional
blocked_domainsmedia(Spatie Media Library)
Notes
ProductandPackagesupportcovermedia collections.RepoVisibilityenum is defined insatis/src/Enums/RepoVisibility.php.
Practical Relationship Example
One common chain:
Package-> has manyProductProduct-> has manyLicenseLicense-> belongs toOrder
This lets repository and API checks validate both commercial ownership and support policy.

