Stanislav Lukyanov created IGNITE-24738: -------------------------------------------
Summary: Provide simplified Management API access Key: IGNITE-24738 URL: https://issues.apache.org/jira/browse/IGNITE-24738 Project: Ignite Issue Type: Improvement Components: rest Reporter: Stanislav Lukyanov h1. Motivation In Ignite 3, application and management APIs are segregated. The application interface's entry point the `Ignite` interface with all the data and compute APIs. The management interface is REST, with an option to generate a language client via OpenAPI, and with CLI providing a wrapper for scripting and REPL. While this works fine for production-level setups with standalone node deployment, it's cumbersome in two other cases: * Examples and experimentation - for that, I often want to have as much as possible done in my language of choice without mixing, say, Java and Bash scripts. * Embedded mode - that often requires management API access for automation inside of the app. An illustration of this is that IgniteServer had already introduced methods for cluster initialization. However, these are not the only methods one would need for an embedded mode set up. h1. Proposal Provide an easier access to Management API. The proposed strategy is to start with Java and implement gradual improvements, then expand the same approach to other languages. Improvement steps: * Provide docs and examples showing how to generate the OpenAPI client and use it in the embedded mode application. * Provide a pre-build OpenAPI client. * Provide a way to authenticate the OpenAPI client in embedded mode without having username and password. ** In embedded mode, you typically don't use any credentials. The fact that you have access to IgniteServer means the highest level of access. ** To simplify embedded mode use cases, local access needs to either be auth-less for localhost (less secure) or there has to be a way to extract a REST token from the IgniteServer (more secure). * Implement a custom, idiomatic management API and management API clients. For remote access, the API will wrap the OpenAPI client; for embedded mode, the API will access the local node directly, without HTTP. -- This message was sent by Atlassian Jira (v8.20.10#820010)