{"adoption": {"forks": 286, "observed_at": "2026-08-28T04:03:45.757517+00:00", "stars": 1146}, "canonical_url": "https://ross.abutalabs.com/products/roles", "card": {"archived": true, "artifact_type": "library", "description": "Powerful package for handling roles and permissions in Laravel 5", "domain": ["web-development", "backend", "security", "developer-tools"], "enriched": true, "function": ["auth", "authorization", "middleware"], "health_score": 10, "homepage": null, "language": "PHP", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["romanbican/roles"], "name": "romanbican/roles", "platform": ["php", "self-hosted"], "pushed_at": "2021-11-25T13:16:07+00:00", "repo": "romanbican/roles", "stars": 1146, "tags": ["laravel", "roles-and-permissions", "rbac", "blade-directives", "eloquent", "web-server"], "topics": [], "urls": [], "use_cases": ["add role-based access control to a Laravel app", "check if a user has a role or permission in Blade templates", "restrict routes with role and permission middleware", "manage admin vs regular user permissions", "implement permission inheritance for hierarchical roles", "assign and detach roles from users in Eloquent"], "what_it_is": "A Laravel 5 package for managing user roles and permissions, including role levels, permission inheritance, Blade template extensions, and route middleware. It integrates via a HasRoleAndPermission trait on the User model with database-backed roles and permissions.", "when_to_avoid": ["you are on Laravel 6 or newer - use actively maintained alternatives like spatie/laravel-permission", "you need multi-guard, teams, or advanced policy features", "you are starting a new project and want long-term support"], "when_to_choose": ["you are maintaining a legacy Laravel 5.0 or 5.1 application", "you need a simple, proven RBAC package with Blade helpers and middleware", "you want role levels and permission inheritance out of the box"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/roles", "repo": "romanbican/roles", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:45.757517+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:34:12.079906+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "88b8d09968709de4de0428912a1920af513e0193d19b4f22216eac5dbb169798", "fetched_at": "2026-08-28T04:03:45.757517+00:00", "kind": "readme", "missing": false, "url": "https://github.com/romanbican/roles"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:45.757517+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:34:12.079906+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "88b8d09968709de4de0428912a1920af513e0193d19b4f22216eac5dbb169798", "fetched_at": "2026-08-28T04:03:45.757517+00:00", "kind": "readme", "missing": false, "url": "https://github.com/romanbican/roles"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:34:12.079906+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "88b8d09968709de4de0428912a1920af513e0193d19b4f22216eac5dbb169798", "fetched_at": "2026-08-28T04:03:45.757517+00:00", "kind": "readme", "missing": false, "url": "https://github.com/romanbican/roles"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:03:45.757517+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:45.757517+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:45.757517+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:34:12.079906+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "88b8d09968709de4de0428912a1920af513e0193d19b4f22216eac5dbb169798", "fetched_at": "2026-08-28T04:03:45.757517+00:00", "kind": "readme", "missing": false, "url": "https://github.com/romanbican/roles"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:45.757517+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:45.757517+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:34:12.079906+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "88b8d09968709de4de0428912a1920af513e0193d19b4f22216eac5dbb169798", "fetched_at": "2026-08-28T04:03:45.757517+00:00", "kind": "readme", "missing": false, "url": "https://github.com/romanbican/roles"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:45.757517+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:45.757517+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:45.757517+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:34:12.079906+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "88b8d09968709de4de0428912a1920af513e0193d19b4f22216eac5dbb169798", "fetched_at": "2026-08-28T04:03:45.757517+00:00", "kind": "readme", "missing": false, "url": "https://github.com/romanbican/roles"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:45.757517+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:45.757517+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:34:12.079906+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "88b8d09968709de4de0428912a1920af513e0193d19b4f22216eac5dbb169798", "fetched_at": "2026-08-28T04:03:45.757517+00:00", "kind": "readme", "missing": false, "url": "https://github.com/romanbican/roles"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:34:12.079906+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "88b8d09968709de4de0428912a1920af513e0193d19b4f22216eac5dbb169798", "fetched_at": "2026-08-28T04:03:45.757517+00:00", "kind": "readme", "missing": false, "url": "https://github.com/romanbican/roles"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:34:12.079906+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "88b8d09968709de4de0428912a1920af513e0193d19b4f22216eac5dbb169798", "fetched_at": "2026-08-28T04:03:45.757517+00:00", "kind": "readme", "missing": false, "url": "https://github.com/romanbican/roles"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:34:12.079906+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "88b8d09968709de4de0428912a1920af513e0193d19b4f22216eac5dbb169798", "fetched_at": "2026-08-28T04:03:45.757517+00:00", "kind": "readme", "missing": false, "url": "https://github.com/romanbican/roles"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases", "archived"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4248, "days_push": 1742, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 10, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}