Repository navigation
Conversation
DDL endpoints (FileMaker_Tables / FileMaker_Indexes) used OData
key-parentheses format that FMS rejects with error -1010; switched to
slash-separated paths. createIndex now takes the table in the URL and
{ indexName: <fieldName> } in the body; deleteIndex uses
FileMaker_Indexes/{table}/{field}.
Webhook endpoints had wrong methods and URL patterns: reads (GetAll,
Get) are GET, the id goes in the URL as a function argument
(Webhook.Get(1)), the delete endpoint is Webhook.Delete (not Remove),
and Webhook.Invoke requires a { rowIDs: [...] } body.
Mirrored the fixes across @fms-odata/spec-ts, fms-odata-spec-py, the
JSON capabilities manifest, and docs/09 + docs/10. Added
WebhookInvokeParams and WebhookCreateResult types, a webhookID field on
WebhookData, and an optional id parameter on webhookPath(). Bumped both
packages and the manifest to 2.0.1.
Verified against live FileMaker Server 26.0.1 and the official Claris
OData guide. TS typecheck/build clean; Python pytest 191 passed.
The JSON manifest was missing contentType for 11 endpoints that require JSON request bodies, while the TS and Python packages correctly declared them. Added application/json to createRecord, updateRecord, updateRecordRef, runScript, runScriptById, updateContainerBase64, createTable, addFields, createIndex, createWebhook, and invokeWebhook. batch already had multipart/mixed. The manifest now matches the TS source of truth in src/endpoints.ts exactly.
The previous contentType commit claimed the manifest matched the TS source exactly, but it omitted alsoMethods for 4 endpoints. Added ["PUT"] to createRecord, updateRecord, updateContainerBase64, and addFields to match src/endpoints.ts. The manifest now matches the TS source of truth for both contentType and alsoMethods. Note: getSystemTable exists in the TS FM_ENDPOINTS array but is absent from the manifest endpoints block; this is a pre-existing inconsistency on develop (not introduced here) and is left for a separate fix.
fix: correct DDL and webhook endpoint metadata (v2.0.1)
Neither package had a CHANGELOG before (noted as a pre-2.0.0 blocker in AGENTS.md TODO #3 for the Python package; the TS package had none either). Added Keep a Changelog-format files for both packages with 2.0.0 (spec overhaul) and 2.0.1 (DDL/webhook endpoint fixes) entries. The Python CHANGELOG is now included in the sdist via pyproject.toml [tool.hatch.build.targets.sdist] include list, so it ships to PyPI alongside README.md and LICENSE. TS typecheck clean; Python pytest 191 passed.
docs: add CHANGELOG.md for spec-ts and spec-py (v2.0.0 + v2.0.1)
Wrap the Claris OData guide and reference implementation URLs in angle brackets in both CHANGELOG.md files to satisfy markdownlint MD034 (no-bare-urls). MD024 duplicate-heading warnings are left as-is: the repeated Added/Changed/Fixed headings are idiomatic for the Keep a Changelog format and a known false positive for that rule.
style: wrap bare URLs in CHANGELOG files (markdownlint MD034)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Release merge:
develop→mainfor the v2.0.1 patch release of@fms-odata/spec-tsand py-v2.0.1 offms-odata-spec.This release fixes incorrect DDL and webhook endpoint metadata that FileMaker Server rejects at runtime, plus brings the JSON capabilities manifest into parity with the TS/Python sources.
What changed (v2.0.1)
FileMaker_Tables/FileMaker_Indexes): switched from OData key-parentheses format (rejected by FMS with error-1010) to slash-separated paths.createIndexnow takes the table in the URL and{ indexName: <fieldName> }in the body.deleteIndexusesFileMaker_Indexes/{table}/{field}.Webhook.GetAll,Webhook.Get) are nowGET; the webhook id goes in the URL as an OData function argument (Webhook.Get(1)); the delete endpoint isWebhook.Delete(notWebhook.Remove);Webhook.Invokerequires a{ rowIDs: [...] }body.WebhookInvokeParams,WebhookCreateResult,webhookIDfield onWebhookData, optionalidparameter onwebhookPath().WebhookOperationnow usesDeleteinstead ofRemove.contentType(11 endpoints) andalsoMethods(4 endpoints) soschema/fms-odata-capabilities.jsonmatchessrc/endpoints.tsexactly.docs/09-webhooks.mdanddocs/10-schema-modification.mdwith the fixed URL formats and HTTP methods.CHANGELOG.mdfor both packages (2.0.0 + 2.0.1 entries); Python CHANGELOG included in the sdist.2.0.1.Commits on develop since main
3ecf670fix: correct DDL and webhook endpoint metadata (v2.0.1)ca2379dfix: add missing contentType to capabilities manifest endpoints4045b72fix: add missing alsoMethods to capabilities manifest endpointsfefe374Merge pull request fix: correct DDL and webhook endpoint metadata (v2.0.1) #8 from fsans/fix/ddl-webhookc080ac1docs: add CHANGELOG.md for spec-ts and spec-py (v2.0.0 + v2.0.1)ae94f2dMerge pull request docs: add CHANGELOG.md for spec-ts and spec-py (v2.0.0 + v2.0.1) #10 from fsans/docs/changelog-2.0.1Verification
npm run typecheck+npm run buildinpackages/fms-odata-spec-ts: clean.pytestinpackages/fms-odata-spec-py: 191 passed.schema/fms-odata-capabilities.jsonvalidated as well-formed JSON; endpoint parity check againstsrc/endpoints.tspasses (0 mismatches on contentType + alsoMethods).Post-merge release steps
After this PR merges to
main:v2.0.1(annotated) onmainfor the TS package —git tag -a v2.0.1 -m "v2.0.1".py-v2.0.1(annotated) onmainfor the Python package —git tag -a py-v2.0.1 -m "py-v2.0.1". Pushing this tag triggers.github/workflows/py-publish.yml→ auto-upload to PyPI.main+ both tags:git push origin main --tags.@fms-odata/spec-tsto npm manually from the tagged commit:cd packages/fms-odata-spec-ts && npm publish(no npm publish workflow exists, unlike PyPI).Test plan
v2.0.1andpy-v2.0.1annotated tags onmainpy-v2.0.1)npm publishfor@fms-odata/spec-ts@2.0.1