Skip to content

Latest commit

 

History

History
96 lines (74 loc) · 3.22 KB

File metadata and controls

96 lines (74 loc) · 3.22 KB

Groups

With the groups Plugins nodes can organize themselves in groups. Members within the group will be automatically notified about the entry and exit of other nodes.

Client

The groups-client plugin enables nodes to join groups.

Add Dependency

Maven:

<dependency>
    <groupId>org.drasyl</groupId>
    <artifactId>drasyl-plugin-groups-client</artifactId>
    <version>0.9.0</version>
</dependency>

Other dependency managers:

Gradle : compile "org.drasyl:drasyl-plugin-groups-client:0.9.0" // build.gradle 
   Ivy : <dependency org="org.drasyl" name="drasyl-plugin-groups-client" rev="0.9.0" conf="build" /> // ivy.xml
   SBT : libraryDependencies += "org.drasyl" % "drasyl-plugin-groups-client" % "0.9.0" // build.sbt

Configuration

Make sure that the following entry is included in your configuration under drasyl.plugins:

"org.drasyl.plugin.groups.client.GroupsClientPlugin" {
  enabled = true
  groups = [
    "groups://my-shared-secret@023d34f317616c3bb0fa1e4b425e9419d1704ef57f6e53afe9790e00998134f5ff/steezy-vips?timeout=60"
  ]
}

With this configuration, the client will connect to the Groups Manager on the node 023d34f317616c3bb0fa1e4b425e9419d1704ef57f6e53afe9790e00998134f5ff at startup and will join the group steezy-vips. Authentication is done via the shared secret my-shared-secret.

Special Group Events will then inform you about group joins of your local or other nodes.

In the next section you will learn how to start the Group Manager on a node.

Manager

The groups-manager allows a node to manage groups and their memberships.

Add Dependency

Maven:

<dependency>
    <groupId>org.drasyl</groupId>
    <artifactId>drasyl-plugin-groups-manager</artifactId>
    <version>0.9.0</version>
</dependency>

Other dependency managers:

Gradle : compile "org.drasyl:drasyl-plugin-groups-manager:0.9.0" // build.gradle 
   Ivy : <dependency org="org.drasyl" name="drasyl-plugin-groups-manager" rev="0.9.0" conf="build" /> // ivy.xml
   SBT : libraryDependencies += "org.drasyl" % "drasyl-plugin-groups-manager" % "0.9.0" // build.sbt

Configuration

Make sure that the following entry is included in your configuration under drasyl.plugins:

"org.drasyl.plugin.groups.manager.GroupsManagerPlugin" {
  enabled = true
  database {
    uri = "jdbc:sqlite::memory:"
  }
  groups {
    "steezy-vips" {
      secret = "my-shared-secret"
    }
  }
}

With this configuration the manager is created with the group steezy-vips, whose members must authenticate themselves using the shared secret my-shared-secret. The manager stores all groups, nodes and their memberships in memory. To persistent the data on file system, database.uri can be set to jdbc:sqlite:groups-manager.sqlite.

An overview of all available parameters (e.g. to enable the REST API), their purpose and default values can be found in the plugin's reference.conf file.