glueful / thallo-subscriptions
Workspace SaaS billing for Thallo — platform plans and per-workspace subscriptions, as a removable capability pack.
Requires
- php: ^8.3
- glueful/extension-contracts: *
- glueful/framework: ^1.74.0
- glueful/payvia: ^2.9
- glueful/subscriptions: ^2.4
- glueful/thallo-contracts: v1.0.0-beta.77
- glueful/thallo-tenancy: v1.0.0-beta.77
- glueful/users: ^2.3.2
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
- dev-main
- v1.0.0-beta.77
- v1.0.0-beta.76
- v1.0.0-beta.75
- v1.0.0-beta.74
- v1.0.0-beta.73
- v1.0.0-beta.72
- v1.0.0-beta.71
- v1.0.0-beta.70
- v1.0.0-beta.69
- v1.0.0-beta.68
- v1.0.0-beta.67
- v1.0.0-beta.66
- v1.0.0-beta.65
- v1.0.0-beta.64
- v1.0.0-beta.63
- v1.0.0-beta.62
- v1.0.0-beta.61
- v1.0.0-beta.60
- v1.0.0-beta.59
- v1.0.0-beta.58
- v1.0.0-beta.57
- v1.0.0-beta.56
- v1.0.0-beta.55
- v1.0.0-beta.54
- v1.0.0-beta.53
- v1.0.0-beta.52
- v1.0.0-beta.51
- v1.0.0-beta.50
- v1.0.0-beta.49
- v1.0.0-beta.48
- v1.0.0-beta.47
- v1.0.0-beta.46
- v1.0.0-beta.45
- v1.0.0-beta.44
- v1.0.0-beta.43
- v1.0.0-beta.42
- v1.0.0-beta.41
- v1.0.0-beta.40
- v1.0.0-beta.39
- v1.0.0-beta.38
- v1.0.0-beta.37
- v1.0.0-beta.36
- v1.0.0-beta.35
- v1.0.0-beta.34
- v1.0.0-beta.33
- v1.0.0-beta.32
- v1.0.0-beta.31
- v1.0.0-beta.30
- v1.0.0-beta.29
- v1.0.0-beta.28
- v1.0.0-beta.27
- v1.0.0-beta.26
- v1.0.0-beta.25
- v1.0.0-beta.24
- v1.0.0-beta.23
- v1.0.0-beta.22
- v1.0.0-beta.21
This package is auto-updated.
Last update: 2026-10-02 11:07:20 UTC
README
Workspace SaaS billing for Thallo: a platform-wide plan catalogue and a
subscription per workspace, as a capability pack over the glueful/subscriptions engine, with
checkout through glueful/payvia. The subscriber is always a workspace; on an install without
workspaces turned on, the site itself is the one workspace. Charging visitors for products is
thallo-commerce, not this pack.
What it provides
- Operator API under
/v1/admin/subscriptions(behindauth+content_permission:tenancy.manage): plan CRUD, archive andplans/import-config, the self-serve checkout kill switch (PUT /self-serve), and the workspace directory with plan assignment, cancellation and per-workspace entitlement overrides. - Workspace billing API under
/v1/admin/billing(behindcontent_permission:billing.managein the current workspace):GET /meta,POST /checkout,POST /cancelandPOST /checkout/abandon. A checkout goes to the gateway's hosted page; only the provider's webhook activates the subscription. - Admin screens under the sidebar's Subscriptions group: Plans
(
/subscriptions/plans), Billing (/subscriptions/billing, the operator's self-serve switch and workspace directory) and Workspace billing (/billing, where a workspace subscribes, resumes or cancels). - Engine pre-emption:
EnginePreemptionServiceProviderboots beforeglueful/subscriptions, takes over the engine's own ungated/subscriptions/plans*routes and binds Thallo's workspace subject resolver. - Workspace purge support, so deleting a workspace removes its billing data.
php glueful subscriptions:checkout:resolve <uuid> --resolution=… --note=…: the operator's CLI-only way to close a stuck checkout.
Plan entitlements are for your own code to read; the one built-in effect is API rate limiting
through rate.tier.{tier} entitlements.
Turning it on
The pack ships with Thallo: glueful/thallo-core requires it at the same version and the project's
config/serviceproviders.php loads its provider. It registers the thallo.subscriptions
capability, whose owning package is glueful/subscriptions. A new project enables that extension,
so the capability is on by default. An operator turns it off or on in the admin under
Extensions › Capabilities (stored system-wide; it overrides the deploy-time
thallo.capabilities config map). Self-serve checkout also needs glueful/payvia enabled
(php glueful extensions:enable glueful/payvia) and a gateway that supports subscription checkout,
configured in Settings › Payments.
Documentation
The user guide is docs/guides/19-subscriptions.md;
workspaces are explained in docs/concepts/08-workspaces.md.
Contributing
This repository is a read-only mirror, published from
glueful/thallo on every release; its main is overwritten
by the next split, so nothing can land here. Issues and pull requests belong in glueful/thallo,
where this code lives at packages/thallo-subscriptions/.