Licensing

Sample documentation (demo only)
This is an incomplete, outdated docs snapshot shipped with the playground — screenshots were removed on purpose.
For the full, current manuals go to voodflow.com/docs.

Voodflow\Voodbuilder\Licensing\AnyStack\AnyStackEntitlementProvider

  • File: Licensing/AnyStack/AnyStackEntitlementProvider.php
  • Kind: class
  • Implements: EntitlementProvider
  • Responsibility: Fetches remote entitlements and falls back to a local snapshot during outages.

Methods

  • public function __construct( private readonly LicenceClient $client, private readonly string $licenceKey, private readonly int $graceSeconds = 604800, )
    • Constructor.
  • public static function hasCachedSnapshot(): bool
    • Boolean predicate hasCachedSnapshot.
  • public function capabilities(): CapabilitySet
    • Capability identifiers contributed or required by this module.
  • public function licenceStatus(): LicenceStatus
    • Licence Status.

Voodflow\Voodbuilder\Licensing\AnyStack\AnyStackLicenceClient

  • File: Licensing/AnyStack/AnyStackLicenceClient.php
  • Kind: class
  • Implements: LicenceClient
  • Responsibility: HTTP client for remote entitlement endpoints.

Methods

  • public function __construct( private readonly string $endpoint, private readonly int $timeoutSeconds = 5, )
    • Constructor.
  • public function fetchEntitlements(string $licenceKey): array
    • Fetch Entitlements.

Voodflow\Voodbuilder\Licensing\AuthorScriptPolicy

  • File: Licensing/AuthorScriptPolicy.php
  • Kind: class
  • Responsibility: Edition-gated policy for whether author page JS is kept or discarded.

Methods

  • public static function allowed(): bool
    • Whether the current edition entitles storing/serving author page JS.
  • public static function keepOrDiscard(?string $js): string
    • Returns JS unchanged when allowed, otherwise empty string (discard).

Voodflow\Voodbuilder\Licensing\CachedEntitlementProvider

  • File: Licensing/CachedEntitlementProvider.php
  • Kind: class
  • Implements: EntitlementProvider
  • Responsibility: Caches capability snapshots locally. Public render never depends on this failing.

Methods

  • public function __construct( private readonly EntitlementProvider $inner, private readonly int $ttlSeconds = 3600, )
    • Constructor.
  • public function capabilities(): CapabilitySet
    • Capability identifiers contributed or required by this module.
  • public function licenceStatus(): LicenceStatus
    • Licence Status.
  • public function forget(): void
    • Performs forget side effects.

Voodflow\Voodbuilder\Licensing\CapabilitySet

  • File: Licensing/CapabilitySet.php
  • Kind: class
  • Responsibility: Immutable set of capability identifiers (e.g. components.export).

Methods

  • public static function from(array $capabilities): self
    • From.
  • public function has(string $capability): bool
    • Boolean predicate has.
  • public function all(): array
    • All.
  • public function merge(self $other): self
    • Merge.
  • public function count(): int
    • Count.

Voodflow\Voodbuilder\Licensing\CatalogCredentialResolver

  • File: Licensing/CatalogCredentialResolver.php
  • Kind: class
  • Responsibility: Resolves CDN catalog credentials for Elements / page-templates.

Methods

  • public static function elementsCredential(): ?string
    • Elements Credential.
  • public static function pageTemplatesCredential(): ?string
    • Page Templates Credential.
  • public static function elementsReady(): bool
    • Elements Ready.
  • public static function pageTemplatesReady(): bool
    • Page Templates Ready.
  • public static function elementsStatus(): array
    • Elements Status.
  • public static function pageTemplatesStatus(): array
    • Page Templates Status.

Voodflow\Voodbuilder\Licensing\CommunityEntitlementProvider

  • File: Licensing/CommunityEntitlementProvider.php
  • Kind: class
  • Implements: EntitlementProvider
  • Responsibility: Fixed Community matrix when no remote licence is available.

Methods

  • public function capabilities(): CapabilitySet
    • Capability identifiers contributed or required by this module.
  • public function licenceStatus(): LicenceStatus
    • Licence Status.

Voodflow\Voodbuilder\Licensing\ComposerAnystackCredentialsReader

  • File: Licensing/ComposerAnystackCredentialsReader.php
  • Kind: class
  • Responsibility: Reads the Anystack Composer HTTP Basic password from auth.json / COMPOSER_AUTH.

Methods

  • public static function read(): ?array
    • Read.
  • public static function preferredRepositoryHosts(): array
    • Preferred Repository Hosts.
  • public static function extractForHosts(array $composerAuthJson, array $hosts): ?array
    • Extract For Hosts.
  • public static function discoverAnyComposerShHost(array $composerAuthJson): ?array
    • Discover Any Composer Sh Host.
  • public static function parseComposerAuthJson(string $raw): array
    • Parse Composer Auth Json.
  • public static function candidateAuthFilePaths(): array
    • Boolean predicate candidateAuthFilePaths.

Voodflow\Voodbuilder\Licensing\ConfigEntitlementProvider

  • File: Licensing/ConfigEntitlementProvider.php
  • Kind: class
  • Extends: CommunityEntitlementProvider
  • Responsibility: ConfigEntitlementProvider — class in Licensing/ConfigEntitlementProvider.php.

No public/protected methods.

Voodflow\Voodbuilder\Licensing\Contracts\EntitlementProvider

  • File: Licensing/Contracts/EntitlementProvider.php
  • Kind: interface
  • Responsibility: Entitlement Provider contract.

Methods

  • public function capabilities(): CapabilitySet
    • Entitlement Provider contract.
  • public function licenceStatus(): LicenceStatus
    • Licence Status.

Voodflow\Voodbuilder\Licensing\Contracts\LicenceClient

  • File: Licensing/Contracts/LicenceClient.php
  • Kind: interface
  • Responsibility: Remote licence transport. Implementations must never be called from public render paths.

Methods

  • public function fetchEntitlements(string $licenceKey): array
    • edition: string, active: bool,

Voodflow\Voodbuilder\Licensing\Contracts\LicenceClientException

  • File: Licensing/Contracts/LicenceClientException.php
  • Kind: class
  • Extends: RuntimeException
  • Responsibility: Licence Client Exception.

Methods

  • public static function unreachable(string $message, ?\Throwable $previous = null): self
    • Unreachable.

Voodflow\Voodbuilder\Licensing\EditionCapabilityMatrix

  • File: Licensing/EditionCapabilityMatrix.php
  • Kind: class
  • Responsibility: Edition → capability matrix from the 0.1.0 architecture plan (§7 / §11). Community is the base matrix; Developer/Agency unlock additional surfaces.

Methods

  • public static function forEdition(string $edition): array
    • For Edition.
  • public static function normalizeEdition(string $edition): string
    • Normalize Edition.
  • public static function marketingLabel(string $edition): string
    • Marketing label for splash / UI (Developer, not the runtime token professional).
  • public static function marketingSlug(string $edition): string
    • Public marketing slug (developer, not professional).
  • public static function community(): array
    • Community.
  • public static function professional(): array
    • Professional.
  • public static function agency(): array
    • Agency.

Voodflow\Voodbuilder\Licensing\EditorEditionSummary

  • File: Licensing/EditorEditionSummary.php
  • Kind: class
  • Responsibility: Compact licence/edition payload for the editor boot splash and topbar.

Methods

  • public static function make(?EntitlementManager $manager = null): array
    • Make.

Voodflow\Voodbuilder\Licensing\EditorPackageInventory

  • File: Licensing/EditorPackageInventory.php
  • Kind: class
  • Responsibility: Package inventory for the edition modal.

Methods

  • public static function make(?EntitlementManager $manager = null): array
    • Make.

Voodflow\Voodbuilder\Licensing\EntitlementGate

  • File: Licensing/EntitlementGate.php
  • Kind: class
  • Responsibility: Backend enforcement helper — frontend hiding alone is insufficient (§11.5).

Methods

  • public static function authorize(string $capability): void
    • Performs authorize side effects.

Voodflow\Voodbuilder\Licensing\EntitlementManager

  • File: Licensing/EntitlementManager.php
  • Kind: class
  • Responsibility: Entitlement Manager.

Methods

  • public function __construct( private EntitlementProvider $provider, )
    • Constructor.
  • public function provider(): EntitlementProvider
    • Provider.
  • public function useProvider(EntitlementProvider $provider): void
    • Performs useProvider side effects.
  • public function can(string $capability): bool
    • Whether the current entitlement grants the capability.
  • public function cannot(string $capability): bool
    • Inverse of can().
  • public function canAny(array $capabilities): bool
    • Boolean predicate canAny.
  • public function canAll(array $capabilities): bool
    • Boolean predicate canAll.
  • public function capabilities(): CapabilitySet
    • Capability identifiers contributed or required by this module.
  • public function licenceStatus(): LicenceStatus
    • Licence Status.
  • public function edition(): string
    • Resolved runtime edition token.

Voodflow\Voodbuilder\Licensing\EntitlementProviderFactory

  • File: Licensing/EntitlementProviderFactory.php
  • Kind: class
  • Responsibility: Builds the entitlement provider used at runtime.

Methods

  • public static function make(): EntitlementProvider
    • Make.
  • public function __construct(private readonly string $message)
    • Constructor.
  • public function fetchEntitlements(string $licenceKey): array
    • Fetch Entitlements.

Voodflow\Voodbuilder\Licensing\LicenceKeyResolver

  • File: Licensing/LicenceKeyResolver.php
  • Kind: class
  • Responsibility: Resolves the licence key for remote entitlement checks.

Methods

  • public static function resolve(): string
    • Resolve a runtime value for the given field / context.

Voodflow\Voodbuilder\Licensing\LicenceStatus

  • File: Licensing/LicenceStatus.php
  • Kind: class
  • Responsibility: Licence Status.

Methods

  • public function __construct( public readonly string $edition, public readonly bool $active, public readonly ?string $identifier = null, public readonly ?string $expiresAt = null, public readonly ?string $message = null, )
    • Constructor.
  • public static function community(): self
    • Community.
  • public function isPaidEdition(): bool
    • Boolean predicate isPaidEdition.

Voodflow\Voodbuilder\Licensing\LicenseDashboardPayload

  • File: Licensing/LicenseDashboardPayload.php
  • Kind: class
  • Responsibility: Versioned JSON payload for a future Filament licenses dashboard plugin.

Methods

  • public static function make(?EntitlementManager $manager = null): array
    • Make.
  • public static function forgetCachedSnapshots(): void
    • Performs forgetCachedSnapshots side effects.

Voodflow\Voodbuilder\Licensing\TestingEntitlementProvider

  • File: Licensing/TestingEntitlementProvider.php
  • Kind: class
  • Implements: EntitlementProvider
  • Responsibility: Mutable provider for PHPUnit — simulate plan matrices without AnyStack.

Methods

  • public function __construct(?array $capabilities = null, ?LicenceStatus $status = null)
    • Constructor.
  • public static function forEdition(string $edition): self
    • For Edition.
  • public function grant(array $capabilities): void
    • Performs grant side effects.
  • public function replace(array $capabilities): void
    • Performs replace side effects.
  • public function setStatus(LicenceStatus $status): void
    • Performs setStatus side effects.
  • public function capabilities(): CapabilitySet
    • Capability identifiers contributed or required by this module.
  • public function licenceStatus(): LicenceStatus
    • Licence Status.
Demo resets in 00:29:42