{"id":23469904,"url":"https://github.com/vapor-ware/synse-snmp-base","last_synced_at":"2025-04-12T23:46:17.934Z","repository":{"id":45437262,"uuid":"259636181","full_name":"vapor-ware/synse-snmp-base","owner":"vapor-ware","description":"A common base plugin definition for SNMP-type Synse plugins.","archived":false,"fork":false,"pushed_at":"2021-12-13T23:48:19.000Z","size":74,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-21T22:03:10.353Z","etag":null,"topics":["snmp","synse","synse-base-plugin","synse-plugin"],"latest_commit_sha":null,"homepage":"","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}},"created_at":"2020-04-28T12:52:42.000Z","updated_at":"2021-12-13T22:59:15.000Z","dependencies_parsed_at":"2022-09-10T11:00:12.006Z","dependency_job_id":null,"html_url":"https://github.com/vapor-ware/synse-snmp-base","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vapor-ware%2Fsynse-snmp-base","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vapor-ware%2Fsynse-snmp-base/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vapor-ware%2Fsynse-snmp-base/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vapor-ware%2Fsynse-snmp-base/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vapor-ware","download_url":"https://codeload.github.com/vapor-ware/synse-snmp-base/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248647256,"owners_count":21139081,"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":["snmp","synse","synse-base-plugin","synse-plugin"],"created_at":"2024-12-24T15:36:48.843Z","updated_at":"2025-04-12T23:46:17.916Z","avatar_url":"https://github.com/vapor-ware.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Synse SNMP Plugin Base\n\nA common base plugin definition for SNMP-type Synse plugins.\n\n\u003e NOTE: This project is currently under development and is not considered stable or ready for general use.\n\n## Getting Started\n\nThis plugin is not intended for direct distribution/usage. Instead, it should be used as a package\nto enable building SNMP-based plugins. As an example, see the [snmp-ups-plugin](https://github.com/vapor-ware/synse-snmp-ups-plugin).\n\nWhen writing a plugin, you get get the SNMP plugin base with\n\n```\ngo get github.com/vapor-ware/synse-snmp-base\n```\n\n## SNMP Plugin Configuration\n\nPlugin and device configuration are described in detail in the [Synse SDK Documentation][sdk-docs].\n\nThis base plugin defines the configuration options which all plugins that use it will inherit.\nPlugins will need to define their own plugin configuration (e.g. `config.yaml`) with the `dynamicRegistration`\nblock defined. This is how the SNMP plugin knows which servers to communicate with.\n\nThe options expected in the dynamic registration block are defined below. Note that each plugin\nwhich uses this base is effectively just codifying one or more MIBs that this base can load and use.\nAs such, it is expected that the full MIB be represented, as no MIB walk is performed on startup.\n\nAn example configuration:\n\n```yaml\ndynamicRegistration:\n  config:\n  - mib: UPS-MIB\n    version: v3\n    agent: 'udp://127.0.0.1:1024'\n    security:\n      level: authPriv\n      context: public\n      username: simulator\n      authentication:\n        protocol: SHA\n        passphrase: foobar\n      privacy:\n        protocol: AES\n        passphrase: foobar\n```\n\n### Dynamic Registration Options\n\nBelow are the fields that are expected in each of the dynamic registration items.\nIf no default is specified (`-`), the field is required.\n\n| Field                              | Description | Default |\n| ---------------------------------- | ----------- | ------- |\n| mib                                | The name of the MIB to use for the configured agent. The MIB name(s) are defined by the plugin implementation using the SNMP base. | `-` |\n| version                            | The SNMP protocol version. **Note**: The security parameters, below, are only valid for SNMP `v3`. (Valid values include: `v1`, `v2`, `v2c`, `v3`) | `-` |\n| agent                              | The address of the SNMP server to connect to. If this does not contain a protocol prefix, `udp://` is used by default. Only `udp` and `tcp` are supported protocols. If no port is specified, `161` is used by default. | `-` |\n| community                          | The SNMP community string. | `\"\"` |\n| timeout                            | The timeout to use for SNMP requests. | `3s` |\n| retries                            | The number of times to retry a request within the timeout period. | `1` |\n| security.level                     | (`v3` only) The security message flag. Valid values include (case insensitive): `noauthnopriv`, `authnopriv`, `authpriv`, `reportable`| `-` |\n| security.context                   | (`v3` only) The SNMPv3 context name. | `\"\"` |\n| security.username                  | (`v3` only) The SNMPv3 user name. | `\"\"` |\n| security.authentication.protocol   | (`v3` only) The SNMPv3 authentication protocol. Supported values include (case insensitive): `md5`, `sha`, `none`. | `-` |\n| security.authentication.passphrase | (`v3` only) The passphrase for authentication. | `\"\"` |\n| security.privacy.protocol          | (`v3` only) The SNMPv3 privacy protocol. Supported values include (case insensitive): `aes`, `des`, `none`.| `-` |\n| security.privacy.passphrase        | (`v3` only) The passphrase for privacy. | `\"\"` |\n\n### Reading Outputs\n\nOutputs are referenced by name. A single device may have more than one instance\nof an output type. The base plugin does **not** defined any custom outputs. All\noutputs should be configured via device configuration and should reference either\nthe [built-in outputs](https://synse.readthedocs.io/en/latest/sdk/concepts/reading_outputs/#built-ins)\nor outputs defined by a plugin built on top of this base.\n\n### Device Handlers\n\nDevice Handlers are referenced by name.\n\n| Name       | Description                                    | Outputs              | Read  | Write | Bulk Read | Listen |\n| ---------- | ---------------------------------------------- | -------------------- | :---: | :---: | :-------: | :----: |\n| read-only  | A handler only supporting OID reads.           | any (device defined) | ✓     | ✗     | ✗         | ✗      |\n\n### Write Values\n\nThe SNMP base plugin does not currently support writing.\n\n## Compatibility\n\nBelow is a table describing the compatibility of the plugin base versions with Synse platform versions.\n\n|             | Synse v2 | Synse v3 |\n| ----------- | -------- | -------- |\n| plugin v0.x | ✗        | ✓        |\n\n## Contributing / Reporting\n\nIf you experience a bug, would like to ask a question, or request a feature, open a\n[new issue](https://github.com/vapor-ware/synse-snmp-base/issues) and provide as much\ncontext as possible. All contributions, questions, and feedback are welcomed and appreciated.\n\n## License\n\nThe Synse SNMP plugin base is licensed under GPLv3. See [LICENSE](LICENSE) for more info.\n\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fvapor-ware%2Fsynse-snmp-base.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fvapor-ware%2Fsynse-snmp-base?ref=badge_large)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvapor-ware%2Fsynse-snmp-base","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvapor-ware%2Fsynse-snmp-base","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvapor-ware%2Fsynse-snmp-base/lists"}