kumwe / integration
Portable event catalogs, bounded payload validation, process state and neutral integration ports.
Requires
- php: ^8.5
- ext-mbstring: *
- kumwe/access-context: 0.1.2
- kumwe/automation: 0.2.2
- kumwe/canonical-json: 0.1.1
- kumwe/contribution: 0.1.1
- psr/container: ^2.0
- ramsey/uuid: ^4.7
Requires (Dev)
- laminas/laminas-servicemanager: ^4.0
- phpstan/phpstan: ^2.1
- squizlabs/php_codesniffer: ^4.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Versioned event envelopes and schemas, validated consumer and webhook declarations, atomic catalog replacement, immutable process state and work, and neutral inbox, outbox and process-store ports.
Installation
composer require kumwe/integration:0.2.3
Requires PHP ^8.5, ext-mbstring and the dependencies in composer.json.
Pre-1.0 Kumwe dependencies and consumer installations use independently verified exact version pins.
use Kumwe\Integration\PayloadSchemaValidator; (new PayloadSchemaValidator())->assertPayload([ 'type' => 'object', 'required' => ['record_id'], 'properties' => ['record_id' => ['type' => 'string', 'minLength' => 1]], 'additionalProperties' => false, ], ['record_id' => 'record-7']);
Run the standalone example with composer examples. An installed consumer can run
php vendor/kumwe/integration/examples/consumer.php vendor/autoload.php from its root, or include the
example after loading its own Composer autoloader.
Contract with Kumwe Core
Integration owns event and consumer declarations, bounded payload validation, deterministic catalogs, process transitions and neutral persistence ports. Core owns transactions, transport delivery, dispatch, webhook signing and egress policy, authorization, extension activation and retention enforcement.
JSON-dependent constructors and factories require Kumwe\CanonicalJson\CanonicalEncoder explicitly.
Core supplies that encoder. Declaration inputs reject floats, objects, resources, depth over 32 and
collections over 512 before invoking it. Payload and event-envelope profiles keep their own documented
bounds; see architecture.
The optional ConfigProvider and explicit container factory support Laminas/Mezzio composition.
Core supplies admitted declarations and the encoder, controls generation transitions, and synchronizes
shared mutable catalogs when its runtime permits concurrent execution. The factory discovers no
extensions and registers no storage, transport or authorization implementation.
API and development
See host composition, public API, charter and release contract record. The record preserves source provenance, symbol mappings, manifest digests and consumer verification requirements.
npm ci --prefix tools/governance --ignore-scripts composer install composer check
The full gate verifies schemas and rejection cases, PHP source and API drift, static analysis, style,
behavior, test ownership, examples, security and release automation. composer clean-consumer builds
and installs the actual ZIP into a fresh Composer consumer, then tests installed classes and examples
through its authoritative autoloader. Node.js and schema dependencies are development tooling only.
Releases and license
Live badges identify the published package and actual default-branch CI status. Publication and passing package tests do not establish Core adoption or independent release verification. Release policy defines immutable artifact identity, exact pins and consumer evidence.
Licensed under Apache-2.0.