@grafana/plugin-ui 0.16.0-dsconfig.d7f2506 → 0.16.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.cjs +15500 -11375
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/index.d.cts +599 -930
- package/dist/esm/components/ConfigEditor/Auth/tls/TLSClientAuth.js +8 -5
- package/dist/esm/components/ConfigEditor/Auth/tls/TLSClientAuth.js.map +1 -1
- package/dist/esm/index.d.ts +599 -930
- package/dist/esm/index.js +2 -11
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/node_modules/semver/classes/range.js +4 -24
- package/dist/esm/node_modules/semver/classes/range.js.map +1 -1
- package/dist/esm/node_modules/semver/classes/semver.js +2 -19
- package/dist/esm/node_modules/semver/classes/semver.js.map +1 -1
- package/dist/esm/node_modules/semver/functions/diff.js +1 -1
- package/dist/esm/node_modules/semver/functions/diff.js.map +1 -1
- package/dist/esm/node_modules/semver/index.js +0 -3
- package/dist/esm/node_modules/semver/index.js.map +1 -1
- package/dist/esm/node_modules/semver/internal/re.js +3 -3
- package/dist/esm/node_modules/semver/internal/re.js.map +1 -1
- package/dist/esm/node_modules/semver/ranges/subset.js +3 -3
- package/dist/esm/node_modules/semver/ranges/subset.js.map +1 -1
- package/dist/esm/node_modules/tslib/tslib.es6.js.map +1 -1
- package/dist/esm/schema/registry/alertmanager.schema.json.js +77 -0
- package/dist/esm/schema/registry/alertmanager.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/cloudwatch.schema.json.js +384 -0
- package/dist/esm/schema/registry/cloudwatch.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/elasticsearch.schema.json.js +287 -0
- package/dist/esm/schema/registry/elasticsearch.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-amazonprometheus-datasource.schema.json.js +166 -0
- package/dist/esm/schema/registry/grafana-amazonprometheus-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-appdynamics-datasource.schema.json.js +145 -0
- package/dist/esm/schema/registry/grafana-appdynamics-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-astradb-datasource.schema.json.js +123 -0
- package/dist/esm/schema/registry/grafana-astradb-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-athena-datasource.schema.json.js +158 -0
- package/dist/esm/schema/registry/grafana-athena-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-azure-data-explorer-datasource.schema.json.js +204 -0
- package/dist/esm/schema/registry/grafana-azure-data-explorer-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-azure-monitor-datasource.schema.json.js +294 -0
- package/dist/esm/schema/registry/grafana-azure-monitor-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-azuredevops-datasource.schema.json.js +101 -0
- package/dist/esm/schema/registry/grafana-azuredevops-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-azureprometheus-datasource.schema.json.js +125 -0
- package/dist/esm/schema/registry/grafana-azureprometheus-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-bigquery-datasource.schema.json.js +508 -0
- package/dist/esm/schema/registry/grafana-bigquery-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-clickhouse-datasource.schema.json.js +1400 -0
- package/dist/esm/schema/registry/grafana-clickhouse-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-cockroachdb-datasource.schema.json.js +302 -0
- package/dist/esm/schema/registry/grafana-cockroachdb-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-databricks-datasource.schema.json.js +291 -0
- package/dist/esm/schema/registry/grafana-databricks-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-datadog-datasource.schema.json.js +155 -0
- package/dist/esm/schema/registry/grafana-datadog-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-dynatrace-datasource.schema.json.js +179 -0
- package/dist/esm/schema/registry/grafana-dynatrace-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-falconlogscale-datasource.schema.json.js +134 -0
- package/dist/esm/schema/registry/grafana-falconlogscale-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-github-datasource.schema.json.js +156 -0
- package/dist/esm/schema/registry/grafana-github-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-gitlab-datasource.schema.json.js +84 -0
- package/dist/esm/schema/registry/grafana-gitlab-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-googlesheets-datasource.schema.json.js +231 -0
- package/dist/esm/schema/registry/grafana-googlesheets-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-honeycomb-datasource.schema.json.js +87 -0
- package/dist/esm/schema/registry/grafana-honeycomb-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-iot-sitewise-datasource.schema.json.js +159 -0
- package/dist/esm/schema/registry/grafana-iot-sitewise-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-jira-datasource.schema.json.js +188 -0
- package/dist/esm/schema/registry/grafana-jira-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-looker-datasource.schema.json.js +82 -0
- package/dist/esm/schema/registry/grafana-looker-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-mongodb-datasource.schema.json.js +278 -0
- package/dist/esm/schema/registry/grafana-mongodb-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-mqtt-datasource.schema.json.js +168 -0
- package/dist/esm/schema/registry/grafana-mqtt-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-newrelic-datasource.schema.json.js +129 -0
- package/dist/esm/schema/registry/grafana-newrelic-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-odbc-datasource.schema.json.js +56 -0
- package/dist/esm/schema/registry/grafana-odbc-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-opensearch-datasource.schema.json.js +212 -0
- package/dist/esm/schema/registry/grafana-opensearch-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-oracle-datasource.schema.json.js +186 -0
- package/dist/esm/schema/registry/grafana-oracle-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-pagerduty-datasource.schema.json.js +85 -0
- package/dist/esm/schema/registry/grafana-pagerduty-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-postgresql-datasource.schema.json.js +411 -0
- package/dist/esm/schema/registry/grafana-postgresql-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-pyroscope-datasource.schema.json.js +41 -0
- package/dist/esm/schema/registry/grafana-pyroscope-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-redshift-datasource.schema.json.js +201 -0
- package/dist/esm/schema/registry/grafana-redshift-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-salesforce-datasource.schema.json.js +201 -0
- package/dist/esm/schema/registry/grafana-salesforce-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-saphana-datasource.schema.json.js +208 -0
- package/dist/esm/schema/registry/grafana-saphana-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-sentry-datasource.schema.json.js +94 -0
- package/dist/esm/schema/registry/grafana-sentry-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-servicenow-datasource.schema.json.js +179 -0
- package/dist/esm/schema/registry/grafana-servicenow-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-snowflake-datasource.schema.json.js +304 -0
- package/dist/esm/schema/registry/grafana-snowflake-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-splunk-datasource.schema.json.js +319 -0
- package/dist/esm/schema/registry/grafana-splunk-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-splunkobservability-datasource.schema.json.js +90 -0
- package/dist/esm/schema/registry/grafana-splunkobservability-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-strava-datasource.schema.json.js +74 -0
- package/dist/esm/schema/registry/grafana-strava-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-sumologic-datasource.schema.json.js +102 -0
- package/dist/esm/schema/registry/grafana-sumologic-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-surrealdb-datasource.schema.json.js +92 -0
- package/dist/esm/schema/registry/grafana-surrealdb-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-timestream-datasource.schema.json.js +145 -0
- package/dist/esm/schema/registry/grafana-timestream-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-wavefront-datasource.schema.json.js +80 -0
- package/dist/esm/schema/registry/grafana-wavefront-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-x-ray-datasource.schema.json.js +112 -0
- package/dist/esm/schema/registry/grafana-x-ray-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/grafana-yugabyte-datasource.schema.json.js +114 -0
- package/dist/esm/schema/registry/grafana-yugabyte-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/graphite.schema.json.js +104 -0
- package/dist/esm/schema/registry/graphite.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/index.js +27 -0
- package/dist/esm/schema/registry/index.js.map +1 -0
- package/dist/esm/schema/registry/influxdb.schema.json.js +717 -0
- package/dist/esm/schema/registry/influxdb.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/jaeger.schema.json.js +59 -0
- package/dist/esm/schema/registry/jaeger.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/loki.schema.json.js +545 -0
- package/dist/esm/schema/registry/loki.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/marcusolsson-csv-datasource.schema.json.js +45 -0
- package/dist/esm/schema/registry/marcusolsson-csv-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/marcusolsson-json-datasource.schema.json.js +36 -0
- package/dist/esm/schema/registry/marcusolsson-json-datasource.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/mssql.schema.json.js +292 -0
- package/dist/esm/schema/registry/mssql.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/mysql.schema.json.js +304 -0
- package/dist/esm/schema/registry/mysql.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/opentsdb.schema.json.js +113 -0
- package/dist/esm/schema/registry/opentsdb.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/prometheus.schema.json.js +783 -0
- package/dist/esm/schema/registry/prometheus.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/stackdriver.schema.json.js +224 -0
- package/dist/esm/schema/registry/stackdriver.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/staticRegistry.js +135 -0
- package/dist/esm/schema/registry/staticRegistry.js.map +1 -0
- package/dist/esm/schema/registry/tempo.schema.json.js +664 -0
- package/dist/esm/schema/registry/tempo.schema.json.js.map +1 -0
- package/dist/esm/schema/registry/zipkin.schema.json.js +40 -0
- package/dist/esm/schema/registry/zipkin.schema.json.js.map +1 -0
- package/package.json +2 -3
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/DatasourceConfigWizard.js +0 -217
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/DatasourceConfigWizard.js.map +0 -1
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/DatasourceErrorBoundary.js +0 -27
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/DatasourceErrorBoundary.js.map +0 -1
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/FieldInput.js +0 -135
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/FieldInput.js.map +0 -1
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/SchemaField.js +0 -80
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/SchemaField.js.map +0 -1
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/SidebarNav.js +0 -54
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/SidebarNav.js.map +0 -1
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/TabLayout.js +0 -155
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/TabLayout.js.map +0 -1
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/cel.js +0 -75
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/cel.js.map +0 -1
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/config.js +0 -262
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/config.js.map +0 -1
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/datasource.js +0 -354
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/datasource.js.map +0 -1
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/fieldUtils.js +0 -138
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/fieldUtils.js.map +0 -1
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/hooks/formInterpreter.js +0 -93
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/hooks/formInterpreter.js.map +0 -1
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/hooks/useDatasourceConfigForm.js +0 -253
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/hooks/useDatasourceConfigForm.js.map +0 -1
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/hooks/useHealthChecks.js +0 -106
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/hooks/useHealthChecks.js.map +0 -1
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/AuthorizationHeaderField.js +0 -52
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/AuthorizationHeaderField.js.map +0 -1
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/ComplexFieldNote.js +0 -26
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/ComplexFieldNote.js.map +0 -1
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/FileUploadField.js +0 -106
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/FileUploadField.js.map +0 -1
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/IndexedPairEditor.js +0 -124
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/IndexedPairEditor.js.map +0 -1
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/ObjectArrayEditor.js +0 -190
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/ObjectArrayEditor.js.map +0 -1
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/PdcFieldNote.js +0 -31
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/PdcFieldNote.js.map +0 -1
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/PrimitiveInputs.js +0 -103
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/PrimitiveInputs.js.map +0 -1
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/SecureFieldInput.js +0 -59
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/SecureFieldInput.js.map +0 -1
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/StringArrayInput.js +0 -80
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/inputs/StringArrayInput.js.map +0 -1
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/layoutParts.js +0 -82
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/layoutParts.js.map +0 -1
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/resolvePluginName.js +0 -30
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/resolvePluginName.js.map +0 -1
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/styles.js +0 -340
- package/dist/esm/components/ConfigEditor/DatasourceConfigWizard/styles.js.map +0 -1
- package/dist/esm/node_modules/js-yaml/dist/js-yaml.js +0 -3043
- package/dist/esm/node_modules/js-yaml/dist/js-yaml.js.map +0 -1
- package/dist/esm/node_modules/react-hook-form/dist/index.esm.js +0 -2766
- package/dist/esm/node_modules/react-hook-form/dist/index.esm.js.map +0 -1
- package/dist/esm/node_modules/semver/functions/truncate.js +0 -62
- package/dist/esm/node_modules/semver/functions/truncate.js.map +0 -1
- package/dist/esm/schema/utils/constants.js +0 -5
- package/dist/esm/schema/utils/constants.js.map +0 -1
- package/dist/esm/schema/utils/dsconfig.js +0 -97
- package/dist/esm/schema/utils/dsconfig.js.map +0 -1
- package/dist/esm/schema/utils/llm.js +0 -54
- package/dist/esm/schema/utils/llm.js.map +0 -1
- package/dist/esm/schema/utils/packs.js +0 -113
- package/dist/esm/schema/utils/packs.js.map +0 -1
- package/dist/esm/schema/utils/provisioning.js +0 -434
- package/dist/esm/schema/utils/provisioning.js.map +0 -1
- package/dist/esm/schema/utils/registry.js +0 -32
- package/dist/esm/schema/utils/registry.js.map +0 -1
- package/dist/esm/schema/utils/useDatasourceSchema.js +0 -39
- package/dist/esm/schema/utils/useDatasourceSchema.js.map +0 -1
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
var $schema = "../schema.json";
|
|
2
|
+
var schemaVersion = "v1";
|
|
3
|
+
var pluginType = "grafana-mqtt-datasource";
|
|
4
|
+
var pluginName = "MQTT";
|
|
5
|
+
var docURL = "https://grafana.com/grafana/plugins/grafana-mqtt-datasource/";
|
|
6
|
+
var fields = [
|
|
7
|
+
{
|
|
8
|
+
id: "jsonData.uri",
|
|
9
|
+
key: "uri",
|
|
10
|
+
label: "URI",
|
|
11
|
+
description: "MQTT broker URI (e.g. tcp://localhost:1883 or ssl://broker:8883).",
|
|
12
|
+
valueType: "string",
|
|
13
|
+
target: "jsonData",
|
|
14
|
+
required: true,
|
|
15
|
+
ui: {
|
|
16
|
+
component: "input",
|
|
17
|
+
placeholder: "tcp://localhost:1883"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
id: "jsonData.username",
|
|
22
|
+
key: "username",
|
|
23
|
+
label: "Username",
|
|
24
|
+
description: "MQTT broker username.",
|
|
25
|
+
valueType: "string",
|
|
26
|
+
target: "jsonData"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
id: "jsonData.clientID",
|
|
30
|
+
key: "clientID",
|
|
31
|
+
label: "Client ID",
|
|
32
|
+
description: "MQTT client identifier. Leave empty for auto-generated.",
|
|
33
|
+
valueType: "string",
|
|
34
|
+
target: "jsonData"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
id: "jsonData.tlsAuth",
|
|
38
|
+
key: "tlsAuth",
|
|
39
|
+
label: "TLS Client Auth",
|
|
40
|
+
description: "Enable TLS client certificate authentication.",
|
|
41
|
+
valueType: "boolean",
|
|
42
|
+
target: "jsonData",
|
|
43
|
+
required: true,
|
|
44
|
+
ui: {
|
|
45
|
+
component: "switch"
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
id: "jsonData.tlsAuthWithCACert",
|
|
50
|
+
key: "tlsAuthWithCACert",
|
|
51
|
+
label: "With CA Cert",
|
|
52
|
+
description: "Provide a CA certificate for TLS verification.",
|
|
53
|
+
valueType: "boolean",
|
|
54
|
+
target: "jsonData",
|
|
55
|
+
required: true,
|
|
56
|
+
ui: {
|
|
57
|
+
component: "switch"
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
id: "jsonData.tlsSkipVerify",
|
|
62
|
+
key: "tlsSkipVerify",
|
|
63
|
+
label: "Skip TLS Verify",
|
|
64
|
+
description: "Skip TLS certificate verification.",
|
|
65
|
+
valueType: "boolean",
|
|
66
|
+
target: "jsonData",
|
|
67
|
+
required: true,
|
|
68
|
+
ui: {
|
|
69
|
+
component: "switch"
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
id: "secureJsonData.password",
|
|
74
|
+
key: "password",
|
|
75
|
+
label: "Password",
|
|
76
|
+
description: "MQTT broker password.",
|
|
77
|
+
valueType: "string",
|
|
78
|
+
semanticType: "password",
|
|
79
|
+
target: "secureJsonData"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
id: "secureJsonData.tlsCACert",
|
|
83
|
+
key: "tlsCACert",
|
|
84
|
+
label: "CA Cert",
|
|
85
|
+
description: "PEM-encoded CA certificate.",
|
|
86
|
+
valueType: "string",
|
|
87
|
+
target: "secureJsonData",
|
|
88
|
+
dependsOn: "jsonData.tlsAuthWithCACert == true",
|
|
89
|
+
ui: {
|
|
90
|
+
component: "textarea",
|
|
91
|
+
rows: 7
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
id: "secureJsonData.tlsClientKey",
|
|
96
|
+
key: "tlsClientKey",
|
|
97
|
+
label: "Client Key",
|
|
98
|
+
description: "PEM-encoded client private key.",
|
|
99
|
+
valueType: "string",
|
|
100
|
+
semanticType: "token",
|
|
101
|
+
target: "secureJsonData",
|
|
102
|
+
dependsOn: "jsonData.tlsAuth == true",
|
|
103
|
+
ui: {
|
|
104
|
+
component: "textarea",
|
|
105
|
+
rows: 7
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
id: "secureJsonData.tlsClientCert",
|
|
110
|
+
key: "tlsClientCert",
|
|
111
|
+
label: "Client Cert",
|
|
112
|
+
description: "PEM-encoded client certificate.",
|
|
113
|
+
valueType: "string",
|
|
114
|
+
target: "secureJsonData",
|
|
115
|
+
dependsOn: "jsonData.tlsAuth == true",
|
|
116
|
+
ui: {
|
|
117
|
+
component: "textarea",
|
|
118
|
+
rows: 7
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
];
|
|
122
|
+
var groups = [
|
|
123
|
+
{
|
|
124
|
+
id: "connection",
|
|
125
|
+
title: "Connection",
|
|
126
|
+
fieldRefs: [
|
|
127
|
+
"jsonData.uri",
|
|
128
|
+
"jsonData.username",
|
|
129
|
+
"secureJsonData.password",
|
|
130
|
+
"jsonData.clientID"
|
|
131
|
+
]
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
id: "tls",
|
|
135
|
+
title: "TLS / SSL",
|
|
136
|
+
fieldRefs: [
|
|
137
|
+
"jsonData.tlsAuth",
|
|
138
|
+
"jsonData.tlsAuthWithCACert",
|
|
139
|
+
"jsonData.tlsSkipVerify",
|
|
140
|
+
"secureJsonData.tlsCACert",
|
|
141
|
+
"secureJsonData.tlsClientCert",
|
|
142
|
+
"secureJsonData.tlsClientKey"
|
|
143
|
+
]
|
|
144
|
+
}
|
|
145
|
+
];
|
|
146
|
+
var relationships = [
|
|
147
|
+
{
|
|
148
|
+
type: "pair",
|
|
149
|
+
fields: [
|
|
150
|
+
"secureJsonData.tlsClientCert",
|
|
151
|
+
"secureJsonData.tlsClientKey"
|
|
152
|
+
],
|
|
153
|
+
description: "TLS client certificate and key"
|
|
154
|
+
}
|
|
155
|
+
];
|
|
156
|
+
var grafanaMqttDatasourceSchema = {
|
|
157
|
+
$schema: $schema,
|
|
158
|
+
schemaVersion: schemaVersion,
|
|
159
|
+
pluginType: pluginType,
|
|
160
|
+
pluginName: pluginName,
|
|
161
|
+
docURL: docURL,
|
|
162
|
+
fields: fields,
|
|
163
|
+
groups: groups,
|
|
164
|
+
relationships: relationships
|
|
165
|
+
};
|
|
166
|
+
|
|
167
|
+
export { $schema, grafanaMqttDatasourceSchema as default, docURL, fields, groups, pluginName, pluginType, relationships, schemaVersion };
|
|
168
|
+
//# sourceMappingURL=grafana-mqtt-datasource.schema.json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grafana-mqtt-datasource.schema.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
var $schema = "../schema.json";
|
|
2
|
+
var schemaVersion = "v1";
|
|
3
|
+
var pluginType = "grafana-newrelic-datasource";
|
|
4
|
+
var pluginName = "New Relic";
|
|
5
|
+
var fields = [
|
|
6
|
+
{
|
|
7
|
+
id: "jsonData.region",
|
|
8
|
+
key: "region",
|
|
9
|
+
label: "Region",
|
|
10
|
+
description: "New Relic data center region.",
|
|
11
|
+
valueType: "string",
|
|
12
|
+
target: "jsonData",
|
|
13
|
+
defaultValue: "US",
|
|
14
|
+
validations: [
|
|
15
|
+
{
|
|
16
|
+
type: "allowedValues",
|
|
17
|
+
values: [
|
|
18
|
+
"US",
|
|
19
|
+
"EU"
|
|
20
|
+
]
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
ui: {
|
|
24
|
+
component: "select",
|
|
25
|
+
options: [
|
|
26
|
+
{
|
|
27
|
+
label: "US",
|
|
28
|
+
value: "US"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
label: "EU",
|
|
32
|
+
value: "EU"
|
|
33
|
+
}
|
|
34
|
+
]
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
id: "jsonData.timeoutInSeconds",
|
|
39
|
+
key: "timeoutInSeconds",
|
|
40
|
+
label: "Timeout (seconds)",
|
|
41
|
+
description: "API request timeout in seconds.",
|
|
42
|
+
valueType: "number",
|
|
43
|
+
target: "jsonData"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
id: "jsonData.restBaseURL",
|
|
47
|
+
key: "restBaseURL",
|
|
48
|
+
label: "REST API Base URL",
|
|
49
|
+
description: "Override for New Relic REST API base URL.",
|
|
50
|
+
valueType: "string",
|
|
51
|
+
semanticType: "url",
|
|
52
|
+
target: "jsonData"
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
id: "jsonData.infrastructureBaseURL",
|
|
56
|
+
key: "infrastructureBaseURL",
|
|
57
|
+
label: "Infrastructure Base URL",
|
|
58
|
+
description: "Override for New Relic Infrastructure API base URL.",
|
|
59
|
+
valueType: "string",
|
|
60
|
+
semanticType: "url",
|
|
61
|
+
target: "jsonData"
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
id: "jsonData.nerdGraphBaseURL",
|
|
65
|
+
key: "nerdGraphBaseURL",
|
|
66
|
+
label: "NerdGraph Base URL",
|
|
67
|
+
description: "Override for New Relic NerdGraph API base URL.",
|
|
68
|
+
valueType: "string",
|
|
69
|
+
semanticType: "url",
|
|
70
|
+
target: "jsonData"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
id: "secureJsonData.accountId",
|
|
74
|
+
key: "accountId",
|
|
75
|
+
label: "Account ID",
|
|
76
|
+
description: "New Relic account ID.",
|
|
77
|
+
valueType: "string",
|
|
78
|
+
target: "secureJsonData",
|
|
79
|
+
required: true
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
id: "secureJsonData.personalApiKey",
|
|
83
|
+
key: "personalApiKey",
|
|
84
|
+
label: "Personal API Key",
|
|
85
|
+
description: "New Relic personal API key (User key).",
|
|
86
|
+
valueType: "string",
|
|
87
|
+
target: "secureJsonData",
|
|
88
|
+
required: true,
|
|
89
|
+
semanticType: "token"
|
|
90
|
+
}
|
|
91
|
+
];
|
|
92
|
+
var groups = [
|
|
93
|
+
{
|
|
94
|
+
id: "auth",
|
|
95
|
+
title: "Authentication",
|
|
96
|
+
fieldRefs: [
|
|
97
|
+
"secureJsonData.accountId",
|
|
98
|
+
"secureJsonData.personalApiKey"
|
|
99
|
+
]
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
id: "connection",
|
|
103
|
+
title: "Connection",
|
|
104
|
+
fieldRefs: [
|
|
105
|
+
"jsonData.region",
|
|
106
|
+
"jsonData.timeoutInSeconds"
|
|
107
|
+
]
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
id: "advanced",
|
|
111
|
+
title: "Advanced URLs",
|
|
112
|
+
fieldRefs: [
|
|
113
|
+
"jsonData.restBaseURL",
|
|
114
|
+
"jsonData.infrastructureBaseURL",
|
|
115
|
+
"jsonData.nerdGraphBaseURL"
|
|
116
|
+
]
|
|
117
|
+
}
|
|
118
|
+
];
|
|
119
|
+
var grafanaNewrelicDatasourceSchema = {
|
|
120
|
+
$schema: $schema,
|
|
121
|
+
schemaVersion: schemaVersion,
|
|
122
|
+
pluginType: pluginType,
|
|
123
|
+
pluginName: pluginName,
|
|
124
|
+
fields: fields,
|
|
125
|
+
groups: groups
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
export { $schema, grafanaNewrelicDatasourceSchema as default, fields, groups, pluginName, pluginType, schemaVersion };
|
|
129
|
+
//# sourceMappingURL=grafana-newrelic-datasource.schema.json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grafana-newrelic-datasource.schema.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
var $schema = "../schema.json";
|
|
2
|
+
var schemaVersion = "v1";
|
|
3
|
+
var pluginType = "grafana-odbc-datasource";
|
|
4
|
+
var pluginName = "Sqlyze (ODBC)";
|
|
5
|
+
var fields = [
|
|
6
|
+
{
|
|
7
|
+
id: "jsonData.driver",
|
|
8
|
+
key: "driver",
|
|
9
|
+
label: "Driver",
|
|
10
|
+
description: "ODBC driver to use for the connection.",
|
|
11
|
+
valueType: "string",
|
|
12
|
+
target: "jsonData",
|
|
13
|
+
required: true
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
id: "jsonData.timeout",
|
|
17
|
+
key: "timeout",
|
|
18
|
+
label: "Timeout",
|
|
19
|
+
description: "Connection timeout value.",
|
|
20
|
+
valueType: "string",
|
|
21
|
+
target: "jsonData"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
id: "jsonData.settings",
|
|
25
|
+
key: "settings",
|
|
26
|
+
label: "Connection Settings",
|
|
27
|
+
description: "Key-value pairs for the ODBC connection string.",
|
|
28
|
+
valueType: "array",
|
|
29
|
+
target: "jsonData",
|
|
30
|
+
item: {
|
|
31
|
+
valueType: "object"
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
];
|
|
35
|
+
var groups = [
|
|
36
|
+
{
|
|
37
|
+
id: "connection",
|
|
38
|
+
title: "Connection Settings",
|
|
39
|
+
fieldRefs: [
|
|
40
|
+
"jsonData.driver",
|
|
41
|
+
"jsonData.timeout",
|
|
42
|
+
"jsonData.settings"
|
|
43
|
+
]
|
|
44
|
+
}
|
|
45
|
+
];
|
|
46
|
+
var grafanaOdbcDatasourceSchema = {
|
|
47
|
+
$schema: $schema,
|
|
48
|
+
schemaVersion: schemaVersion,
|
|
49
|
+
pluginType: pluginType,
|
|
50
|
+
pluginName: pluginName,
|
|
51
|
+
fields: fields,
|
|
52
|
+
groups: groups
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
export { $schema, grafanaOdbcDatasourceSchema as default, fields, groups, pluginName, pluginType, schemaVersion };
|
|
56
|
+
//# sourceMappingURL=grafana-odbc-datasource.schema.json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grafana-odbc-datasource.schema.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
var $schema = "../schema.json";
|
|
2
|
+
var schemaVersion = "v1";
|
|
3
|
+
var pluginType = "grafana-opensearch-datasource";
|
|
4
|
+
var pluginName = "OpenSearch";
|
|
5
|
+
var docURL = "https://grafana.com/grafana/plugins/grafana-opensearch-datasource/";
|
|
6
|
+
var fields = [
|
|
7
|
+
{
|
|
8
|
+
id: "jsonData.database",
|
|
9
|
+
key: "database",
|
|
10
|
+
label: "Index name",
|
|
11
|
+
description: "Name of the OpenSearch index.",
|
|
12
|
+
valueType: "string",
|
|
13
|
+
target: "jsonData",
|
|
14
|
+
required: true
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
id: "jsonData.timeField",
|
|
18
|
+
key: "timeField",
|
|
19
|
+
label: "Time field name",
|
|
20
|
+
description: "Name of the time field. Default is @timestamp.",
|
|
21
|
+
valueType: "string",
|
|
22
|
+
target: "jsonData",
|
|
23
|
+
required: true,
|
|
24
|
+
defaultValue: "@timestamp"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
id: "jsonData.version",
|
|
28
|
+
key: "version",
|
|
29
|
+
label: "Version",
|
|
30
|
+
description: "OpenSearch version.",
|
|
31
|
+
valueType: "string",
|
|
32
|
+
target: "jsonData",
|
|
33
|
+
required: true
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
id: "jsonData.flavor",
|
|
37
|
+
key: "flavor",
|
|
38
|
+
label: "Flavor",
|
|
39
|
+
description: "Backend flavor: OpenSearch or Elasticsearch.",
|
|
40
|
+
valueType: "string",
|
|
41
|
+
target: "jsonData",
|
|
42
|
+
required: true,
|
|
43
|
+
defaultValue: "opensearch",
|
|
44
|
+
validations: [
|
|
45
|
+
{
|
|
46
|
+
type: "allowedValues",
|
|
47
|
+
values: [
|
|
48
|
+
"opensearch",
|
|
49
|
+
"elasticsearch"
|
|
50
|
+
]
|
|
51
|
+
}
|
|
52
|
+
],
|
|
53
|
+
ui: {
|
|
54
|
+
component: "select",
|
|
55
|
+
options: [
|
|
56
|
+
{
|
|
57
|
+
label: "OpenSearch",
|
|
58
|
+
value: "opensearch"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
label: "Elasticsearch",
|
|
62
|
+
value: "elasticsearch"
|
|
63
|
+
}
|
|
64
|
+
]
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
id: "jsonData.interval",
|
|
69
|
+
key: "interval",
|
|
70
|
+
label: "Index date pattern",
|
|
71
|
+
description: "Index date time format for pattern-based indices.",
|
|
72
|
+
valueType: "string",
|
|
73
|
+
target: "jsonData"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
id: "jsonData.timeInterval",
|
|
77
|
+
key: "timeInterval",
|
|
78
|
+
label: "Min time interval",
|
|
79
|
+
description: "A lower limit for the auto group-by time interval.",
|
|
80
|
+
valueType: "string",
|
|
81
|
+
semanticType: "duration",
|
|
82
|
+
target: "jsonData",
|
|
83
|
+
required: true,
|
|
84
|
+
defaultValue: "10s"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
id: "jsonData.maxConcurrentShardRequests",
|
|
88
|
+
key: "maxConcurrentShardRequests",
|
|
89
|
+
label: "Max concurrent shard requests",
|
|
90
|
+
description: "Number of shards queried simultaneously.",
|
|
91
|
+
valueType: "number",
|
|
92
|
+
target: "jsonData",
|
|
93
|
+
defaultValue: 5
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
id: "jsonData.logMessageField",
|
|
97
|
+
key: "logMessageField",
|
|
98
|
+
label: "Message field name",
|
|
99
|
+
description: "Which field should be used as the log message.",
|
|
100
|
+
valueType: "string",
|
|
101
|
+
target: "jsonData"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
id: "jsonData.logLevelField",
|
|
105
|
+
key: "logLevelField",
|
|
106
|
+
label: "Level field name",
|
|
107
|
+
description: "Which field should indicate the log level.",
|
|
108
|
+
valueType: "string",
|
|
109
|
+
target: "jsonData"
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
id: "jsonData.pplEnabled",
|
|
113
|
+
key: "pplEnabled",
|
|
114
|
+
label: "PPL enabled",
|
|
115
|
+
description: "Enable Piped Processing Language (PPL) support.",
|
|
116
|
+
valueType: "boolean",
|
|
117
|
+
target: "jsonData",
|
|
118
|
+
ui: {
|
|
119
|
+
component: "switch"
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
id: "jsonData.sigV4Auth",
|
|
124
|
+
key: "sigV4Auth",
|
|
125
|
+
label: "SigV4 auth",
|
|
126
|
+
description: "Enable AWS Signature Version 4 authentication.",
|
|
127
|
+
valueType: "boolean",
|
|
128
|
+
target: "jsonData",
|
|
129
|
+
ui: {
|
|
130
|
+
component: "switch"
|
|
131
|
+
}
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
id: "jsonData.serverless",
|
|
135
|
+
key: "serverless",
|
|
136
|
+
label: "Serverless",
|
|
137
|
+
description: "Enable for Amazon OpenSearch Serverless.",
|
|
138
|
+
valueType: "boolean",
|
|
139
|
+
target: "jsonData",
|
|
140
|
+
ui: {
|
|
141
|
+
component: "switch"
|
|
142
|
+
}
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
id: "jsonData.enableSecureSocksProxy",
|
|
146
|
+
key: "enableSecureSocksProxy",
|
|
147
|
+
label: "Secure Socks Proxy",
|
|
148
|
+
description: "Enable secure SOCKS proxy.",
|
|
149
|
+
valueType: "boolean",
|
|
150
|
+
target: "jsonData",
|
|
151
|
+
ui: {
|
|
152
|
+
component: "switch"
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
];
|
|
156
|
+
var groups = [
|
|
157
|
+
{
|
|
158
|
+
id: "opensearch-details",
|
|
159
|
+
title: "OpenSearch details",
|
|
160
|
+
fieldRefs: [
|
|
161
|
+
"jsonData.database",
|
|
162
|
+
"jsonData.timeField",
|
|
163
|
+
"jsonData.version",
|
|
164
|
+
"jsonData.flavor",
|
|
165
|
+
"jsonData.interval",
|
|
166
|
+
"jsonData.timeInterval",
|
|
167
|
+
"jsonData.maxConcurrentShardRequests"
|
|
168
|
+
]
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
id: "logs",
|
|
172
|
+
title: "Logs",
|
|
173
|
+
fieldRefs: [
|
|
174
|
+
"jsonData.logMessageField",
|
|
175
|
+
"jsonData.logLevelField"
|
|
176
|
+
]
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
id: "features",
|
|
180
|
+
title: "Features",
|
|
181
|
+
fieldRefs: [
|
|
182
|
+
"jsonData.pplEnabled",
|
|
183
|
+
"jsonData.serverless"
|
|
184
|
+
]
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
id: "auth",
|
|
188
|
+
title: "Authentication",
|
|
189
|
+
fieldRefs: [
|
|
190
|
+
"jsonData.sigV4Auth"
|
|
191
|
+
]
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
id: "network",
|
|
195
|
+
title: "Network",
|
|
196
|
+
fieldRefs: [
|
|
197
|
+
"jsonData.enableSecureSocksProxy"
|
|
198
|
+
]
|
|
199
|
+
}
|
|
200
|
+
];
|
|
201
|
+
var grafanaOpensearchDatasourceSchema = {
|
|
202
|
+
$schema: $schema,
|
|
203
|
+
schemaVersion: schemaVersion,
|
|
204
|
+
pluginType: pluginType,
|
|
205
|
+
pluginName: pluginName,
|
|
206
|
+
docURL: docURL,
|
|
207
|
+
fields: fields,
|
|
208
|
+
groups: groups
|
|
209
|
+
};
|
|
210
|
+
|
|
211
|
+
export { $schema, grafanaOpensearchDatasourceSchema as default, docURL, fields, groups, pluginName, pluginType, schemaVersion };
|
|
212
|
+
//# sourceMappingURL=grafana-opensearch-datasource.schema.json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grafana-opensearch-datasource.schema.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|