{"id":23469896,"url":"https://github.com/vapor-ware/synse-sdk","last_synced_at":"2026-03-11T23:02:00.168Z","repository":{"id":45444717,"uuid":"106324833","full_name":"vapor-ware/synse-sdk","owner":"vapor-ware","description":"SDK for Synse Plugins in Go","archived":false,"fork":false,"pushed_at":"2023-11-20T16:33:37.000Z","size":8115,"stargazers_count":3,"open_issues_count":10,"forks_count":4,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-04-14T16:45:58.626Z","etag":null,"topics":["hacktoberfest","plugins","synse","synse-sdk","synse-server"],"latest_commit_sha":null,"homepage":"https://synse.readthedocs.io/en/latest/sdk/intro/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vapor-ware.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":"2017-10-09T19:12:20.000Z","updated_at":"2024-02-06T22:31:36.000Z","dependencies_parsed_at":"2023-11-20T17:52:03.565Z","dependency_job_id":null,"html_url":"https://github.com/vapor-ware/synse-sdk","commit_stats":null,"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"purl":"pkg:github/vapor-ware/synse-sdk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vapor-ware%2Fsynse-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vapor-ware%2Fsynse-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vapor-ware%2Fsynse-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vapor-ware%2Fsynse-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vapor-ware","download_url":"https://codeload.github.com/vapor-ware/synse-sdk/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vapor-ware%2Fsynse-sdk/sbom","scorecard":{"id":916254,"data":{"date":"2025-08-11","repo":{"name":"github.com/vapor-ware/synse-sdk","commit":"8fb11a7d7bcab4f2f7670c1850655d0ce8f5cc04"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.2,"checks":[{"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":"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":"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":"Code-Review","score":7,"reason":"Found 19/24 approved changesets -- score normalized to 7","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":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/release.yml:1","Warn: no topLevel permission defined: .github/workflows/workflow.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":"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/release.yml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/vapor-ware/synse-sdk/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/vapor-ware/synse-sdk/release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/vapor-ware/synse-sdk/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/workflow.yml:10: update your workflow using https://app.stepsecurity.io/secureworkflow/vapor-ware/synse-sdk/workflow.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/workflow.yml:11: update your workflow using https://app.stepsecurity.io/secureworkflow/vapor-ware/synse-sdk/workflow.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/workflow.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/vapor-ware/synse-sdk/workflow.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/workflow.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/vapor-ware/synse-sdk/workflow.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/workflow.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/vapor-ware/synse-sdk/workflow.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/workflow.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/vapor-ware/synse-sdk/workflow.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/workflow.yml:35: update your workflow using https://app.stepsecurity.io/secureworkflow/vapor-ware/synse-sdk/workflow.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/workflow.yml:36: update your workflow using https://app.stepsecurity.io/secureworkflow/vapor-ware/synse-sdk/workflow.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/workflow.yml:46: update your workflow using https://app.stepsecurity.io/secureworkflow/vapor-ware/synse-sdk/workflow.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/workflow.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/vapor-ware/synse-sdk/workflow.yml/master?enable=pin","Info:   0 out of  10 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   3 third-party GitHubAction 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"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"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":"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: GNU General Public License v3.0: 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":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v2.1.2 not signed: https://api.github.com/repos/vapor-ware/synse-sdk/releases/72643078","Warn: release artifact 2.1.1 not signed: https://api.github.com/repos/vapor-ware/synse-sdk/releases/41362460","Warn: release artifact 2.0.3 not signed: https://api.github.com/repos/vapor-ware/synse-sdk/releases/26725605","Warn: release artifact 2.0.2 not signed: https://api.github.com/repos/vapor-ware/synse-sdk/releases/26233951","Warn: release artifact 2.0.1 not signed: https://api.github.com/repos/vapor-ware/synse-sdk/releases/26007307","Warn: release artifact v2.1.2 does not have provenance: https://api.github.com/repos/vapor-ware/synse-sdk/releases/72643078","Warn: release artifact 2.1.1 does not have provenance: https://api.github.com/repos/vapor-ware/synse-sdk/releases/41362460","Warn: release artifact 2.0.3 does not have provenance: https://api.github.com/repos/vapor-ware/synse-sdk/releases/26725605","Warn: release artifact 2.0.2 does not have provenance: https://api.github.com/repos/vapor-ware/synse-sdk/releases/26233951","Warn: release artifact 2.0.1 does not have provenance: https://api.github.com/repos/vapor-ware/synse-sdk/releases/26007307"],"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 26 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":"13 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GO-2022-0288","Warn: Project is vulnerable to: GO-2022-0969 / GHSA-69cg-p879-7622","Warn: Project is vulnerable to: GO-2022-1144 / GHSA-xrjj-mj9h-534m","Warn: Project is vulnerable to: GO-2023-1571 / GHSA-vvpx-j8f3-3w6h","Warn: Project is vulnerable to: GO-2023-1988 / GHSA-2wrh-6pvc-2jm9","Warn: Project is vulnerable to: GO-2023-2102 / GHSA-4374-p667-p6c8","Warn: Project is vulnerable to: GO-2023-2153 / GHSA-m425-mq94-257g / GHSA-qppj-fm5r-hxr3","Warn: Project is vulnerable to: GO-2024-2687 / GHSA-4v7x-pqxf-cx7m","Warn: Project is vulnerable to: GO-2024-3333","Warn: Project is vulnerable to: GO-2025-3503 / GHSA-qxp5-gwg8-xv66","Warn: Project is vulnerable to: GO-2025-3595 / GHSA-vvgc-356p-c3xw","Warn: Project is vulnerable to: GO-2022-1059 / GHSA-69ch-w2m2-3vjp","Warn: Project is vulnerable to: GO-2024-2611 / GHSA-8r3f-844c-mc37"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-24T21:06:24.454Z","repository_id":45444717,"created_at":"2025-08-24T21:06:24.454Z","updated_at":"2025-08-24T21:06:24.454Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30406400,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-11T22:36:59.286Z","status":"ssl_error","status_checked_at":"2026-03-11T22:36:57.544Z","response_time":84,"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":["hacktoberfest","plugins","synse","synse-sdk","synse-server"],"created_at":"2024-12-24T15:36:46.974Z","updated_at":"2026-03-11T23:02:00.137Z","avatar_url":"https://github.com/vapor-ware.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/vapor-ware/synse-sdk/workflows/build-test/badge.svg\"\u003e\u003cimg src=\"https://github.com/vapor-ware/synse-sdk/workflows/build-test/badge.svg\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://codecov.io/gh/vapor-ware/synse-sdk\"\u003e\u003cimg src=\"https://codecov.io/gh/vapor-ware/synse-sdk/branch/master/graph/badge.svg?token=K9qxpN6AE2\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://app.fossa.io/projects/git%2Bgithub.com%2Fvapor-ware%2Fsynse-sdk?ref=badge_shield\" alt=\"FOSSA Status\"\u003e\u003cimg src=\"https://app.fossa.io/api/projects/git%2Bgithub.com%2Fvapor-ware%2Fsynse-sdk.svg?type=shield\"/\u003e\u003c/a\u003e\n    \u003ca href=\"https://godoc.org/github.com/vapor-ware/synse-sdk/sdk\"\u003e\u003cimg src=\"https://godoc.org/github.com/vapor-ware/synse-sdk/sdk?status.svg\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://goreportcard.com/report/github.com/vapor-ware/synse-sdk\"\u003e\u003cimg src=\"https://goreportcard.com/badge/github.com/vapor-ware/synse-sdk\"\u003e\u003c/a\u003e\n\n\u003ch1 align=\"center\"\u003eSynse Plugin SDK\u003c/h1\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003eA Golang SDK for creating plugins for Synse Server\u003c/p\u003e\n\n[Synse Server][synse-server] provides an HTTP API for monitoring and controlling physical\nand virtual devices; Synse Plugins provide the backend support for all the devices Synse\nServer exposes. This repo contains the official Synse Plugin SDK (written in [Go][go-install])\nwhich can be used to create plugin backends for Synse Server.\n\nThe SDK handles most of the common functionality needed for plugins, such as configuration\nparsing, background read/write, transaction generation and tracking, meta-info caching, and more.\nThis means the plugin author should only need to worry about the plugin-specific device support.\nSee the [SDK Documentation][sdk-docs] for more info.\n\n## The Synse Ecosystem\n\nThe Synse SDK is one component of the greater Synse Ecosystem.\n\n- [**vapor-ware/synse-server**][synse-server]: An HTTP server providing a uniform API to interact\n  with physical and virtual devices via plugin backends. This can be thought of as a 'front end'\n  for Synse Plugins.\n\n- [**vapor-ware/synse-server-grpc**][synse-grpc]: The internal gRPC API that connects Synse\n  Server and the Synse Plugins.\n\n- [**vapor-ware/synse-emulator-plugin**][synse-emulator]: A simple plugin with no hardware\n  dependencies that can serve as a plugin backend for Synse Server for development,\n  testing, and just getting familiar with how Synse Server works or how plugins can be\n  written.\n\n- [**vapor-ware/synse-cli**][synse-cli]: A CLI that allows you to easily interact with\n  Synse Server (via HTTP) and Plugins (via gRPC) directly from the command line.\n\n## Getting Started\n\nThe Synse SDK can be installed with modules enabled\n\n```\ngo get github.com/vapor-ware/synse-sdk/v2\n```\n\nIt is recommended that you use a [release][releases] version of the SDK. You can pin\nto use the top-of-trunk version by:\n\n```\ngo get -u github.com/vapor-ware/synse-sdk/v2@master\n```\n\nSimilarly versions can also be declared by import:\n\n```go\nimport \"github.com/vapor-ware/synse-sdk/v2/sdk\"\n```\n\nFrom there, it is easy to start building your own plugin. The [SDK Documentation][sdk-docs]\nprovides useful information on writing plugins. You can also check out the [examples](examples)\ndirectory, which contains various example plugins built using the SDK. The examples, in conjunction\nwith the documentation, should get you well on your way to start writing your own plugin(s).\n\n### Developing\n\nIf you wish to develop the SDK, see the \"Developer Guide\" section in the [SDK Documentation][sdk-docs].\n\n## Compatibility\n\nBelow is a table describing the compatibility of various SDK versions with Synse platform versions.\n\n|          | Synse v2 | Synse v3 |\n| -------- | -------- | -------- |\n| SDK v1.x | ✓        | ✗        |\n| SDK v2.x | ✗        | ✓        |\n\n## Sharing Plugins\n\nHave you written a plugin and want to share it with the Synse community? Let us know!\nThere currently is not a tool or site to search for plugins, so we will maintain a list\n[here](https://synse.readthedocs.io/en/latest/plugins/). You can also add the [`synse-plugin`][synse-plugin-tag]\ntag to your plugin's GitHub repo.\n\n## Feedback\n\nFeedback for the Synse Plugin SDK, or any component of the Synse ecosystem, is greatly appreciated!\nIf you experience any issues, find the documentation unclear, have requests for features,\nor just have questions about it, we'd love to know. Feel free to open an issue for any\nfeedback you may have.\n\n## Contributing\n\nWe welcome contributions to the project. The project maintainers actively manage the issues\nand pull requests. If you choose to contribute, we ask that you either comment on an existing\nissue or open a new one. This project follows the typical [GitHub Workflow][gh-workflow].\n\n## License\n\nThe Synse Plugin SDK is released under the [GPL-3.0](LICENSE) license.\n\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fvapor-ware%2Fsynse-sdk.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fvapor-ware%2Fsynse-sdk?ref=badge_large)\n\n[go-install]: https://golang.org/doc/install\n[releases]: https://github.com/vapor-ware/synse-sdk/releases\n[sdk-docs]: https://synse.readthedocs.io/en/latest/sdk/intro/\n[synse-server]: https://github.com/vapor-ware/synse-server\n[synse-cli]: https://github.com/vapor-ware/synse-cli\n[synse-emulator]: https://github.com/vapor-ware/synse-emulator-plugin\n[synse-graphql]: https://github.com/vapor-ware/synse-graphql\n[synse-grpc]: https://github.com/vapor-ware/synse-server-grpc\n[gh-workflow]: https://guides.github.com/introduction/flow/\n[synse-plugin-tag]: https://github.com/topics/synse-plugin\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvapor-ware%2Fsynse-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvapor-ware%2Fsynse-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvapor-ware%2Fsynse-sdk/lists"}