[FEATURE] RegisterModelStep / DeployModelStep Improvements

Is your feature request related to a problem?
In an effort to address any issues/gaps with the current step implementations, this issue is to track necessary modifications for the RegisterModelStep and DeployModelStep
Context
In order to use the register and deploy model APIs, it is first necessary to install the ML Commons plugin prior to installing the Flow Framework Plugin.
These steps were tested prior to the availability of the CreateConnectorStep, so the create connector API was invoked to get the connector_id prior to invoking the RestCreateWorkflowAction, since it is a necessary input of the RegisterModelStep
The following use case template was used to test out register and deploy model :
{
   "name": "deploy-register-model",
    "description": "test case",
    "use_case": "SEMANTIC_SEARCH",
    "operations": [
        "PROVISION"
    ],
    "version": {
        "template": "1.0.0",
        "compatibility": [
            "2.12.0",
            "3.0.0"
        ]
    },
    "user_inputs": {},
    "workflows": {
        "provision": {
            "nodes": [
                {
                    "id": "workflow_step_1",
                    "type": "register_model",
                    "inputs": {
                      "name": "openAI-gpt-3.5-turbo",
                      "function_name": "remote",
                      "description": "test model",
                      "connector_id": "8SQESosBvqMC0I7jNGsk"
                    }
                },
                {
                    "id": "workflow_step_2",
                    "type": "deploy_model",
                    "inputs": {
                      "model_id": {}
                    }
                }
            ],
            "edges": [{
                "source": "workflow_step_1",
                "dest": "workflow_step_2"
            }]
        }
    }
}

Logs for creating and provisioning a workflow :
dev-dsk-jpalis-2c-27c8aa11 % curl -i -XPOST "localhost:9200/_plugins/_flow_framework/workflow" -H "Content-Type:application/json" --data '{"name":"deploy-register-model","description":"test case","use_case":"SEMANTIC_SEARCH","operations":["PROVISION"],"version":{"template":"1.0.0","compatibility":["2.12.0","3.0.0"]},"user_inputs":{},"workflows":{"provision":{"nodes":[{"id":"workflow_step_1","type":"register_model","inputs":{"name":"openAI-gpt-3.5-turbo","function_name":"remote","description":"test model","connector_id":"Q9ULSosBOUiUyTeEzrft"}},{"id":"workflow_step_2","type":"deploy_model","inputs":{}}],"edges":[{"source":"workflow_step_1","dest":"workflow_step_2"}]}}}'
HTTP/1.1 201 Created
X-OpenSearch-Version: OpenSearch/3.0.0-SNAPSHOT (opensearch)
content-type: application/json; charset=UTF-8
content-length: 38

{"workflow_id":"RNUMSosBOUiUyTeEdbeS"}%

(23-10-19 22:26:52) <0> [~/repos/ai-flow-framework/opensearch-ai-flow-framework]
dev-dsk-jpalis-2c-27c8aa11 % curl -i -XPOST "localhost:9200/_plugins/_flow_framework/workflow/RNUMSosBOUiUyTeEdbeS/_provision"
HTTP/1.1 200 OK
X-OpenSearch-Version: OpenSearch/3.0.0-SNAPSHOT (opensearch)
content-type: application/json; charset=UTF-8
content-length: 38

{"workflow_id":"RNUMSosBOUiUyTeEdbeS"}%

OpenSearch Logs
[2023-10-19T22:25:56,258][INFO ][o.o.n.Node               ] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] started
[2023-10-19T22:25:56,268][INFO ][o.o.g.GatewayService     ] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] recovered [0] indices into cluster_state
[2023-10-19T22:26:06,305][INFO ][o.o.p.PluginsService     ] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] PluginService:onIndexModule index:[.plugins-ml-config/ebDKP8fOTF-jNq6UH7Xnxg]
[2023-10-19T22:26:06,451][INFO ][o.o.c.m.MetadataCreateIndexService] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] [.plugins-ml-config] creating index, cause [api], templates [], shards [1]/[1]
[2023-10-19T22:26:06,458][INFO ][o.o.c.r.a.AllocationService] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] updating number_of_replicas to [0] for indices [.plugins-ml-config]
[2023-10-19T22:26:06,511][INFO ][o.o.p.PluginsService     ] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] PluginService:onIndexModule index:[.plugins-ml-config/ebDKP8fOTF-jNq6UH7Xnxg]
[2023-10-19T22:26:06,681][INFO ][o.o.c.r.a.AllocationService] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] Cluster health status changed from [YELLOW] to [GREEN] (reason: [shards started [[.plugins-ml-config][0]]]).
[2023-10-19T22:26:06,712][INFO ][o.o.m.i.MLIndicesHandler ] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] create index:.plugins-ml-config
[2023-10-19T22:26:06,808][INFO ][o.o.m.c.MLSyncUpCron     ] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] ML configuration initialized successfully
[2023-10-19T22:26:09,431][INFO ][o.r.Reflections          ] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] Reflections took 9 ms to scan 1 urls, producing 6 keys and 34 values
[2023-10-19T22:26:09,440][INFO ][o.r.Reflections          ] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] Reflections took 5 ms to scan 1 urls, producing 8 keys and 38 values
[2023-10-19T22:26:09,445][INFO ][o.r.Reflections          ] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] Reflections took 2 ms to scan 1 urls, producing 5 keys and 14 values
[2023-10-19T22:26:09,450][INFO ][o.r.Reflections          ] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] Reflections took 2 ms to scan 1 urls, producing 3 keys and 8 values
[2023-10-19T22:26:09,454][INFO ][o.r.Reflections          ] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] Reflections took 2 ms to scan 1 urls, producing 5 keys and 15 values
[2023-10-19T22:26:09,463][INFO ][o.r.Reflections          ] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] Reflections took 6 ms to scan 1 urls, producing 11 keys and 49 values
[2023-10-19T22:26:09,468][INFO ][o.r.Reflections          ] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] Reflections took 2 ms to scan 1 urls, producing 8 keys and 11 values
[2023-10-19T22:26:09,639][INFO ][o.o.m.a.c.TransportCreateConnectorAction] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] connector created, indexing into the connector system index
[2023-10-19T22:26:09,645][INFO ][o.o.p.PluginsService     ] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] PluginService:onIndexModule index:[.plugins-ml-connector/9GSoYfQeQCe1FOqYrryMqQ]
[2023-10-19T22:26:09,668][INFO ][o.o.c.m.MetadataCreateIndexService] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] [.plugins-ml-connector] creating index, cause [api], templates [], shards [1]/[1]
[2023-10-19T22:26:09,670][INFO ][o.o.c.r.a.AllocationService] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] updating number_of_replicas to [0] for indices [.plugins-ml-connector]
[2023-10-19T22:26:09,695][INFO ][o.o.p.PluginsService     ] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] PluginService:onIndexModule index:[.plugins-ml-connector/9GSoYfQeQCe1FOqYrryMqQ]
[2023-10-19T22:26:09,748][INFO ][o.o.c.r.a.AllocationService] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] Cluster health status changed from [YELLOW] to [GREEN] (reason: [shards started [[.plugins-ml-connector][0]]]).
[2023-10-19T22:26:09,771][INFO ][o.o.m.i.MLIndicesHandler ] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] create index:.plugins-ml-connector
[2023-10-19T22:26:09,806][INFO ][o.o.m.a.c.TransportCreateConnectorAction] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] Connector saved into index, result:CREATED, connector id: Q9ULSosBOUiUyTeEzrft
[2023-10-19T22:26:52,342][INFO ][o.o.p.PluginsService     ] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] PluginService:onIndexModule index:[.plugins-ai-global-context/3KrBy1LmTd2v-WL_xyEu-A]
[2023-10-19T22:26:52,349][INFO ][o.o.c.m.MetadataCreateIndexService] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] [.plugins-ai-global-context] creating index, cause [api], templates [], shards [1]/[1]
[2023-10-19T22:26:52,350][INFO ][o.o.c.r.a.AllocationService] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] updating number_of_replicas to [0] for indices [.plugins-ai-global-context]
[2023-10-19T22:26:52,372][INFO ][o.o.p.PluginsService     ] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] PluginService:onIndexModule index:[.plugins-ai-global-context/3KrBy1LmTd2v-WL_xyEu-A]
[2023-10-19T22:26:52,415][INFO ][o.o.c.r.a.AllocationService] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] Cluster health status changed from [YELLOW] to [GREEN] (reason: [shards started [[.plugins-ai-global-context][0]]]).
[2023-10-19T22:26:52,432][INFO ][o.o.f.w.CreateIndexStep  ] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] create index:.plugins-ai-global-context
[2023-10-19T22:27:16,658][INFO ][o.o.f.t.ProvisionWorkflowTransportAction] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] Queueing process [workflow_step_1]. Can start immediately!
[2023-10-19T22:27:16,659][INFO ][o.o.f.t.ProvisionWorkflowTransportAction] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] Queueing process [workflow_step_2]. Must wait for [workflow_step_1] to complete first.
[2023-10-19T22:27:16,659][INFO ][o.o.f.w.ProcessNode      ] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] Starting workflow_step_1.
[2023-10-19T22:27:16,682][INFO ][o.o.p.PluginsService     ] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] PluginService:onIndexModule index:[.plugins-ml-model-group/PnqmdVCHRCyuJ1Kzl89rXg]
[2023-10-19T22:27:16,689][INFO ][o.o.c.m.MetadataCreateIndexService] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] [.plugins-ml-model-group] creating index, cause [api], templates [], shards [1]/[1]
[2023-10-19T22:27:16,690][INFO ][o.o.c.r.a.AllocationService] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] updating number_of_replicas to [0] for indices [.plugins-ml-model-group]
[2023-10-19T22:27:16,712][INFO ][o.o.p.PluginsService     ] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] PluginService:onIndexModule index:[.plugins-ml-model-group/PnqmdVCHRCyuJ1Kzl89rXg]
[2023-10-19T22:27:16,756][INFO ][o.o.c.r.a.AllocationService] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] Cluster health status changed from [YELLOW] to [GREEN] (reason: [shards started [[.plugins-ml-model-group][0]]]).
[2023-10-19T22:27:16,777][INFO ][o.o.m.i.MLIndicesHandler ] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] create index:.plugins-ml-model-group
[2023-10-19T22:27:16,795][INFO ][stdout                   ] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] registering the model
[2023-10-19T22:27:16,799][INFO ][o.o.p.PluginsService     ] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] PluginService:onIndexModule index:[.plugins-ml-task/iYeZxGoFTseUYRRerSa6WA]
[2023-10-19T22:27:16,808][INFO ][o.o.c.m.MetadataCreateIndexService] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] [.plugins-ml-task] creating index, cause [api], templates [], shards [1]/[1]
[2023-10-19T22:27:16,809][INFO ][o.o.c.r.a.AllocationService] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] updating number_of_replicas to [0] for indices [.plugins-ml-task]
[2023-10-19T22:27:16,830][INFO ][o.o.p.PluginsService     ] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] PluginService:onIndexModule index:[.plugins-ml-task/iYeZxGoFTseUYRRerSa6WA]
[2023-10-19T22:27:16,874][INFO ][o.o.c.r.a.AllocationService] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] Cluster health status changed from [YELLOW] to [GREEN] (reason: [shards started [[.plugins-ml-task][0]]]).
[2023-10-19T22:27:16,892][INFO ][o.o.m.i.MLIndicesHandler ] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] create index:.plugins-ml-task
[2023-10-19T22:27:16,953][INFO ][o.o.p.PluginsService     ] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] PluginService:onIndexModule index:[.plugins-ml-model/R1CKhwWJTkuJIiyseaF7fA]
[2023-10-19T22:27:16,964][INFO ][o.o.c.m.MetadataCreateIndexService] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] [.plugins-ml-model] creating index, cause [api], templates [], shards [1]/[1]
[2023-10-19T22:27:16,965][INFO ][o.o.c.r.a.AllocationService] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] updating number_of_replicas to [0] for indices [.plugins-ml-model]
[2023-10-19T22:27:16,987][INFO ][o.o.p.PluginsService     ] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] PluginService:onIndexModule index:[.plugins-ml-model/R1CKhwWJTkuJIiyseaF7fA]
[2023-10-19T22:27:17,033][INFO ][o.o.c.r.a.AllocationService] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] Cluster health status changed from [YELLOW] to [GREEN] (reason: [shards started [[.plugins-ml-model][0]]]).
[2023-10-19T22:27:17,054][INFO ][o.o.m.i.MLIndicesHandler ] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] create index:.plugins-ml-model
[2023-10-19T22:27:17,067][INFO ][o.o.p.PluginsService     ] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] PluginService:onIndexModule index:[.plugins-ml-model/R1CKhwWJTkuJIiyseaF7fA]
[2023-10-19T22:27:17,082][INFO ][o.o.c.m.MetadataMappingService] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] [.plugins-ml-model/R1CKhwWJTkuJIiyseaF7fA] update_mapping [_doc]
[2023-10-19T22:27:17,122][INFO ][o.o.m.m.MLModelManager   ] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] create new model meta doc R9UMSosBOUiUyTeE1bfB for upload task RtUMSosBOUiUyTeE1bce
[2023-10-19T22:27:17,123][ERROR][o.o.f.w.RegisterModelStep] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] Failed to register model
[2023-10-19T22:27:17,124][ERROR][o.o.f.t.ProvisionWorkflowTransportAction] [dev-dsk-jpalis-2c-27c8aa11.us-west-2.amazon.com] Provisioning failed for workflow RNUMSosBOUiUyTeEdbeS : org.opensearch.flowframework.exception.FlowFrameworkException: java.util.concurrent.ExecutionException: org.opensearch.flowframework.exception.FlowFrameworkException: class org.opensearch.ml.common.transport.register.MLRegisterModelResponse cannot be cast to class org.opensearch.ml.common.transport.register.MLRegisterModelResponse (org.opensearch.ml.common.transport.register.MLRegisterModelResponse is in unnamed module of loader java.net.FactoryURLClassLoader @2c58dcb1; org.opensearch.ml.common.transport.register.MLRegisterModelResponse is in unnamed module of loader java.net.FactoryURLClassLoader @5527b211)

Action Items

[ ] The use case template shown above omits the model_id input for the DeployModelStep, which is an output of the RegisterModelStep. Currently, the DeployModelStep works fine without specifying the model_id input on the use case template, but as a builder, it will be confusing without a placeholder. It will be necessary to determine what format dependent inputs for each step should look like on a use case template
[ ] It is necessary for the ML Commons plugin to be installed first in order to use the RegisterModelStep and DeployModelStep since these steps utilize that plugin's APIs. We can set ML Commons Plugin to be an extendedPlugin within our build.gradle so that installation of the FlowFrameworkPlugin requires ML Commons to be installed first, but this would require the installation of that plugin even for use cases that don't require those associated WorkflowSteps. ( @dbwiddis I think its important for us to discuss how we want to handle dependencies on different plugins)
[ ] The RegisterModelStep completes exceptionally due to the above error, though the logs indicate that the model has been successfully registered on the ML Commons side.

It is necessary for the ML Commons plugin to be installed first in order to use the RegisterModelStep and DeployModelStep since these steps utilize that plugin's APIs

I'm unclear what this means.
I thought we were taking a dependency on the MLClient separately, and we don't actually call any APIs during installation of the plugin.  What exactly is the problem?

------------------------------------------------------------
Root project 'opensearch-ai-flow-framework' - OpenSearch plugin that enables builders to innovate AI apps on OpenSearch
------------------------------------------------------------

annotationProcessor - Annotation processors and their dependencies for source set 'main'.
No dependencies

api - API dependencies for the 'main' feature. (n)
No dependencies

apiElements - API elements for the 'main' feature. (n)
No dependencies

checkstyle - The Checkstyle libraries to be used for this project.
\--- com.puppycrawl.tools:checkstyle:9.3
     +--- info.picocli:picocli:4.6.2
     +--- org.antlr:antlr4-runtime:4.9.3
     +--- commons-beanutils:commons-beanutils:1.9.4
     |    \--- commons-collections:commons-collections:3.2.2
     +--- com.google.guava:guava:31.0.1-jre -> 32.1.3-jre
     |    +--- com.google.guava:failureaccess:1.0.1
     |    +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
     |    +--- com.google.code.findbugs:jsr305:3.0.2
     |    +--- org.checkerframework:checker-qual:3.37.0
     |    \--- com.google.errorprone:error_prone_annotations:2.21.1
     +--- org.reflections:reflections:0.10.2
     |    +--- org.javassist:javassist:3.28.0-GA
     |    \--- com.google.code.findbugs:jsr305:3.0.2
     \--- net.sf.saxon:Saxon-HE:10.6

compileClasspath - Compile classpath for source set 'main'.
+--- org.opensearch:opensearch:3.0.0-SNAPSHOT
|    +--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
|    +--- org.opensearch:opensearch-core:3.0.0-SNAPSHOT
|    |    +--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
|    |    +--- com.fasterxml.jackson.core:jackson-core:2.15.2
|    |    +--- org.apache.lucene:lucene-core:9.8.0-snapshot-4373c3b
|    |    \--- org.apache.logging.log4j:log4j-api:2.20.0
|    +--- org.opensearch:opensearch-compress:3.0.0-SNAPSHOT
|    |    +--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
|    |    +--- org.opensearch:opensearch-core:3.0.0-SNAPSHOT (*)
|    |    \--- com.github.luben:zstd-jni:1.5.5-5
|    +--- org.opensearch:opensearch-secure-sm:3.0.0-SNAPSHOT
|    +--- org.opensearch:opensearch-x-content:3.0.0-SNAPSHOT
|    |    +--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
|    |    +--- org.opensearch:opensearch-core:3.0.0-SNAPSHOT (*)
|    |    +--- org.yaml:snakeyaml:2.1
|    |    +--- com.fasterxml.jackson.core:jackson-core:2.15.2
|    |    +--- com.fasterxml.jackson.dataformat:jackson-dataformat-smile:2.15.2
|    |    +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.15.2
|    |    \--- com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:2.15.2
|    +--- org.opensearch:opensearch-geo:3.0.0-SNAPSHOT
|    +--- org.opensearch:opensearch-telemetry:3.0.0-SNAPSHOT
|    |    \--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
|    +--- org.apache.lucene:lucene-core:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-analysis-common:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-backward-codecs:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-grouping:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-highlighter:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-join:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-memory:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-misc:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-queries:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-queryparser:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-sandbox:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-spatial-extras:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-spatial3d:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-suggest:9.8.0-snapshot-4373c3b
|    +--- org.opensearch:opensearch-cli:3.0.0-SNAPSHOT
|    |    +--- net.sf.jopt-simple:jopt-simple:5.0.4
|    |    \--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
|    +--- joda-time:joda-time:2.12.2
|    +--- com.tdunning:t-digest:3.3
|    +--- org.hdrhistogram:HdrHistogram:2.1.12
|    +--- org.locationtech.spatial4j:spatial4j:0.7
|    +--- org.locationtech.jts:jts-core:1.15.0
|    +--- org.apache.logging.log4j:log4j-api:2.20.0
|    +--- org.apache.logging.log4j:log4j-jul:2.20.0
|    +--- org.apache.logging.log4j:log4j-core:2.20.0
|    +--- net.java.dev.jna:jna:5.5.0
|    +--- com.jcraft:jzlib:1.1.3
|    +--- com.google.protobuf:protobuf-java:3.22.3
|    \--- jakarta.annotation:jakarta.annotation-api:1.3.5
+--- org.locationtech.spatial4j:spatial4j:0.7
+--- org.locationtech.jts:jts-core:1.15.0
+--- org.apache.logging.log4j:log4j-api:2.20.0
+--- org.apache.logging.log4j:log4j-core:2.20.0
+--- net.java.dev.jna:jna:5.5.0
+--- org.junit.jupiter:junit-jupiter:5.10.0
+--- com.google.guava:guava:32.1.3-jre
\--- org.opensearch:opensearch-ml-client:<IP_ADDRESS>-SNAPSHOT

compileOnly - Compile-only dependencies for the 'main' feature. (n)
+--- org.opensearch:opensearch:3.0.0-SNAPSHOT (n)
+--- org.locationtech.spatial4j:spatial4j:0.7 (n)
+--- org.locationtech.jts:jts-core:1.15.0 (n)
+--- org.apache.logging.log4j:log4j-api:2.20.0 (n)
+--- org.apache.logging.log4j:log4j-core:2.20.0 (n)
\--- net.java.dev.jna:jna:5.5.0 (n)

compileOnlyApi - Compile-only API dependencies for the 'main' feature. (n)
No dependencies

coverageDataElementsForTest - Binary data file containing results of Jacoco test coverage reporting for the test Test Suite's test target. (n)
No dependencies

default - Configuration for default artifacts. (n)
No dependencies

forbiddenApisCliJar
\--- de.thetaphi:forbiddenapis:3.5.1

implementation - Implementation dependencies for the 'main' feature. (n)
+--- org.opensearch:opensearch:3.0.0-SNAPSHOT (n)
+--- org.junit.jupiter:junit-jupiter:5.10.0 (n)
+--- com.google.guava:guava:32.1.3-jre (n)
\--- org.opensearch:opensearch-ml-client:<IP_ADDRESS>-SNAPSHOT (n)

jacocoAgent - The Jacoco agent to use to get coverage data.
\--- org.jacoco:org.jacoco.agent:0.8.9

jacocoAnt - The Jacoco ant tasks to use to get execute Gradle tasks.
\--- org.jacoco:org.jacoco.ant:0.8.9
     +--- org.jacoco:org.jacoco.core:0.8.9
     |    +--- org.ow2.asm:asm:9.5
     |    +--- org.ow2.asm:asm-commons:9.5
     |    |    +--- org.ow2.asm:asm:9.5
     |    |    \--- org.ow2.asm:asm-tree:9.5
     |    |         \--- org.ow2.asm:asm:9.5
     |    \--- org.ow2.asm:asm-tree:9.5 (*)
     +--- org.jacoco:org.jacoco.report:0.8.9
     |    \--- org.jacoco:org.jacoco.core:0.8.9 (*)
     \--- org.jacoco:org.jacoco.agent:0.8.9

jarHell
No dependencies

jdkJarHell
No dependencies

loggerUsagePlugin
\--- org.opensearch.test:logger-usage:3.0.0-SNAPSHOT FAILED

mainSourceElements - List of source directories contained in the Main SourceSet. (n)
No dependencies

opensearch_distro_extracted_testclusters--integTest-0-3.0.0-SNAPSHOT-
\--- opensearch-distribution-snapshot:opensearch:3.0.0-SNAPSHOT

opensearch_distro_extracted_testclusters--yamlRestTest-0-3.0.0-SNAPSHOT-
\--- org.opensearch.distribution.integ-test-zip:opensearch:3.0.0-SNAPSHOT

opensearch_distro_file_testclusters--integTest-0-3.0.0-SNAPSHOT-
\--- opensearch-distribution-snapshot:opensearch:3.0.0-SNAPSHOT

opensearch_distro_file_testclusters--yamlRestTest-0-3.0.0-SNAPSHOT-
\--- org.opensearch.distribution.integ-test-zip:opensearch:3.0.0-SNAPSHOT

resolveableCompileOnly
+--- org.opensearch:opensearch:3.0.0-SNAPSHOT
|    +--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
|    +--- org.opensearch:opensearch-core:3.0.0-SNAPSHOT
|    |    +--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
|    |    +--- com.fasterxml.jackson.core:jackson-core:2.15.2
|    |    +--- org.apache.lucene:lucene-core:9.8.0-snapshot-4373c3b
|    |    \--- org.apache.logging.log4j:log4j-api:2.20.0
|    +--- org.opensearch:opensearch-compress:3.0.0-SNAPSHOT
|    |    +--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
|    |    +--- org.opensearch:opensearch-core:3.0.0-SNAPSHOT (*)
|    |    \--- com.github.luben:zstd-jni:1.5.5-5
|    +--- org.opensearch:opensearch-secure-sm:3.0.0-SNAPSHOT
|    +--- org.opensearch:opensearch-x-content:3.0.0-SNAPSHOT
|    |    +--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
|    |    +--- org.opensearch:opensearch-core:3.0.0-SNAPSHOT (*)
|    |    +--- org.yaml:snakeyaml:2.1
|    |    +--- com.fasterxml.jackson.core:jackson-core:2.15.2
|    |    +--- com.fasterxml.jackson.dataformat:jackson-dataformat-smile:2.15.2
|    |    +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.15.2
|    |    \--- com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:2.15.2
|    +--- org.opensearch:opensearch-geo:3.0.0-SNAPSHOT
|    +--- org.opensearch:opensearch-telemetry:3.0.0-SNAPSHOT
|    |    \--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
|    +--- org.apache.lucene:lucene-core:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-analysis-common:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-backward-codecs:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-grouping:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-highlighter:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-join:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-memory:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-misc:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-queries:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-queryparser:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-sandbox:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-spatial-extras:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-spatial3d:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-suggest:9.8.0-snapshot-4373c3b
|    +--- org.opensearch:opensearch-cli:3.0.0-SNAPSHOT
|    |    +--- net.sf.jopt-simple:jopt-simple:5.0.4
|    |    \--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
|    +--- joda-time:joda-time:2.12.2
|    +--- com.tdunning:t-digest:3.3
|    +--- org.hdrhistogram:HdrHistogram:2.1.12
|    +--- org.locationtech.spatial4j:spatial4j:0.7
|    +--- org.locationtech.jts:jts-core:1.15.0
|    +--- org.apache.logging.log4j:log4j-api:2.20.0
|    +--- org.apache.logging.log4j:log4j-jul:2.20.0
|    +--- org.apache.logging.log4j:log4j-core:2.20.0
|    +--- net.java.dev.jna:jna:5.5.0
|    +--- com.jcraft:jzlib:1.1.3
|    +--- com.google.protobuf:protobuf-java:3.22.3
|    \--- jakarta.annotation:jakarta.annotation-api:1.3.5
+--- org.locationtech.spatial4j:spatial4j:0.7
+--- org.locationtech.jts:jts-core:1.15.0
+--- org.apache.logging.log4j:log4j-api:2.20.0
+--- org.apache.logging.log4j:log4j-core:2.20.0
\--- net.java.dev.jna:jna:5.5.0

restSpec
\--- org.opensearch:rest-api-spec:3.0.0-SNAPSHOT

restSpecs
No dependencies

restTestConfig
\--- org.opensearch:rest-api-spec:3.0.0-SNAPSHOT

restTests
No dependencies

runtimeClasspath - Runtime classpath of source set 'main'.
+--- org.opensearch:opensearch:3.0.0-SNAPSHOT
|    +--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
|    +--- org.opensearch:opensearch-core:3.0.0-SNAPSHOT
|    |    +--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
|    |    +--- com.fasterxml.jackson.core:jackson-core:2.15.2
|    |    +--- org.apache.lucene:lucene-core:9.8.0-snapshot-4373c3b
|    |    \--- org.apache.logging.log4j:log4j-api:2.20.0
|    +--- org.opensearch:opensearch-compress:3.0.0-SNAPSHOT
|    |    +--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
|    |    +--- org.opensearch:opensearch-core:3.0.0-SNAPSHOT (*)
|    |    \--- com.github.luben:zstd-jni:1.5.5-5
|    +--- org.opensearch:opensearch-secure-sm:3.0.0-SNAPSHOT
|    +--- org.opensearch:opensearch-x-content:3.0.0-SNAPSHOT
|    |    +--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
|    |    +--- org.opensearch:opensearch-core:3.0.0-SNAPSHOT (*)
|    |    +--- org.yaml:snakeyaml:2.1
|    |    +--- com.fasterxml.jackson.core:jackson-core:2.15.2
|    |    +--- com.fasterxml.jackson.dataformat:jackson-dataformat-smile:2.15.2
|    |    +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.15.2
|    |    \--- com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:2.15.2
|    +--- org.opensearch:opensearch-geo:3.0.0-SNAPSHOT
|    +--- org.opensearch:opensearch-telemetry:3.0.0-SNAPSHOT
|    |    \--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
|    +--- org.apache.lucene:lucene-core:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-analysis-common:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-backward-codecs:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-grouping:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-highlighter:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-join:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-memory:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-misc:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-queries:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-queryparser:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-sandbox:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-spatial-extras:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-spatial3d:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-suggest:9.8.0-snapshot-4373c3b
|    +--- org.opensearch:opensearch-cli:3.0.0-SNAPSHOT
|    |    +--- net.sf.jopt-simple:jopt-simple:5.0.4
|    |    \--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
|    +--- joda-time:joda-time:2.12.2
|    +--- com.tdunning:t-digest:3.3
|    +--- org.hdrhistogram:HdrHistogram:2.1.12
|    +--- org.locationtech.spatial4j:spatial4j:0.7
|    +--- org.locationtech.jts:jts-core:1.15.0
|    +--- org.apache.logging.log4j:log4j-api:2.20.0
|    +--- org.apache.logging.log4j:log4j-jul:2.20.0
|    +--- org.apache.logging.log4j:log4j-core:2.20.0
|    +--- net.java.dev.jna:jna:5.5.0
|    +--- com.jcraft:jzlib:1.1.3
|    +--- com.google.protobuf:protobuf-java:3.22.3
|    \--- jakarta.annotation:jakarta.annotation-api:1.3.5
+--- org.junit.jupiter:junit-jupiter:5.10.0
+--- com.google.guava:guava:32.1.3-jre
\--- org.opensearch:opensearch-ml-client:<IP_ADDRESS>-SNAPSHOT

runtimeElements - Runtime elements for the 'main' feature. (n)
No dependencies

runtimeOnly - Runtime-only dependencies for the 'main' feature. (n)
No dependencies

spotless-2015699818 - [dev.equo.ide:solstice:1.7.3, com.diffplug.durian:durian-swt.os:4.2.0, org.apache.felix:org.apache.felix.scr:2.2.6, org.eclipse.platform:org.eclipse.core.commands:3.10.400, org.eclipse.platform:org.eclipse.core.contenttype:3.8.200, org.eclipse.platform:org.eclipse.core.expressions:3.8.200, org.eclipse.platform:org.eclipse.core.filesystem:1.9.500, org.eclipse.platform:org.eclipse.core.jobs:3.13.300, org.eclipse.platform:org.eclipse.core.resources:3.18.200, org.eclipse.platform:org.eclipse.core.runtime:3.26.100, org.eclipse.platform:org.eclipse.equinox.app:1.6.200, org.eclipse.platform:org.eclipse.equinox.common:3.17.100, org.eclipse.platform:org.eclipse.equinox.event:1.6.200, org.eclipse.platform:org.eclipse.equinox.preferences:3.10.200, org.eclipse.platform:org.eclipse.equinox.registry:3.11.200, org.eclipse.platform:org.eclipse.equinox.supplement:1.10.600, org.eclipse.jdt:org.eclipse.jdt.core:3.33.0, org.eclipse.jdt:ecj:3.33.0, org.eclipse.platform:org.eclipse.osgi:3.18.300, org.eclipse.platform:org.eclipse.text:3.12.300, org.osgi:org.osgi.service.cm:1.6.1, org.osgi:org.osgi.service.component:1.5.1, org.osgi:org.osgi.service.event:1.4.1, org.osgi:org.osgi.service.metatype:1.4.1, org.osgi:org.osgi.service.prefs:1.1.2, org.osgi:org.osgi.util.function:1.2.0, org.osgi:org.osgi.util.promise:1.3.0]
+--- dev.equo.ide:solstice:1.7.3
+--- com.diffplug.durian:durian-swt.os:4.2.0
+--- org.apache.felix:org.apache.felix.scr:2.2.6
+--- org.eclipse.platform:org.eclipse.core.commands:3.10.400
+--- org.eclipse.platform:org.eclipse.core.contenttype:3.8.200
+--- org.eclipse.platform:org.eclipse.core.expressions:3.8.200
+--- org.eclipse.platform:org.eclipse.core.filesystem:1.9.500
+--- org.eclipse.platform:org.eclipse.core.jobs:3.13.300
+--- org.eclipse.platform:org.eclipse.core.resources:3.18.200
+--- org.eclipse.platform:org.eclipse.core.runtime:3.26.100
+--- org.eclipse.platform:org.eclipse.equinox.app:1.6.200
+--- org.eclipse.platform:org.eclipse.equinox.common:3.17.100
+--- org.eclipse.platform:org.eclipse.equinox.event:1.6.200
+--- org.eclipse.platform:org.eclipse.equinox.preferences:3.10.200
+--- org.eclipse.platform:org.eclipse.equinox.registry:3.11.200
+--- org.eclipse.platform:org.eclipse.equinox.supplement:1.10.600
+--- org.eclipse.jdt:org.eclipse.jdt.core:3.33.0
+--- org.eclipse.jdt:ecj:3.33.0
+--- org.eclipse.platform:org.eclipse.osgi:3.18.300
+--- org.eclipse.platform:org.eclipse.text:3.12.300
+--- org.osgi:org.osgi.service.cm:1.6.1
+--- org.osgi:org.osgi.service.component:1.5.1
+--- org.osgi:org.osgi.service.event:1.4.1
+--- org.osgi:org.osgi.service.metatype:1.4.1
+--- org.osgi:org.osgi.service.prefs:1.1.2
+--- org.osgi:org.osgi.util.function:1.2.0
\--- org.osgi:org.osgi.util.promise:1.3.0

spotless865457264 - [com.google.googlejavaformat:google-java-format:1.17.0]
\--- com.google.googlejavaformat:google-java-format:1.17.0
     \--- com.google.guava:guava:31.1-jre -> 32.1.3-jre
          +--- com.google.guava:failureaccess:1.0.1
          +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
          +--- com.google.code.findbugs:jsr305:3.0.2
          +--- org.checkerframework:checker-qual:3.37.0
          \--- com.google.errorprone:error_prone_annotations:2.21.1

testAnnotationProcessor - Annotation processors and their dependencies for source set 'test'.
No dependencies

testCompileClasspath - Compile classpath for source set 'test'.
+--- org.opensearch:opensearch:3.0.0-SNAPSHOT
|    +--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
|    +--- org.opensearch:opensearch-core:3.0.0-SNAPSHOT
|    |    +--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
|    |    +--- com.fasterxml.jackson.core:jackson-core:2.15.2
|    |    +--- org.apache.lucene:lucene-core:9.8.0-snapshot-4373c3b
|    |    \--- org.apache.logging.log4j:log4j-api:2.20.0
|    +--- org.opensearch:opensearch-compress:3.0.0-SNAPSHOT
|    |    +--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
|    |    +--- org.opensearch:opensearch-core:3.0.0-SNAPSHOT (*)
|    |    \--- com.github.luben:zstd-jni:1.5.5-5
|    +--- org.opensearch:opensearch-secure-sm:3.0.0-SNAPSHOT
|    +--- org.opensearch:opensearch-x-content:3.0.0-SNAPSHOT
|    |    +--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
|    |    +--- org.opensearch:opensearch-core:3.0.0-SNAPSHOT (*)
|    |    +--- org.yaml:snakeyaml:2.1
|    |    +--- com.fasterxml.jackson.core:jackson-core:2.15.2
|    |    +--- com.fasterxml.jackson.dataformat:jackson-dataformat-smile:2.15.2
|    |    +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.15.2
|    |    \--- com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:2.15.2
|    +--- org.opensearch:opensearch-geo:3.0.0-SNAPSHOT
|    +--- org.opensearch:opensearch-telemetry:3.0.0-SNAPSHOT
|    |    \--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
|    +--- org.apache.lucene:lucene-core:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-analysis-common:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-backward-codecs:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-grouping:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-highlighter:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-join:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-memory:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-misc:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-queries:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-queryparser:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-sandbox:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-spatial-extras:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-spatial3d:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-suggest:9.8.0-snapshot-4373c3b
|    +--- org.opensearch:opensearch-cli:3.0.0-SNAPSHOT
|    |    +--- net.sf.jopt-simple:jopt-simple:5.0.4
|    |    \--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
|    +--- joda-time:joda-time:2.12.2
|    +--- com.tdunning:t-digest:3.3
|    +--- org.hdrhistogram:HdrHistogram:2.1.12
|    +--- org.locationtech.spatial4j:spatial4j:0.7
|    +--- org.locationtech.jts:jts-core:1.15.0
|    +--- org.apache.logging.log4j:log4j-api:2.20.0
|    +--- org.apache.logging.log4j:log4j-jul:2.20.0
|    +--- org.apache.logging.log4j:log4j-core:2.20.0
|    +--- net.java.dev.jna:jna:5.5.0
|    +--- com.jcraft:jzlib:1.1.3
|    +--- com.google.protobuf:protobuf-java:3.22.3
|    \--- jakarta.annotation:jakarta.annotation-api:1.3.5
+--- org.locationtech.spatial4j:spatial4j:0.7
+--- org.locationtech.jts:jts-core:1.15.0
+--- org.apache.logging.log4j:log4j-api:2.20.0
+--- org.apache.logging.log4j:log4j-core:2.20.0
+--- net.java.dev.jna:jna:5.5.0
+--- org.junit.jupiter:junit-jupiter:5.10.0
+--- com.google.guava:guava:32.1.3-jre
+--- org.opensearch:opensearch-ml-client:<IP_ADDRESS>-SNAPSHOT
\--- org.opensearch.test:framework:3.0.0-SNAPSHOT
     +--- org.opensearch.client:opensearch-rest-client:3.0.0-SNAPSHOT
     |    +--- org.apache.httpcomponents.client5:httpclient5:5.2.1
     |    +--- org.apache.httpcomponents.core5:httpcore5:5.2.2
     |    +--- org.apache.httpcomponents.core5:httpcore5-h2:5.2.2
     |    +--- commons-codec:commons-codec:1.15
     |    +--- commons-logging:commons-logging:1.2
     |    \--- org.slf4j:slf4j-api:1.7.36
     +--- org.opensearch.client:opensearch-rest-client-sniffer:3.0.0-SNAPSHOT
     |    +--- org.opensearch.client:opensearch-rest-client:3.0.0-SNAPSHOT (*)
     |    +--- org.apache.httpcomponents.client5:httpclient5:5.2.1
     |    +--- org.apache.httpcomponents.core5:httpcore5:5.2.2
     |    +--- commons-codec:commons-codec:1.15
     |    +--- commons-logging:commons-logging:1.2
     |    \--- com.fasterxml.jackson.core:jackson-core:2.15.2
     +--- org.opensearch:opensearch-nio:3.0.0-SNAPSHOT
     |    \--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
     +--- org.opensearch:opensearch:3.0.0-SNAPSHOT (*)
     +--- org.opensearch:opensearch-cli:3.0.0-SNAPSHOT (*)
     +--- org.opensearch.test:telemetry:3.0.0-SNAPSHOT
     |    +--- org.opensearch:opensearch-core:3.0.0-SNAPSHOT (*)
     |    +--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
     |    \--- org.opensearch:opensearch-telemetry:3.0.0-SNAPSHOT (*)
     +--- com.carrotsearch.randomizedtesting:randomizedtesting-runner:2.7.1
     +--- junit:junit:4.13.2
     +--- org.hamcrest:hamcrest:2.1
     +--- org.apache.lucene:lucene-test-framework:9.8.0-snapshot-4373c3b
     +--- org.apache.lucene:lucene-codecs:9.8.0-snapshot-4373c3b
     +--- commons-logging:commons-logging:1.2
     +--- commons-codec:commons-codec:1.15
     +--- org.mockito:mockito-core:5.4.0
     +--- net.bytebuddy:byte-buddy:1.14.3
     \--- org.objenesis:objenesis:3.2

testCompileOnly - Compile only dependencies for source set 'test'. (n)
No dependencies

testImplementation - Implementation only dependencies for source set 'test'. (n)
\--- org.opensearch.test:framework:3.0.0-SNAPSHOT (n)

testRuntimeClasspath - Runtime classpath of source set 'test'.
+--- org.opensearch:opensearch:3.0.0-SNAPSHOT
|    +--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
|    +--- org.opensearch:opensearch-core:3.0.0-SNAPSHOT
|    |    +--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
|    |    +--- com.fasterxml.jackson.core:jackson-core:2.15.2
|    |    +--- org.apache.lucene:lucene-core:9.8.0-snapshot-4373c3b
|    |    \--- org.apache.logging.log4j:log4j-api:2.20.0
|    +--- org.opensearch:opensearch-compress:3.0.0-SNAPSHOT
|    |    +--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
|    |    +--- org.opensearch:opensearch-core:3.0.0-SNAPSHOT (*)
|    |    \--- com.github.luben:zstd-jni:1.5.5-5
|    +--- org.opensearch:opensearch-secure-sm:3.0.0-SNAPSHOT
|    +--- org.opensearch:opensearch-x-content:3.0.0-SNAPSHOT
|    |    +--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
|    |    +--- org.opensearch:opensearch-core:3.0.0-SNAPSHOT (*)
|    |    +--- org.yaml:snakeyaml:2.1
|    |    +--- com.fasterxml.jackson.core:jackson-core:2.15.2
|    |    +--- com.fasterxml.jackson.dataformat:jackson-dataformat-smile:2.15.2
|    |    +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.15.2
|    |    \--- com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:2.15.2
|    +--- org.opensearch:opensearch-geo:3.0.0-SNAPSHOT
|    +--- org.opensearch:opensearch-telemetry:3.0.0-SNAPSHOT
|    |    \--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
|    +--- org.apache.lucene:lucene-core:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-analysis-common:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-backward-codecs:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-grouping:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-highlighter:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-join:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-memory:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-misc:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-queries:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-queryparser:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-sandbox:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-spatial-extras:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-spatial3d:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-suggest:9.8.0-snapshot-4373c3b
|    +--- org.opensearch:opensearch-cli:3.0.0-SNAPSHOT
|    |    +--- net.sf.jopt-simple:jopt-simple:5.0.4
|    |    \--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
|    +--- joda-time:joda-time:2.12.2
|    +--- com.tdunning:t-digest:3.3
|    +--- org.hdrhistogram:HdrHistogram:2.1.12
|    +--- org.locationtech.spatial4j:spatial4j:0.7
|    +--- org.locationtech.jts:jts-core:1.15.0
|    +--- org.apache.logging.log4j:log4j-api:2.20.0
|    +--- org.apache.logging.log4j:log4j-jul:2.20.0
|    +--- org.apache.logging.log4j:log4j-core:2.20.0
|    +--- net.java.dev.jna:jna:5.5.0
|    +--- com.jcraft:jzlib:1.1.3
|    +--- com.google.protobuf:protobuf-java:3.22.3
|    \--- jakarta.annotation:jakarta.annotation-api:1.3.5
+--- org.locationtech.spatial4j:spatial4j:0.7
+--- org.locationtech.jts:jts-core:1.15.0
+--- org.apache.logging.log4j:log4j-api:2.20.0
+--- org.apache.logging.log4j:log4j-core:2.20.0
+--- net.java.dev.jna:jna:5.5.0
+--- org.junit.jupiter:junit-jupiter:5.10.0
+--- com.google.guava:guava:32.1.3-jre
+--- org.opensearch:opensearch-ml-client:<IP_ADDRESS>-SNAPSHOT
\--- org.opensearch.test:framework:3.0.0-SNAPSHOT
     +--- org.opensearch.client:opensearch-rest-client:3.0.0-SNAPSHOT
     |    +--- org.apache.httpcomponents.client5:httpclient5:5.2.1
     |    +--- org.apache.httpcomponents.core5:httpcore5:5.2.2
     |    +--- org.apache.httpcomponents.core5:httpcore5-h2:5.2.2
     |    +--- commons-codec:commons-codec:1.15
     |    +--- commons-logging:commons-logging:1.2
     |    \--- org.slf4j:slf4j-api:1.7.36
     +--- org.opensearch.client:opensearch-rest-client-sniffer:3.0.0-SNAPSHOT
     |    +--- org.opensearch.client:opensearch-rest-client:3.0.0-SNAPSHOT (*)
     |    +--- org.apache.httpcomponents.client5:httpclient5:5.2.1
     |    +--- org.apache.httpcomponents.core5:httpcore5:5.2.2
     |    +--- commons-codec:commons-codec:1.15
     |    +--- commons-logging:commons-logging:1.2
     |    \--- com.fasterxml.jackson.core:jackson-core:2.15.2
     +--- org.opensearch:opensearch-nio:3.0.0-SNAPSHOT
     |    \--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
     +--- org.opensearch:opensearch:3.0.0-SNAPSHOT (*)
     +--- org.opensearch:opensearch-cli:3.0.0-SNAPSHOT (*)
     +--- org.opensearch.test:telemetry:3.0.0-SNAPSHOT
     |    +--- org.opensearch:opensearch-core:3.0.0-SNAPSHOT (*)
     |    +--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
     |    \--- org.opensearch:opensearch-telemetry:3.0.0-SNAPSHOT (*)
     +--- com.carrotsearch.randomizedtesting:randomizedtesting-runner:2.7.1
     +--- junit:junit:4.13.2
     +--- org.hamcrest:hamcrest:2.1
     +--- org.apache.lucene:lucene-test-framework:9.8.0-snapshot-4373c3b
     +--- org.apache.lucene:lucene-codecs:9.8.0-snapshot-4373c3b
     +--- commons-logging:commons-logging:1.2
     +--- commons-codec:commons-codec:1.15
     +--- org.mockito:mockito-core:5.4.0
     +--- net.bytebuddy:byte-buddy:1.14.3
     \--- org.objenesis:objenesis:3.2

testRuntimeOnly - Runtime only dependencies for source set 'test'. (n)
No dependencies

yamlRestTestAnnotationProcessor - Annotation processors and their dependencies for source set 'yaml rest test'.
No dependencies

yamlRestTestCompileClasspath - Compile classpath for source set 'yaml rest test'.
+--- org.opensearch.test:framework:3.0.0-SNAPSHOT
|    +--- org.opensearch.client:opensearch-rest-client:3.0.0-SNAPSHOT
|    |    +--- org.apache.httpcomponents.client5:httpclient5:5.2.1
|    |    +--- org.apache.httpcomponents.core5:httpcore5:5.2.2
|    |    +--- org.apache.httpcomponents.core5:httpcore5-h2:5.2.2
|    |    +--- commons-codec:commons-codec:1.15
|    |    +--- commons-logging:commons-logging:1.2
|    |    \--- org.slf4j:slf4j-api:1.7.36
|    +--- org.opensearch.client:opensearch-rest-client-sniffer:3.0.0-SNAPSHOT
|    |    +--- org.opensearch.client:opensearch-rest-client:3.0.0-SNAPSHOT (*)
|    |    +--- org.apache.httpcomponents.client5:httpclient5:5.2.1
|    |    +--- org.apache.httpcomponents.core5:httpcore5:5.2.2
|    |    +--- commons-codec:commons-codec:1.15
|    |    +--- commons-logging:commons-logging:1.2
|    |    \--- com.fasterxml.jackson.core:jackson-core:2.15.2
|    +--- org.opensearch:opensearch-nio:3.0.0-SNAPSHOT
|    |    \--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
|    +--- org.opensearch:opensearch:3.0.0-SNAPSHOT
|    |    +--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
|    |    +--- org.opensearch:opensearch-core:3.0.0-SNAPSHOT
|    |    |    +--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
|    |    |    +--- com.fasterxml.jackson.core:jackson-core:2.15.2
|    |    |    +--- org.apache.lucene:lucene-core:9.8.0-snapshot-4373c3b
|    |    |    \--- org.apache.logging.log4j:log4j-api:2.20.0
|    |    +--- org.opensearch:opensearch-compress:3.0.0-SNAPSHOT
|    |    |    +--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
|    |    |    +--- org.opensearch:opensearch-core:3.0.0-SNAPSHOT (*)
|    |    |    \--- com.github.luben:zstd-jni:1.5.5-5
|    |    +--- org.opensearch:opensearch-secure-sm:3.0.0-SNAPSHOT
|    |    +--- org.opensearch:opensearch-x-content:3.0.0-SNAPSHOT
|    |    |    +--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
|    |    |    +--- org.opensearch:opensearch-core:3.0.0-SNAPSHOT (*)
|    |    |    +--- org.yaml:snakeyaml:2.1
|    |    |    +--- com.fasterxml.jackson.core:jackson-core:2.15.2
|    |    |    +--- com.fasterxml.jackson.dataformat:jackson-dataformat-smile:2.15.2
|    |    |    +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.15.2
|    |    |    \--- com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:2.15.2
|    |    +--- org.opensearch:opensearch-geo:3.0.0-SNAPSHOT
|    |    +--- org.opensearch:opensearch-telemetry:3.0.0-SNAPSHOT
|    |    |    \--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
|    |    +--- org.apache.lucene:lucene-core:9.8.0-snapshot-4373c3b
|    |    +--- org.apache.lucene:lucene-analysis-common:9.8.0-snapshot-4373c3b
|    |    +--- org.apache.lucene:lucene-backward-codecs:9.8.0-snapshot-4373c3b
|    |    +--- org.apache.lucene:lucene-grouping:9.8.0-snapshot-4373c3b
|    |    +--- org.apache.lucene:lucene-highlighter:9.8.0-snapshot-4373c3b
|    |    +--- org.apache.lucene:lucene-join:9.8.0-snapshot-4373c3b
|    |    +--- org.apache.lucene:lucene-memory:9.8.0-snapshot-4373c3b
|    |    +--- org.apache.lucene:lucene-misc:9.8.0-snapshot-4373c3b
|    |    +--- org.apache.lucene:lucene-queries:9.8.0-snapshot-4373c3b
|    |    +--- org.apache.lucene:lucene-queryparser:9.8.0-snapshot-4373c3b
|    |    +--- org.apache.lucene:lucene-sandbox:9.8.0-snapshot-4373c3b
|    |    +--- org.apache.lucene:lucene-spatial-extras:9.8.0-snapshot-4373c3b
|    |    +--- org.apache.lucene:lucene-spatial3d:9.8.0-snapshot-4373c3b
|    |    +--- org.apache.lucene:lucene-suggest:9.8.0-snapshot-4373c3b
|    |    +--- org.opensearch:opensearch-cli:3.0.0-SNAPSHOT
|    |    |    +--- net.sf.jopt-simple:jopt-simple:5.0.4
|    |    |    \--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
|    |    +--- joda-time:joda-time:2.12.2
|    |    +--- com.tdunning:t-digest:3.3
|    |    +--- org.hdrhistogram:HdrHistogram:2.1.12
|    |    +--- org.locationtech.spatial4j:spatial4j:0.7
|    |    +--- org.locationtech.jts:jts-core:1.15.0
|    |    +--- org.apache.logging.log4j:log4j-api:2.20.0
|    |    +--- org.apache.logging.log4j:log4j-jul:2.20.0
|    |    +--- org.apache.logging.log4j:log4j-core:2.20.0
|    |    |    \--- org.apache.logging.log4j:log4j-api:2.20.0
|    |    +--- net.java.dev.jna:jna:5.5.0
|    |    +--- com.jcraft:jzlib:1.1.3
|    |    +--- com.google.protobuf:protobuf-java:3.22.3
|    |    \--- jakarta.annotation:jakarta.annotation-api:1.3.5
|    +--- org.opensearch:opensearch-cli:3.0.0-SNAPSHOT (*)
|    +--- org.opensearch.test:telemetry:3.0.0-SNAPSHOT
|    |    +--- org.opensearch:opensearch-core:3.0.0-SNAPSHOT (*)
|    |    +--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
|    |    \--- org.opensearch:opensearch-telemetry:3.0.0-SNAPSHOT (*)
|    +--- com.carrotsearch.randomizedtesting:randomizedtesting-runner:2.7.1
|    +--- junit:junit:4.13.2
|    +--- org.hamcrest:hamcrest:2.1
|    +--- org.apache.lucene:lucene-test-framework:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-codecs:9.8.0-snapshot-4373c3b
|    +--- commons-logging:commons-logging:1.2
|    +--- commons-codec:commons-codec:1.15
|    +--- org.mockito:mockito-core:5.4.0
|    +--- net.bytebuddy:byte-buddy:1.14.3
|    \--- org.objenesis:objenesis:3.2
\--- org.apache.logging.log4j:log4j-core:2.20.0 (*)

yamlRestTestCompileOnly - Compile only dependencies for source set 'yaml rest test'. (n)
No dependencies

yamlRestTestImplementation - Implementation only dependencies for source set 'yaml rest test'. (n)
+--- org.opensearch.test:framework:3.0.0-SNAPSHOT (n)
\--- org.apache.logging.log4j:log4j-core:2.20.0 (n)

yamlRestTestRuntimeClasspath - Runtime classpath of source set 'yaml rest test'.
+--- org.opensearch.test:framework:3.0.0-SNAPSHOT
|    +--- org.opensearch.client:opensearch-rest-client:3.0.0-SNAPSHOT
|    |    +--- org.apache.httpcomponents.client5:httpclient5:5.2.1
|    |    +--- org.apache.httpcomponents.core5:httpcore5:5.2.2
|    |    +--- org.apache.httpcomponents.core5:httpcore5-h2:5.2.2
|    |    +--- commons-codec:commons-codec:1.15
|    |    +--- commons-logging:commons-logging:1.2
|    |    \--- org.slf4j:slf4j-api:1.7.36
|    +--- org.opensearch.client:opensearch-rest-client-sniffer:3.0.0-SNAPSHOT
|    |    +--- org.opensearch.client:opensearch-rest-client:3.0.0-SNAPSHOT (*)
|    |    +--- org.apache.httpcomponents.client5:httpclient5:5.2.1
|    |    +--- org.apache.httpcomponents.core5:httpcore5:5.2.2
|    |    +--- commons-codec:commons-codec:1.15
|    |    +--- commons-logging:commons-logging:1.2
|    |    \--- com.fasterxml.jackson.core:jackson-core:2.15.2
|    +--- org.opensearch:opensearch-nio:3.0.0-SNAPSHOT
|    |    \--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
|    +--- org.opensearch:opensearch:3.0.0-SNAPSHOT
|    |    +--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
|    |    +--- org.opensearch:opensearch-core:3.0.0-SNAPSHOT
|    |    |    +--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
|    |    |    +--- com.fasterxml.jackson.core:jackson-core:2.15.2
|    |    |    +--- org.apache.lucene:lucene-core:9.8.0-snapshot-4373c3b
|    |    |    \--- org.apache.logging.log4j:log4j-api:2.20.0
|    |    +--- org.opensearch:opensearch-compress:3.0.0-SNAPSHOT
|    |    |    +--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
|    |    |    +--- org.opensearch:opensearch-core:3.0.0-SNAPSHOT (*)
|    |    |    \--- com.github.luben:zstd-jni:1.5.5-5
|    |    +--- org.opensearch:opensearch-secure-sm:3.0.0-SNAPSHOT
|    |    +--- org.opensearch:opensearch-x-content:3.0.0-SNAPSHOT
|    |    |    +--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
|    |    |    +--- org.opensearch:opensearch-core:3.0.0-SNAPSHOT (*)
|    |    |    +--- org.yaml:snakeyaml:2.1
|    |    |    +--- com.fasterxml.jackson.core:jackson-core:2.15.2
|    |    |    +--- com.fasterxml.jackson.dataformat:jackson-dataformat-smile:2.15.2
|    |    |    +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.15.2
|    |    |    \--- com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:2.15.2
|    |    +--- org.opensearch:opensearch-geo:3.0.0-SNAPSHOT
|    |    +--- org.opensearch:opensearch-telemetry:3.0.0-SNAPSHOT
|    |    |    \--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
|    |    +--- org.apache.lucene:lucene-core:9.8.0-snapshot-4373c3b
|    |    +--- org.apache.lucene:lucene-analysis-common:9.8.0-snapshot-4373c3b
|    |    +--- org.apache.lucene:lucene-backward-codecs:9.8.0-snapshot-4373c3b
|    |    +--- org.apache.lucene:lucene-grouping:9.8.0-snapshot-4373c3b
|    |    +--- org.apache.lucene:lucene-highlighter:9.8.0-snapshot-4373c3b
|    |    +--- org.apache.lucene:lucene-join:9.8.0-snapshot-4373c3b
|    |    +--- org.apache.lucene:lucene-memory:9.8.0-snapshot-4373c3b
|    |    +--- org.apache.lucene:lucene-misc:9.8.0-snapshot-4373c3b
|    |    +--- org.apache.lucene:lucene-queries:9.8.0-snapshot-4373c3b
|    |    +--- org.apache.lucene:lucene-queryparser:9.8.0-snapshot-4373c3b
|    |    +--- org.apache.lucene:lucene-sandbox:9.8.0-snapshot-4373c3b
|    |    +--- org.apache.lucene:lucene-spatial-extras:9.8.0-snapshot-4373c3b
|    |    +--- org.apache.lucene:lucene-spatial3d:9.8.0-snapshot-4373c3b
|    |    +--- org.apache.lucene:lucene-suggest:9.8.0-snapshot-4373c3b
|    |    +--- org.opensearch:opensearch-cli:3.0.0-SNAPSHOT
|    |    |    +--- net.sf.jopt-simple:jopt-simple:5.0.4
|    |    |    \--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
|    |    +--- joda-time:joda-time:2.12.2
|    |    +--- com.tdunning:t-digest:3.3
|    |    +--- org.hdrhistogram:HdrHistogram:2.1.12
|    |    +--- org.locationtech.spatial4j:spatial4j:0.7
|    |    +--- org.locationtech.jts:jts-core:1.15.0
|    |    +--- org.apache.logging.log4j:log4j-api:2.20.0
|    |    +--- org.apache.logging.log4j:log4j-jul:2.20.0
|    |    +--- org.apache.logging.log4j:log4j-core:2.20.0
|    |    |    \--- org.apache.logging.log4j:log4j-api:2.20.0
|    |    +--- net.java.dev.jna:jna:5.5.0
|    |    +--- com.jcraft:jzlib:1.1.3
|    |    +--- com.google.protobuf:protobuf-java:3.22.3
|    |    \--- jakarta.annotation:jakarta.annotation-api:1.3.5
|    +--- org.opensearch:opensearch-cli:3.0.0-SNAPSHOT (*)
|    +--- org.opensearch.test:telemetry:3.0.0-SNAPSHOT
|    |    +--- org.opensearch:opensearch-core:3.0.0-SNAPSHOT (*)
|    |    +--- org.opensearch:opensearch-common:3.0.0-SNAPSHOT
|    |    \--- org.opensearch:opensearch-telemetry:3.0.0-SNAPSHOT (*)
|    +--- com.carrotsearch.randomizedtesting:randomizedtesting-runner:2.7.1
|    +--- junit:junit:4.13.2
|    +--- org.hamcrest:hamcrest:2.1
|    +--- org.apache.lucene:lucene-test-framework:9.8.0-snapshot-4373c3b
|    +--- org.apache.lucene:lucene-codecs:9.8.0-snapshot-4373c3b
|    +--- commons-logging:commons-logging:1.2
|    +--- commons-codec:commons-codec:1.15
|    +--- org.mockito:mockito-core:5.4.0
|    +--- net.bytebuddy:byte-buddy:1.14.3
|    \--- org.objenesis:objenesis:3.2
\--- org.apache.logging.log4j:log4j-core:2.20.0 (*)

It is necessary for the ML Commons plugin to be installed first in order to use the RegisterModelStep and DeployModelStep since these steps utilize that plugin's APIs

I'm unclear what this means.
I thought we were taking a dependency on the MLClient separately, and we don't actually call any APIs during installation of the plugin. What exactly is the problem?

We don't have to install ml-commons plugin because we taking a dependency on the MLClient which has ml-commons dependency already.

I have similar question

I thought we were taking a dependency on the MLClient separately, and we don't actually call any APIs during installation of the plugin. What exactly is the problem?

@owaiskazi19 , what's the problem?

@owaiskazi19 , what's the problem?

@ylwu-amzn When invoking register API though mlClient here. Getting the below ClassCastException
[2023-10-25T20:13:30,038][ERROR][o.o.f.t.ProvisionWorkflowTransportAction] [ip-172-31-56-214] Provisioning failed for workflow rlt4aIsB-BC8dYg-Eww9 : java.util.concurrent.ExecutionException: org.opensearch.flowframework.exception.FlowFrameworkException: class org.opensearch.ml.common.transport.register.MLRegisterModelResponse cannot be cast to class org.opensearch.ml.common.transport.register.MLRegisterModelResponse (org.opensearch.ml.common.transport.register.MLRegisterModelResponse is in unnamed module of loader java.net.FactoryURLClassLoader @475f5672; org.opensearch.ml.common.transport.register.MLRegisterModelResponse is in unnamed module of loader java.net.FactoryURLClassLoader @320be73)

what's the problem?

Specifically the same class is being loaded from two different classloaders:

java.net.FactoryURLClassLoader @475f5672
java.net.FactoryURLClassLoader @320be73

@owaiskazi19 did you look into the different thread pools being used?

@owaiskazi19 did you look into the different thread pools being used?

Yes, tried using generic first and then our own. Same error for both.

For the 2nd one, @joshpalis we can include
  zipArchive group: 'org.opensearch.plugin', name:'opensearch-ml-plugin', version: "${opensearch_build}"

to get ml-commons dependencies and it's APIs.
Tested the above. Find the logs below.
This is my OS cluster with the set of plugins installed and without ml-common.
[2023-10-30T20:08:34,480][INFO ][o.o.p.PluginsService     ] [ip-172-31-56-214] loaded module [aggs-matrix-stats]
[2023-10-30T20:08:34,480][INFO ][o.o.p.PluginsService     ] [ip-172-31-56-214] loaded module [analysis-common]
[2023-10-30T20:08:34,480][INFO ][o.o.p.PluginsService     ] [ip-172-31-56-214] loaded module [geo]
[2023-10-30T20:08:34,481][INFO ][o.o.p.PluginsService     ] [ip-172-31-56-214] loaded module [ingest-common]
[2023-10-30T20:08:34,481][INFO ][o.o.p.PluginsService     ] [ip-172-31-56-214] loaded module [ingest-geoip]
[2023-10-30T20:08:34,481][INFO ][o.o.p.PluginsService     ] [ip-172-31-56-214] loaded module [ingest-user-agent]
[2023-10-30T20:08:34,481][INFO ][o.o.p.PluginsService     ] [ip-172-31-56-214] loaded module [lang-expression]
[2023-10-30T20:08:34,481][INFO ][o.o.p.PluginsService     ] [ip-172-31-56-214] loaded module [lang-mustache]
[2023-10-30T20:08:34,482][INFO ][o.o.p.PluginsService     ] [ip-172-31-56-214] loaded module [lang-painless]
[2023-10-30T20:08:34,482][INFO ][o.o.p.PluginsService     ] [ip-172-31-56-214] loaded module [mapper-extras]
[2023-10-30T20:08:34,482][INFO ][o.o.p.PluginsService     ] [ip-172-31-56-214] loaded module [opensearch-dashboards]
[2023-10-30T20:08:34,482][INFO ][o.o.p.PluginsService     ] [ip-172-31-56-214] loaded module [parent-join]
[2023-10-30T20:08:34,483][INFO ][o.o.p.PluginsService     ] [ip-172-31-56-214] loaded module [percolator]
[2023-10-30T20:08:34,483][INFO ][o.o.p.PluginsService     ] [ip-172-31-56-214] loaded module [rank-eval]
[2023-10-30T20:08:34,483][INFO ][o.o.p.PluginsService     ] [ip-172-31-56-214] loaded module [reindex]
[2023-10-30T20:08:34,483][INFO ][o.o.p.PluginsService     ] [ip-172-31-56-214] loaded module [repository-url]
[2023-10-30T20:08:34,483][INFO ][o.o.p.PluginsService     ] [ip-172-31-56-214] loaded module [search-pipeline-common]
[2023-10-30T20:08:34,484][INFO ][o.o.p.PluginsService     ] [ip-172-31-56-214] loaded module [systemd]
[2023-10-30T20:08:34,484][INFO ][o.o.p.PluginsService     ] [ip-172-31-56-214] loaded module [test-delayed-aggs]
[2023-10-30T20:08:34,484][INFO ][o.o.p.PluginsService     ] [ip-172-31-56-214] loaded module [transport-netty4]
[2023-10-30T20:08:34,485][INFO ][o.o.p.PluginsService     ] [ip-172-31-56-214] loaded plugin [opensearch-flow-framework]

Tested the APIs:
curl -XPOST --insecure -u 'admin:admin' -H "Content-Type: application/json" 'http://localhost:9200/_plugins/_flow_framework/workflow' -d '{"name":"deploy-register-model","description":"test case","use_case":"SEMANTIC_SEARCH","version":{"template":"1.0.0","compatibility":["2.12.0","3.0.0"]},"workflows":{"provision":{"nodes":[{"id":"workflow_step_1","type":"register_model","inputs":{"name":"openAI-gpt-3.5-turbo","function_name":"remote","description":"test model","connector_id":"8SQESosBvqMC0I7jNGsk"}},{"id":"workflow_step_2","type":"deploy_model","inputs":{"model_id":{}}}],"edges":[{"source":"workflow_step_1","dest":"workflow_step_2"}]}}}'
{"workflow_id":"ZVY0gosB5TORXlq9oRaF"}

curl -XPOST --insecure -u 'admin:admin' -H "Content-Type: application/json" 'http://localhost:9200/_plugins/_flow_framework/workflow/ZVY0gosB5TORXlq9oRaF/_provision'
{"workflow_id":"ZVY0gosB5TORXlq9oRaF"}

To conclude, we don't need to add ml-commons in the list of the extended-plugins.

For the 2nd issue. There's no fix solution for it.
If we add ml-commons to extendedPlugin, OS cluster will just check if the plugin is installed before installing flow-framework and this will be the right way to go forward if all our use cases are based on ml-commons.
But that's not the case for our plugin, we will have use cases which can rely on other plugins, at that time our plugin shouldn't have a strict requirement of installing ml-commons before our plugin.

Agreed, I think the best way forward now would be to introduce a mechanism that can check the installed plugins during bootstrap of the OpenSearch process, probably during the instantiation of this WorkflowStepFactory (link). Based on the installed plugins, we can then choose which steps to register within this step factory

Created https://github.com/opensearch-project/opensearch-ai-flow-framework/issues/126 for the 2nd one. We can close this one in.


dea-tools pypi package

Describe the bug/issue
Publish dea-tools with changes as a PyPI package for other environments running dea-notebooks.
Steps to reproduce
Steps to reproduce the behaviour. For example:
dea-tools is installed from PyPI in CSIRO EASI sandbox images. Some of the current notebooks developed in dea-sandbox are not portable since the dea-tools module has not yet been published in PyPI. It would be great to have a fresh release with the new changes.
Expected behaviour
dea-tools with latest changes can be installed via pip install
Environment information
What datacube environment are you using? i.e. CSIRO EASI-Hub

Hey @whatnick, we have DEA Tools published on PyPI here: https://pypi.org/project/dea-tools/#history
We're long overdue for an official release, but you should be able to load the latest dev versions to get the most recent changes.
If you had any feedback on any issues you have with installing the package outside of the Sandbox, I'd love to hear it - I don't have a good idea of how portable it is, and would love to make it easier for external users to access our tools.

E.g. one suggested change to make dea-tools easier to install here: https://github.com/GeoscienceAustralia/dea-notebooks/issues/1115

We will try out the dev release from PyPI in EASI containers. Perhaps a docs note to make the dev package easier to discover under DEA Tools folder.

Oh wow, we definitely need newer non-dev releases!

@omad Yeah totally! Part of why we've dragged our feet with this is that we don't really have a good idea of whether the package is actually possible to install and use easily by externals. I'd hate for us to announce a big release with lots of new features, and then have users be unable to actually install it on their systems... (which seems to have happened with USGS recently sadly).
Unfortunately I just don't have the skillset to test this out in a way that would simulate a "clean" non-Sandbox environment!

We have pushed a 0.3.0 update to DEA Tools. :)


Async client interceptor

How to deal with async request preparations correctly?
I'm using grpc 0.13.2 and Google Sign-In on android. Sign-In documentation says that it's good to check token (silentSignIn) before every API call. So I decided to use ClientInterceptor and faced problem that token update is async operation, however ClientInterceptor has blocking interface.
Currently I have solution to this problem, but it's verbose and ugly. I have something like stub-interceptor. So every request looks like this:
getStub(new StubReceiver() {
            @Override
            public void onStubReady(Stub stub) {
                // actual request is here
            }
        });

getStub method in this example doing all async work related to stub reconfiguring (updating tokens in my case).
Off-topic: is it ok to post such questions here? If not, please, point me to right direction.

really! I faced with this, but could not solve the problem

I'm not quite sure what issue is being faced here. It seems you want to check that your auth token is not expired before each call? ClientInterceptor is asynchronous as well, but it is annoying when you need to do something asynchronous within an interceptor.
Now-a-days there is CallCredentials, which is easy to implement independent of whether getting a token is instantaneous (call apply() immediately), asynchronous (call apply() when done), or blocking (schedule on appExecutor, call apply() when done).


Download from Udemy not working

Please follow the guide below

You will be asked some questions and requested to provide some information, please read them carefully and answer honestly
Put an x into all the boxes [ ] relevant to your issue (like this: [x])
Use the Preview tab to see what your issue will actually look like

Make sure you are using the latest version: run youtube-dl --version and ensure your version is 2018.12.03. If it's not, read this FAQ entry and update. Issues with outdated version will be rejected.

[x] I've verified and I assure that I'm running youtube-dl 2018.12.03

Before submitting an issue make sure you have:

[x ] At least skimmed through the README, most notably the FAQ and BUGS sections
[x ] Searched the bugtracker for similar issues including closed ones
[x ] Checked that provided video/audio/playlist URLs (if any) are alive and playable in a browser

What is the purpose of your issue?

[x ] Bug report (encountered problems with youtube-dl)
[ ] Site support request (request for adding support for a new site)
[ ] Feature request (request for a new functionality)
[ ] Question
[ ] Other

The following sections concretize particular purposed issues, you can erase any section (the contents between triple ---) not applicable to your issue

If the purpose of this issue is a bug report, site support request or you are not completely sure provide the full verbose output as follows:
Add the -v flag to your command line you run youtube-dl with (youtube-dl -v <your command line>), copy the whole output and insert it here. It should look similar to one below (replace it with your log inserted between triple ```):
H:\>youtube-dl -u user -p password --verbose https://www.udemy.com/course
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-u', 'PRIVATE', '-p', 'PRIVATE', '--verbose', 'https://www.udemy.com/course']
[debug] Encodings: locale cp1252, fs utf-8, out utf-8, pref cp1252
[debug] youtube-dl version 2018.12.03
[debug] Python version 3.6.6 (CPython) - Windows-10-10.0.16299-SP0
[debug] exe versions: ffmpeg N-81555-g496d97f, ffprobe N-81555-g496d97f
[debug] Proxy map: {}
[udemy] Downloading login popup
ERROR: Unable to download webpage: HTTP Error 403: Unauthorized (caused by <HTTPError 403: 'Unauthorized'>); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
  File "c:\program files\python36\lib\site-packages\youtube_dl\extractor\common.py", line 605, in _request_webpage
    return self._downloader.urlopen(url_or_request)
  File "c:\program files\python36\lib\site-packages\youtube_dl\YoutubeDL.py", line 2211, in urlopen
    return self._opener.open(req, timeout=self._socket_timeout)
  File "c:\program files\python36\lib\urllib\request.py", line 532, in open
    response = meth(req, response)
  File "c:\program files\python36\lib\urllib\request.py", line 642, in http_response
    'http', request, response, code, msg, hdrs)
  File "c:\program files\python36\lib\urllib\request.py", line 570, in error
    return self._call_chain(*args)
  File "c:\program files\python36\lib\urllib\request.py", line 504, in _call_chain
    result = func(*args)
  File "c:\program files\python36\lib\urllib\request.py", line 650, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)

If the purpose of this issue is a site support request please provide all kinds of example URLs support for which should be included (replace following example URLs by yours):
Note that youtube-dl does not support sites dedicated to copyright infringement. In order for site support request to be accepted all provided example URLs should not violate any copyrights.

Description of your issue, suggested solution and other information
Explanation of your issue in arbitrary form goes here. Please make sure the description is worded well enough to be understood. Provide as much context and examples as possible.
If work on your issue requires account credentials please provide them or explain how one can obtain them.
I can not download my Udemy course content which had worked before

Ah, thank you

Some info that might help: The/One problem seems to be the User Agent sent by youtube-dl. Unfortunately it's hardcoded  (line 126 in udemy.py) so the '--user-agent' option is useless. Manually changing it to a recent Firefox string and feeding youtube-dl the cookies from an active session fixed the problem for me.


⚠ Mobitopup has degraded performance

In 69a7c46, Mobitopup (https://napcard.voz.tech) experienced degraded performance:

HTTP code: 200
Response time: 3827 ms

Resolved: Mobitopup performance has improved in 9ce94ff.


Factored typecasting out

This PR factors the typecasting helper out so it can be used in other functions/plugins.

Thanks @matmair


Add evidence for cells

Sub-issue of #75:
EvidenceTest.py now has tests which verify that each cell object has an associated piece of evidence.  These are currently marked as expected failures because most do not have any evidence.

There's no test matching the description.


docs: remove comments

:white_check_mark: Build TheIdServer 1.0.0-user-ole0025 completed (commit https://github.com/Aguafrommars/TheIdServer/commit/92f165d1ff by @aguacongas)


Bug: Using the editorState parameter breaks some components with nested editorStates

Hello, I am trying to use the editorState parameter in the initialConfig prop to set the initial state of the editor. I've noticed that when dealing with nodes that require their own editorState (i.e. the InlineImageNode/ImageNode captions), when restored the editor entry will not show any text input (flashing caret is visible, but no visible text is shown). The nested editorStates are actually working correctly since when I export using @lexical/file to a .lexical file and reimport the file. The changes I made are visible and the nested editors works again. This only seems to affect some nodes with nested editorStates, so far I've only had this problem with the caption entry of InlineImageNode and ImageNode, while the TableNode are not affected. There seems to be problem where the actual <p> element is not rendered when restoring editorState.
I'm using the following code with a headless editor for loading and restoring the editorState:
    import mockEditorState from 'export.lexical' // File where I have saved via '@lexical/file'
    const [tgEditorState, setTgEditorState] = useState<EditorState>();
    useEffect(() => {
      const editor = headless.createHeadlessEditor(editorConfig);
      setTgEditorState(editor.parseEditorState(mockEditorState.editorState));
    }, [])

  const editorConfig = {
    namespace: 'myEditor',
    nodes: [...EditorNodes],
    onError: (error: Error) => {
      throw error;
    },
    theme: theme,
    editorState : tgEditorState
  };
return (
<LexicalComposer initialConfig={editorConfig}>
  //...Plugins go here
</LexicalComposer>
)

InlineImageNode's caption does not work correctly.

TableNode works correctly.

Loading using '@lexical/file' the InlineImageNode's caption is working fine :

Seems like the _rootElement is null when loading through initialConfig:

When loading using @lexical/filethe _rootElement is defined correctly.

Seems like it was importing const editor = headless.createHeadlessEditor(editorConfig); was the problem. using const editor = createEditor(editorConfig); fixed the problem.


tenent user with view permission on pods is able to create ns

Bug description
we created a tenant owner and one user which only has permissions to get and watch pods. Tenant owner works fine but inspite tenant user is able to create a new namespace.
How to reproduce
here is my pod viewer file
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: pod-reader
rules:

apiGroups: [""]
resources: ["pods"]
verbs: ["get", "watch", "list"]

Expected behavior
A clear and concise description of what you expected to happen.
Logs
If applicable, please provide logs of capsule.
In a standard stand-alone installation of Capsule,
you'd get this by running kubectl -n capsule-system logs deploy/capsule-controller-manager.
Additional context

Capsule version: (capsule --version)
Helm Chart version: (helm list -n capsule-system)
Kubernetes version: (kubectl version)

hi @jitender1278!
Can you please provide your Tenant and CapsuleConfiguration specs, as well as information about group membership for owner and user

Here are the files and tenant-viewer has custom cluster role of eks-readonly-user-role for pod get,list, watch but it is still able to create namespace. However this user is not able list namespaces at cluster level nor able delete the namespace it created.
Tenant file ------------------------------
apiVersion: capsule.clastix.io/v1beta2
kind: Tenant
metadata:
name: app4
spec:
owners:

name: tenant-owner
kind: User
name: tenant-viewer
kind: User
clusterRoles:

eks-readonly-user-role

Cluster Role --------------------------------------
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: eks-readonly-user-role
rules:

apiGroups: ["", "extensions", "apps"]
resources: ["deployments", "replicasets", "pods"]
verbs: ["get", "list", "watch"]

Capsule Configuration -------------------------------
apiVersion: capsule.clastix.io/v1beta2
kind: CapsuleConfiguration
metadata:
annotations:
meta.helm.sh/release-name: capsule
meta.helm.sh/release-namespace: capsule-system
creationTimestamp: "2023-02-06T23:32:38Z"
generation: 1
labels:
app.kubernetes.io/instance: capsule
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: capsule
app.kubernetes.io/version: 0.2.1
helm.sh/chart: capsule-0.3.1
name: default
resourceVersion: "74737"
uid: 03d8a754-a7e5-4f96-bfce-48bbb44db873
spec:
enableTLSReconciler: true
forceTenantPrefix: false
overrides:
TLSSecretName: capsule-tls
mutatingWebhookConfigurationName: capsule-mutating-webhook-configuration
validatingWebhookConfigurationName: capsule-validating-webhook-configuration
protectedNamespaceRegex: ""
userGroups:

capsule.clastix.io

Once you define a user as a Tenant Owner, this is entitled to create Namespace resources for that tenant.
Your manifest definition is wrong, you have to add the read only user to /spec/additionalRoleBindings/.
Please, take a look to the officiale documentation:

Please, note that, despite created with more restricted permissions, a tenant owner can still create namespaces in the tenant because he belongs to the capsule.clastix.io group. If you want a user not acting as tenant owner, but still operating in the tenant, you can assign additional RoleBindings without assigning him the tenant ownership.


[YUNIKORN-1717] cache sortedQueues

What is this PR for?
Only need sorting queues if the following occurred:

Allocated resource changed in one of the child queues (most common)
Pending resource changed from 0 to "n", or from "n" to 0 (affects filtering)
Child queue got stopped (affects filtering)
Child queue structure changed on config update

What type of PR is it?

[ ] - Bug Fix
[ ] - Improvement
[ ] - Feature
[ ] - Documentation
[ ] - Hot Fix
[ ] - Refactoring

Todos

[ ] - Task

What is the Jira issue?
https://issues.apache.org/jira/browse/YUNIKORN-1717
How should this be tested?
Screenshots (if appropriate)
Questions:

[ ] - The licenses files need update.
[ ] - There is breaking changes for older versions.
[ ] - It needs documentation.

Thanks for the review. I will do some profiling and update my code tomorrow.

I have some concerns about this. Queue sorting has never really showed up as a hot spot for several reasons. For one thing, there are generally far fewer queues than outstanding requests (if not, the cluster is relatively idle and performance isn't an issue). Sorting of queues also happens only once per scheduling cycle, and if we are able to schedule a task, the sorting needs to be re-done anyway, so the only thing caching the sorted queues gets us is a slight speedup when there is nothing available to schedule anyway.
Some of the changes needed here to make this work (including potentially a new FSM for Queue?) strike me as a bridge too far, given the likely negligible impact on performance. Additionally, changes this invasive are going to make implementing additional features more difficult -- things like multiple partition support come to mind.
In short, I think we should table this JIRA. If at some point in the future this becomes a bottleneck, we can readdress it.

Hi @pbacsko and @craigcondit, I agree with you. Most of the time, we don't have many queues, and cached results may be stale after allocated/pending resources are updated. Also, including cached result makes the code more complex. I will close the PR and see what we can do in the future. Thanks!


how to separate training environments and evaluation environments

how we can separate training environment and evaluation environment , the goal of doing that is separate the training data and evaluation data during the training.
there is a way to give 2 env on load as train_env and eval_env ?
or something can help me like a variable or method that check if the loaded environment is for eval or train as custom gym env
thank you for helping

Hello, our current framework employs essentially the same environment for data collection and evaluation stages, such as Pong, but also allows for fine-tuning the environment in these two stages.

Specifically, as you can see in here, we can set different parameters for each stage. For example, in the data collection stage, we might use clipped rewards, while in the evaluation stage, we display the original rewards. This can be achieved by setting the clip_rewards parameter differently. The purpose of this design is to enhance the flexibility and adaptability of our model to meet a variety of experimental needs.

However, we currently do not support using completely different environments for the collect and eval stages, which so far is not necessary in practice.

To determine whether the current environment is for collect or eval, you can simply set a judgment flag here, such as is_collect.

thank you , is clear about is_collect=True under create_evaluator_env_cfg , but i dont get where it called the create_evaluator_env_cfg function on the framework.
also please tell me more about clip_rewards how it work and there effect , and i should change on my reward function ?
im gotting mistiruse problem train is going well but evaluation with new data is so so so bad .
like is learn only train data.
thank you so much

sorry i just update to last version i was in old version of the framework , thank you for your hard working on this art of RL really a great job. i appreciate that.
please tell me more about clip_rewards and there effect , and how to make the agent flexible and adaptable with new data
is i should just do the function like this on my custom env , or i should activate some hyperparams on the config file ?
    @staticmethod
    def create_evaluator_env_cfg(cfg: dict) -> List[dict]:
        evaluator_env_num = cfg.pop('evaluator_env_num')
        cfg = copy.deepcopy(cfg)
        cfg.max_episode_steps = cfg.eval_max_episode_steps
        cfg.episode_life = False
        cfg.clip_rewards = False
        cfg.is_collect = False
        return [cfg for _ in range(evaluator_env_num)]

Thank you for your support and encouragement!
Regarding clip_rewards, it is a commonly used technique to limit the range of reward values in reinforcement learning. In many cases, reward values can have a wide variance, which can lead to instability in training or the problem of gradient explosion. The role of clip_rewards is to constrain reward values within a smaller range, usually [-1, 1]. In the Atari environment, the original reward is converted into one of three values, {-1,0,1}, based on its sign. You can refer to this implementation for more details. This helps control the size of the gradient, making the training process more stable. To gain more insights into the robustness of reinforcement learning to reward scale, you can refer to the following papers:  paper1, paper2.
Regarding the issue of enhancing the flexibility and stability of agents, this is a broad question. You can refer to papers in related fields such as Exploration-Exploitation Balance, Transfer Learning, Curriculum Learning, and Domain Randomization.
If you have any questions, feel free to raise them for discussion. Best wishes.


Allow overriding date format method to override date setter

When passing the date_format option, I expected the date= method to parse using that format.  Instead DateTime.parse was used, which ignores the format.  Since I'm using a US-style mm-dd-yyyy ordering, this had the unexpected side-effect of switching my months with my days.
This pull request uses the #strptime method to parse if a date_format is passed, otherwise it continues to use the #parse method.

This looks good. Would you mind also applying this to the _time= setter? Looks like we ignore options[:time_format] there, too.

Will do!

On May 19, 2015, at 12:34 PM, Joshua Kovach<EMAIL_ADDRESS>wrote:
This looks good. Would you mind also applying this to the _time= setter? Looks like we ignore options[:time_format] there, too.
—
Reply to this email directly or view it on GitHub https://github.com/shekibobo/time_splitter/pull/7#issuecomment-103646270.

K, time setter now works the same as the date setter.  Also modified date setter to allow it to accept Date or Time objects correctly when a custom format is specified.

Looks good, thanks! I'll push a new version in a few minutes.

This fix is now available in version 1.1.0.


BYOL Documentation

The Azure and GCP both have documentation on BYOL. This requires the updates to the AMI selected and the DO for onboarding the license.
Is there a reason this isn't in the AWS one?

tracking through: INFRAANO-802


JSON Web Tokens

I see that there is motivation to implementing OAuth, I would also like to recommend that the leadership consider adding support for JSON Web Tokens as a lightweight authentication for claims.
Relevant links:
https://bitbucket.org/ssaasen/haskell-jwt
http://jwt.io/

Cool, thanks for letting me know about that. Is it an alternative to OAuth or complementary?

Most use cases I am familiar with are associated with closed api's and is independent of OAuth. But it is pretty flexible and I have seen it used to replace OAuth tokens. You can return a stateless JWT instead, with the allowed scopes and expiration.

+1

I like this idea as well. From the limited understanding I have of JWT, it is a way of signing and verifying arbitrary data so it seems very flexible to use and allows auth to be pluggable rather than restricted to a single standard.

+1
Is there anyone working on it?
I'll be happy to implement it as Basic Auth is not enough for my use case

Thanks a lot, go right ahead.

@framp what's your estimate for when you might work on this? I have a need for this as well, and wouldn't mind helping.

I'll probably give it a shot this weekend.
If you want to start working on it before we need to install jwt and do something like this somewhere in Middlweare.hs:
 import Web.JWT (decodeAndVerifySignature, encodeSigned, secret) as JWT

 ...

 Data.Map.lookup "role" <$>
   JWT.unregisteredClaims <$>
   JWT.claims <$>
   JWT.decodeAndVerifySignature (JWT.secret "secret")

And then add a route for logging in (or use the existing one with a flag) using encodeSigned

Hooray!

Well. I am trying for a sample JWT.

You need to set a proper secret and not the default one for security reasons, launch postgrest with --jwt-secret horsebatterystaplecorrect

Thank you for your suggestion.Now its working fine for me.

Thank you for your suggestion.Now its working fine for me.

Does postgrest JWT support specify expire time for the token?
I tried below but not working.
{ "id": "user", "pass": "passed",exp=<unixtimestamp>}

Unfortunately expiry has not been implemented in the upstream library we are using.

@framp Got it. Thank you for you reply.

Does this mean that the JWT postgrest generates (user management / blog examples) are valid forever? I do see the external authentication examples reference JWT TTL expiration.  --Great project btw!

We could modify the example for generating jwt to include an expiration of five minutes:
create type basic_auth.jwt_claims AS (role text, email text, exp as integer);

create or replace function
login(email text, pass text) returns basic_auth.jwt_claims
  language plpgsql
  as $$
declare
  _role name;
  result basic_auth.jwt_claims;
begin
  select basic_auth.user_role(email, pass) into _role;
  if _role is null then
    raise invalid_password using message = 'invalid user or password';
  end if;
  -- TODO; check verified flag if you care whether users
  -- have validated their emails
  select _role as role, login.email as email,
         round(extract(epoch from now()))+5*60 as exp
         into result;
  return result;
end;
$$;

Nice -that makes sense.
This is probably a naive question, Does this mean that postgrest will enforce the jwt exp TTL?
I've updated my db with your modified example but I'm still not getting logged out of the API after 5 mins. I don't see the exp field when I decode the jwt either so perhaps something else is going on.
I did verify that the login function reflects the updated code with 5 min exp field.
thanks

Which version of postgrest are you running? As of <IP_ADDRESS> and later it should reject expired JWTs.

I have re-created the exp extended blog db using the latest postgrest 3.04.
I can confirm that the psql login function returns an jwt_claims type with the exp integer field added. However, the actual jwt token returned by the postgrest login endpoint does not include the exp field, only email and role.
Perhaps I missing something obvious?


[feat/icon]: microsoft sql-server

Icon: https://chocolatey.org/content/packageimages/sql-server-express.14.1801.3958.1.svg

Was this removed?


np2 0.84 (new formula)

Neko Project II is an emulator for PC-9801 series computers. There were many Japanese games exclusively released for this platform in 80~90s.
The project has been recently updated to support Mac OS X builds. A few changes for brewing include:

Use brewed SDL2, SDL2_ttf paths in Xcode project file
Turn on TTF font by default (otherwise, garbles fonts displayed)
Always use current working directory (otherwise, font cache saved in /usr/local/)

FYI, some Unix distros have a package for xnp2 which is an X11/GTK port.

test block that runs np2 -h is removed. It returns with exit code 1 after displaying help message.

@BrewTestBot test this please

Thanks!


Github actions for more connectivity!

We can implement github workflows for the following things:

Auto comment on issue Closed and Opened
Auto comment on PR mergs
Auto comment on PR raises

Using this workflows makes you'r repo more interactive ! @vivekvardhan2810
i'm expecting a level3 with gssoc-ext and hacktoberfest-accepted label

@smog-root auto comment for issue open is there, but auto comment on closed issue is not there.
And auto comment on PR raise is there, but Auto comment is not there for PR merged.
I will assign you this issue, if you work on 2 things only for level 2

Auto comment on issue Closed.
Auto comment on PR mergs.

Will.this be okay for you.

Okay. I will work on it for level2! @vivekvardhan2810

@smog-root assigning this issue to you.
Make sure to complete this.
Do work on these 2 only.
1.Auto comment on issue Closed.

Auto comment on PR mergs.

@vivekvardhan2810 Auto comment for  issue open is not there!!
if it is there. why there is no comment on this issue!!

okay i will work on those two!


[nri-bundle] update KSM

Is this a new chart
What this PR does / why we need it:
Which issue this PR fixes
(optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged)

fixes #

Special notes for your reviewer:
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] Chart Version bumped
[x] Variables are documented in the README.md
[x] Title of the PR starts with chart name (e.g. [mychartname])

skipping check for nri-bundle dependency w/ same common library version because its a subchart (logging) that isn't our team


Wasted space in binaries

If you add more licenses to this crate, the space used to store license text in binaries might start to add up. Mabey consider adding a build script that compresses the text, then lazily decompress the text when its accessed. The problem is partly negated by link time optimizations, which will remove unused code from the final binary.

Hmm, lazy decompressing would be at runtime though. I would think compiling the data right into the binary, even though it uses more space, would be better, but I might be wrong.

Yes, it would be a tradeoff, but you would only decompress on first access, maybe you could feature gate it. It is just a suggestion, it might not be worthy it, just something to consider.

Yeah feature gating might be a good solution! I'll look into it when I got the time.

@henninglive do you mean feature gating the (de)compression, or the licenses themselves?


Mesh Ai with API WhatsApp

I would like to use Fabric AI in an API WhatsApp. When user sends a message, it sends the command to Mesh AI. Would it be possible to modify this plugin to adapt it. Since I don't have much knowledge, could you give me a little tip to get started? I need to understand how to call Mesh AI in the API.
Tks

This would entail creating a new plugin, that is installed alongside mesh-ai however I have not designed my plugin in a way that other plugins can use easily right now. It can be done im sure of that but not straight forward. May I ask what you are trying to accomplish in detail?

I'm trying to read my markdown documents with AI and answer questions.
But I thought using fabric ai prompts to do this.
Because the prompts are markeddown and the community is always creating new ones.

But how does WhatsApp come in to play?Sent from my iPhoneOn Sep 21, 2024, at 11:31 PM, Braulio Dias Ribeiro @.***> wrote:
I'm trying to read my markdown documents with AI and answer questions.
But I thought using fabric ai prompts to do this.
Because the prompts are markeddown and the community is always creating new ones.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: @.***>

But how does WhatsApp come in to play?Sent from my iPhoneOn Sep 21, 2024, at 11:31 PM, Braulio Dias Ribeiro @.> wrote: I'm trying to read my markdown documents with AI and answer questions. But I thought using fabric ai prompts to do this. Because the prompts are markeddown and the community is always creating new ones. —Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: @.>

When I receive a message on WhatsApp (Evolution API), I need to send a command to run some Fabric AI prompt. The problem is that I don't know how to do this. Your plugin doesn't need to have Fabric installed, so I think it searches directly in the Fabric GitHub prompts.
Maybe I need to use LangFlow to create a chatbot and connect with Fabric AI (similar to your obsidian plugin). I'm still researching this.

Gotcha, all I do to get the patterns is download them to file from the fabric github repo. You probably could do that in Langflow, never used it.Sent from my iPhoneOn Sep 22, 2024, at 12:20 AM, Braulio Dias Ribeiro @.***> wrote:
But how does WhatsApp come in to play?Sent from my iPhoneOn Sep 21, 2024, at 11:31 PM, Braulio Dias Ribeiro @.> wrote: I'm trying to read my markdown documents with AI and answer questions. But I thought using fabric ai prompts to do this. Because the prompts are markeddown and the community is always creating new ones. —Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: @.>
When I receive a message on WhatsApp (Evolution API), I need to send a command to run some Fabric AI prompt. The problem is that I don't know how to do this. Your plugin doesn't need to have Fabric installed, so I think it searches directly in the Fabric GitHub prompts.
Maybe I need to use LangFlow to create a chatbot and connect with Fabric AI (similar to your obsidian plugin). I'm still researching this.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: @.***>

Gotcha, all I do to get the patterns is download them to file from the fabric github repo. You probably could do that in Langflow, never used it.Sent from my iPhoneOn Sep 22, 2024, at 12:20 AM, Braulio Dias Ribeiro @.> wrote: But how does WhatsApp come in to play?Sent from my iPhoneOn Sep 21, 2024, at 11:31 PM, Braulio Dias Ribeiro @.> wrote: I'm trying to read my markdown documents with AI and answer questions. But I thought using fabric ai prompts to do this. Because the prompts are markeddown and the community is always creating new ones. —Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: @.> When I receive a message on WhatsApp (Evolution API), I need to send a command to run some Fabric AI prompt. The problem is that I don't know how to do this. Your plugin doesn't need to have Fabric installed, so I think it searches directly in the Fabric GitHub prompts. Maybe I need to use LangFlow to create a chatbot and connect with Fabric AI (similar to your obsidian plugin). I'm still researching this. —Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: @.>

I’m going to try… tks


Add python3 to list of acceptable pythons in python wrapper

This is an attempt to fix fix httpcli portability tests which have been failing continuously since what appears to be https://github.com/grpc/grpc/pull/28010/files, with example log: https://source.cloud.google.com/results/invocations/34f2174c-5660-4f37-9414-a7b0b75c43e1/targets/github%2Fgrpc%2Frun_tests%2Fc_linux_dbg_native_x64_gcc11/tests
b/209014236

The fake python server used in these tests doesn't seem to be python3 compatible.
Test now failing:
  File "test/core/../../test/core/http/test_server.py", line 30
    print _PEM

After that, the script is now failing with:
Traceback (most recent call last):
  File "/Volumes/BuildData/tmpfs/tmp/bazel/sandbox/darwin-sandbox/7009/execroot/com_github_grpc_grpc/bazel-out/darwin-dbg/bin/test/core/http/httpcli_test.runfiles/com_github_grpc_grpc/test/core/../../test/core/http/test_server.py", line 22, in <module>
    import BaseHTTPServer
ModuleNotFoundError: No module named 'BaseHTTPServer'

Test now fails with:
Traceback (most recent call last):
  File "test/core/../../test/core/http/test_server.py", line 19, in <module>
    import six
ModuleNotFoundError: No module named 'six'

Superseded by https://github.com/grpc/grpc/pull/28284.


Upgrade to Node.js v6.11.1 LTS

This builds upon PR #123 and closes #122.

Upgraded rack dependency to prevent Content-Length headers returning alongside Transfer-Encoding headers in tests.
Upgraded to Node.js v6.11.1 LTS thereby taking care of CVE-2017-1000381

Are you successfully running this on this node version?

I ran the test suite with that exact node version. I have not yet deployed it to Heroku. I wanted to first make sure you were cool with my changes. I plan to deploy today.

I just deployed to our production environment on Heroku. So far, so good. Running smoothly with Node v6.11.1.
Heroku recognized v6.11.1:
remote: -----> Installing binaries
remote:        engines.node (package.json):  ^6.11.1

Camo booted in the node v6.11.1 environment:
app[web.1]: SSL-Proxy running on 33118 with node:v6.11.1 pid:4 version:2.3.0.

...and started proxying images soon after.

Can you keep it running for a few days and report back? I don't have a production installation of camo that serves a bunch of traffic anymore, but I'm excited to be on a maintained version of node.

Can you keep it running for a few days and report back?

Sure thing. If I forget to report back, it's probably because things are running smoothly, but anyone can feel free to ping me after this week and remind me to chime in here again.

This is only a few hours worth of data, but I've been running this branch in production and camo is as stable as ever.
Nice drop in memory usage and response times too!


Added Chams backtrack rendering for all previous recorded positions

I've seen an issue about this already, not too much to say but this is pretty standard in all cheats as rendering only the first position is kind of limiting and hard to utilize.

I've seen an issue about this already, not too much to say but this is pretty standard in all cheats as rendering only the first position is kind of limiting and hard to utilize.

this type of pr was public for quite some time

this shit lags for low end pc asf. Make that at least toggable


Consider integrating Taskade

Please consider integrating Taskade!

Taskade doesn't seem to provide API yet. :)


[Feature] Auto server restart when *.dart file changes

I am getting familiar with aqueduct.
I found that it is little tedious that i restart the server by typing aqueduct server every time i changed the code. May be this could be better with some little CLI automation.
Thank you.

Yes, this one is our internal tracker, so it is currently planned.

Merging this into #426 and closing