[ 
https://issues.apache.org/jira/browse/IGNITE-24738?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17933663#comment-17933663
 ] 
Stanislav Lukyanov commented on IGNITE-24738:
---------------------------------------------

Ideally, you should be able to write something like{{{}{}}}
{code:java}
IgniteServer embeddedServer = IgniteServer.start(...);

IgniteManagement mgmt = embeddedServer.managementApi();
mgmt.nodeConfiguration().update(...);
...
mgmt.cluster().init(...);
...

Ignite client = embeddedServer.api();
client.catalog().createTable(...)
... {code}

> 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
>            Priority: Major
>              Labels: ignite-3
>
> 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)

Reply via email to