Bundled plugins
The plugins shipped with Cogeze, what each owns, and which commands it publishes.
26 plugins ship with Cogeze. Uninstall what a project does not need — the core does not depend on any of them individually.
System#
Infrastructure. access-control is mandatory: it boots regardless of database state
because users is a foreign-key target for core tables.
| Key | Name | Owns |
|---|---|---|
access-control |
Access control | Users, groups, roles, permissions, modules. Provides the permission middleware. |
admin-menus |
Admin menus | The sidebar tree. Plugins sync their nav() entries into it. |
settings |
System settings | system_configurations and the system_config() helper. |
Content#
Each owns its tables, admin screens and a read gateway. None of them declare public pages — that belongs to the storefront.
| Key | Name | Owns |
|---|---|---|
page |
Pages & sections | Static pages and the shared section store. Any intent can pull blocks through page.sections. |
article |
Articles | Articles, categories, tags. |
ecommerce |
E-commerce | Products, variants, attributes, brands, collections, inventory, warehouses, orders, customers, promotions, payment methods, shipping carriers. |
service |
Services & plans | Services, plans, plan attributes, subscriptions. |
course |
Courses | Courses, lessons, enrolments. |
program |
Programmes | Programmes with schedules and speakers. |
real-estate |
Real estate | Listings plus a light CRM. |
form |
Forms | Form definitions and submissions. |
faq |
FAQ | Question groups and questions. |
banner |
Banners | Sliders and banner zones. |
testimonial |
Testimonials | Customer quotes. |
comment |
Comments | Comments against any entity. |
Marketing#
| Key | Name | Owns |
|---|---|---|
seo |
SEO | Meta defaults, sitemap, per-record SEO overrides. |
navigation |
Navigation | Menu trees for header, footer and elsewhere. Read via site_nav(). |
filter-bar |
Storefront filters | Faceted filtering. A pure consumer: it discovers providers through ShapeRegistry and declares no dependencies. |
Media, utility, communication#
| Key | Name | Owns |
|---|---|---|
media-finder |
Media finder | Media library, uploads, the MediaPicker component other plugins borrow. |
assets |
Storefront assets | Custom CSS/JS injected into public pages. |
language |
Languages | The languages table. Publishes language.default, the source of truth for locale. |
announcement |
Announcements | System notices in the admin. |
email |
Templates and delivery. | |
greeter, hello |
Demos | Minimal reference plugins. Read these first when writing your own. |
Storefront#
| Key | Name | Owns |
|---|---|---|
storefront-s3 |
S3 storefront | Every public URL, all views, the section library, theme chrome and assets. |
Exactly one storefront should be enabled. Swapping it replaces the entire look and URL structure without touching any data plugin — see Storefront.
Dependency shape#
Most plugins declare no hard dependencies. Cross-plugin access goes through Commander, so a consumer never imports a provider.
Hard dependencies appear only where a foreign key does:
// program → faq: programs.faq_id references faqs
public function dependencies(): array
{
return ['faq' => '*'];
}
Optional dependencies are UI conveniences, always behind a fallback:
// most plugins with an image field
public function optionalDependencies(): array
{
return ['media-finder' => '*'];
}
Without media-finder, the field degrades to a plain URL input. That is the test for which
kind a dependency is: if the plugin still works with reduced comfort, it is optional.
Worked example#
filter-bar (consumer) against ecommerce and real-estate (providers) is the reference
implementation of the whole boundary. filter-bar filters products and property listings
while declaring no dependency on either, importing no model, and touching no table it does
not own.