Search by

jooservices / laravel-activities

jooservices

Append-only MongoDB-backed activity timeline for Laravel applications.

Package info

github.com/jooservices/laravel-activities

pkg:composer/jooservices/laravel-activities

Statistics

Installs: 476

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 6

v4.0.0 2026-09-06 13:45 UTC

This package is auto-updated.

Last update: 2026-10-28 12:49:42 UTC


README

CI Coverage (develop) OpenSSF Scorecard PHP Version GitHub Release Packagist Version Total Downloads License: MIT

Append-only MongoDB-backed activity timeline for Laravel 12 and 13 applications.

v4.0.0 requires jooservices/dto ^3.2, jooservices/laravel-repository ^4, and jooservices/exceptions ^4. See UPGRADE.md.

Features

  • Record subject-scoped activities with optional actor, tenant, description, payload, and context
  • Query by subject, actor, tenant, activity prefix, correlation, and date range
  • Honest cursor pagination (hasMore / nextCursor) and explicit offset mode
  • Sanitization plus payload limits for data and context
  • Retention pruning via php artisan activities:prune (deleteMany)
  • JSONL and CSV export via php artisan activities:export
  • Official in-memory store for consumer tests (ACTIVITIES_STORE=array, not production)
  • DTO-first API using jooservices/dto ^3
  • Repository layer using jooservices/laravel-repository ^4

Requirements

  • PHP ^8.5
  • Laravel 12 or 13
  • MongoDB 6+
  • mongodb/laravel-mongodb ^5.10

Installation

composer require jooservices/laravel-activities

Publish config:

php artisan vendor:publish --tag=activities-config

Ensure indexes:

php artisan activities:ensure-indexes

Quick start

use App\Models\Post;
use JOOservices\LaravelActivities\Facades\Activity;

$subject = Post::query()->firstOrFail();

Activity::recordFor(
    subject: $subject,
    activity: 'post.updated',
);

See Recording and querying for injected services, filters, and pagination.

Design notes

This package stores product timeline activities only. Ops logs belong in jooservices/laravel-logging. Compliance events belong in jooservices/laravel-events.

Documentation

Development

composer check
composer ci

composer ci enforces the 90% minimum coverage gate. See Contributing for local setup and contribution guidance.

Community

License

MIT