- What is rich-id/terms-module-chromium-bundle used for?
- It wires the Rich ID Terms module into a Laravel application and renders terms documents through headless Chromium, so agreements, consent texts, and versioned policy pages come out as pixel-accurate PDFs and screenshots instead of approximations. It also provides Blade templates for composing and styling terms content and stores versioned documents at a consistent, auditable output path. The service provider registers the module, its routes, and the rendering pipeline so the host application's configuration stays largely untouched.
- How do I install the terms module Chromium bundle in Laravel?
- Install it with Composer using composer require rich-id/terms-module-chromium-bundle, then let the package service provider register the module, routes, and rendering pipeline. Any publishable module assets or configuration should be exported via the vendor publish command documented in the repository. Read the README and composer.json first, because the package is at an initial v1.0.0 release and the exact post-install steps are not fully documented in public summaries.
- Does this package require a Chromium binary to be installed?
- Yes. Rendering is performed by headless Chromium, so a usable Chromium or Chrome binary must be reachable by the process that runs the renderer, typically via a container image that ships Chromium. The package advertises bundled Chromium support, but you should verify the runtime binary path, sandbox flags, and any required system libraries on your target environment before relying on it. Without a working Chromium executable the renderer will fail even though the Laravel side is configured correctly.
- Which Laravel and PHP versions does terms-module-chromium-bundle support?
- No public support matrix is included with the initial v1.0.0 release, so the authoritative answer is the require block in the package composer.json and any CI configuration in the repository. Inspect both before adopting it, and confirm the generated or bundled code compiles and its tests pass on your exact PHP and Laravel versions. If no constraints are declared, treat version compatibility as unverified and pin versions deliberately.
- Is this a runtime Laravel package or a code generator?
- The package overview presents it as a runtime bundle, but the v1.0.0 release note describes an initial version of a Chromium Generator, which suggests a scaffolding or code-generation tool. That distinction decides whether you add it as a production dependency or use it once to emit code your team then owns. Verify by reading the source and looking for Artisan commands, stub files, and file-writing logic before committing to either model.
- How are versioned terms documents and audit trails handled?
- The package produces versioned terms documents and writes them to a consistent, auditable output path, which supports tracking which text was in force at a given time. In practice you should persist your own metadata alongside each rendered file, such as version identifiers, timestamps, and the template revision used. Storing rendered artifacts in durable storage with immutable naming makes audits and re-renders far easier.
- How should I test terms page rendering in a Laravel application?
- Run the renderer against a disposable database and a stripped application skeleton, then diff every file and route it produces or registers before trusting it. Assert on real output rather than mocks: check that routes resolve, that generated PDFs are non-empty and have plausible page counts, and that screenshots match expectations. Because this is an early release, budget time to inspect generated or registered code line by line instead of assuming it is correct.
- What production concerns come with Chromium-based PDF rendering?
- Headless Chromium is memory and CPU hungry, so render jobs should run asynchronously on a queue rather than inside web requests, with timeouts and concurrency limits in place. Run the browser in an isolated container with sandboxing appropriate to your infrastructure and never point it at untrusted URLs. Also plan for binary upgrades, disk usage for rendered artifacts, and a fallback path if a render job fails.
- What are the alternatives to Chromium rendering for terms and policy PDFs in Laravel?
- Lighter options include Dompdf and wkhtmltopdf wrappers, which are easier to deploy but handle modern CSS, web fonts, and complex layouts less reliably. Browsershot-style packages also drive headless Chromium and are more widely adopted, so compare maintenance activity and documentation before choosing. If pixel accuracy and JavaScript-rendered content matter for your terms pages, a Chromium-based approach is usually the right trade-off despite the heavier runtime.
- What maintenance risks should I check before adopting this package?
- The v1.0.0 initial release has no visible changelog, breaking-change statement, security policy, or documented upgrade path, and its relationship to an earlier October 2023 release is unclear. Confirm whether it depends on private Rich ID or Chromium packages you cannot install, and whether stubs are publishable and overridable. If any generated runtime code survives evaluation, wrap it behind your own terms service interface so vendor naming and behavior do not leak through your application.