[
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)