{"id":18750121,"url":"https://github.com/mindfiredigital/fmdapi-node-weaver","last_synced_at":"2025-11-26T15:30:18.420Z","repository":{"id":190391943,"uuid":"682522109","full_name":"mindfiredigital/fmdapi-node-weaver","owner":"mindfiredigital","description":null,"archived":false,"fork":false,"pushed_at":"2024-04-03T08:07:14.000Z","size":98,"stargazers_count":1,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-12-28T22:28:13.665Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/mindfiredigital.png","metadata":{"files":{"readme":"readme.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-08-24T10:59:57.000Z","updated_at":"2024-09-29T12:10:18.000Z","dependencies_parsed_at":"2023-08-24T13:02:08.254Z","dependency_job_id":"84a51ad7-9586-4809-ad11-a5c3fbaeef18","html_url":"https://github.com/mindfiredigital/fmdapi-node-weaver","commit_stats":null,"previous_names":["basudevbharatbhushan/node-data-api","mindfiredigital/fmdapi-node-weaver"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mindfiredigital%2Ffmdapi-node-weaver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mindfiredigital%2Ffmdapi-node-weaver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mindfiredigital%2Ffmdapi-node-weaver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mindfiredigital%2Ffmdapi-node-weaver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mindfiredigital","download_url":"https://codeload.github.com/mindfiredigital/fmdapi-node-weaver/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239635534,"owners_count":19672190,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-11-07T17:10:21.991Z","updated_at":"2025-11-26T15:30:18.377Z","avatar_url":"https://github.com/mindfiredigital.png","language":"JavaScript","readme":"\u003ch1 align=\"center\"\u003efmdapi-node-weaver \u003c/h1\u003e\u003cbr\u003e\u003cbr\u003e\n\u003cp align=\"center\"\u003e\n\u003c!-- \u003ca href=\"https://www.npmjs.com/package/@mindfiredigital/fmdapi-node-weaver\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/@mindfiredigital/fmdapi-node-weaver.svg?sanitize=true\" alt=\"Version\"\u003e\u003c/a\u003e\n\u003ca href=\"https://www.npmjs.com/package/@mindfiredigital/fmdapi-node-weaver\"\u003e\u003cimg src=\"https://img.shields.io/badge/PRs-welcome-brightgreen.svg\" alt=\"PRs\"\u003e\u003c/a\u003e --\u003e\n\u003c/p\u003e\n\n\u003cbr\u003e\n\n\u003cp align=\"center\"\u003e Simplify the integration of FileMaker databases with any frontend\u003c/p\u003e\n\nThe `@mindfiredigital/fmdapi-node-weaver` is a tool that allows developers to integrate multi page document editors built on top of Canvas using React.\n\n\u003cbr\u003e\n\n![FM_DataApi_Bundler_Image](https://github.com/BasudevBharatBhushan/node-data-api/assets/64151314/c225d6ac-2d87-4c28-84c7-a950a58d2d12)\n**NOTE:** : The endpoints shown in figure are for demo purpose, these are not actual endpoints. For actual Data API endpoint, refer documentation\n\n## Table of Contents\n\n- [Features](#features)\n- [Installation](#installation)\n- [Getting Started](#getting-started)\n- [Contributing](#contributing)\n- [License](#license)\n\n\u003cbr\u003e\n\n## Features\n\n- **No Mandatory Session Token**: Unlike the standard FileMaker Data API, the Bundler does not require a validated session token for every API call. It handles authentication using Basic Auth, generating a new session token if one is not provided or if the session has expired.\n\n- **Uniform API Endpoints**: Each API endpoint in the Bundler follows a consistent style, simplifying usage and reducing confusion. Regardless of the specific API functionality, you'll find a consistent method structure.\n\n- **Automatic Session Management**: Users don't need to worry about re-validating their session each time they interact with the API. The Bundler automatically manages sessions by using Basic Auth as an authentication header.\n\n\u003cbr\u003e\n\n## Installation\n\nTo install the @mindfiredigital/fmdapi-node-weaver npm package in your project, use the following command:\n\n```bash\nnpm install @mindfiredigital/fmdapi-node-weaver\n```\n\n- **Initialization**: Initialize the fmdapi-node-weaver in your project, specifying the function.\n\n```javascript\nconst fm = require(\"fmdapi-node-weaver\");\n\nconst PORT = 9000;\n\nfm.run(PORT);\n\n//If PORT is not specified, it will run on default port 8000\n```\n\n## Installation (Without using NPM)\n\nTo download the project `@mindfiredigital/fmdapi-node-weaver` into your system, use the following command:\n\n```bash\ngit clone https://github.com/mindfiredigital/fmdapi-node-weaver\n```\n\n\u003cbr\u003e\n\n## Getting Started\n\n- **Initialization**: Install the dependencies from the package.json:\n\n```bash\nnpm i\n```\n\nor\n\n```bash\nyarn\n```\n\n- **Launch the server**\n\n```bash\nnode app.js\n```\n\n\u003cbr\u003e\n\n## Docker Integration\n\nTo containerize your application using Docker, follow these steps:\n\n- **Build Docker Image**: Build the Docker image using the provided Dockerfile:\n\n```bash\ndocker build -t fmdapi-node-weaver .\n```\n\n- **Run Docker Container**: Run the Docker container, mapping the desired port (e.g., 3000) to the container's port:\n\n```bash\ndocker run -p 3000:3000 fmdapi-node-weaver\n```\n\n## API format:\n\n### Endpoint - `\u003cendpoint\u003eapi/dataApi`\n\n- eg. `http://localhost:8000/api/daApi`\n\n### Method - POST\n\n### Body Format\n\n```\n{\n    \"fmServer\":\"\u003cIpAddress\u003e\",\n    \"method\":\"\u003cmethodName\u003e\",\n    \"methodBody\":{\u003cmethod specific body\u003e},\n    \"session\":{\n        \"token\":\"\u003csessionToken\u003e\",\n        \"required\":\u003ctrue/false\u003e\n    }\n}\n\n```\n\n### Body Examples\n\n- ### Signin\n\n```\n{\n    \"fmServer\":\"\u003cIpAddress\u003e\",\n    \"method\":\"signin\",\n    \"methodBody\":{\n        \"username\":\"\u003cUsername\u003e\",\n        \"password\":\"\u003cPassword\u003e\",\n        \"database\":\"\u003cFilemaker_Filename\u003e\"\n    },\n    \"session\":{\n        \"token\":\"\u003csessionToken\u003e\",\n        \"required\":\u003ctrue/false\u003e\n    }\n\n}\n```\n\n- ### Signout\n\n```\n{\n    \"fmServer\":\"\u003cIpAddress\u003e\",\n    \"method\":\"signout\",\n    \"methodBody\":{\n        \"database\":\"\u003cFilemaker_Filename\u003e\",\n    },\n    \"session\":{\n        \"token\":\"\u003csessionToken\u003e\",\n        \"required\":\"\u003ctrue/false\u003e\"\n    }\n}\n```\n\n- ### CreateRecord\n\n```\n{\n    \"fmServer\":\"\u003cIpAddress\u003e\",\n    \"method\":\"createRecord\",\n    \"methodBody\":{\n        \"database\":\"\u003cFilemaker_Filename\u003e\",\n        \"layout\":\"\u003cLayout_Name\u003e\",\n        \"record\":{\n            \"Name\": \"Varun Sharma\",\n            \"Phone\": \"11111111111\",\n            \"Address\":\"Newyork\"\n        }\n\n    },\n    \"session\":{\n        \"token\":\"\u003csessionToken\u003e\",\n        \"required\":\u003ctrue/false\u003e\n    }\n}\n\n\n```\n\n- ### GetAllRecords\n\n```\n{\n    \"fmServer\": \"\u003cIpAddress\u003e\",\n    \"method\": \"getAllRecords\",\n    \"methodBody\": {\n        \"database\": \"\u003cFilemaker_Filename\u003e\",\n        \"layout\": \"\u003cLayout_Name\u003e\",\n        \"offset\":\"1\",\n        \"limit\": 10\n\n    },\n    \"session\": {\n        \"token\": \"\u003csessionToken\u003e\",\n        \"required\": \u003ctrue/false\u003e\n    }\n}\n```\n\n- ### FindRecord\n\n```\n{\n    \"fmServer\":\"\u003cIpAddress\u003e\",\n    \"method\":\"findRecord\",\n    \"methodBody\":{\n        \"database\":\"\u003cFilemaker_Filename\u003e\",\n        \"layout\":\"\u003cLayout_Name\u003e\",\n         \"offset\": 0,\n         \"limit\": 0,\n         \"layout.response\": \"string\",\n        \"dataformats\":0,\n        \"query\":[\n            {\"Name\": \"=Basudev\", \"Password\": \"=1234\"},\n             {\"Phone\" : \"11111111111\", \"omit\" : \"false\"}\n         ],\n        \"sort\":[\n             {\"fieldName\": \"CreationTimestamp\",\"sortOrder\": \"ascend\"}\n         ],\n        \"scripts\":{\n            \"script\": \"\u003cFM_Script1\u003e\",\n            \"script.param\": \"\u003cScript1_Param\u003e\"\n             \"script.prerequest\": \"\u003cFM_Script2\u003e\",\n             \"script.prerequest.param\": \"\u003cScript2_Param\u003e\",\n             \"script.presort\": \"\u003cFM_Script3\u003e\",\n             \"script.presort.param\": \"\u003cScript3_Param\u003e\"\n        },\n         \"portal\": [\n             \"\u003cPortalName\u003e\"\n         ]\n    },\n    \"session\":{\n        \"token\":\"\u003csessionToken\u003e\",\n        \"required\":\u003ctrue/false\u003e\n    }\n}\n```\n\n---\n\n- ### ExecuteScript\n\n```\n{\n    \"fmServer\":\"\u003cIpAddress\u003e\",\n    \"method\":\"executeScript\",\n    \"methodBody\":{\n        \"database\":\"\u003cFilemaker_Filename\u003e\",\n        \"layout\":\"\u003cLayout_Name\u003e\",\n        \"script\": \"\u003cScriptName\u003e\",\n        \"param\":\"\u003cScriptParam\u003e\"\n    },\n    \"session\":{\n        \"token\":\"\u003csessionToken\u003e\",\n        \"required\":\u003ctrue/false\u003e\n    }\n}\n```\n\n---\n\n- ### UploadContainer\n\n```bash\n\ncurl --location '\u003cendpoint\u003eapi/dataApi' \\\n--header 'Authorization: Basic \u003cBase64(username:password)\u003e' \\\n--form 'method=\"uploadContainer\"' \\\n--form 'fmServer=\"208.85.249.144\"' \\\n--form 'database=\"\u003cfileName\u003e\"' \\\n--form 'layout=\"\u003clayoutName\u003e\"' \\\n--form 'upload=@\"/to/path/sample.pdf\"' \\\n--form 'recordId=\"1\"' \\\n--form 'fieldName=\"File\"' \\\n--form 'fieldRepetition=\"1\"' \\\n--form 'token=\"\u003csession-token-optional\u003e\"' \\\n--form 'sessionRequired=\"\u003ctrue/false - optional\u003e\"' \\\n```\n\n---\n\n## Contributing\n\nWe welcome contributions from the community. If you'd like to contribute to the `fmdapi-node-weaver` npm package, please follow our [Contributing Guidelines](CONTRIBUTING.md).\n\u003cbr\u003e\n\n## License\n\nCopyright (c) Mindfire Digital llp. All rights reserved.\n\nLicensed under the MIT license.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmindfiredigital%2Ffmdapi-node-weaver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmindfiredigital%2Ffmdapi-node-weaver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmindfiredigital%2Ffmdapi-node-weaver/lists"}