cybercog/laravel-optimus
Laravel Optimus wraps the Optimus ID obfuscation library for Laravel, letting you encode and decode integer IDs into short, URL-friendly strings. It offers a facade and helpers, Blade directives, validation rules, route model binding, and configurable settings for hiding database IDs in URLs.
jenssegers/optimus (Knuth multiplicative-hash based ID encoding) — it makes "short, non-sequential, reversible public IDs" a ~1-day integration rather than a custom build./orders/1..N. Treat this as a hardening measure, not an authorization control — every route still needs policy checks.AGENTS.md are contributor-facing and carry no product weight.Consider it when:
ORD-8f3a2b) without a schema migration to UUIDs/ULIDs.Optimus::encode() calls in controllers.Look elsewhere when:
Adoption criteria checklist: pin the version, confirm the salt is treated as a secret and rotated via config, document that obfuscated IDs are not authorization, and add a test asserting decode/encode round-trips and route-model binding behaviour.
To executives: This is a small, low-cost hardening package that stops our public URLs from exposing sequential record numbers — which otherwise reveals how many customers, orders, or tickets we have and makes bulk scraping trivial. It is reversible, so it changes nothing about how our systems work internally. The new release adds support for the latest Laravel version, which means it won't stand in the way of our framework upgrade. Cost is a dependency plus roughly a day of integration; the alternative, a schema migration to UUIDs, is materially more expensive and riskier.
To engineering: cybercog/laravel-optimus 3.13.0 is the Laravel integration layer for Optimus. The update is additive and non-breaking: Laravel 13 support, Docker dev-environment improvements, and an AGENTS.md for AI-assisted contribution — no API changes, no deprecations, no migration required. It gives you config-driven encode/decode, validation rules, and container bindings instead of hand-rolled helpers. Use it to obfuscate public IDs where you want short reversible identifiers; do not treat it as an authorization or encryption boundary, and do not adopt it as a substitute for UUIDs if you're already migrating schemas. Watch the salt as a managed secret, and add round-trip and route-binding tests.
Recommendation: Approve as a routine dependency update / low-risk adoption. No action required beyond pinning the version and confirming Laravel 13 compatibility in our upgrade plan. Revisit only if the salt-management story becomes a compliance concern or the package loses maintenance.
How can I help you explore Laravel packages today?