{"id":19300370,"url":"https://github.com/gearbox-solutions/jetstream-filemaker","last_synced_at":"2026-03-05T12:32:42.094Z","repository":{"id":44891681,"uuid":"492117864","full_name":"gearbox-solutions/jetstream-filemaker","owner":"gearbox-solutions","description":"A package for making Laravel Jetstream work with FileMaker","archived":false,"fork":false,"pushed_at":"2024-06-04T16:19:39.000Z","size":129,"stargazers_count":10,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"2.x","last_synced_at":"2025-10-17T04:53:09.363Z","etag":null,"topics":["filemaker","filemaker-data-api","filemaker-server","laravel","laravel-jetstream","vue"],"latest_commit_sha":null,"homepage":"https://github.com/gearbox-solutions/Jetstream-FileMaker","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gearbox-solutions.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-05-14T05:07:42.000Z","updated_at":"2025-02-12T13:10:17.000Z","dependencies_parsed_at":"2024-04-18T04:28:40.985Z","dependency_job_id":"88a92b47-50b4-44e0-b40a-e1ae32f0cdfb","html_url":"https://github.com/gearbox-solutions/jetstream-filemaker","commit_stats":{"total_commits":11,"total_committers":3,"mean_commits":"3.6666666666666665","dds":0.2727272727272727,"last_synced_commit":"cbbe86bea384dc0071b5ff089f61901c76c04db9"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/gearbox-solutions/jetstream-filemaker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gearbox-solutions%2Fjetstream-filemaker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gearbox-solutions%2Fjetstream-filemaker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gearbox-solutions%2Fjetstream-filemaker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gearbox-solutions%2Fjetstream-filemaker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gearbox-solutions","download_url":"https://codeload.github.com/gearbox-solutions/jetstream-filemaker/tar.gz/refs/heads/2.x","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gearbox-solutions%2Fjetstream-filemaker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30124479,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-05T11:11:57.947Z","status":"ssl_error","status_checked_at":"2026-03-05T11:11:29.001Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["filemaker","filemaker-data-api","filemaker-server","laravel","laravel-jetstream","vue"],"created_at":"2024-11-09T23:14:36.806Z","updated_at":"2026-03-05T12:32:42.075Z","avatar_url":"https://github.com/gearbox-solutions.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Jetstream-FileMaker\n[![Total Downloads](https://img.shields.io/packagist/dt/gearbox-solutions/jetstream-filemaker)](https://packagist.org/packages/gearbox-solutions/jetstream-filemaker)\n[![Latest Stable Version](https://img.shields.io/packagist/v/gearbox-solutions/jetstream-filemaker)](https://packagist.org/packages/gearbox-solutions/jetstream-filemaker)\n[![License](https://img.shields.io/packagist/l/gearbox-solutions/jetstream-filemaker)](https://github.com/gearbox-solutions/jetstream-filemaker/blob/2.x/LICENSE)\n\n## Introduction\n[Laravel Jetstream](https://jetstream.laravel.com/2.x/introduction.html) is a great starting point for building web applications. Laravel and Eloquent-FileMaker make it easy to store and retrieve data from a FileMaker database through the FileMaker Data API and then integrate that data into a Laravel/Jetstream app. The default behavior for Jetstream, however, is to use a SQL database such as MySQL or SQLite. It's not normally possible to exclusively use a FileMaker database for everything with Jetstream.\n\nThis package is designed to allow you to exclusively use a FileMaker database and the FileMaker Data API as your data source for a Jetstream application. With this package, you no longer need to have a primary SQL database and then use FileMaker for additional data. FileMaker can be the sole database used by your Jetstream app.\n\n## Support\n\nThis package is built and maintained by [Gearbox Solutions](https://gearboxgo.com/). We build fantastic web apps with technologies like Laravel, Vue, React, and Node. If you would like assistance building your own web app, either using this package or other technologies, please [contact us](https://gearboxgo.com/) for a free introductory consultation to discuss your project. \n\n## Prepare your FileMaker database\n\n### Quickstart with an example FileMaker database\nIf you just want to see an example of Jetstream working with FileMaker you can unzip and use the `Jetstream-FileMaker.fmp12` file included in the `dist` folder as an example data source ([or download here](https://github.com/gearbox-solutions/Jetstream-FileMaker/blob/main/dist/Jetstream-FileMaker.fmp12.zip?raw=true)). This file has been configured with the minimum necessary fields to work with Jetstream and already has layouts ready for accessing through the Data API. You can host this file on your FileMaker Server and use it as a testing ground to see Laravel Jetstream running using a FileMaker database as a data source.\n\nOtherwise, read the directions below for how to configure your existing FileMaker database to work with Jetstream. The example file is a great reference for configuring your own database.\n\nA Data API user is preconfigured with the username `jetstream` and the password also set to `jetstream`. You can set these credentials in your `.env` to configure your app for access to this sample file.\n\n### Prepare tables and fields\nLaravel Jetstream requires certain tables and fields to function. Normally this would be a SQL database and the tables and fields would be created through migrations, but we're going to be using FileMaker as a data source instead. Your FileMaker database will need to be configured to have the minimum required tables to be able to work with Jetstream. \n\nYou will need the following tables:\n* User\n* PasswordReset\n* PersonalAccessToken\n\nThese tables must also have the minimum required fields to support the features of the Jetstream starter kit. The required tables and fields for your FileMaker database can be found in the `Jetstream-FileMaker.fmp12` file included in the `dist` folder of this package ([or download here](https://github.com/gearbox-solutions/Jetstream-FileMaker/blob/main/dist/Jetstream-FileMaker.fmp12.zip?raw=true)). You can either copy these tables/fields to your database, rename your existing fields, or use the [Eloquent-FileMaker field mapping feature](https://github.com/gearbox-solutions/eloquent-filemaker) to map your existing fields to these expected field names.\n\n### Set up layouts for Data API access\nThe The FileMaker Data API allows access to your tables through layouts in your FileMaker database. Only fields which are on the layouts accessed through the Data API are visible. This means that you MUST include all the fields you want to access through the data API on your layouts.\n\nAs a starting point, we recommend creating one layout per table with the minimum number of fields you need one each of the layouts for each of the tables. Again, the example `Jetstream-FileMaker.fmp12` is a great reference for setting up some basic access.\n\nWe recommend prefixing layout names you plan on using with the data API so that you can make sure that they're both simple and unique. The example file uses `web_` as a layout name prefix to make sure layout names don't conflict with other common layout names.\n\nBy default, Laravel looks for pluralized versions of each of the tables. If you are also using a layout name prefix your layout names, your layout names would need to be:\n* `web_users`\n* `web_password_resets` \n* `web_personal_access_tokens`\n\nThe example `Jetstream-FileMaker.fmp12` file has these prepared as a demonstration, so you can always look at that for reference.\n\nIf you don't want to use the pluralized table names Laravel will be searching for by default, the layout names used for the models can also be configured in each model file by setting the table name directly using the `$table` property. Do not include any configured table prefix, such as `web_` when setting table/layout names. You can refer to the [Laravel](https://laravel.com/docs/9.x/eloquent#table-names) and [Eloquent-FileMaker](https://github.com/gearbox-solutions/eloquent-filemaker) documentation for more information about layout and table naming.\n\n## Install and configure Laravel\nLaravel should be installed and configured as normal. You can follow the instructions on the [official Laravel website](https://laravel.com/docs/9.x/installation) to get started.\nIf you already know what you're doing, installation is easy using composer.\n\n```\ncomposer create-project laravel/laravel example-app\n```\n## Install Laravel Jetstream\nSimilar to the base Laravel install, you should follow the instructions for installing Jetstream as normal from the [offical Jetstream documentation](https://jetstream.laravel.com/2.x/introduction.html).\n\nOur recommendation is to use the Inertia stack with Jetstream. The steps for a quick installation would go as follows: \n```\ncomposer require laravel/jetstream\nphp artisan jetstream:install inertia\nnpm install\nnpm run dev\n```\n\n## Install Jetstream-FileMaker\nWith the basic Jetstream installed it is now time to install the Jetstream-FileMaker package to make Jetstream work with FileMaker as a data source.\n\nInstall Jetstream-FileMaker using Composer\n```\ncomposer require gearbox-solutions/jetstream-filemaker\n```\n\nJetstream-FileMaker needs to update the default Jetstream `User` model and add new, custom models for `PasswordReset` and `PersonalAccessToken`. Install these models using artisan.\n```\nphp artisan jetstream-filemaker:install\n```\n\n## Update the Laravel configuration\nAll the basic dependencies are now installed and it's time to configure Laravel to point to your FileMaker database. Update `config/auth.php` and change the existing providers-\u003eusers-\u003edriver value from `eloquent` to `filemaker`. This will tell Laravel to use the custom FileMakerUserProvider included with this package to connect to FileMaker to read and write user credentials.\n  ```\n  'providers' =\u003e [\n    'users' =\u003e [\n      'driver' =\u003e 'filemaker',\n      'model' =\u003e App\\Models\\User::class,\n    ],\n  ],\n  ```\n\nYou also need to add a new FileMaker database connection to `config/database.php` in the `connections` array. This sets some defaults which will be overwritten by settings in the `.env` file.\n```\n  'connections' =\u003e [\n        'filemaker' =\u003e [\n            'driver' =\u003e 'filemaker',\n            'host' =\u003e env('DB_HOST', 'fms.mycompany.com'),\n            'database' =\u003e env('DB_DATABASE', 'MyDatabaseName'), \n            'username' =\u003e env('DB_USERNAME', 'MyUsername'),\n            'password' =\u003e env('DB_PASSWORD', ''),\n            'prefix' =\u003e env('DB_PREFIX', ''),\n            'version' =\u003e env('DB_VERSION', 'vLatest'),\n            'protocol' =\u003e env('DB_PROTOCOL', 'https'),\n            'cache_session_token' =\u003e env('DB_CACHE_SESSION_TOKEN', true), // set to true to cache the session token between requests and prevent the need to re-login each time. This can be a significant performance improvement!\n            'empty_strings_to_null' =\u003e env('DB_EMPTY_STRINGS_TO_NULL', true), // set to false to return empty strings instead of null values when fields are empty in FileMaker\n        ],\n```\n\nFinally, set update the session_driver, cache_store and database connection information in the `.env` file. If you're using the example file included with this package you would configure your `.env` as follows (with your real server address in `DB_HOST`):\n```\n\n# Use a session driver other than 'database'\nSESSION_DRIVER=file\n\n# Use a cache store other than `database`\nCACHE_STORE=file\n\nDB_CONNECTION=filemaker\nDB_HOST=fms.mycompany.com\nDB_DATABASE=Jetstream-FileMaker\nDB_USERNAME=jetstream\nDB_PASSWORD=jetstream\nDB_PREFIX=web_\n```\n\n## License\nJetstream-FileMaker is open-sourced software licensed under the MIT license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgearbox-solutions%2Fjetstream-filemaker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgearbox-solutions%2Fjetstream-filemaker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgearbox-solutions%2Fjetstream-filemaker/lists"}