Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Fix typo

...

IDIEP-87
Author
Sponsor
Created

 

Status

Status
colourGreyGreen
titleDRAFTCOMPLETED

Table of Contents

Motivation

...

  • io.micronaut:micronaut-inject:jar:3.4.1
  • javax.annotation:javax.annotation-api:jar:1.3.2 (transitive from micronaut-inject)
  • jakarta.inject:jakarta.inject-api:jar:2.0.1
  • io.micronaut:micronaut-core:jar:3.4.1
  • io.micronaut:micronaut-http-server-netty:jar:3.4.1
  • io.micronaut:micronaut-http-server:jar:3.4.1
  • io.micronaut:micronaut-router:jar:3.4.1
  • io.micronaut:micronaut-http-netty:jar:3.4.1
  • io.micronaut:micronaut-buffer-netty:jar:3.4.1
  • io.micronaut:micronaut-runtime:jar:3.4.1
  • io.micronaut:micronaut-http:jar:3.4.1
  • io.micronaut:micronaut-aop:jar:3.4.1
  • io.micronaut:micronaut-context:jar:3.4.1
  • io.micronaut:micronaut-core-reactive:jar:3.4.1
  • Io.micronaut:micronaut-json-core:jar:3.3.3
  • io.micronaut:micronaut-jackson-core:jar:3.3.3
  • io.micronaut.serde:micronaut-serde-api:jar:1.0.1
  • io.micronaut.serde:micronaut-serde-support:jar:1.0.1
  • javax.validation:validation-api:jar:2.0.1.Final (transitive from micronaut-runtime)
  • jakarta.annotation:jakarta.annotation-api:jar:2.0.0
  • io.swagger.core.v3:swagger-annotations:jar:2.1.12

any other module that wants to expose an enpoint:

  • com.fasterxml.jackson.core:jackson-annotations:jar:2.13.1
  • jakarta.annotation:jakarta.annotation-api:jar:2.0.0
  • jakarta.inject:jakarta.inject-api:jar:2.0.0:compile
  • io.swagger.core.v3:swagger-annotations:jar:2.1.12io.micronaut.serde:micronaut-serde-jackson:jar:1.0.1
  • io.micronaut:micronaut-jackson-core:jar:3.3.3
  • io.micronaut:micronaut-json-core:jar:3.3.3
  • com.fasterxml.jackson.core:jackson-core:jar:2.13.1
  • io.micronaut:micronaut-context:jar:3.3.3
  • io.micronaut.serde:micronaut-serde-api:jar:1.0.1
  • io.micronaut.serde:micronaut-serde-support:jar:1.0.1
  • io.micronaut:micronaut-http:jar:3.4.1
  • io.micronaut:micronaut-inject:jar:3.4.1
  • io.micronaut:micronaut-http-server:jar:3.4.1
  • io.micronaut:micronaut-runtime:jar:3.4.1

...

The last point is important. Ignite 3 will definitely need to implement security protocols and strategies. Micronaut already has implementations for the most popular ones (OAuth2/OpenID, LDAP, etc), they are tested in production by a community and have a little chance to introduce a vulnerability to the server compering with our own implementation. All these standards are going to be implemented in Ignite 3.


Implementation example


Code Block
languagejava
titleRestComponent
@OpenAPIDefinition(
        info = @Info(
                title = "Ignite REST module",
                version = "3.0.0-alpha",
                license = @License(name = "Apache 2.0", url = "https://ignite.apache.org"),
                contact = @Contact(email = "dev@ignite.apache.org")
        )
)
@OpenAPIInclude(classes = {ClusterConfigurationController.class, NodeConfigurationController.class}) // include to openapi specification
public class RestComponent implements IgniteComponent {
    // ...

    public RestComponent(List<MicronautFactory> micronautFactories, RestConfiguration restConfiguration) {
        // register all factories in micronaut context
    }

    @Override
    public void start() {
       // start REST server
    }

...

MethodPathParametersDescription
POST/management/v1/cluster/init/
  • body: list of meta storage node names and list of cmg nodes
Initialize cluster

...

MethodPathParametersDescription
GET/management/v1/topology/physical


Return physical cluster topology information(consistent ID, ID, address, status).


MethodPathParametersDescription
GET/management/v1/topology/logical


Return logical cluster topology information(consistent ID, ID, address, status).

Version REST API

Provide the build version for the node. 

MethodPathParametersDescription
GET/management/v1/node/version/


Return node build version in semver format.

...