Personal Services: Node Messages

Submitted by code_admin on Mon, 07/23/2018 - 11:26

** TODO Refactor so it dosen't use php filter **

$def_URI = "URI";
$def_ConnProcess = "See Connection Process";
$def_SignalProcess = "See Signal Process";

function dispArrayAsTable($arr) {
print "

";

$keys = array();
$c = 0;
reset($arr[0]);
while (list($key,$value) = each($arr[0])) {
$keys[$c] = $key;
$c++;
print "

";
};
print "

";
reset($arr);
while (list($key,$value) = each($arr)) {
print "

";
for ($c=0;$c print "

";
};
print "

";
};
print "

" . $key . "
" . $value[$keys[$c]] ."

";
}
?>

Node Identification

  • Host Name
  • Port
  • Node Name
  • Public Key

Message Security Levels

$c=0;
$sec_lev['Name'] = "Connection";
$sec_lev['Description'] = "Any connection - all connections start out at this level";
$sec_lev['Cmd Processor'] = "InitialConnection";
$sec_lev['Process'] = "";
$sec_levs[$c++] = $sec_lev;

$sec_lev['Name'] = "Admin";
$sec_lev['Description'] = "Hub administrator, commands run here then handed off to InitialConnection as these commands can be run also";
$sec_lev['Cmd Processor'] = "adminCommands -> InitialConnection";
$sec_lev['Process'] = "

  1. EncryptFor(ServerPubKey)
  2. AuthConnection(AdminUserName,PrivateKey)
  3. wait for getMsgConnectionAuthResponse()
  4. WaitFor cmdProcessorSwitch() to metcarob.com.personalservices.singlenodeserver.cmdProcessors.adminCommands

";
$sec_levs[$c++] = $sec_lev;

$sec_lev['Name'] = "MultiServerAdmin";
$sec_lev['Description'] = "Hub administrator, commands run here then handed off to InitialConnection as these commands can be run also";
$sec_lev['Cmd Processor'] = "adminCommands (in MultiNodeServer) -> InitialConnection";
$sec_lev['Process'] = "

  1. EncryptFor(ServerPubKey)
  2. AuthConnection(AdminUserName,PrivateKey)
  3. wait for getMsgConnectionAuthResponse()
  4. WaitFor cmdProcessorSwitch() to metcarob.com.personalservices.multinodeserver.PersonalServices_multinodeserver.cmdProcessors.adminCommands

";
$sec_levs[$c++] = $sec_lev;

$sec_lev['Name'] = "Node";
$sec_lev['Description'] = "Anonymous user connected to a Node";
$sec_lev['Cmd Processor'] = "nodeCommands";
$sec_lev['Process'] = "

  1. GetKey()*
  2. Connect
  3. WaitForConnectResponseeOK
  4. EncryptFor(NodePubKey)
  5. WaitFor cmdProcessorSwitch() to nodeCommands

*If required";
$sec_levs[$c++] = $sec_lev;

$sec_lev['Name'] = "NodeConSecure";
$sec_lev['Description'] = "Node connected using InboundConnection";
$sec_lev['Cmd Processor'] = "NodeConSecure";
$sec_lev['Process'] = "See Diagram Connection Processes";
$sec_levs[$c++] = $sec_lev;

$sec_lev['Name'] = "NodeConSecureOutgoing";
$sec_lev['Description'] = "Node connected using OutboundConnection";
$sec_lev['Cmd Processor'] = "NodeConSecureOutgoung";
$sec_lev['Process'] = "See Diagram";
$sec_levs[$c++] = $sec_lev;

$sec_lev['Name'] = "NodeAdmin";
$sec_lev['Description'] = "Admin user connected to a Node";
$sec_lev['Cmd Processor'] = "nodeAdminCommands";
$sec_lev['Process'] = "

  1. Node
  2. AuthConnection(UserName,PrivateKey)
  3. wait for getMsgConnectionAuthResponse()
  4. wait for INBOUNDCONNECTIONBECAMESECURE
  5. wait for cmdProcessorSwitch() to nodeAdminCommands

";
$sec_levs[$c++] = $sec_lev;

dispArrayAsTable($sec_levs);
?>
Messages that can be processed by each hub

$c=0;
$message['Message Name'] = "ListNodes";
$message['Security Level'] = "Admin, MultiServerAdmin";
$message['Params'] = "";
$message['Description'] = "Request a list of nodes and their public key.";
$messages[$c++] = $message;

$message['Message Name'] = "ListNodeAdmins*";
$message['Security Level'] = "Admin, MultiServerAdmin";
$message['Params'] = "Node Name";
$message['Description'] = "List of admins of a particular node";
$messages[$c++] = $message;

$message['Message Name'] = "AddNodeAdmin*";
$message['Security Level'] = "Admin, MultiServerAdmin";
$message['Params'] = "Node Name
User Name";
$message['Description'] = "Adds particular admin to list of allowed admins for a node";
$messages[$c++] = $message;

$message['Message Name'] = "RemoveNodeAdmin*";
$message['Security Level'] = "Admin, MultiServerAdmin";
$message['Params'] = "Node Name
User Name";
$message['Description'] = "Removes particular admin to list of allowed admins for a node";
$messages[$c++] = $message;

$message['Message Name'] = "GetKey";
$message['Security Level'] = "Connection";
$message['Params'] = "Node Name";
$message['Description'] = "Used to get a public key of a node to allow a caller to connect to it.";
$messages[$c++] = $message;

$message['Message Name'] = "Connect";
$message['Security Level'] = "Connection NOT ADMIN";
$message['Params'] = "Node Name";
$message['Description'] = "Used to connect to a node - prepares the connection the connection is only actually made when Encrypt for is called";
$messages[$c++] = $message;

$message['Message Name'] = "MakeNodeConnectionRequest";
$message['Security Level'] = "NodeAdmin";
$message['Params'] = "$def_ConnProcess";
$message['Description'] = "$def_ConnProcess";
$messages[$c++] = $message;

$message['Message Name'] = "MakeNodePollingConnectionRequest";
$message['Security Level'] = "NodeAdmin";
$message['Params'] = "$def_ConnProcess";
$message['Description'] = "$def_ConnProcess";
$messages[$c++] = $message;

$message['Message Name'] = "NodeConnectionIncommingInitialAuth";
$message['Security Level'] = "NodeAdmin";
$message['Params'] = "$def_ConnProcess";
$message['Description'] = "$def_ConnProcess";
$messages[$c++] = $message;

$message['Message Name'] = "NodeConnectionIncommingFinalAuth";
$message['Security Level'] = "NodeAdmin";
$message['Params'] = "$def_ConnProcess";
$message['Description'] = "$def_ConnProcess";
$messages[$c++] = $message;

$message['Message Name'] = "MakeNodeConnectionRequestCheck";
$message['Security Level'] = "NodeAdmin";
$message['Params'] = "$def_ConnProcess";
$message['Description'] = "$def_ConnProcess";
$messages[$c++] = $message;

$message['Message Name'] = "NodeConnectionComplete";
$message['Security Level'] = "NodeAdmin";
$message['Params'] = "$def_ConnProcess";
$message['Description'] = "$def_ConnProcess";
$messages[$c++] = $message;

$message['Message Name'] = "NodePollingConnectionComplete";
$message['Security Level'] = "NodeAdmin";
$message['Params'] = "$def_ConnProcess";
$message['Description'] = "$def_ConnProcess";
$messages[$c++] = $message;

$message['Message Name'] = "ListOutgoingconnectionRequests";
$message['Security Level'] = "NodeAdmin";
$message['Params'] = "";
$message['Description'] = "TODO";
$messages[$c++] = $message;

$message['Message Name'] = "ListIncommingconnectionRequests";
$message['Security Level'] = "NodeAdmin";
$message['Params'] = "";
$message['Description'] = "TODO";
$messages[$c++] = $message;

$message['Message Name'] = "ListOutgoingconnection";
$message['Security Level'] = "NodeAdmin";
$message['Params'] = "";
$message['Description'] = "TODO";
$messages[$c++] = $message;

$message['Message Name'] = "ListIncommingconnection";
$message['Security Level'] = "NodeAdmin";
$message['Params'] = "";
$message['Description'] = "TODO";
$messages[$c++] = $message;

$message['Message Name'] = "ClearNodeConnection";
$message['Security Level'] = "NodeAdmin";
$message['Params'] = "";
$message['Description'] = "TODO";
$messages[$c++] = $message;

$message['Message Name'] = "NodeConnectionRequest";
$message['Security Level'] = "Node";
$message['Params'] = "$def_ConnProcess";
$message['Description'] = "$def_ConnProcess";
$messages[$c++] = $message;

$message['Message Name'] = "NodeConnectionRequestCheck";
$message['Security Level'] = "Node";
$message['Params'] = "$def_ConnProcess";
$message['Description'] = "$def_ConnProcess";
$messages[$c++] = $message;
$message['Message Name'] = "AddRole";
$message['Security Level'] = "NodeAdmin";
$message['Params'] = "";
$message['Description'] = "TODO";
$messages[$c++] = $message;

$message['Message Name'] = "DeleteRole";
$message['Security Level'] = "NodeAdmin";
$message['Params'] = "";
$message['Description'] = "TODO";
$messages[$c++] = $message;

$message['Message Name'] = "ListRoles";
$message['Security Level'] = "NodeAdmin";
$message['Params'] = "";
$message['Description'] = "TODO";
$messages[$c++] = $message;

$message['Message Name'] = "AddIncommingconnectionToRole";
$message['Security Level'] = "NodeAdmin";
$message['Params'] = "";
$message['Description'] = "TODO";
$messages[$c++] = $message;

$message['Message Name'] = "DeleteIncommingconnectionFromRole";
$message['Security Level'] = "NodeAdmin";
$message['Params'] = "";
$message['Description'] = "TODO";
$messages[$c++] = $message;

$message['Message Name'] = "AddSocket";
$message['Security Level'] = "NodeAdmin";
$message['Params'] = "";
$message['Description'] = "TODO";
$messages[$c++] = $message;

$message['Message Name'] = "DeleteSocket";
$message['Security Level'] = "NodeAdmin";
$message['Params'] = "";
$message['Description'] = "TODO";
$messages[$c++] = $message;

$message['Message Name'] = "ListSockets";
$message['Security Level'] = "NodeAdmin";
$message['Params'] = "";
$message['Description'] = "TODO";
$messages[$c++] = $message;

$message['Message Name'] = "AddSocketToRole";
$message['Security Level'] = "NodeAdmin";
$message['Params'] = "";
$message['Description'] = "TODO";
$messages[$c++] = $message;

$message['Message Name'] = "DeleteSocketFromRole";
$message['Security Level'] = "NodeAdmin";
$message['Params'] = "";
$message['Description'] = "TODO";
$messages[$c++] = $message;

$message['Message Name'] = "GetSocketProcessXML";
$message['Security Level'] = "NodeAdmin";
$message['Params'] = "";
$message['Description'] = "TODO";
$messages[$c++] = $message;

$message['Message Name'] = "SaveSocketProcessXML";
$message['Security Level'] = "NodeAdmin";
$message['Params'] = "";
$message['Description'] = "TODO";
$messages[$c++] = $message;

$message['Message Name'] = "getEEActionTypes";
$message['Security Level'] = "NodeAdmin";
$message['Params'] = "";
$message['Description'] = "Get a xml list of allowed execution entine types";
$messages[$c++] = $message;

$message['Message Name'] = "getExecutionReport";
$message['Security Level'] = "NodeAdmin";
$message['Params'] = "";
$message['Description'] = "Pass a socket name as a paramater. Optionally pass a number to get a particular report otherwise all reports are returned";
$messages[$c++] = $message;

$message['Message Name'] = "testExecute";
$message['Security Level'] = "NodeAdmin";
$message['Params'] = "";
$message['Description'] = "Execute a socket. Can only be run by node admin. This will skip role checking";
$messages[$c++] = $message;

$message['Message Name'] = "GetLOVS";
$message['Security Level'] = "NodeAdmin";
$message['Params'] = "";
$message['Description'] = "Returns all list of values on the server. Used to understand the action type params";
$messages[$c++] = $message;

$message['Message Name'] = "RefreshExposedRestSockets";
$message['Security Level'] = "NodeAdmin";
$message['Params'] = "";
$message['Description'] = "For rest admin option";
$messages[$c++] = $message;

$message['Message Name'] = "CreateExposedRestSockets";
$message['Security Level'] = "NodeAdmin";
$message['Params'] = "";
$message['Description'] = "For rest admin option";
$messages[$c++] = $message;

$message['Message Name'] = "DisableExposedRestSockets";
$message['Security Level'] = "NodeAdmin";
$message['Params'] = "";
$message['Description'] = "For rest admin option";
$messages[$c++] = $message;

$message['Message Name'] = "ActivateExposedRestSockets";
$message['Security Level'] = "NodeAdmin";
$message['Params'] = "";
$message['Description'] = "For rest admin option";
$messages[$c++] = $message;

$message['Message Name'] = "DeleteExposedRestSockets";
$message['Security Level'] = "NodeAdmin";
$message['Params'] = "";
$message['Description'] = "For rest admin option";
$messages[$c++] = $message;

$message['Message Name'] = "RekeyExposedRestSockets";
$message['Security Level'] = "NodeAdmin";
$message['Params'] = "";
$message['Description'] = "For rest admin option";
$messages[$c++] = $message;

$message['Message Name'] = "SelectCon";
$message['Security Level'] = "Node";
$message['Params'] = "Target Inbound Connection";
$message['Description'] = "Sets up a secure connection from Node to Node. No response message is sent as the server responds by establishing an encrypted connection.";
$messages[$c++] = $message;

$message['Message Name'] = "SendSecureMessage";
$message['Security Level'] = "NodeConSecure";
$message['Params'] = "Message, Socket";
$message['Description'] = "Sends a secure message through an inbound connection. This does the roll check";
$messages[$c++] = $message;

$message['Message Name'] = "SendRestMessage";
$message['Security Level'] = "Node";
$message['Params'] = "APIKey, nodeName, socketName, Message";
$message['Description'] = "Sends a message to a node. This is an incoming rest message, has to have security checks before it is passed to the node. No response is sent.";
$messages[$c++] = $message;

$message['Message Name'] = "EnableConnection";
$message['Security Level'] = "NodeAdmin";
$message['Params'] = "";
$message['Description'] = "";
$messages[$c++] = $message;

$message['Message Name'] = "DisableConnection";
$message['Security Level'] = "NodeAdmin";
$message['Params'] = "";
$message['Description'] = "";
$messages[$c++] = $message;

$message['Message Name'] = "EditConnection";
$message['Security Level'] = "NodeAdmin";
$message['Params'] = "";
$message['Description'] = "Edit connection (Implemented for Polling)";
$messages[$c++] = $message;

$message['Message Name'] = "ResetConnectionStats";
$message['Security Level'] = "NodeAdmin";
$message['Params'] = "";
$message['Description'] = "";
$messages[$c++] = $message;

$message['Message Name'] = "PollingQuery";
$message['Security Level'] = "NodeConSecureOutgoing";
$message['Params'] = "Outbound Connection Name";
$message['Description'] = "Retrieve messages for this outbound connection";
$messages[$c++] = $message;

$message['Message Name'] = "GetVersionInfo";
$message['Security Level'] = "NodeAdmin, Admin, MultiServerAdmin";
$message['Params'] = "";
$message['Description'] = "Return version info of the server and it's libraries";
$messages[$c++] = $message;

$message['Message Name'] = "GetWebVersionInfo";
$message['Security Level'] = "LocalCall";
$message['Params'] = "";
$message['Description'] = "AdminWebServer handled version info";
$messages[$c++] = $message;

$message['Message Name'] = "CreateNode";
$message['Security Level'] = "MultiServerAdmin";
$message['Params'] = "";
$message['Description'] = "Creates a new Node";
$messages[$c++] = $message;

$message['Message Name'] = "DeleteNode";
$message['Security Level'] = "MultiServerAdmin";
$message['Params'] = "";
$message['Description'] = "Deletes a Node";
$messages[$c++] = $message;

$message['Message Name'] = "ListAllUsers";
$message['Security Level'] = "MultiServerAdmin";
$message['Params'] = "";
$message['Description'] = "Lists All Users on Server";
$messages[$c++] = $message;

$message['Message Name'] = "ListAllWebUsers";
$message['Security Level'] = "LocalCall";
$message['Params'] = "";
$message['Description'] = "Lists All Users on Admin Web Server";
$messages[$c++] = $message;

$message['Message Name'] = "DeleteUser";
$message['Security Level'] = "LocalCall";
$message['Params'] = "";
$message['Description'] = "Deletes a user from AdminWebServer";
$messages[$c++] = $message;

$message['Message Name'] = "DeleteUserFromServer";
$message['Security Level'] = "MultiServerAdmin";
$message['Params'] = "";
$message['Description'] = "Deletes a user and all their accesses";
$messages[$c++] = $message;

$message['Message Name'] = "AddUser";
$message['Security Level'] = "LocalCall";
$message['Params'] = "";
$message['Description'] = "Adds a new user to adminWebServer. Client must then call AddUserToServer to register it with the webserver";
$messages[$c++] = $message;

$message['Message Name'] = "AddUserToServer";
$message['Security Level'] = "MultiServerAdmin";
$message['Params'] = "";
$message['Description'] = "Once AddUser has been called the client can call this to add it to the Server";
$messages[$c++] = $message;

$message['Message Name'] = "ResetUserPassword";
$message['Security Level'] = "LocalCall";
$message['Params'] = "";
$message['Description'] = "Resets a users password";
$messages[$c++] = $message;

$message['Message Name'] = "ChangePublicKey";
$message['Security Level'] = "MultiServerAdmin";
$message['Params'] = "";
$message['Description'] = "Required as resetting the password changes the keys a user uses";
$messages[$c++] = $message;

$message['Message Name'] = "ListStateSets";
$message['Security Level'] = "NodeAdmin";
$message['Params'] = "";
$message['Description'] = "TODO";
$messages[$c++] = $message;

$message['Message Name'] = "AddStateSet";
$message['Security Level'] = "NodeAdmin";
$message['Params'] = "";
$message['Description'] = "TODO";
$messages[$c++] = $message;

$message['Message Name'] = "DeleteStateSets";
$message['Security Level'] = "NodeAdmin";
$message['Params'] = "";
$message['Description'] = "TODO";
$messages[$c++] = $message;

$message['Message Name'] = "EditStateSet";
$message['Security Level'] = "NodeAdmin";
$message['Params'] = "";
$message['Description'] = "TODO";
$messages[$c++] = $message;

$message['Message Name'] = "ChangeState";
$message['Security Level'] = "NodeAdmin";
$message['Params'] = "";
$message['Description'] = "Params StateSetName, NewStateID";
$messages[$c++] = $message;
?>

Overview

dispArrayAsTable($messages);
?>

?>

Tags

RJM Article Type
Work Notes