The official monorepo and registry for WebStray Authenticator plugins.
Plugin Registry is the centralized repository for official and community-driven plugins for WebStray Authenticator.
The following tree outlines the repository structure:
.
├── src/
│ ├── plugins/ # Plugin source code
│ └── templates/ # Template source code
├── plugins/ # Compiled plugins
├── templates/ # Compiled templates
├── scripts/ # Registry build and maintenance scripts
├── package.json # Project configuration
└── registry.json # Auto-generated plugin registry file
Detailed documentation for Plugin Registry is available on the official WebStray website.
You can add plugins to WebStray Authenticator in the following ways:
Using WebStray CLI, you can add any plugin with just one command:
webstray authenticator addThis command will start an interactive plugin setup process.
After adding the plugin(s), don't forget to enable them in WebStray Authenticator under "Settings" -> "Plugins".
You can add a plugin manually without using the CLI. To do this, follow these steps:
- Download the folder with the plugin you need from the
/pluginsdirectory. - Open WebStray Authenticator and go to "Settings" -> "Plugins".
- In the plugin management dialog, click the link to open the application's plugins directory.
- Copy the plugin folder into the application's plugins directory.
- The plugin will be automatically detected and appear in the plugin management dialog.
- Enable the plugin in the plugin management dialog and close the dialog.
You can develop your own plugins using your preferred tools and workflow. WebStray Authenticator loads plugins as JavaScript modules, so your development workflow must produce compatible JavaScript.
For registry contributions, plugin source can be written in JavaScript, JSX, TypeScript, or TSX. The registry build process compiles and bundles these source files into JavaScript in the /plugins directory.
Using WebStray CLI, you can create a starting template for a new plugin with just one command:
webstray authenticator createThis command will start an interactive process and prompt you to specify the plugin ID, name, and author. It will then generate a basic JavaScript plugin template using React.createElement.
You can use this template as a starting point for developing your plugin. Since it uses plain JavaScript, it can be tested directly in WebStray Authenticator without an additional build setup.
If you prefer JSX, TSX, or TypeScript, you can use your own build setup to compile your source into JavaScript before testing it in WebStray Authenticator.
Tip
You can use one of the templates from the /templates directory as a starting point for your new plugin.
To create a new plugin, follow these steps:
- Open WebStray Authenticator and go to "Settings" -> "Plugins".
- In the plugin management dialog, click the link to open the application's plugins directory.
- Inside the plugins directory, create a directory named
<your-plugin-name>. - Inside it, create:
package.json: must include a unique"id"field.index.js: must provide adefault exportfunction that accepts ansdkobject.
- Enable the plugin in the plugin management dialog.
- Verify that your menu action or UI sheet is available.
If you want to build the registry locally or contribute to its core logic, follow these steps.
git clone https://github.com/webstraycom/authenticator-plugin-registry.git
cd authenticator-plugin-registrynpm installPlugin and template source files are stored in src/ and compiled into JavaScript in the plugins/ and templates/ directories.
The build process also regenerates registry.json and formats the repository.
To build the complete registry, run:
npm run buildYou can also run individual steps separately:
# Compile plugins and templates
npm run compile
# Generate registry.json
npm run registry
# Format the repository
npm run formatWe welcome community contributions! To add your plugin to the official registry:
- Fork this repository.
- Place your plugin source in the
/src/pluginsfolder. - Ensure your
package.jsonis correctly filled out. - Submit a Pull Request with a brief description of your plugin.
- By submitting a Pull Request, you agree that your contribution will be licensed under the project's MIT License.
Important
You do not need to update the compiled files in /plugins or registry.json manually. The maintainers will regenerate them during the review and merge process.
All plugins in this registry are provided "as is", without warranty of any kind.
By using the contents of this repository, you acknowledge and agree that:
- User Responsibility: You are solely responsible for the safety of your environment and sensitive data.
- Plugin Status: Inclusion of any plugin in this registry does not imply endorsement, approval, or a guarantee of safety, including those marked as "Official".
- Potential Risks: Any plugin, regardless of its origin or status, has the technical capability to access decrypted data and could potentially pose a security threat. Use them at your own risk.
- No Liability: The developers and maintainers of this registry shall not be held liable for any data loss, hardware damage, or security breaches resulting from the use of this software.
- Audit Required: Always audit the source code of any plugin before adding it. We do not guarantee the security or stability of any contributions.
Maintain secure backups and never use plugins you do not fully trust.
This project is licensed under the MIT License. See the LICENSE file for details.
