{"id":20832272,"url":"https://github.com/scbd/informea-connector-poc","last_synced_at":"2026-04-20T22:04:12.826Z","repository":{"id":148913269,"uuid":"314658591","full_name":"scbd/informea-connector-poc","owner":"scbd","description":null,"archived":false,"fork":false,"pushed_at":"2023-06-20T19:46:57.000Z","size":95,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-12-28T11:05:12.644Z","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/scbd.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-11-20T20:09:34.000Z","updated_at":"2023-06-20T19:47:02.000Z","dependencies_parsed_at":"2023-07-25T06:31:06.842Z","dependency_job_id":null,"html_url":"https://github.com/scbd/informea-connector-poc","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/scbd/informea-connector-poc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scbd%2Finformea-connector-poc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scbd%2Finformea-connector-poc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scbd%2Finformea-connector-poc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scbd%2Finformea-connector-poc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/scbd","download_url":"https://codeload.github.com/scbd/informea-connector-poc/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scbd%2Finformea-connector-poc/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32067637,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-20T21:26:33.338Z","status":"ssl_error","status_checked_at":"2026-04-20T21:26:22.081Z","response_time":94,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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-18T00:11:02.725Z","updated_at":"2026-04-20T22:04:12.808Z","avatar_url":"https://github.com/scbd.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# InforMEA Connector \n\n## Proof of Concept (PoC)\n\nThis proof of concept (PoC) code is to create an npm package that can be used to implement InforMEA protocol endpoints for partner MEAs into their existing infrastructure (temporarily or permanently). There is no need of a huge \u0026 complex OData library that requires complex development, backed by a SQL database with data synchronized etc. The connector can do live transformation i.e. bridging query to another system/data source (static files, solr, sql server, drupal api, existing webpage etc) to fit your infrastructure. \n\nThe library will provide OData query parser to an Abstract Syntax Tree (AST) object, which can be used to implement simple query (like: `$top` \u0026 `$skip`) or more complex query like (`$filter`, `$select` or `$orderBy`). It also provides agreed standard rendering format (ODta1 XML, JSON) etc.\n\nThe PoC shows subset of `Meeting` format. It allows rendering of result in OData1 XML and raw JSON format. The client chooses its preferred format by passing HTTP `Accept` headers with `application/xml` or `application/json` content type. the PoC respects weight client `Accept` syntax.\n\n* The `application/json` render simply uses `JSON.strignify` to render the feed/records to the client\n* The `application/xml` render is backed by [Handlebars](https://handlebarsjs.com/) text templating library into OData1 XML using partial xml templates.\n* It's possible to adapt it to other formats eg: ics/ical format for meetings to feed calendars\n\nThe PoC demonstrates 2 MEA meetings endpoints: CBD and IPPC. \n\n* https://informea-connector.cbddev.xyz/cbd/meetings returns CBD meetings directly from SCBD's solr index with support of `$top` \u0026 `$skip`\n\n* https://informea-connector.cbddev.xyz/ippc/meetings returns list of IPPC meetings by grabbing \u0026 parsing IPPC calendar html page! YES! the same page you look at: https://www.ippc.int/en/year/calendar/, the result is cached in memory. No OData query parameter is supported / implemented for this one. \n\n\u003e Important Note: SCBD does not recommend this html page parsing approach as a long term solution. The goal is to demonstrate a simple way of transforming any source (eg: html output for example a calendar on a webpage) to the InforMEA required OData format, with minimal efforts and resources. This option can be used quickly to parse and gather information from MEAs that have not made their data available to InforMEA yet. *Any changes in the format of the html page could break the extraction process!* For the longer term, it is ***highy***- recommended to find a more sustainable solution that would extract data directly from the source and present it through an API. \n\n## Example calls\n\n```bash\n# in xml\ncurl -H \"Accept: application/xml\" https://informea-connector.cbddev.xyz/cbd/meetings?$top=5\ncurl -H \"Accept: application/xml\" https://informea-connector.cbddev.xyz/cbd/meetings?$top=20\u0026skip=5\ncurl -H \"Accept: application/xml\" https://informea-connector.cbddev.xyz/ippc/meetings\n\n# in json\ncurl -H \"Accept: application/json\" https://informea-connector.cbddev.xyz/cbd/meetings?$top=5\ncurl -H \"Accept: application/json\" https://informea-connector.cbddev.xyz/ippc/meetings\n```\n\n## Sample mappers\n\n* [CBD Meeting](https://github.com/scbd/informea-connector-poc/blob/master/cbd/meetings.js)\n* [IPPC Meeting](https://github.com/scbd/informea-connector-poc/blob/master/ippc/meetings.js)\n\n## License\n\n[MIT](https://raw.githubusercontent.com/scbd/informea-connector-poc/master/LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscbd%2Finformea-connector-poc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscbd%2Finformea-connector-poc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscbd%2Finformea-connector-poc/lists"}