Distribution
In this article you'll learn about preparing and packaging your plugin ready for publishing on Marketplace.
Overview​
Plugins are packaged into .streamDeckPlugin
files using the Stream Deck CLI, and once packaged, contain everything your plugin needs to be distributed on Marketplace, or directly to users.
Below of an overview of creating a Stream Deck plugin, through to Marketplace.
DRM Protection​
Plugins distributed on Marketplace are eligible for DRM (Digital Rights Management), providing you and your intellectual property with an extra level of protection.
Benefits on DRM protection also include:
- File Encryption — Prevent unauthorized vendors from executing your plugin without your consent.
- Integrity Checking — Protect users from tampered files, with built-in file integrity verification.
- New SDK Features — Unlock new Stream Deck SDK features.
Compatibility​
Before enabling DRM, there are two important factors to consider in order to determine if your plugin is DRM-ready.
- File Integrity — Files distributed in your plugin are immutable.
- Do:Generate required files at runtime.
- Don't:Modify files after they have been distributed in your plugin.
- Manifest — Your plugin's manifest is a protected asset.
- Do:
Include a separate JSON file, or embed directly into your codebase, additionally required non-sensitive information.
- Don't:Access the manifest JSON file at runtime.
- Files distributed with your plugin are immutable.
- Your plugin's manifest cannot be accessed at runtime.
Enabling DRM​
After reviewing compatibility, to enable DRM:
- In your manifest, update
SDKVersion
to be3
. - In your manifest, update
Software.MinimumVersion
to be"6.9"
or higher. - Update to the latest Node.js SDK. 1
npm i @elgato/streamdeck@beta
1 The latest Node.js SDK is only required for Node.js plugins.
Plugins with DRM enabled are only protected after they have been uploaded and processed in Maker Console. Learn more about accessing a DRM protected version of your plugin.
DRM protection is available to all Stream Deck SDK libraries, such as C#, C++, and Go, and is not limited to Node.js.
Packaging​
When your plugin is ready for distribution, you can package it into a .streamDeckPlugin
installer file using the Stream Deck CLI's pack
command.
# Pack the *.sdPlugin directory
streamdeck pack com.elgato.hello-world.sdPlugin
Running the pack
command does the following
- Validates your plugin and supporting files.
- See also
validate
.
- See also
- Bundles the contents of the
*.sdPlugin
directory. - Outputs the
.streamDeckPlugin
installer file.
When packaging your plugin, you can ignore files by specifying paths, using .gitignore
specification, within a .sdignore
file. Learn more about ignoring files when packaging.
Testing with DRM Enabled​
Plugins with DRM enabled are only protected after they have been uploaded and processed in Maker Console.
On occasion, you may need to access the DRM protected version of your plugin before publishing it to users, for example when you want to:
- Distribute a beta version to testers.
- Test your plugin is DRM compatible.
To prepare and access a DRM protected version of your plugin.
- Log in to Maker Console.
- Upload your plugin, with "Publish after review" unselected.
- Navigate to your product's page in Maker Console.
- Select the "Versions" tab.
- Select the new version of your plugin.
- Download the DRM protected version.
Publishing​
Marketplace provides a platform for your plugin, and allows you to reach millions of Stream Deck users by making your plugin discoverable within the catalog of Stream Deck plugins.
To publish on Marketplace, you should follow these steps:
- Review plugin guidelines — Make sure your plugin conforms to Stream Deck and Marketplace style guidelines.
- Create an app icon — Create an eye-catching app icon.
- Create gallery items — Showcase your plugins functionality.
- Submit for review — Submit, manage, and review your products using Maker Console.
You can also learn more about submitting products to Marketplace in Become a Maker.
Returning Maker? After creating an account within Maker Console, if you are unable to see your plugins, please contact our Maker Relations team on maker@elgato.com.