# 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-schema command.
  • Run satifest:build command.
  • 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();