ProofKit

Overview

@proofkit/fmodata

This library is in beta status. We don't expect the method names or arguments to change further, but please submit feedback or report issues on the community forum or on GitHub.

A strongly-typed FileMaker OData API client that provides full TypeScript type inference, runtime validation, and a fluent query builder API.

Key Features

  • Type-safe queries - Full TypeScript inference for field names and types
  • ORM-style API - Fluent builder pattern with column references
  • Runtime validation - Optional standard schema validation for data transformation
  • Relationship navigation - Type-safe navigation and expansion of related records
  • Batch operations - Execute multiple operations atomically
  • Schema management - Create and modify tables and fields programmatically
  • Entity IDs - Protect against field/table name changes using FileMaker IDs
  • Webhooks - Easily manage webhooks on your FileMaker Server to monitor table changes

Prerequisites

To use this library you need:

  • OData service enabled on your FileMaker server
  • A FileMaker account with fmodata privilege enabled
  • (if using OttoFMS) a Data API key setup for your FileMaker account with OData enabled

AI Agent Integration

Install the ProofKit FMOData skill for better AI agent integration while developing with this package:

npx skills add proofgeist/proofkit --skill "proofkit-fmodata"
pnpm dlx skills add proofgeist/proofkit --skill "proofkit-fmodata"
yarn dlx skills add proofgeist/proofkit --skill "proofkit-fmodata"
bunx skills add proofgeist/proofkit --skill "proofkit-fmodata"

When to Use OData vs Data API

Claris has given signals that OData is the future of data access for FileMaker. It's much faster and more powerful than the Data API since it does not require the server to spin up a server-side client or maintain a session for each request. However, it's a new paradigm for thinking about how we can interact with the FileMaker server and may take some adjustment. You should not worry about continuing to use the Data API if needed, but we suggest trying OData for new projects.

On this page