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

Eloquent Filemaker Laravel Package

bluefeather/eloquent-filemaker

Work with FileMaker databases through the Data API using familiar Laravel Eloquent models and query builder. Supports relationships, portals, containers, field remapping, script running, and automatic authentication and session management across multiple files and credentials.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit

Eloquent-FileMaker is an adapter, not a platform. It puts an Eloquent-shaped façade over the Claris FileMaker Data API so a Laravel application can read and write FileMaker records as models. That makes it a strong fit for one specific architecture: a Laravel application that needs to sit in front of an existing FileMaker system of record (line-of-business apps in manufacturing, healthcare ops, inventory, field service, publishing) without a data migration. It is a poor fit for greenfield work — if FileMaker is not already a hard constraint, this package is solving a problem you should not create.

The critical architectural caveat a TPM must internalise: the Data API is not a relational database. FileMaker "tables" are accessed through layouts, which are UI objects. The fields your model can see are the fields placed on that layout, and the layout's sort/portal configuration shapes the response. The Eloquent illusion therefore leaks in three places: schema is a presentation artifact, there are no real joins (portals substitute, with payload inflation and nesting limits), and there are no transactions. Anything that requires relational semantics — aggregates, whereHas, multi-table consistency, chunked streaming — must be pushed into FileMaker calculation fields or server-side scripts, or computed in PHP.

Integration feasibility

Installation and wiring are conventional: composer require, a filemaker connection entry, and models extending the package's base model. The package supports multiple FileMaker files, which matters because real FileMaker deployments are almost always multi-file. Credentials are FileMaker account credentials (or Claris ID in OAuth-configured deployments) and the target database must have the fmrest extended privilege enabled and the Data API exposed on FileMaker Server or Claris Cloud. Those are server-side configuration changes owned by the FileMaker administrator, not the Laravel team — schedule that dependency early.

Feasibility is high for read-mostly paths (dashboards, search, record detail, customer portals) and moderate for writes. The realistic write pattern is not $model->save() on arbitrary fields but invoking FileMaker scripts through the API so business rules, validation, and audit trails stay where they already live. This package's value is highest when it is used as a thin read façade plus a script-dispatch layer, and lowest when it is used to reimplement FileMaker business logic in Laravel.

Technical risk

Risk Severity Notes
Bus factor / single-vendor maintenance High 67 stars, 0 dependents, maintained by one consultancy. MIT licence is the mitigation: fork and vendor it.
Layout-coupled schema High A FileMaker developer renaming or unpublishing a field on a layout silently breaks a Laravel model. No migration guardrails exist.
No transactions High Partial writes are possible; idempotency and compensating logic must be designed in Laravel or delegated to scripts.
Performance shape Medium-High Offset pagination, per-record round trips, portal payloads. Expect N+1 amplification to be the default, not the exception.
Session/token lifecycle Medium Data API tokens expire after ~15 minutes idle and sessions count against FileMaker concurrency. Must be cached and reused, never minted per request.
Version drift Medium Laravel major-version support, PHP 8.x floor, and FileMaker Server/Cloud Data API version all need explicit pinning and a compatibility test.

Key questions

  1. Is FileMaker the system of record, and will it remain so for the planning horizon (24–36 months)? If a migration is already funded, build the Laravel app against the target schema instead.
  2. Who owns FileMaker layout design, and can we get a change-notification contract for layout field exposure?
  3. What FileMaker Server licensing tier and concurrency ceiling exist today, and how many sessions will our app consume at peak?
  4. Which workflows must be writable from Laravel, and can each be expressed as a FileMaker script rather than direct field writes?
  5. Are container fields (documents, images) in scope? They add a separate binary pathway and significant payload/latency cost.
  6. What read volume and latency SLO does the product need? Above a few hundred record reads per user session, a replica becomes cheaper than live API calls.

Integration Approach

Stack fit

Fits Laravel 9–12 / PHP 8.1+ deployments with MySQL or Postgres as the application database. The natural topology is a Laravel app with two connections: the relational database for app-native state (users, sessions, preferences, audit, queue tables) and the filemaker connection for domain records. Keep them in separate model namespaces and never let Eloquent relationships span the two — cross-store joins do not exist, and pretending otherwise produces hidden N+1 loops. Define a repository/port interface (CustomerRepository) with a FileMaker adapter behind it; that interface is what makes a future migration or a cached replica a swap rather than a rewrite.

Migration path

There are two directions to be explicit about. If Laravel is new and FileMaker is inherited, this is an additive greenfield integration — no migration, just an anti-corruption layer. If you are exiting FileMaker, use this package only as a transitional read path during dual-run, and do not build write logic on it; write to the new schema and sync backward if required. Decide which of these you are before the first sprint, because they produce different code shapes.

Compatibility

Pin the package to a minor version, pin Laravel and PHP in CI, and add a smoke test suite that runs against a dedicated FileMaker test file. That suite is the real compatibility contract — it catches layout changes, Data API version drift, and error-code behaviour changes that no changelog will tell you about. Verify support for your exact Laravel major before committing; this package's release cadence is driven by a small team.

Sequencing

  1. De-risk spike (1–2 weeks). Token caching and reuse, layout field exposure, pagination limits, portal loading behaviour, error-code mapping, latency measurements against production-representative data. Gate the project on these numbers.
  2. Read-only vertical slice. One domain, repository interface, models, pagination, caching. Ship something a user can see.
  3. Write path via scripts. Queue-backed dispatch, idempotency keys, retry with backoff, explicit handling for script errors and non-transactional partial failure.
  4. Performance layer. Query-level caching, then a denormalised replica (relational or Redis) if measured read volume justifies it. Do not build the replica first; build it when the spike says you must.
  5. Hardening. Observability, session-cap alerting, FileMaker administrator runbook, fork/vendor the dependency.

Operational Impact

Maintenance

The maintenance burden is deliberately low in code volume and high in environmental coupling. Package updates are infrequent — budget for a fork rather than an upstream PR queue. The real ongoing cost is the cross-team contract with FileMaker administrators: every layout change is a potential production incident in the Laravel app, and there is no schema-diff safety net. Institute a shared registry of which layouts and fields the Laravel app depends on, and make additions to that registry part of the FileMaker change process. Also expect periodic, unavoidable work when FileMaker Server or Claris FileMaker is upgraded.

Support

Support is effectively vendor-direct. Gearbox Solutions offers consulting, which is the pragmatic answer: negotiate a support retainer sized to the app's criticality rather than relying on community answers for a package with 67 stars and no dependents. Internally, the on-call surface is split — Laravel errors often originate in FileMaker configuration, and Laravel on-call engineers will not have FileMaker access. Name a single cross-trained owner.

Scaling

Scaling is governed by FileMaker, not Laravel. Three ceilings: concurrent Data API sessions counted against FileMaker licensing, server-side script execution and record-locking behaviour, and per-request latency (typically tens to hundreds of milliseconds per call). Practical mitigations, in cost order: aggressive token reuse; request coalescing and caching of hot reads; server-side scripts that return multiple records in one call instead of per-record loops; a read replica for list/report views; queueing all writes so user-facing latency excludes FileMaker. Horizontal Laravel scaling is easy; horizontal FileMaker scaling is a licensing conversation.

Failure modes

Design for these explicitly, because several fail silently:

  • Token expiry (FM error 952) mid-request — retry once with a fresh token; make the HTTP layer idempotent-aware.
  • Session cap exhaustion — surfaces as connection or login failures under load. Alert on it and cap the Laravel worker/queue concurrency below the FileMaker ceiling.
  • Missing layout (105) or field off-layout — the silent failure: unmapped fields return absent rather than erroring. Validate expected fields at boot or in the smoke suite.
  • No records (401) vs. genuine error — do not conflate; empty results must not page the on-call.
  • Partial write without transaction — the highest-consequence failure. Every write must be idempotent and reconcilable; never let a queue retry blind-write a record.
  • FileMaker maintenance windows and network partitions — degrade to cached reads with an explicit staleness banner rather than surfacing raw errors.

Ramp-up

Expect a bimodal skill gap: Laravel developers understand Eloquent but not layouts, portals, calculation fields, record IDs, or FileMaker privilege sets; FileMaker developers understand the data but not Eloquent conventions or Laravel's queue/cache idioms. Budget two to three weeks of pairing before either group is independently productive on the integration seam. The single highest-leverage onboarding artifact is the smoke-test suite — it doubles as executable documentation of exactly which FileMaker surfaces the application depends on.

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.
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
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk