Skip to content

Verification Request: homebridge-ssh-platform #1019

Closed

Description

@x-dragos

Plugin Name

homebridge-ssh-platform

Link To GitHub Repo

https://github.com/x-dragos/homebridge-ssh-platform

Plugin Icon (Optional)

No response

The plugin does not offer the same nor less functionality than that of any existing verified plugin.

🟢 Yes

The plugin successfully installs and does not start unless it is configured.

🟢 Yes

The plugin does not require the user to run Homebridge in a TTY or with non-standard startup parameters, even for initial configuration.

🟢 Yes

The plugin does not contain any analytics or calls that enable you to track the user.

🟢 Yes

If the plugin needs to write files to disk (cache, keys, etc.), it stores them inside the Homebridge storage directory.

🟢 Yes

The plugin does not throw unhandled exceptions, the plugin must catch and log its own errors.

🟢 Yes

More Information

Hexagonal-architecture dynamic platform plugin for SSH-driven HomeKit accessories.

Notes for reviewers:

  • Two accessory types: Switch (Service.Switch) with stateful or momentary auto-reset modes, and Garage Door (Service.GarageDoorOpener) with a synthetic state machine,
    configurable travel times, last-stable-state rollback on command failure, and an optional auto-close watchdog that runs the close command as a fallback if the door does not
    close on its own.
  • Domain layer is lint-blocked from importing homebridge, ssh2, or node:* — only adapters touch the framework. 88 unit tests, 90/95% line/function coverage on the modules under
    test, CI matrix on Node 20/22/24.
  • Settings GUI ships in two layers: a complete config.schema.json with conditional fields and a custom UI under homebridge-ui/ (Bootstrap 5, parent-theme aware) with per-host
    "Test connection" and per-command "Test command" buttons.
  • The plugin reuses one ssh2 connection per host, opens commands as exec channels, and never writes outside the user's config or storage path.
  • Validated end-to-end against a real Raspberry Pi gate controller; the reference Python driver showing the state-file convention used by the optional state-poll feature lives
    at examples/scripts/garage-door-gpio.py in the repo.

Engines: Node v20, v22, v24. No postinstall scripts. Apache-2.0 licensed.

Activity

  1. github-actions commented on Apr 26, 2026

    @github-actions
    Contributor

    🔴 Failed Checks

    • Config Schema JSON: schema is invalid - required should not be a boolean property on individual fields. In JSON Schema, required must be an array at the object level listing required property names. Remove "required": true/false from individual properties and use "required": ["property1", "property2"] at the object level instead.
    • Dependencies: homebridge was installed as a dependency
    • Dependencies: hap-nodejs was installed as a dependency

    🟢 Passed Checks

    • Installation: successfully installed
    • Package JSON: homepage exists
    • Package JSON: bugs.url exists and seems a valid URL
    • Package JSON: keywords exist and contain 'homebridge-plugin'
    • Package JSON: 'preinstall' in scripts is not present
    • Package JSON: 'install' in scripts is not present
    • Package JSON: 'postinstall' in scripts is not present
    • Package JSON: engines.node property is compatible with Node 20
    • Package JSON: engines.node property is compatible with Node 22
    • Package JSON: engines.node property is compatible with Node 24
    • Package JSON: engines.homebridge property is compatible with Homebridge 1.11.4
    • Package JSON: initializer function found
    • NPM Package: has not been deprecated
    • GitHub Repo: version in package.json (v0.1.0) matches NPM version (v0.1.0)
    • Config Schema JSON: exists and is valid JSON
    • Config Schema JSON: contains a valid pluginAlias
    • Config Schema JSON: the pluginType is set to 'platform'
    • Config Schema JSON: contains a name schema property
    • Security: no known vulnerabilities in dependencies
    • Security: code patterns flagged for manual review
    • Security: no privilege escalation attempts detected
    • GitHub Repo: repository is public
    • GitHub Repo: repository is not archived
    • GitHub Repo: issues are enabled
    • GitHub Repo: contains releases

    🔍 For Manual Review

    The following items were detected and require manual review. We understand that these items may be false positives.

    • Security [Critical]: accesses private keys in config.schema.json, homebridge-ui/public/app.js and 1 more
    • Security: accesses environment files in homebridge-ui/server.js

    ℹ️ Check Details

    • These checks were run against v0.1.0 of the plugin.
    • Link to the run workflow: visit →.

    📋 Next Steps

    • Please action these failures and then comment /check to run the checks again.
    • If updating your package.json and config.schema.json files, don't forget to publish a new version to NPM.
    • Remember this is an automatic script: if you think something has been marked as a failure in error, let us know with a reply.
    • Feel free to ask any questions you have by replying to this issue.
  2. added
    awaiting-changesuse after review has started - awaiting user to make changes to plugin
    and removed
    pendingthe label given to a new verification/icon request
    on Apr 26, 2026
  3. x-dragos commented on Apr 26, 2026

    @x-dragos
    Author

    /check

  4. added
    pendingthe label given to a new verification/icon request
    and removed
    awaiting-changesuse after review has started - awaiting user to make changes to plugin
    on Apr 26, 2026
  5. github-actions commented on Apr 26, 2026

    @github-actions
    Contributor

    🟢 Passed Checks

    • Installation: successfully installed
    • Package JSON: homepage exists
    • Package JSON: bugs.url exists and seems a valid URL
    • Package JSON: keywords exist and contain 'homebridge-plugin'
    • Package JSON: 'preinstall' in scripts is not present
    • Package JSON: 'install' in scripts is not present
    • Package JSON: 'postinstall' in scripts is not present
    • Package JSON: engines.node property is compatible with Node 20
    • Package JSON: engines.node property is compatible with Node 22
    • Package JSON: engines.node property is compatible with Node 24
    • Package JSON: engines.homebridge property is compatible with Homebridge 1.11.4
    • Package JSON: initializer function found
    • NPM Package: has not been deprecated
    • GitHub Repo: version in package.json (v0.1.1) matches NPM version (v0.1.1)
    • Config Schema JSON: exists and is valid JSON
    • Config Schema JSON: contains valid JSON Schema
    • Config Schema JSON: schema has valid type property
    • Config Schema JSON: schema has valid properties for object type
    • Config Schema JSON: contains a valid pluginAlias
    • Config Schema JSON: the pluginType is set to 'platform'
    • Config Schema JSON: contains a name schema property
    • Dependencies: homebridge was not installed as a dependency
    • Dependencies: hap-nodejs was not installed as a dependency
    • Security: no known vulnerabilities in dependencies
    • Security: code patterns flagged for manual review
    • Security: no privilege escalation attempts detected
    • Runtime: homebridge installed successfully
    • Runtime: no config - homebridge should start without plugin configuration and plugin should not load
    • Runtime: platform only - plugin should start with just platform property
    • Runtime: minimal required - plugin should start with minimal required configuration
    • Runtime: full config - plugin should start with comprehensive configuration
    • GitHub Repo: repository is public
    • GitHub Repo: repository is not archived
    • GitHub Repo: issues are enabled
    • GitHub Repo: contains releases

    🔍 For Manual Review

    The following items were detected and require manual review. We understand that these items may be false positives.

    • Security [Critical]: accesses private keys in config.schema.json, homebridge-ui/public/app.js and 1 more
    • Security: accesses environment files in homebridge-ui/server.js

    ℹ️ Check Details

    • These checks were run against v0.1.1 of the plugin.
    • Link to the run workflow: visit →.

    📋 Next Steps

    All checks passed successfully, nice work! Your plugin and/or icon will now be manually reviewed by the Homebridge team.

  6. x-dragos commented on Apr 28, 2026

    @x-dragos
    Author

    /check

  7. github-actions commented on Apr 28, 2026

    @github-actions
    Contributor

    🟢 Passed Checks

    • Installation: successfully installed
    • Package JSON: homepage exists
    • Package JSON: bugs.url exists and seems a valid URL
    • Package JSON: keywords exist and contain 'homebridge-plugin'
    • Package JSON: 'preinstall' in scripts is not present
    • Package JSON: 'install' in scripts is not present
    • Package JSON: 'postinstall' in scripts is not present
    • Package JSON: engines.node property is compatible with Node 20
    • Package JSON: engines.node property is compatible with Node 22
    • Package JSON: engines.node property is compatible with Node 24
    • Package JSON: engines.homebridge property is compatible with Homebridge 1.11.4
    • Package JSON: initializer function found
    • NPM Package: has not been deprecated
    • GitHub Repo: version in package.json (v0.1.2) matches NPM version (v0.1.2)
    • Config Schema JSON: exists and is valid JSON
    • Config Schema JSON: contains valid JSON Schema
    • Config Schema JSON: schema has valid type property
    • Config Schema JSON: schema has valid properties for object type
    • Config Schema JSON: contains a valid pluginAlias
    • Config Schema JSON: the pluginType is set to 'platform'
    • Config Schema JSON: contains a name schema property
    • Dependencies: homebridge was not installed as a dependency
    • Dependencies: hap-nodejs was not installed as a dependency
    • Security: no known vulnerabilities in dependencies
    • Security: code patterns flagged for manual review
    • Security: no privilege escalation attempts detected
    • Runtime: homebridge installed successfully
    • Runtime: no config - homebridge should start without plugin configuration and plugin should not load
    • Runtime: platform only - plugin should start with just platform property
    • Runtime: minimal required - plugin should start with minimal required configuration
    • Runtime: full config - plugin should start with comprehensive configuration
    • GitHub Repo: repository is public
    • GitHub Repo: repository is not archived
    • GitHub Repo: issues are enabled
    • GitHub Repo: contains releases

    🔍 For Manual Review

    The following items were detected and require manual review. We understand that these items may be false positives.

    • Security [Critical]: accesses private keys in config.schema.json, homebridge-ui/public/app.js and 1 more
    • Security: accesses environment files in homebridge-ui/server.js

    ℹ️ Check Details

    • These checks were run against v0.1.2 of the plugin.
    • Link to the run workflow: visit →.

    📋 Next Steps

    All checks passed successfully, nice work! Your plugin and/or icon will now be manually reviewed by the Homebridge team.

  8. x-dragos commented on Apr 29, 2026

    @x-dragos
    Author

    /check

  9. github-actions commented on Apr 29, 2026

    @github-actions
    Contributor

    🟢 Passed Checks

    • Installation: successfully installed
    • Package JSON: homepage exists
    • Package JSON: bugs.url exists and seems a valid URL
    • Package JSON: keywords exist and contain 'homebridge-plugin'
    • Package JSON: 'preinstall' in scripts is not present
    • Package JSON: 'install' in scripts is not present
    • Package JSON: 'postinstall' in scripts is not present
    • Package JSON: engines.node property is compatible with Node 20
    • Package JSON: engines.node property is compatible with Node 22
    • Package JSON: engines.node property is compatible with Node 24
    • Package JSON: engines.homebridge property is compatible with Homebridge 1.11.4
    • Package JSON: initializer function found
    • NPM Package: has not been deprecated
    • GitHub Repo: version in package.json (v0.1.3) matches NPM version (v0.1.3)
    • Config Schema JSON: exists and is valid JSON
    • Config Schema JSON: contains valid JSON Schema
    • Config Schema JSON: schema has valid type property
    • Config Schema JSON: schema has valid properties for object type
    • Config Schema JSON: contains a valid pluginAlias
    • Config Schema JSON: the pluginType is set to 'platform'
    • Config Schema JSON: contains a name schema property
    • Dependencies: homebridge was not installed as a dependency
    • Dependencies: hap-nodejs was not installed as a dependency
    • Security: no known vulnerabilities in dependencies
    • Security: code patterns flagged for manual review
    • Security: no privilege escalation attempts detected
    • Runtime: homebridge installed successfully
    • Runtime: no config - homebridge should start without plugin configuration and plugin should not load
    • Runtime: platform only - plugin should start with just platform property
    • Runtime: minimal required - plugin should start with minimal required configuration
    • Runtime: full config - plugin should start with comprehensive configuration
    • GitHub Repo: repository is public
    • GitHub Repo: repository is not archived
    • GitHub Repo: issues are enabled
    • GitHub Repo: contains releases

    🔍 For Manual Review

    The following items were detected and require manual review. We understand that these items may be false positives.

    • Security [Critical]: accesses private keys in config.schema.json, homebridge-ui/public/app.js and 1 more
    • Security: accesses environment files in homebridge-ui/server.js

    ℹ️ Check Details

    • These checks were run against v0.1.3 of the plugin.
    • Link to the run workflow: visit →.

    📋 Next Steps

    All checks passed successfully, nice work! Your plugin and/or icon will now be manually reviewed by the Homebridge team.

  10. added a commit that references this issue on May 16, 2026
  11. added
    verifieduse when a plugin meets the criteria - adds the verified badge text
    on May 16, 2026
  12. github-actions commented on May 16, 2026

    @github-actions
    Contributor

    Congratulations! Your plugin has been verified!

    You can now add one of the Verified by Homebridge badges to your plugin's README:

    verified-by-homebridge

    [![verified-by-homebridge](https://img.shields.io/badge/_-verified-blueviolet?color=%23491F59&style=flat&logoColor=%23FFFFFF&logo=homebridge)](https://github.com/homebridge/homebridge/wiki/Verified-Plugins)
    

    verified-by-homebridge

    [![verified-by-homebridge](https://img.shields.io/badge/homebridge-verified-blueviolet?color=%23491F59&style=flat)](https://github.com/homebridge/homebridge/wiki/Verified-Plugins)
    

    verified-by-homebridge

    [![verified-by-homebridge](https://img.shields.io/badge/homebridge-verified-blueviolet?color=%23491F59&style=for-the-badge&logoColor=%23FFFFFF&logo=homebridge)](https://github.com/homebridge/homebridge/wiki/Verified-Plugins)
    

    Your plugin is now also eligible to display a ❤️ Donate button on its tile in the Homebridge UI. See https://github.com/homebridge/homebridge/wiki/Donation-Links for instructions.

    Interested in getting a @homebridge-plugins/ scope for your plugin? See our Homebridge Scoped Plugins program.

    If for any reason in the future you can no longer maintain your plugin, please consider transferring it to our Homebridge Plugins organization.

    Don't forget to join the official Homebridge Discord server, where plugin developers can get tips and advice from other developers and the Homebridge project team in the #plugin-development channel!

    As a verified plugin, you can request a channel in the Discord server to discuss your plugin with users and other developers. Just ask in the #plugin-development channel.

    Thank you for your contribution to the Homebridge community.

    • The Homebridge Team
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    request-verificationverifieduse when a plugin meets the criteria - adds the verified badge text

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions