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

Ras Laravel Package

denissonleal/ras

RAS is a Laravel package for role-based access control. It lets you define roles and permissions, assign them to users, and protect routes and resources with a simple, lightweight API designed for easy integration into new or existing Laravel applications.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. The package presents as a Laravel-native Composer dependency — install, publish config, consume from application code. That is the lowest-friction integration shape available in our PHP stack, and it matches the standard package conventions we already accept elsewhere. However, the stated purpose ("API RAS para exportação do SUS") is a domain-specific Brazilian healthcare interoperability concern, not a generic utility. It only belongs in an architecture that already has a SUS/DATASUS reporting obligation. If we do not export RAS data today, this package has no architectural home.

Integration feasibility. Installability is near-certain; usefulness is not. The critical unknown is whether the package's output still conforms to the current DATASUS export specification. For a regulated reporting format, "it compiles and runs" is not the bar — the bar is acceptance by the receiving system. We cannot establish that from the available material.

Documentation integrity — a material finding. The supplied description ("rapid application scaffolding," "customizable stubs," "generate structure from a single command") is boilerplate that does not match the package name, the tagline, or the release notes ("Correção na classe de visita"). The accompanying PM assessment discusses a visit-tracking package. These artifacts describe at least two different things. As a TPM I treat this as a governance signal, not a copy error: we cannot rely on the package's documentation to tell us what it does or how to operate it. Any evaluation must be grounded in reading the source.

Technical risk.

  • Maintenance stall: last release 2021-03-29 — roughly four years of no activity. This is not a dormant-but-stable utility; 0.4.x implies the core model is still being corrected, and the final commit was itself a defect fix.
  • Adoption evidence: 4 stars is effectively zero community. No ecosystem means no informal support, no third-party bug reports, no forks absorbing maintenance.
  • Licensing: GPL-3.0 is a copyleft license. For internal-only use this is usually tolerable; for anything distributed, embedded in a customer-facing artifact, or offered as a service where the derivative-work boundary is contested, it requires legal review before engineering investment. This is a gate, not a footnote.
  • Framework drift: a 2021 Laravel package targets PHP 7.x / Laravel 6–8 era constraints. Whether it even resolves against a current Laravel 10/11/12 codebase is an open, cheap-to-test question — but a negative answer converts this from "dependency" to "fork," which changes the cost model entirely.
  • Compliance surface: healthcare reporting failures are externally visible (rejected submissions, regulator correspondence) and often deadline-bound. An unmaintained dependency sits directly on that path.

Key questions to resolve before any commitment.

  1. Does the package actually implement RAS/SUS export, or is it scaffolding? Read the source; do not trust the description.
  2. Which DATASUS specification version does it target, and is that spec still current?
  3. What Laravel/PHP versions does composer.json permit, and does it install cleanly against our target version?
  4. Is there test coverage, and does it assert against real spec fixtures or just self-consistency?
  5. Is GPL-3.0 acceptable given our distribution and hosting model? (Legal owns this answer.)
  6. Who is the maintainer, are they reachable, and is there a successor or sibling project?
  7. What is our current manual/legacy process for this export, and what is its failure rate?

Integration Approach

Stack fit. Only pursue this if two conditions hold: we have a live SUS/RAS export obligation, and the package installs against our current Laravel version. If either fails, stop — the correct alternative is a thin in-house exporter built from the published DATASUS layout, which is bounded work and avoids the license and maintenance problems entirely.

Migration path. Do not let package classes leak into domain code. Define an internal contract (RasExporterInterface or equivalent) with a single method that accepts our domain objects and returns a validated export artifact. The package — or a fork of it — becomes one implementation behind that interface. This is non-negotiable for a pre-1.0, unmaintained GPL dependency: it caps the blast radius of an API change, a security issue, or a decision to replace the package with our own writer.

Compatibility strategy.

  • Pin the exact version in composer.json; commit the lockfile; do not float.
  • Expect to fork. Fork under an internal namespace, keep upstream attribution (GPL requires it), and vendor it via a private Composer repository. Forking is the realistic outcome for any unmaintained 2021-era Laravel package; budget for it rather than treating it as a contingency.
  • Run the export in a queued job with the artifact persisted and archived, so a future package swap is a re-run rather than a data-loss event.

Sequencing.

  1. License gate (Legal). Confirm GPL-3.0 is acceptable for the intended use and deployment model. Hard stop if not.
  2. Source audit (Eng, ~1–2 days). Read the code. Determine what it actually is, what spec version it targets, what tests exist, and what PHP/Laravel versions it supports.
  3. Install spike (Eng, ~half a day). Resolve against our Laravel version in a throwaway branch. Cheap, and it kills the option early if it fails.
  4. Conformance spike (Eng + domain, ~1 week). Produce a representative export and validate it against the current DATASUS specification — ideally by submitting to a homologation/test environment. Self-consistency is not acceptance.
  5. Adapter + shadow mode. Build the interface, run parallel to the existing manual/legacy process, diff outputs until confidence is established.
  6. Cutover, with the legacy path retained as fallback for at least one full reporting cycle.

Operational Impact

Maintenance. Realistically we inherit this. There is no active upstream, no release cadence, and a 4-star repository. Assume the package is frozen at the moment we adopt it and that all future fixes — spec changes, PHP upgrades, security patches — are ours. Size that as ongoing ownership, not as a one-time integration cost. If we cannot staff that, we should not adopt.

Support. No vendor, no SLA, no community. Escalation path is internal. The only external dependency is the DATASUS specification itself, which is authoritative and which we must track independently of the package regardless.

Scaling. Export workloads here are batch-oriented and modest in volume; throughput is unlikely to be the constraint. The scaling risk is temporal and regulatory: deadlines, spec revisions, and submission windows. A pipeline that works for twelve months can fail on the day the layout changes, and the package will not tell us. Pair the integration with a conformance test that runs on every deployment so spec drift surfaces as a build failure rather than a rejected submission.

Failure modes to instrument for.

  • Silent format drift — the package emits a stale layout; submission is rejected downstream with an opaque error. Mitigation: schema/layout validation at generation time, not at submission time.
  • Dependency rot — a PHP or Laravel upgrade removes the package from the dependency graph, blocking the whole platform upgrade. Mitigation: adapter boundary + fork we control; track it in the upgrade runbook.
  • Licensing exposure — discovered late, after the export is on the critical path. Mitigation: resolve before step 3.
  • Bus factor — one person understood the export. Mitigation: the conformance test and archived artifacts are the institutional memory.
  • Trust failure — the package's own documentation misdescribes it. Anyone onboarding from the README will be wrong. Mitigation: write our own internal doc; treat upstream docs as unreliable.

Ramp-up. Two distinct skills are required and they rarely coexist: Laravel/PHP package integration (common internally) and Brazilian SUS/RAS reporting domain knowledge — layout versions, submission conventions, rejection codes, homologation process (scarce). The domain side is the long pole, and the package does not help with it: its documentation is mismatched, so onboarding is source-reading plus spec-reading. Estimate: 1–2 days for a PHP engineer to become productive with the code, several weeks for someone to become reliable on the export format itself. Plan for at least one domain-knowledgeable reviewer on the spike, or the conformance validation in step 4 is not credible.

Bottom line. Technically installable, economically questionable. This is only defensible as a short, well-bounded pilot behind an adapter, gated on legal sign-off and a successful conformance spike, with an explicit expectation that we fork and own it. If the license review or the conformance spike fails, the fallback — a small in-house exporter against the published DATASUS layout — is likely cheaper over a three-year horizon than adopting an unmaintained dependency on a compliance-critical path.

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.
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
frankyso/ipaymu
3mdikram/worldmoneywords
snowsoft/config
itmosoft/laravel-subscriptions
larva/laravel-ai-qwen
adachsoft/api-version-bundle