# Repositories
To get started with Satifest, you need to setup a repository by using the Satifest backend (default to /satifest/).
On each created repository, Satifest would run the following actions:
- Setup a default Plan for the repository.
- Run
satifest:generate-schemacommand. - Run
satifest:buildcommand. - Generate webhook actions for GitHub.
# Releases
A repository may have one or many releases. Release by default will be generated automatically when a new tag has been pushed and satifest:build download and store the artifact for the tag.
# Plans
Each repository may have one or many plans depending on how you want to split the licensing. By default each repository will have a default plan with * as the constraint. This will allow licenses subscribed to the plan to have access to all releases.
As an example, for satifest/test-demo-package I would like to have each major release as new license. In order to do, I would set multiple plans with constraint set to ^1.0, ^2.0 and so on.
# Licenses
In Satifest, a licensee can purchase or subscribe to one or many licenses.
use Illuminate\Support\Facades\Auth;
use Satifest\Foundation\License;
$user = Auth::user();
$licenses = License::accessibleBy($user)->get();
What's a licensee
A licensee is the polymorphic name for the license holder, in general it can be the user or team of the application.
A license may have access to one or many plans.
use Illuminate\Support\Facades\Auth;
use Satifest\Foundation\Plan;
$user = Auth::user();
$plans = Plan::with('licenses')->accessibleBy($user)->get();