These are recommended plugin naming conventions. YMMV.
- Within the opensearch-project org, do not include the word
OpenSearch
orOpenSearch Dashboards
in the repo name. - Inherit templates, CoC, etc., from opensearch-project/.github.
- Use lowercase repo names.
- Provide a meaningful description, e.g.
An OpenSearch Dashboards plugin to perform real-time and historical anomaly detection on OpenSearch data.
- Do not include the word
plugin
in the repo name, e.g. job-scheduler.
- Prefix OpenSearch Dashboards plugins with
dashboards-
, e.g. dashboards-reports.
- Plugin name starts with
opensearch-
. - Include
opensearch-
in the plugin name. - Description does not end with a period.
- Include
OpenSearch
andplugin
in the descripion.
opensearchplugin {
name 'opensearch-job-scheduler'
description 'OpenSearch Job Scheduler plugin'
classname 'org.opensearch.jobscheduler.JobSchedulerPlugin'
}
- Plugin ID is lowercase camelcase, e.g.
notebooksDashboards
. - Version follows semver.
For example, dashboards-notebooks/opensearch_dashboards.json.
{
"id": "notebooksDashboards",
"version": "1.0.0.0-beta1",
"opensearchDashboardsVersion": "1.0.0-beta1",
"server": true,
"ui": true,
"requiredPlugins": ["navigation", "embeddable", "dashboard"],
"optionalPlugins": []
}
- Artifacts are of the
<package name>-<version>
format, e.g.opensearch-job-scheduler-1.0.0.0-beta1.zip
.
- Artifacts are of the
<package name>-<version>
format, e.g.notebooks-dashboards-1.0.0.0-beta1.zip
.
- Always use kebab-case.
- Include full plugin name, e.g.
plugins/opensearch-knn
.
- Always use kebab-case.
- Include full plugin name, e.g.
plugins/notebooks-dashboards
. The change to automatically convert folders to kebab-case is still pending, see OpenSearch-Dashboards#322.
- Lowercase namespaces, e.g.
org.opensearch.jobscheduler
. - CamelCase classes, e.g.
org.opensearch.jobscheduler.JobSchedulerPlugin
.
- Settings do not have a prefix.
- Use
plugins.
for plugin settings, e.g.plugins.jobscheduler.request_timeout
. - Do not use
opensearch
in the setting name, e.g.plugins.jobscheduler.request_timeout
and notopensearch.jobscheduler.request_timeout
.
- Use
_
as prefix for APIs, e.g._plugins/_anomaly_detection/*
.
- Use
.
as prefix for indices.
- TODO
- Use common sense for your plugin.