You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Audit module is the most important module, it provides user management, licensing and auditing services to the other modules. It automatically recognizes other modules, that are running on the same machine or on different servers - either using multicast or IP white list. Audit module is the main communication channel for the BellaDati IoT console too.

Running module

Audit can be started using the provided starting script, automatically when installed using the installer or manually, by executing following command:

java -Dapplication.name=audit-1 -Dvertx.hazelcast.config=cluster.xml -Dfile.encoding=UTF8 -jar iot-collector-audit-x.y.z.jar -conf config.json

Runtime parameters explained

Parameter nameDescriptionExample
-Dapplication.name
Mandatory JVM parameter. Defines the name of the audit. This is usefull in situations, when there are multiple audits in your infrastructure and you need to distinguish them.
-Dapplication.name=audit-1
-Dvertx.hazelcast.config
Mandatory JVM parameter. Specifies the file containing the cluster configuration.
-Dvertx.hazelcast.config=cluster.xml
-Dfile.encoding
Optional JVM parameter. Specifies the encoding used when working with byte streams or reading messages and files.
-Dfile.encoding=UTF8
-jar
 
-jar iot-collector-audit-x.y.z.jar
-conf
 
-conf config.json

 

Configuration

Configuration is provided in config.json, which is passed to the application as -conf parameter

Configuration options

 

Option/EntityTypeDefaultDescription
instance
Object Contains configuration for audit instance
instance.license
StringemptyLicense provided by BellaDati
instance.name
StringemptyName of the instance
instance.db
Object Contains database configuration. You can keep the default values unless you use some specific database.
instance.db.url
String Database connection string
instance.db.user
String Database username
instance.db.password
String Database password
instance.db.driverclass
String Database JDBC driver class
instance.db.max_pool_size
Integer Database maximum pool size
instance.db.drop
Boolean Flag indicating if database should be dropped during module startup
instance.auth
Object Configuration of administrators common for all modules
instance.auth.enabled
Boolean Flag indicating if administrator authentication is enabled
instance.auth.drop
Boolean Flag indicating if administrators should be dropped during module startup
instance.auth.merge
Boolean Flag indicating if administrators should be merged during module startup
instance.auth.users
Object Array of administrators to merge (insert new or update existing)
    
    
    

 

Configuration sample

{
  "instance": {
    "license": "n5NkzaEOALzvGs7LOExyAulYdqo8X+5==",                  
    "name": "Awesome Company - TEST_ENV",                            
    "db": {                                                          
      "url": "jdbc:hsqldb:file:/path/to/instance-db;shutdown=true",  
      "user": "SA",                                                  
      "password": "",                                                
      "driverclass": "org.hsqldb.jdbcDriver",                        
      "max_pool_size": 100,                                           
      "drop": false                                                   
    },
    "auth": {                                                         
      "enabled": true,                                                
      "drop": false,                                                  
      "merge": true,                                                  
      "users": [                                                      
        {
          "username": "admin",                                        
          "password": "DAAF8173380C604B392A1EF8D7559AA0",             
          "salt": "BA1170DE9ADE8D29D2C18FD789EAB3BD",                 
          "roles": [ "ADMIN" ]                                        
        }
      ]
    }
  },
  "audit": {
    "license": "n5NkzaEOALzvGs7LOExyAulYdqo8X+5==",                   
    "name": "Audit 01",                                               
    "host": "localhost",                                              
    "port": 8000,                                                     
    "bodyLimit": 2097152,                                             
    "db": {                                                           
      "url": "jdbc:hsqldb:file:/path/to/my-audit-db;shutdown=true",   
      "user": "SA",                                                   
      "password": "",                                                 
      "driverclass": "org.hsqldb.jdbcDriver",                         
      "max_pool_size": 100,                                           
      "jsonVarcharLength": 2047,                                      
      "drop": false                                                   
    },
    "auth": {
      "enabled": true,                                                
      "drop": false,                                                  
      "merge": true,                                                  
      "users": [                                                      
        {
          "username": "viewer",                                       
          "password": "DAAF8173380C604B392A1EF8D7559AA0",             
          "salt": "BA1170DE9ADE8D29D2C18FD789EAB3BD",                 
          "roles": [ "VIEWER" ]                                       
        }
      ]
    },
    "ssl": {
      "enabled": true,                                                
      "keystorePath": "/path/to/server-keystore.jks",                 
      "keystorePassword": "wibble"                                    
    }
  }
}

 

Roles

This module supports following roles:

VerticleRolePermitted operations
InstanceADMINAll operations in all modules
AuditVIEWERGET_STATUS, GET_MODULES, GET_SENSORS

Module states

This module can have one of following statuses:

VerticleStatusDescription
AuditUPVerticle is up and running. It operates without any specific limitations.
PAUSEDVerticle is paused but it operates without any specific limitations. Request to "GET /" ends with response code 405.

Audit module API

This module provides following HTTP endpoints:

PathMethodDescriptionURL ParametersExample
/GETReturns plain text with ECHO message (should be used in load balancer to detect UP/DOWN status)-https://localhost:8000/
/statusGETReturns JSON object that contains internal state of audit verticle (e.g. total count of sensors)-https://localhost:8000/status
/modulesGETReturns JSON array that contains all modules registered in service discovery infrastructure-https://localhost:8000/modules
/sensorsGETReturns JSON array that contains status of all sensors- order = "ASC" / "DESC" (default: "ASC")
- start = from timestamp (default: 0)
- stop = to timestamp
- receiver_id = receiver identification
- sensor_id = sensor identification
- limit = page size (default: 100)
https://localhost:8000/sensors
/pauseGETSets status PAUSED for audit verticle immediately. Returns response from "GET /status" endpoint (see above)-https://localhost:8000/pause
/resumeGETSets status UP for audit verticle immediately. Returns response from "GET /status" endpoint (see above)-https://localhost:8000/resume
/logoutGETExecutes logout of currently logged in user-https://localhost:8000/logout
  • No labels