Skip to main content

Plugins

You may create, manage, and host your own custom plugins with the help of the dyte plugins subcommand.

Overview

You can publish plugins for your organization on Dyte. We manage only the client-side code for plugins, the backend for a plugin (if any) will not be hosted by Dyte. Therefore, server-side templating is not supported in plugins.

Every functional Dyte plugin requires a configuration file, which is named dyte-config.json by default. This contains details about the plugin such as the pluginId, name, version, description, etc. This file is auto-generated upon running the dyte plugins create command, which is explained in detail later. You can know more about the dyte-config.json file in the description for the publish subcommand.

TL;DR

In order to create and publish a plugin, you need to do the following.

  1. Run dyte plugins create, and enter the details. This should create a dyte-config.json file.
  2. Copy the dyte-config.json into the folder containing the index.html file of your plugin. If you're using a frontend library like React, this would be the build folder.
  3. Change your directory to the folder containing the index.html and dyte-config.json files.
  4. Modify the dyte-config.json file to update the version and the files that will be included and excluded while generating the plugin archive.
  5. Run dyte plugins publish -l or dyte plugins publish --latest to upload and serve your plugin on Dyte.

Usage

Creating a plugin

You can use the following subcommand to create a new Dyte plugin. This sends an API request to register a new plugin under your organization. Additionally, it creates a file called dyte-config.json, which is essential for the plugin to function properly.

dyte plugins create

Listing your plugins

The list | ls subcommand can be used to list the names and IDs of all plugins that were created by your organization.

dyte plugins ls

Viewing plugin details

The describe subcommand logs the details of a plugin. The pluginId is required.

dyte plugins describe -p <plugin id>

Deleting a plugin

With the help of the delete | rm subcommand, you can delete an existing plugin. The pluginId is required.

dyte plugins rm -p <plugin id>

Updating a plugin

To update the details of a plugin, you can use the update subcommand. The pluginId is required.

dyte plugins update -p <plugin id>

Releasing plugins

Packaging a plugin

In order to publish a plugin, a .dyt archive is created with all the client-side source code and the dyte-config.json file. This file is required by the publish subcommand, which also internally generates this archive. You can use the pack command if you just want to generate the archive, but do not want to publish it.

dyte plugins pack

Publishing a plugin

The publish subcommand handles publishing a plugin on Dyte. You must run this command in the directory where the dyte-config.json and the index.html files of your plugin are present. In the dyte-config.json, you can also describe the files you want to include in and exclude from the archive. In order to publish a plugin, you must follow these steps:

  1. Copy the dyte-config.json (which was created by the dyte plugins create command) into the folder containing your index.html file. In case you're using a frontend library like React, you must copy dyte-config.json into the build folder.
  2. Update the plugin version in dyte-config.json.
  3. Run dyte plugins publish -l.

The -l or --latest option is required if you want your plugin's new version to be deployed. If the -l option is absent, the new version of the plugin will be saved in our storage bucket, but it will not be served. In that case, an older version (if any) will be served. You may not use the -l option if you want to upload your code to the storage bucket but you do not want to serve it.

dyte plugins publish -l

Unpublishing a plugin

The unpublish subcommand can be used if you want do not want your plugin to show up on the Dyte plugins panel. The pluginId is required.

dyte plugins unpublish
caution

Note that the plugin and its code will not be deleted, it will just not show up on the panel (and thus become unusable).

Versioning

The version subcommand has 3 subcommands of its own. The pluginId is required for each of these subcommands.

List

version list can be used to list all versions of your Dyte plugin.

dyte plugins version list

Delete

version delete can be used to delete a particular version of your Dyte plugin. This accepts the version you want to delete with the help of the -v option.

dyte plugins version delete -v <version>

Change latest

version change-latest can be used to change the version of your plugin that is served. This accepts the version you want to serve with the help of the -v option.

dyte plugins version change-latest -v <version>