{"id":24757874,"url":"https://github.com/opencdms/opencdms","last_synced_at":"2026-01-27T08:02:52.632Z","repository":{"id":40688152,"uuid":"391070882","full_name":"opencdms/opencdms","owner":"opencdms","description":"📌 Main OpenCDMS software (including installer)","archived":false,"fork":false,"pushed_at":"2025-06-29T14:05:33.000Z","size":27708,"stargazers_count":1,"open_issues_count":296,"forks_count":2,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-06-29T15:20:31.195Z","etag":null,"topics":["cdms","opencdms","python","wmo"],"latest_commit_sha":null,"homepage":"https://www.opencdms.org","language":"PLpgSQL","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/opencdms.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.rst","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.md","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-07-30T13:16:31.000Z","updated_at":"2025-06-29T14:05:38.000Z","dependencies_parsed_at":"2022-09-07T10:41:30.957Z","dependency_job_id":"c598ae10-7f4b-4639-8f85-ade0afa2de1f","html_url":"https://github.com/opencdms/opencdms","commit_stats":{"total_commits":21,"total_committers":2,"mean_commits":10.5,"dds":"0.47619047619047616","last_synced_commit":"b2619937d02f8a7998c27f5da41d83546504b2bd"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/opencdms/opencdms","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opencdms%2Fopencdms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opencdms%2Fopencdms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opencdms%2Fopencdms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opencdms%2Fopencdms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/opencdms","download_url":"https://codeload.github.com/opencdms/opencdms/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opencdms%2Fopencdms/sbom","scorecard":{"id":708976,"data":{"date":"2025-08-11","repo":{"name":"github.com/opencdms/opencdms","commit":"6563f90d70f7daebb61d1d3ea9ac16acd92c4052"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":2,"reason":"Found 4/15 approved changesets -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Info: Found linked content: SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: SECURITY.md:1","Info: Found text in security policy: SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Maintained","score":0,"reason":"1 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 21 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"34 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-g4m4-9q4c-mfw6","Warn: Project is vulnerable to: GHSA-q5fm-55c2-v6j9","Warn: Project is vulnerable to: GHSA-43qf-4rqw-9q2g","Warn: Project is vulnerable to: GHSA-7rxf-gvfg-47g4","Warn: Project is vulnerable to: GHSA-84pr-m4jr-85g5","Warn: Project is vulnerable to: GHSA-8vgw-p6qm-5gr7","Warn: Project is vulnerable to: PYSEC-2024-71 / GHSA-hxwh-jpp2-84pm","Warn: Project is vulnerable to: PYSEC-2020-43 / GHSA-xc3p-ff3m-f46v","Warn: Project is vulnerable to: GHSA-cpwx-vrp4-4pq7","Warn: Project is vulnerable to: GHSA-gmj6-6f8f-6699","Warn: Project is vulnerable to: GHSA-h5c8-rqwp-cp95","Warn: Project is vulnerable to: GHSA-h75v-3vvj-5mfj","Warn: Project is vulnerable to: GHSA-q2x7-8rv6-6q7h","Warn: Project is vulnerable to: PYSEC-2019-156 / GHSA-xp76-357g-9wqq","Warn: Project is vulnerable to: PYSEC-2023-102","Warn: Project is vulnerable to: PYSEC-2023-114","Warn: Project is vulnerable to: PYSEC-2021-421 / GHSA-h4m5-qpfp-3mpv","Warn: Project is vulnerable to: PYSEC-2018-66 / GHSA-562c-5r94-xh97","Warn: Project is vulnerable to: PYSEC-2019-179 / GHSA-5wv5-4vpf-pj6m","Warn: Project is vulnerable to: PYSEC-2023-62 / GHSA-m2qf-hxjv-5gpq","Warn: Project is vulnerable to: PYSEC-2019-217 / GHSA-462w-v97r-4m45","Warn: Project is vulnerable to: PYSEC-2014-8 / GHSA-8r7q-cvjq-x353","Warn: Project is vulnerable to: PYSEC-2014-82 / GHSA-fqh9-2qgg-h84h","Warn: Project is vulnerable to: PYSEC-2021-66 / GHSA-g3rq-g295-4j3m","Warn: Project is vulnerable to: PYSEC-2019-220 / GHSA-hj2j-77xm-mc5v","Warn: Project is vulnerable to: PYSEC-2021-47 / GHSA-5jqp-qgf6-3pvh","Warn: Project is vulnerable to: GHSA-mr82-8j83-vxmv","Warn: Project is vulnerable to: PYSEC-2021-142 / GHSA-8q59-q68h-6hv4","Warn: Project is vulnerable to: PYSEC-2018-49 / GHSA-rprw-h62v-c2w7","Warn: Project is vulnerable to: PYSEC-2014-14 / GHSA-652x-xj99-gmcc","Warn: Project is vulnerable to: GHSA-9hjg-9r4m-mvj7","Warn: Project is vulnerable to: GHSA-9wx4-h78v-vm56","Warn: Project is vulnerable to: PYSEC-2014-13 / GHSA-cfj3-7x9c-4p3h","Warn: Project is vulnerable to: PYSEC-2018-28 / GHSA-x84v-xcm2-53pg"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: containerImage not pinned by hash: install/containers/api/Dockerfile:1: pin your Docker image by updating wmoim/dim_eccodes_baseimage:2.28.0 to wmoim/dim_eccodes_baseimage:2.28.0@sha256:5da2a5e45d2119dbd30fd02decf7be1e9a6d8552acf1fcfd6deeabd36f1c047f","Warn: containerImage not pinned by hash: install/containers/mosquitto/Dockerfile:1: pin your Docker image by updating eclipse-mosquitto to eclipse-mosquitto@sha256:d219d3a72847f3aed6a1d66975972d3b17f86e39e8f6f6b86b4088b879c1a2d6","Warn: containerImage not pinned by hash: install/containers/nginx/Dockerfile:1: pin your Docker image by updating nginx:latest to nginx:latest@sha256:33e0bbc7ca9ecf108140af6288c7c9d1ecc77548cbfd3952fd8466a75edefe57","Warn: containerImage not pinned by hash: install/containers/timescaledb/Dockerfile:1: pin your Docker image by updating timescale/timescaledb-ha:pg14-latest to timescale/timescaledb-ha:pg14-latest@sha256:19eb9276ee367411728e768217120e55300ac9c3bb5eadcf47aa5ded627f6db1","Warn: containerImage not pinned by hash: opencdms/db/docker/Dockerfile:1: pin your Docker image by updating timescale/timescaledb-ha:pg12-latest to timescale/timescaledb-ha:pg12-latest@sha256:d43e0e9e21862310f5be75d09237df81719e908dcb106fe007323748c8375153","Warn: containerImage not pinned by hash: opencdms/db/docker/Dockerfile.clide:1: pin your Docker image by updating postgres:13 to postgres:13@sha256:27236001f2a4ae9fb6e1768b93bd1ae2bdd8b391642341606ddf3bdaab223711","Warn: containerImage not pinned by hash: opencdms/db/docker/Dockerfile.climsoft-4.1.1:1: pin your Docker image by updating mariadb:10.1 to mariadb:10.1@sha256:1205b21b713812a6ba9fb59df206017dc06976fe68e172fbc6d153d7a4e13dfe","Warn: containerImage not pinned by hash: opencdms/db/docker/Dockerfile.mch-english:1: pin your Docker image by updating mariadb:10.1 to mariadb:10.1@sha256:1205b21b713812a6ba9fb59df206017dc06976fe68e172fbc6d153d7a4e13dfe","Warn: containerImage not pinned by hash: opencdms/db/docker/Dockerfile.midas:1: pin your Docker image by updating oracleinanutshell/oracle-xe-11g to oracleinanutshell/oracle-xe-11g@sha256:8b740e77d4b90add693fedb22938f340821e89665fb58ecaeeb0dace853b9ee5","Warn: containerImage not pinned by hash: opencdms/db/docker/Dockerfile.surface:1: pin your Docker image by updating timescale/timescaledb-postgis:2.3.0-pg13 to timescale/timescaledb-postgis:2.3.0-pg13@sha256:7a742a575416eafd8479dcac205846797583bc1bd53c18ffaf707f40bbe9b03e","Warn: containerImage not pinned by hash: opencdms/db/docker/Dockerfile.wmdr:1: pin your Docker image by updating timescale/timescaledb-postgis:latest-pg12 to timescale/timescaledb-postgis:latest-pg12@sha256:7758704d4a1482f64178b3ec545a2a12111087a6b5b50ae2b9a091c2d529888c","Warn: containerImage not pinned by hash: opencdms/db/docker/groups/Dockerfile.mysql:1: pin your Docker image by updating mariadb:10.1 to mariadb:10.1@sha256:1205b21b713812a6ba9fb59df206017dc06976fe68e172fbc6d153d7a4e13dfe","Warn: containerImage not pinned by hash: opencdms/db/docker/groups/Dockerfile.oracle:1: pin your Docker image by updating opencdms/oracle-xe-11g to opencdms/oracle-xe-11g@sha256:8b740e77d4b90add693fedb22938f340821e89665fb58ecaeeb0dace853b9ee5","Warn: containerImage not pinned by hash: opencdms/db/docker/groups/Dockerfile.postgresql:1: pin your Docker image by updating postgres:13 to postgres:13@sha256:27236001f2a4ae9fb6e1768b93bd1ae2bdd8b391642341606ddf3bdaab223711","Warn: pipCommand not pinned by hash: install/containers/api/Dockerfile:14-20","Warn: pipCommand not pinned by hash: install/containers/api/Dockerfile:14-20","Warn: pipCommand not pinned by hash: install/containers/api/Dockerfile:14-20","Warn: pipCommand not pinned by hash: install/containers/api/Dockerfile:26","Warn: pipCommand not pinned by hash: install/containers/api/Dockerfile:29","Warn: pipCommand not pinned by hash: .devcontainer/postCreate.sh:19","Warn: pipCommand not pinned by hash: .devcontainer/postCreate.sh:33","Warn: pipCommand not pinned by hash: .devcontainer/postCreate.sh:34","Info:   0 out of  14 containerImage dependencies pinned","Info:   0 out of   8 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}}]},"last_synced_at":"2025-08-22T07:35:36.156Z","repository_id":40688152,"created_at":"2025-08-22T07:35:36.156Z","updated_at":"2025-08-22T07:35:36.156Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28809336,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-27T07:41:26.337Z","status":"ssl_error","status_checked_at":"2026-01-27T07:41:08.776Z","response_time":168,"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":["cdms","opencdms","python","wmo"],"created_at":"2025-01-28T15:36:45.718Z","updated_at":"2026-01-27T08:02:52.626Z","avatar_url":"https://github.com/opencdms.png","language":"PLpgSQL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OpenCDMS\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![License: CC BY-SA 4.0](https://img.shields.io/badge/License-CC%20BY--SA%204.0-lightgrey.svg)](https://creativecommons.org/licenses/by-sa/4.0/)\n\n## Notices\n\n📌 **OpenCDMS is not a complete [Climate Data Management System (CDMS)](https://library.wmo.int/index.php?lvl=notice_display\u0026id=16300) for users. Instead it is a reuable package/library for CDMS developers**\n\n📌 OpenCDMS is intentionally minimal, it includes the importable `opencdms` Python package and a Python web server based on [pygeoapi](http://pygeoapo.io). Other complete CDMS solutions may add extra capabilities that would be needed to use the software in production\n\n📌 OpenCDMS supports the [WMO Task Team on Climate Data Model (TT-CDM)](https://community.wmo.int/en/governance/commission-membership/commission-observation-infrastructure-and-information-systems-infcom/standing-committee-information-management-and-technology-sc-imt/expert-team-metadata-standards-et-metadata/task-team-climate-data-model-tt-cdm) by providing a Reference Implementation of the [WMO Core Climate Data Model - Observations (WCCDM-OBS)](https://meetings.wmo.int/INFCOM-3/_layouts/15/WopiFrame.aspx?sourcedoc=%7B3A36E4BF-D1B5-4CDC-BF80-89359C115420%7D\u0026file=INFCOM-3-INF08-3(6a)-EXPERIMENTAL-CLIMATE-DATA-MODEL_en.docx) and related standards\n\n📌 OpenCDMS also aims to support the [WMO Task Team on Information Management (ET-IM)](https://community.wmo.int/en/governance/commission-membership/commission-observation-infrastructure-and-information-systems-infcom/standing-committee-information-management-and-technology-sc-imt/expert-team-information-management-et-im) by providing a Reference Implementation of standardised web APIs for interacting with WCCDM-OBS and related standards, built on [OGC APIs](https://ogcapi.ogc.org) including [OGC API - Environmental Data Retrieval](https://ogcapi.ogc.org/edr/) and [OGC API - Processes](https://ogcapi.ogc.org/processes/).\n\n📚 For more information, please see [docs.opencdms.org](https://docs.opencdms.org).\n\n\n## Installation\n\nDetails will be added on:\n\na) Using OpenCDMS as a Python server implementation of WCCDM-OBS and related standards\n\nb) Installing OpenCDMS as an importable Python package\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopencdms%2Fopencdms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopencdms%2Fopencdms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopencdms%2Fopencdms/lists"}