{"id":18486596,"url":"https://github.com/open-horizon/examples","last_synced_at":"2026-04-14T20:01:24.365Z","repository":{"id":27433128,"uuid":"113893138","full_name":"open-horizon/examples","owner":"open-horizon","description":"Code examples you can use with Horizon.","archived":false,"fork":false,"pushed_at":"2026-04-09T20:41:43.000Z","size":28198,"stargazers_count":40,"open_issues_count":48,"forks_count":67,"subscribers_count":16,"default_branch":"master","last_synced_at":"2026-04-09T22:23:02.103Z","etag":null,"topics":["coding-examples","edge-computing","hacktoberfest","open-horizon","services"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/open-horizon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null,"notice":null,"maintainers":"MAINTAINERS.md","copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-12-11T18:21:11.000Z","updated_at":"2026-01-22T19:42:50.000Z","dependencies_parsed_at":"2024-05-10T22:37:01.753Z","dependency_job_id":"1a2d4b09-80c5-4c49-8882-351506fafaa4","html_url":"https://github.com/open-horizon/examples","commit_stats":null,"previous_names":[],"tags_count":69,"template":false,"template_full_name":null,"purl":"pkg:github/open-horizon/examples","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-horizon%2Fexamples","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-horizon%2Fexamples/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-horizon%2Fexamples/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-horizon%2Fexamples/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/open-horizon","download_url":"https://codeload.github.com/open-horizon/examples/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-horizon%2Fexamples/sbom","scorecard":{"id":667005,"data":{"date":"2025-08-11","repo":{"name":"github.com/open-horizon/examples","commit":"502381aec5a7d57c6eeb80f1f34f53d8ecede300"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.2,"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":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","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":"Code-Review","score":10,"reason":"all changesets reviewed","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":"Maintained","score":0,"reason":"0 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":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/pr-test.yml:1","Info: no jobLevel write permissions found"],"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":"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":4,"reason":"binaries present in source code","details":["Warn: binary detected: edge/services/hellok8sMMS/k8s_mms_helper/service:1","Warn: binary detected: edge/services/hotword_detection/__pycache__/snowboydecoder.cpython-37.pyc:1","Warn: binary detected: edge/services/hotword_detection/__pycache__/snowboydetect.cpython-37.pyc:1","Warn: binary detected: edge/services/hotword_detection/_snowboydetect.so:1","Warn: binary detected: edge/services/weatherstation/weewx/flask_server.pyc:1","Warn: binary detected: edge/services/weatherstation/weewx/weewx_mod.pyc:1"],"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.txt:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE.txt: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":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v2.31.0-1657 not signed: https://api.github.com/repos/open-horizon/examples/releases/206259643","Warn: release artifact v2.31.0-1657 does not have provenance: https://api.github.com/repos/open-horizon/examples/releases/206259643"],"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":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: github.com/open-horizon/.github/SECURITY.md:1","Info: Found linked content: github.com/open-horizon/.github/SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: github.com/open-horizon/.github/SECURITY.md:1","Info: Found text in security policy: github.com/open-horizon/.github/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":"Vulnerabilities","score":8,"reason":"2 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GO-2025-3595 / GHSA-vvgc-356p-c3xw","Warn: Project is vulnerable to: GO-2025-3372 / GHSA-6wxm-mpqj-6jpf"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pr-test.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/open-horizon/examples/pr-test.yml/master?enable=pin","Warn: containerImage not pinned by hash: edge/evtstreams/cpu2evtstreams/Dockerfile.amd64:1: pin your Docker image by updating alpine:latest to alpine:latest@sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1","Warn: containerImage not pinned by hash: edge/evtstreams/cpu2evtstreams/Dockerfile.arm:1: pin your Docker image by updating arm32v6/alpine:latest to arm32v6/alpine:latest@sha256:6a9fa0745740553f25ba0849ac37cbb501b17a445632b31ecf142c7aa112eaab","Warn: containerImage not pinned by hash: edge/evtstreams/cpu2evtstreams/Dockerfile.arm64:1: pin your Docker image by updating arm64v8/alpine:latest to arm64v8/alpine:latest@sha256:d7641d4e055534bdac03070d3223d064999a9f2296598ec5122b66ceec18887b","Warn: containerImage not pinned by hash: edge/evtstreams/sdr2evtstreams/Dockerfile.amd64:1","Warn: containerImage not pinned by hash: edge/evtstreams/sdr2evtstreams/Dockerfile.amd64:31: pin your Docker image by updating ubuntu:18.04 to ubuntu:18.04@sha256:152dc042452c496007f07ca9127571cb9c29697f42acbfad72324b2bb2e43c98","Warn: containerImage not pinned by hash: edge/evtstreams/sdr2evtstreams/Dockerfile.arm:1","Warn: containerImage not pinned by hash: edge/evtstreams/sdr2evtstreams/Dockerfile.arm:30: pin your Docker image by updating arm32v7/ubuntu:18.04 to arm32v7/ubuntu:18.04@sha256:f9d8624e98e31a551d490e0bc3e1ea76319974ddae819c641be1158857b3ddc7","Warn: containerImage not pinned by hash: edge/evtstreams/sdr2evtstreams/Dockerfile.arm64:1","Warn: containerImage not pinned by hash: edge/evtstreams/sdr2evtstreams/Dockerfile.arm64:30: pin your Docker image by updating arm64v8/ubuntu:18.04 to arm64v8/ubuntu:18.04@sha256:f97a5103cca28097326814718e711c9c41b54853c26959d73495e40b1dd608f2","Warn: containerImage not pinned by hash: edge/evtstreams/watson_speech2text/Dockerfile.arm:1: pin your Docker image by updating arm32v7/ubuntu:18.04 to arm32v7/ubuntu:18.04@sha256:f9d8624e98e31a551d490e0bc3e1ea76319974ddae819c641be1158857b3ddc7","Warn: containerImage not pinned by hash: edge/services/audio2text/Dockerfile.arm:1: pin your Docker image by updating ubuntu:bionic to ubuntu:bionic@sha256:152dc042452c496007f07ca9127571cb9c29697f42acbfad72324b2bb2e43c98","Warn: containerImage not pinned by hash: edge/services/cpu_percent/Dockerfile:1: pin your Docker image by updating alpine:latest to alpine:latest@sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1","Warn: containerImage not pinned by hash: edge/services/cpu_percent/Dockerfile.riscv64:1: pin your Docker image by updating riscv64/debian:sid-slim to riscv64/debian:sid-slim@sha256:8c76ed7a69ebf4792d8e12f0c0fef562adce0b544ddea79ba741ef989d2eaa72","Warn: containerImage not pinned by hash: edge/services/fft_client/Dockerfile:5","Warn: containerImage not pinned by hash: edge/services/fft_client/Dockerfile:28","Warn: containerImage not pinned by hash: edge/services/fft_server/Dockerfile:5","Warn: containerImage not pinned by hash: edge/services/fft_server/Dockerfile:28","Warn: containerImage not pinned by hash: edge/services/fft_server/test-client/Dockerfile:1","Warn: containerImage not pinned by hash: edge/services/fft_server/test-client/Dockerfile:11: pin your Docker image by updating alpine to alpine@sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1","Warn: containerImage not pinned by hash: edge/services/gps/Dockerfile:14","Warn: containerImage not pinned by hash: edge/services/gps/Dockerfile:28: pin your Docker image by updating alpine:latest to alpine:latest@sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1","Warn: containerImage not pinned by hash: edge/services/gps/Dockerfile.riscv64:20: pin your Docker image by updating maiquanghiep/go:1.14.2 to maiquanghiep/go:1.14.2@sha256:24ecf20b9d6804d8cf1aaf67ebafaa963b9eb822472dec778d34aa012dce577e","Warn: containerImage not pinned by hash: edge/services/gps/Dockerfile.riscv64:34: pin your Docker image by updating riscv64/debian:sid-slim to riscv64/debian:sid-slim@sha256:8c76ed7a69ebf4792d8e12f0c0fef562adce0b544ddea79ba741ef989d2eaa72","Warn: containerImage not pinned by hash: edge/services/helloMMS/Dockerfile:1: pin your Docker image by updating alpine:latest to alpine:latest@sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1","Warn: containerImage not pinned by hash: edge/services/helloSecretWorld/Dockerfile:1: pin your Docker image by updating alpine:latest to alpine:latest@sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1","Warn: containerImage not pinned by hash: edge/services/hellok8sMMS/k8s_mms_consumer/Dockerfile:1: pin your Docker image by updating alpine:latest to alpine:latest@sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1","Warn: containerImage not pinned by hash: edge/services/hellok8sMMS/k8s_mms_helper/Dockerfile:1: pin your Docker image by updating alpine:latest to alpine:latest@sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1","Warn: containerImage not pinned by hash: edge/services/helloworld/Dockerfile:1: pin your Docker image by updating alpine:latest to alpine:latest@sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1","Warn: containerImage not pinned by hash: edge/services/helloworld/Dockerfile.riscv64:1: pin your Docker image by updating carlosedp/busybox:latest to carlosedp/busybox:latest@sha256:13d89c8a9fe2a8de9fda82d5078501b7559fee9c185fd0cbd099e55b71ec8ce3","Warn: containerImage not pinned by hash: edge/services/hotword_detection/Dockerfile.arm:1: pin your Docker image by updating arm32v7/ubuntu:18.04 to arm32v7/ubuntu:18.04@sha256:f9d8624e98e31a551d490e0bc3e1ea76319974ddae819c641be1158857b3ddc7","Warn: containerImage not pinned by hash: edge/services/mqtt2kafka/Dockerfile.arm:1: pin your Docker image by updating arm32v6/alpine:latest to arm32v6/alpine:latest@sha256:6a9fa0745740553f25ba0849ac37cbb501b17a445632b31ecf142c7aa112eaab","Warn: containerImage not pinned by hash: edge/services/mqtt_broker/Dockerfile:1: pin your Docker image by updating alpine:latest to alpine:latest@sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1","Warn: containerImage not pinned by hash: edge/services/pi3_streamer/Dockerfile.arm:6: pin your Docker image by updating openhorizon/mjpg-streamer-pi3:20180306 to openhorizon/mjpg-streamer-pi3:20180306@sha256:95b51c095ef81c7d5f470b50f423cce77a37c6d4c9cd3d191ad500c036dae1ac","Warn: containerImage not pinned by hash: edge/services/processtext/Dockerfile.arm:1: pin your Docker image by updating alpine:latest to alpine:latest@sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1","Warn: containerImage not pinned by hash: edge/services/sdr/Dockerfile.amd64:1","Warn: containerImage not pinned by hash: edge/services/sdr/Dockerfile.amd64:10","Warn: containerImage not pinned by hash: edge/services/sdr/Dockerfile.amd64:20: pin your Docker image by updating alpine:latest to alpine:latest@sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1","Warn: containerImage not pinned by hash: edge/services/sdr/Dockerfile.arm:1","Warn: containerImage not pinned by hash: edge/services/sdr/Dockerfile.arm:10","Warn: containerImage not pinned by hash: edge/services/sdr/Dockerfile.arm:20: pin your Docker image by updating arm32v6/alpine:latest to arm32v6/alpine:latest@sha256:6a9fa0745740553f25ba0849ac37cbb501b17a445632b31ecf142c7aa112eaab","Warn: containerImage not pinned by hash: edge/services/sdr/Dockerfile.arm64:1","Warn: containerImage not pinned by hash: edge/services/sdr/Dockerfile.arm64:10","Warn: containerImage not pinned by hash: edge/services/sdr/Dockerfile.arm64:20: pin your Docker image by updating arm64v8/alpine:latest to arm64v8/alpine:latest@sha256:d7641d4e055534bdac03070d3223d064999a9f2296598ec5122b66ceec18887b","Warn: containerImage not pinned by hash: edge/services/speedtest/Dockerfile.amd64:1: pin your Docker image by updating amd64/python:3-alpine to amd64/python:3-alpine@sha256:f264c39e0e4a0b3a2064414197653f8218759bc721d5b41c79ea07cb923972a4","Warn: containerImage not pinned by hash: edge/services/speedtest/Dockerfile.arm:1: pin your Docker image by updating arm32v6/python:3-alpine to arm32v6/python:3-alpine@sha256:a75339d6e1a3321e8155e9836d73ec8aa3ccd4dbf953c62d03e2943c844b5aca","Warn: containerImage not pinned by hash: edge/services/speedtest/Dockerfile.arm64:1: pin your Docker image by updating arm64v8/python:3-alpine to arm64v8/python:3-alpine@sha256:de5cb2ef9aeb3a3c2282772ddac24e2f5db584864723ac111bd4460e44f0842c","Warn: containerImage not pinned by hash: edge/services/stopword_removal/Dockerfile.arm:1: pin your Docker image by updating arm32v7/python:2.7-alpine3.9 to arm32v7/python:2.7-alpine3.9@sha256:899fba0704e9118a15ac9227d689d719bbe9881e6ed0ab1cfdbb8cae7fe14660","Warn: containerImage not pinned by hash: edge/services/text2speech/Dockerfile.arm:1: pin your Docker image by updating ubuntu:bionic to ubuntu:bionic@sha256:152dc042452c496007f07ca9127571cb9c29697f42acbfad72324b2bb2e43c98","Warn: containerImage not pinned by hash: edge/services/voice2audio/Dockerfile.arm:1: pin your Docker image by updating ubuntu:bionic to ubuntu:bionic@sha256:152dc042452c496007f07ca9127571cb9c29697f42acbfad72324b2bb2e43c98","Warn: containerImage not pinned by hash: edge/services/volantmq/Dockerfile:3","Warn: containerImage not pinned by hash: edge/services/volantmq/Dockerfile:22","Warn: containerImage not pinned by hash: edge/services/weatherstation/Dockerfile.amd64:2: pin your Docker image by updating alpine:latest to alpine:latest@sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1","Warn: containerImage not pinned by hash: edge/services/weatherstation/Dockerfile.arm:2: pin your Docker image by updating alpine:latest to alpine:latest@sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1","Warn: containerImage not pinned by hash: edge/wiotp/cpu2wiotp/Dockerfile.amd64:1: pin your Docker image by updating alpine:latest to alpine:latest@sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1","Warn: containerImage not pinned by hash: edge/wiotp/cpu2wiotp/Dockerfile.arm:1: pin your Docker image by updating arm32v6/alpine:latest to arm32v6/alpine:latest@sha256:6a9fa0745740553f25ba0849ac37cbb501b17a445632b31ecf142c7aa112eaab","Warn: containerImage not pinned by hash: edge/wiotp/cpu2wiotp/Dockerfile.arm64:1","Warn: containerImage not pinned by hash: edge/wiotp/netspeed2wiotp/Dockerfile.amd64:1: pin your Docker image by updating alpine:latest to alpine:latest@sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1","Warn: containerImage not pinned by hash: edge/wiotp/netspeed2wiotp/Dockerfile.arm:1","Warn: containerImage not pinned by hash: edge/wiotp/netspeed2wiotp/Dockerfile.arm64:1","Warn: containerImage not pinned by hash: edge/wiotp/pi3streamer2wiotp/Dockerfile.arm:1","Warn: containerImage not pinned by hash: edge/wiotp/pws2wiotp/Dockerfile.amd64:1: pin your Docker image by updating alpine:latest to alpine:latest@sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1","Warn: containerImage not pinned by hash: edge/wiotp/pws2wiotp/Dockerfile.arm:1: pin your Docker image by updating alpine:latest to alpine:latest@sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1","Warn: containerImage not pinned by hash: edge/wiotp/speedtest2wiotp/Dockerfile.amd64:1: pin your Docker image by updating amd64/python:3-alpine to amd64/python:3-alpine@sha256:f264c39e0e4a0b3a2064414197653f8218759bc721d5b41c79ea07cb923972a4","Warn: containerImage not pinned by hash: edge/wiotp/speedtest2wiotp/Dockerfile.arm:1: pin your Docker image by updating arm32v6/python:3-alpine to arm32v6/python:3-alpine@sha256:a75339d6e1a3321e8155e9836d73ec8aa3ccd4dbf953c62d03e2943c844b5aca","Warn: containerImage not pinned by hash: edge/wiotp/speedtest2wiotp/Dockerfile.arm64:1: pin your Docker image by updating arm64v8/python:3-alpine to arm64v8/python:3-alpine@sha256:de5cb2ef9aeb3a3c2282772ddac24e2f5db584864723ac111bd4460e44f0842c","Warn: goCommand not pinned by hash: edge/evtstreams/sdr2evtstreams/Dockerfile.amd64:21","Warn: goCommand not pinned by hash: edge/evtstreams/sdr2evtstreams/Dockerfile.amd64:22","Warn: goCommand not pinned by hash: edge/evtstreams/sdr2evtstreams/Dockerfile.arm:21","Warn: goCommand not pinned by hash: edge/evtstreams/sdr2evtstreams/Dockerfile.arm:23","Warn: goCommand not pinned by hash: edge/evtstreams/sdr2evtstreams/Dockerfile.arm64:21","Warn: goCommand not pinned by hash: edge/evtstreams/sdr2evtstreams/Dockerfile.arm64:23","Warn: pipCommand not pinned by hash: edge/evtstreams/watson_speech2text/Dockerfile.arm:3-6","Warn: pipCommand not pinned by hash: edge/services/audio2text/Dockerfile.arm:3-6","Warn: pipCommand not pinned by hash: edge/services/hotword_detection/Dockerfile.arm:3-6","Warn: goCommand not pinned by hash: edge/services/sdr/Dockerfile.amd64:12","Warn: goCommand not pinned by hash: edge/services/sdr/Dockerfile.arm:12","Warn: goCommand not pinned by hash: edge/services/sdr/Dockerfile.arm64:12","Warn: pipCommand not pinned by hash: edge/services/speedtest/Dockerfile.amd64:8","Warn: pipCommand not pinned by hash: edge/services/speedtest/Dockerfile.amd64:11","Warn: pipCommand not pinned by hash: edge/services/speedtest/Dockerfile.arm:8","Warn: pipCommand not pinned by hash: edge/services/speedtest/Dockerfile.arm:11","Warn: pipCommand not pinned by hash: edge/services/speedtest/Dockerfile.arm64:8","Warn: pipCommand not pinned by hash: edge/services/speedtest/Dockerfile.arm64:11","Warn: goCommand not pinned by hash: edge/services/volantmq/Dockerfile:11-13","Warn: goCommand not pinned by hash: edge/services/volantmq/Dockerfile:11-13","Warn: pipCommand not pinned by hash: edge/services/weatherstation/Dockerfile.amd64:8","Warn: pipCommand not pinned by hash: edge/services/weatherstation/Dockerfile.arm:8","Warn: pipCommand not pinned by hash: edge/wiotp/netspeed2wiotp/Dockerfile.amd64:7","Warn: pipCommand not pinned by hash: edge/wiotp/netspeed2wiotp/Dockerfile.arm:7","Warn: pipCommand not pinned by hash: edge/wiotp/netspeed2wiotp/Dockerfile.arm64:7","Info:   0 out of   1 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of  65 containerImage dependencies pinned","Info:   3 out of  14 goCommand dependencies pinned","Info:   0 out of  14 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-21T18:24:39.159Z","repository_id":27433128,"created_at":"2025-08-21T18:24:39.160Z","updated_at":"2025-08-21T18:24:39.160Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31812977,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T18:05:02.291Z","status":"ssl_error","status_checked_at":"2026-04-14T18:05:01.765Z","response_time":153,"last_error":"SSL_read: 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":["coding-examples","edge-computing","hacktoberfest","open-horizon","services"],"created_at":"2024-11-06T12:49:39.771Z","updated_at":"2026-04-14T20:01:24.347Z","avatar_url":"https://github.com/open-horizon.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"![open-horizon-logo](image/open-horizon-color.png)\n\n# Getting Started\n\n## Documentation\n\n**Open Horizon documentation repository coming soon!** For the time being, you can learn more about [Open Horizon here](https://www.ibm.com/support/knowledgecenter/SSFKVV_4.2/kc_welcome_containers.html).\n\n## Management Hub Installation\n\nBefore you can publish and use any of the services in this repository, you must first deploy your own Horizon Management Hub. This can be done with one simple command using the `deploy-mgmt-hub.sh` script located in the [devops repository](https://github.com/open-horizon/devops/tree/master/mgmt-hub#horizon-management-hub). This will give you a management hub with several services, policies and patterns published in the exchange.\n\n## Register an Edge Node with your Mangement Hub\n\nIn order to deploy a service to an edge node it must first be registered with a management hub. The `agent-install.sh` script is a fast and easy way to register an edge node with a management hub. More information can be found in the [open-horizon/anax](https://github.com/open-horizon/anax/tree/master/agent-install#edge-node-agent-install) repository. Edge nodes can be either a device or a cluster. Open Horizon edge cluster capability helps you manage and deploy workloads from a management hub cluster to remote instances of OpenShift® Container Platform or other Kubernetes-based clusters.\n\nTypically, **edge devices** have a prescriptive purpose, provide (often limited) compute capabilities, and are located near or at the data source. Currently supported edge device OS and architectures:\n\n* x86_64\n  * Linux x86_64 devices or virtual machines that run Ubuntu 20.x (focal), Ubuntu 18.x (bionic), Debian 10 (buster), Debian 9 (stretch)\n  * Red Hat Enterprise Linux® 8.x and 9.x\n  * Fedora Workstation 32 - 37\n  * CentOS 8.x\n  * SuSE 15 SP2\n* ppc64le (support starting Horizon version 2.28)\n  * Red Hat Enterprise Linux® 7.9\n* ARM (32-bit)\n  * Linux on ARM (32-bit), for example Raspberry Pi, running Raspberry Pi OS buster or stretch\n* ARM (64-bit)\n  * Linux on ARM (64-bit), for example NVIDIA Jetson Nano, TX1, or TX2, running Ubuntu 18.x (bionic) or Raspberry Pi OS 64bit\n* Mac\n  * macOS (Intel)\n\nOpen Horizon **edge cluster** capability helps you manage and deploy workloads from a management hub cluster to remote instances of OpenShift® Container Platform or other Kubernetes-based clusters. Edge clusters are edge nodes that are Kubernetes clusters. An edge cluster enables use cases at the edge, which require colocation of compute with business operations, or that require more scalability, availability, and compute capability than what can be supported by an edge device. Further, it is not uncommon for edge clusters to provide application services that are needed to support services running on edge devices due to their close proximity to edge devices. Open Horizon deploys edge services to an edge cluster, via a Kubernetes operator, enabling the same autonomous deployment mechanisms used with edge devices. The full power of Kubernetes as a container management platform is available for edge services that are deployed by Open Horizon. Currently supported edge cluster architectures:\n\n* [OCP on x86_64 platforms](https://docs.openshift.com/container-platform/4.5/welcome/index.html)\n* [K3s - Lightweight Kubernetes](https://rancher.com/docs/k3s/latest/en/)\n* [MicroK8s](https://microk8s.io/docs) on Ubuntu 18.04 (for development and test, not recommended for production)\n\nCurrently there is only one example service in this repository that is designed to run on an edge cluster and that is the [nginx-operator](edge/services/nginx-operator).\n\n# Example Services\n\nDuring the management hub installation, several services should have been published into the exchange automatically. The following three command will list the services, patterns, and deployment policies available in your exchange:\n\n```sh\nhzn exchange service list IBM/\nhzn exchange pattern list IBM/\nhzn exchange deployment listpolicy\n```\n\n**Note:** The above commands assume you have the Horizon environment variables `HZN_ORG_ID` and `HZN_EXCHANGE_USER_AUTH` set.\n\nYou can find a list of available edge services in this repository located in the [edge/services](edge/services) directory. For the most part, each of the services are broken up into micro-services designed to accomplish one specific task. This makes them easier to incorporate into a wide variety of \"top-level\" services.\n\nA good example of a \"top-level\" service is [cpu2evtstreams](edge/evtstreams/cpu2evtstreams), which has two dependent services ([cpu_percent](edge/services/cpu_percent), and [gps](edge/services/gps)). It uses these two micro-services to gather information about the edge node it is running on and sends it to an instance of IBM Event Streams using `kafkacat`.\n\nEdge examples specific to the Watson IoT Platform are found in [edge/wiotp](edge/wiotp). These examples are not being maintained.\n\nThe backend infrastructure for the `sdr2evtstreams` service has been deprecated and removed from this repo. If you wish to access the most recent version, you can find it in the [deprecated_cloud_sdr_example](https://github.com/open-horizon/examples/tree/deprecated_cloud_sdr_example) branch or any open-horizon/examples release v2.30.0-934 or older.\n\n# Using Example Services\n\nEach example service in this repo has a [README](edge/services/helloworld/README.md#horizon-hello-world-example-edge-service) that includes steps to run it when it is currently published in your exchange, or a [\"Create your own\"](edge/services/helloworld/CreateService.md#creating-your-own-hello-world-edge-service) set of instructions that will guide you through the process of publishing your own version to your exchange.\n\nContributors\n\n\u003ca href=\"https://github.com/open-horizon/examples/graphs/contributors\"\u003e\n  \u003cimg src=\"https://contrib.rocks/image?repo=open-horizon/examples\" /\u003e\n\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopen-horizon%2Fexamples","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopen-horizon%2Fexamples","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopen-horizon%2Fexamples/lists"}