EasyFM - v5.0.0-beta.8
    Preparing search index...

    EasyFM - v5.0.0-beta.8

    easy-fm

    easy-fm is a Node.js client for Claris FileMaker Data API.

    It helps you connect Node.js code to FileMaker Server or FileMaker Cloud so you can fetch records, run finds, edit data, work with portals, and run scripts using a typed JavaScript or TypeScript API.

    This repository uses a pnpm workspace. The publishable package lives in packages/easy-fm; root scripts delegate to that workspace package.

    • Node.js 22+
    • FileMaker Data API enabled
    • account with fmrest privilege
    • at least one accessible layout

    Claris Data API reference: help.claris.com/en/data-api-guide/content/index.html

    npm install @jd-data-limited/easy-fm
    
    import { Database, DataApiProvider } from '@jd-data-limited/easy-fm';

    const database = Database.create({
    provider: new DataApiProvider({
    hostname: 'https://example.com',
    database: 'Contacts',
    credentials: {
    method: 'filemaker',
    username: 'api-user',
    password: 'secret',
    },
    externalSources: [],
    }),
    });

    const layout = database.layout('Contacts_API');
    const records = await layout.records
    .list({
    portals: {},
    limit: 25,
    })
    .fetch();

    for (const record of records) {
    console.log(record.fields.FirstName.value, record.fields.LastName.value);
    }
    • FileMaker Data API is layout-based, so fields and portals must be available on the layout you use.
    • Portal data is not fetched unless you request it.
    • recordId and modId are internal FileMaker IDs. Avoid treating recordId as a business ID; modId can still be useful for change or concurrency checks.
    • Date and timestamp formatting follows the host timezone rules you configure, with defaults chosen to better match FileMaker UI expectations.

    Updating from v4 to v5? Check the guide here; docs/upgrade-to-v5.md

    Start here:

    Task guides:

    API reference:

    npm run docs:build
    
    npm test
    npm run test:unit
    npm run test:integration

    Integration tests require a working FileMaker environment and credentials.