- What is mdbitz/hapi, and is it a Harvest client or a Laravel API helper?
- The package name and overview point to Harvest API PHP Interface (HaPi), a client for Harvest's REST API, while the short blurb describes Laravel API-development helpers. The technical assessment treats it as an infrastructure wrapper for Harvest time-entry, project, task, and reporting sync. Clarify the actual source before adoption, because the intended scope affects licensing and architecture.
- Does mdbitz/hapi support the Harvest API v2 and OAuth2 refresh flows?
- The available context does not confirm Harvest API v2 support or OAuth2 refresh handling. You must check the package source, issues, and release tags before relying on it. If it only supports older Harvest auth or endpoints, plan a custom auth layer or a small in-house client.
- Which PHP and Laravel versions does mdbitz/hapi support?
- Compatibility is not stated in the available details. Confirm composer.json constraints for PHP, Laravel, and any Guzzle or PSR-18 dependencies. Test against your application's Laravel version and HTTP client before integrating.
- How do I install and configure mdbitz/hapi in Laravel?
- Installation would normally use Composer and, if provided, a Laravel service provider plus a config file for credentials. The context does not confirm Laravel auto-discovery, facades, or config publishing. Verify those details and keep credentials in env or encrypted storage rather than source control.
- Is mdbitz/hapi safe to use in a commercial Laravel SaaS?
- The package is reportedly GPL-3.0, which is copyleft and needs legal review before bundling or distributing in commercial software. SaaS use still warrants policy review, and GPL obligations differ from MIT-licensed Laravel packages. Get counsel involved before adopting it in a product.
- Is mdbitz/hapi actively maintained?
- Maintenance is a significant risk: the repository is unknown, the package has only about 19 stars, and release history is unclear. Check for recent commits, tags, tests, and CI before depending on it. Budget for forking or replacing it if the package is abandoned.
- How does mdbitz/hapi handle Harvest rate limits, retries, and pagination?
- The available context does not confirm rate-limit handling, exponential backoff, retry behavior, or pagination correctness. Harvest API limits often constrain sync throughput more than the client does. Add queued jobs, backoff on 429 and 5xx responses, pagination-aware workers, and idempotency for writes.
- Does mdbitz/hapi have tests or CI?
- The context flags missing tests and CI as possible risks and does not confirm either. Ask for or inspect the repository for unit tests, contract tests, and automated releases. If absent, add contract tests around an adapter before production use.
- Can I use mdbitz/hapi behind an adapter in Laravel?
- Yes, that is the recommended approach: wrap it behind an internal HarvestClient interface and inject it through Laravel's service container. Keep Harvest DTOs, pagination, and HTTP concerns out of controllers and domain services. This keeps the package swappable if you later replace it with a small in-house client.
- What are alternatives to mdbitz/hapi for Harvest integration in Laravel?
- Alternatives include a minimal in-house REST client using Laravel's HTTP client, a maintained Harvest API SDK, or a small adapter around Guzzle or PSR-18. Compare license, Harvest API v2 support, auth refresh, and maintenance activity. For limited read-only sync, an in-house client is often lower risk.