Search by

aimeos / pagible-jsonapi

aimeos

Pagible CMS - JSON:API server

Package info

github.com/aimeos/pagible-jsonapi

Homepage

pkg:composer/aimeos/pagible-jsonapi

Statistics

Installs: 109

Dependents: 1

Suggesters: 1

Stars: 0

Open Issues: 0

0.12.1 2026-08-07 10:20 UTC

This package is auto-updated.

Last update: 2026-09-11 16:04:32 UTC


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