- 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 repo name with
dashboards-
, e.g. dashboards-observability.
- Plugin name starts with
opensearch-
. - Include
opensearch-
in the plugin name. - Description does not end with a period.
- Include
OpenSearch
andplugin
in the description.
opensearchplugin {
name 'opensearch-job-scheduler'
description 'OpenSearch Job Scheduler plugin'
classname 'org.opensearch.jobscheduler.JobSchedulerPlugin'
}
- Plugin ID is lowercase camelCase, e.g.
observabilityDashboards
. - Package
name
inpackage.json
is kebab-case, e.g. observability-dashboards - Version follows semver.
For example, dashboards-observability/opensearch_dashboards.json.
{
"id": "observabilityDashboards",
"version": "2.5.0.0",
"opensearchDashboardsVersion": "2.5.0",
"server": true,
"ui": true,
"requiredPlugins": []
}
- Artifacts are of the
<package name>-<version>
format, e.g.opensearch-job-scheduler-1.0.0.0.zip
.
- Artifacts are of the
<package name>-<version>
format, e.g.notebooks-dashboards-1.0.0.0.zip
.
- 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 snake case when naming API request/response fields and parameters (for example,
use_case
), separating individual words with an underscore. - Replace hyphens with underscores (for example, for retrieval-augmented generation, use
retrieval_augmented_generation
). - When creating a new type of a component, take note of how other components of this type are named. For example, search processors are named omitting the word
processor
at the end (the collapse processor is calledcollapse
).
- Use
.
as prefix for indices.
- TODO
- Use common sense for your plugin.