Download the PHP package fsans/fms-odata-spec-php without Composer

On this page you can find all versions of the php package fsans/fms-odata-spec-php. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package fms-odata-spec-php

fms-odata-spec

npm PyPI Packagist

A canonical base reference for the Claris FileMaker Server OData API, intended as the single source of truth that downstream libraries (MCP servers, JavaScript wrappers, and any future wrappers) conform to and evolve against.

Purpose

This project provides a unified source of conventions and a version-aware capability list for the Claris FileMaker Server OData API. It serves as a common platform to unify FileMaker OData implementations across different languages, runtimes, and tool ecosystems.

The Claris OData API has evolved across server versions (2023, 2024, 2025, 2026) with subtle behavioral differences, undocumented quirks, and version-gated features. Without a shared reference, each wrapper library independently discovers and works around the same issues, leading to divergent implementations and duplicated effort.

This repository solves that by providing:

  1. A single, documented contract for what the FileMaker OData API does and does not support — so every wrapper implements the same behavior instead of guessing.
  2. A version-aware capability matrix that maps FileMaker Server versions to supported features, query options, and endpoint availability — so wrappers can detect the server version and gate functionality accordingly.
  3. A propagation point for API changes — when Claris releases a new FileMaker Server version, the update happens here first, then flows to every derived library.
  4. Three explicit categories of coverage:
    • Standard OData features that FileMaker covers.
    • Standard OData features that FileMaker explicitly does not cover (so wrappers don't try to implement them).
    • Non-OData additions specific to FileMaker (containers, scripts, webhooks, custom Prefer headers, metadata annotations, system tables, etc.).

Current downstream implementations

Five projects already consume this spec:

Project Type Repository
fms-odata-js JavaScript/TypeScript client library https://github.com/fsans/fms-odata-js
fms-odata-py Python client library https://github.com/fsans/fms-odata-py
fms-odata-php PHP client library https://github.com/fsans/fms-odata-php
fms-odata-mcp MCP server for AI agents (TypeScript) https://github.com/fsans/fms-odata-mcp
fms-odata-webhooks Webhook handler for FileMaker OData events https://github.com/fsans/fms-odata-webhooks

What's in this repo

Specification documents (docs/)

The primary deliverable. Read in order — each document builds on the previous:

# Document Description
00 Overview Scope, purpose, version targeting
01 Conformance OData standard coverage matrix — what FMS supports and what it doesn't
02 Endpoints Full endpoint reference (URL patterns, methods, status codes)
03 Query Options $filter, $select, $orderby, $top, $skip, $expand, $count, $apply
04 Authentication Basic auth, OAuth Bearer token
05 Metadata $metadata document, annotations, system tables, version detection
06 Scripts Script execution, scopes, parameters, results
07 Containers Container field binary/base64 upload and download
08 Batch $batch requests, changesets, FMS quirks
09 Webhooks Webhook creation and management
10 Schema Modification DDL: create/delete tables, fields, indexes
11 Non-OData Additions FileMaker-specific extensions beyond the OData standard
12 Version Deltas 2023 → 2024 → 2025 → 2026 → future, feature comparison matrix
13 Quirks Real-world quirks, bugs, and workarounds
14 Reconciliation Divergence matrix between the two downstream repos

Other contents

Companion type packages

The spec ships three independent, language-specific type packages that mirror the same API surface. They share no runtime dependency on each other and are versioned/published independently using their respective package managers.

Package Language Registry Install
@fms-odata/spec-ts TypeScript npm npm install @fms-odata/spec-ts
fms-odata-spec Python PyPI pip install fms-odata-spec
fsans/fms-odata-spec-php PHP Packagist composer require fsans/fms-odata-spec-php

TypeScript package (packages/fms-odata-spec-ts/):

Python package (packages/fms-odata-spec-py/):

PHP package (run from the repo root, where the Packagist composer.json lives):

The Python and PHP folders are intentionally not part of any npm workspace glob; the three package managers are kept fully decoupled. Each package has its own CI workflow scoped to its own path filter (.github/workflows/py-ci.yml for Python, .github/workflows/php-ci.yml for PHP).

Version targeting

The spec covers these FileMaker Server versions, with deltas documented in docs/12-version-deltas.md:

Version Codename Status
Claris FileMaker 2023 v20.x Supported
Claris FileMaker 2024 v21.x Supported
Claris FileMaker 2025 v22.x Supported
Claris FileMaker 2026 v26.x Current (primary reference)
Future / next Reserved section for announced changes

Source of truth

The spec is built from:

  1. Official Claris OData API documentation (https://help.claris.com/en/odata-guide/) — primary source.
  2. Observed behavior from the downstream wrapper repositories (fms-odata-mcp, fms-odata-js, fms-odata-py, fms-odata-php, and fms-odata-webhooks) — real-world quirks, workarounds, and undocumented behaviors.

Where official docs and observed behavior diverge, both are documented and the discrepancy is noted.

How downstream libraries use this

OData protocol version

FileMaker Server 2023 (v20.x) implements OData 4.0. FileMaker Server 2024 (v21.x) and later implement partial OData 4.01 at intermediate conformance level, with some exceptions. The URL version segment remains v4 for all versions. See docs/01-conformance.md for the full conformance level and feature support matrix.

Branching model

This repository uses a Git Flow-style workflow:

Branch Purpose
main Stable releases only. Every commit on main is a merge from develop and is tagged with a version tag (v1.0.0, v1.1.0, etc.).
develop Active development. All work lands here first via direct commits or feature branches merged back.

Workflow:

  1. Work on develop (or a feature branch off develop).
  2. When a set of changes is ready for release, merge develop into main.
  3. Tag the merge commit on main with an annotated version tag (vMAJOR.MINOR.PATCH).
  4. Push both branches and the tag to origin.

Tagging convention:

PHP package publishing (Packagist):

The PHP package source lives in packages/fms-odata-spec-php/, but a root-level composer.json exists at the repository root with PSR-4 autoload paths pointing into that subdirectory. This is required because Packagist only reads composer.json from the repository root (the default branch). To release:

  1. Ensure the work is merged to main and develop.
  2. Tag the merge commit on main: git tag -a MAJOR.MINOR.PATCH -m "PHP package MAJOR.MINOR.PATCH — ..."
  3. Push: git push origin main --tags
  4. On Packagist, the repo URL https://github.com/fsans/fms-odata-spec resolves versions from bare MAJOR.MINOR.PATCH tags on main.

Current tags:

Tag Package Description
v1.0.0 spec/TS Initial spec: 15 docs, JSON manifest, spec-ts types package
v1.1.0 spec/TS Multi-strategy version detection aligned with fms-odata-mcp
v1.1.1 spec/TS Script result envelope fix + FMS v26 quirks
v1.2.0 spec/TS Complete fm-odata -> fms-odata rename (package, directory, schema, all references)
v2.0.0 spec/TS v2.0.0 spec overhaul (versions 20-26, full endpoint/query/metadata/script/container/batch/webhook/schema/error domains)
py-v0.1.0 Python Initial Python types package (pre-v2.0.0)
py-v2.0.0 Python Python types package mirroring spec-ts 2.0.0
py-v2.0.1 Python Python types package 2.0.1 (DDL and webhook endpoint corrections)
2.0.1 PHP First PHP mirror — parity with spec-ts/Py 2.0.1

License

MIT — see LICENSE.


All versions of fms-odata-spec-php with dependencies

PHP Build Version
Package Version
Requires php Version ^8.2
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package fsans/fms-odata-spec-php contains the following files

Loading the files please wait ...