aimeos / pagible-jsonapi
Pagible CMS - JSON:API server
Requires
- php: ^8.2
- aimeos/pagible-core: 0.12.*
- laravel-json-api/laravel: ^5.1
Requires (Dev)
- orchestra/testbench: ^9.0||^10.0||^11.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Read-only JSON:API server for Pagible CMS built on Laravel JSON:API.
This package is part of the Pagible CMS monorepo. For full installation, use:
composer require aimeos/pagible
Page access rules are applied to collections, individual resources, and included
relationships. Guests only see public pages. If the host application's active
Laravel guard resolves an authenticated user, authentication-only pages and pages
matching any frontend value supplied through the configured Access catalog and granted
by Laravel Gate are visible too.
Content schema
GET /cms/schema returns the registered content, meta, and configuration definitions as
a JSON Schema Draft 2020-12 document. Composer
extensions and tenant themes are included automatically. The response uses the
application/schema+json media type. The endpoint uses strict mode, which preserves
standard formats, defaults, annotations, and constraints. Internal AI consumers use the
provider-compatible mode by default and can opt into strict mode with
JsonSchema::build(strict: true).
Configuration
After installation, the configuration is available in config/cms/jsonapi.php:
| Option | Env Variable | Default | Description |
|---|---|---|---|
maxdepth |
CMS_JSONAPI_MAXDEPTH |
1 |
Maximum depth of included relationships (e.g., 1 = include=children, 2 = include=children,children.children) |
Commands
cms:install:jsonapi
Installs the Pagible JSON:API package.
php artisan cms:install:jsonapi
Publishes the Laravel JSON:API config, registers the CMS server, and adds the JSON:API exception handler to bootstrap/app.php.
cms:benchmark:jsonapi
Runs read-only JSON:API benchmarks.
php artisan cms:benchmark:jsonapi [options]
| Option | Default | Description |
|---|---|---|
--tenant |
benchmark |
Tenant ID |
--domain |
Domain name | |
--seed |
Seed benchmark data first | |
--pages |
10000 |
Number of pages to generate |
--tries |
100 |
Iterations per benchmark |
--chunk |
50 |
Rows per bulk insert batch |
--unseed |
Remove benchmark data and exit | |
--force |
Run in production |
License
MIT