Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Tartarus Laravel Package

lara-zeus/tartarus

Tartarus is a Laravel package from Lara Zeus for adding access control to your application. It offers a clean, configurable setup that fits Laravel’s authorization conventions and keeps role and permission management straightforward.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy on "undo" for destructive actions. Every admin panel ships a delete button, and every delete button eventually produces a "can you get that back?" ticket. The real decision is whether to fund a bespoke restore/force-delete console — resource, filters, permissions, audit trail, pruning job — or adopt a package that supplies the browse/restore/purge surface. Tartarus is a buy candidate for a narrow slice: a Filament resource over soft-deleted Eloquent records. It reframes the question from "should we build a recycle bin?" to "is this good enough, or do we need a better one?"
  • Turning data retention into an explicit product promise. A retention window plus automatic pruning is a product decision wearing a config value's clothes: how long do we promise recoverability, and how long do we keep deleted data at all? Answering that in writing early — 30/90/365 days, or "never, for regulated records" — is cheap. Discovering your answer accidentally during a customer security review is not. This package makes the question concrete and forces a defensible default into the roadmap.
  • Cutting support and incident cost without headcount. The measurable win is not engineering hours saved but a class of tickets that stops arriving: "I deleted the wrong record," "the client removed a project by mistake," "restore this before the board meeting." If support or CS currently has a manual-restore ritual — direct DB edits, one-off scripts, escalating to an engineer — that ritual is the business case, and it is quantifiable from ticket history before you commit a sprint.
  • Stack coherence as a roadmap constraint. Tartarus lives in the Lara Zeus/Filament family. If your admin or internal tooling is already Filament-based, this is a plugin-family-coherent option: shared conventions, styling, and upgrade cadence. If you are not on Filament, this is the tail of a much larger adoption decision and should be framed that way up front rather than discovered mid-sprint.
  • Forcing the "recycle bin vs. audit trail" distinction. These get conflated in requirements constantly. A recycle bin answers "can we get the record back?" An audit trail answers "who changed what, when, and why?" Tartarus is the former. Deciding explicitly that compliance-grade history is a separate initiative prevents a false sense of coverage and keeps the compliance story from being quietly absorbed by a UI feature.

When to Consider This Package

Adopt when:

  • Your admin/support surface is Filament-based and you want a recycle bin without building one. This is the single strongest criterion — outside Filament, the value proposition largely evaporates.
  • You already use (or are willing to standardise on) Laravel SoftDeletes for the models in question. The package hooks the trait; it does not invent a deletion model for you.
  • There is a recurring, named manual-restore workflow today that you can point at. If nobody has ever asked to restore deleted data, you are buying a feature, not solving a problem.
  • The blast radius is containable: start with one or two high-anxiety models (content, contacts, transactional records) where accidental deletion is a support ticket, not regulated data.

Look elsewhere or build your own when:

  • You need multi-tenancy. The repository description says "simple multi tenants," while the documentation describes a recycle bin. Assume the description is stale until engineering confirms otherwise; if a tenancy resolver is what you actually need, this is the wrong package (see stancl/tenancy or spatie/laravel-multitenancy). Treat that metadata mismatch as a documentation-hygiene signal on a package with ~10 stars and zero dependents.
  • You need audit/compliance-grade history — immutable logs, field-level diffs, chain-of-custody. A recycle bin is not that.
  • You are multi-tenant and the bin must respect tenant scoping. If the package's internal queries bypass global scopes, a support user could restore a record into a tenant they should not see. Engineering must verify this in source before you promise anything; it is the highest-risk item on the integration.
  • Restoration has business side effects your model does not reverse — cancelled subscriptions, revoked invitations, archived files. That reversal logic is yours to build regardless of the package.
  • You need vendor-grade assurance: SLAs, security review artefacts, or a support contract. Small OSS with no dependents means your team is the QA function.

Before committing, demand evidence of one afternoon's viability: installed and migrated on a scratch branch, one model wired end to end, delete → appears in bin → restore → record and relations intact → force-delete → gone. Pin the exact version and wrap it in your own tests. The MIT licence and small source mean forking is cheap — that is the real mitigation, but only if your tests tell you when a fork is needed.

How to Pitch It (Stakeholders)

For executives — the one-paragraph version: "Our admin panel has a delete button and no undo. Every mistaken deletion becomes a support ticket, a manual database edit, or an engineer's afternoon. This package adds a recycle bin to the admin panel — support staff can find a deleted record, see it, and restore it with a click, inside the permissions we already enforce. It is a small, MIT-licensed dependency from a family of plugins we already use, and it converts a recurring operational cost into a feature. The decision it forces is a real one: how long do we promise to be able to recover deleted data, and how long do we retain it? We should answer that deliberately rather than by accident. Proposed approach: a time-boxed trial on our two most-deleted record types, measured against the restore tickets in our queue, before any broader rollout."

For engineering — what you are actually agreeing to:

  • Scope is narrow and honest: a Filament UI over Laravel SoftDeletes. It is not a tenancy package and not an audit trail, despite the stale "simple multi tenants" repository description. Confirm the shape by reading src/ and the published config before writing integration code.
  • The work is not the install; it is the edges. Unique-constraint collisions on restore (a re-registered email), parent/child relation integrity, side-effect reversal on restore, force-delete gating, and — if we are multi-tenant — whether internal queries bypass global scopes. Budget accordingly.
  • Risk posture: ~10 stars, zero dependents, a changelog that is mostly dependency bumps. Pin the version, own the tests (delete → assert in bin → restore → assert intact), and keep customisations in subclasses so upgrades stay cheap. Forking is viable and low-cost because the source is small.
  • Ask for: one model wired end to end behind our own feature test, a written retention decision, and an explicit canForceDelete() policy before anything reaches production.

The framing to avoid: selling this as a data-safety or compliance feature. It is a support-ergonomics feature. Presenting it as the former invites a security review it will not survive and sets an expectation the package was never built to meet.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
mehedimi/laravel-amp-mail
happones/laravel-vue-i18n-generator
jwerd/inertia-table
siberfx/flysystem-wasabi
hollyit/token-replace
ippanelcom/laravel-sdk
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel