Develop

Scurid Edge Agent APIs

Set of API endpoints are exposed by the agent, that allows you to call them in your IoT edge software running on the same IoT hardware as the edge agent.

APIs are developed using gRPC for performance, and it’s ability to support clients in multiple programming languages.

A basic familiarity with gRPC is recommended.

List of API endpoints

  • CreateDeviceIdentity : Client calls this service to request for an unique distributed id. The number of IDs that can be generated per device is unlimited.
1
2
3
4
5
Request Message :
CreateDeviceIdentityReq is an empty request. 

Response Message :
CreateDeviceIdentityRes returns single response of string data type containing publicly sharable distributed identity which will be used by IoT edge software
  • DeleteDeviceDID : Client calls this service to delete the existing DID, this does not equate to any distributed ledger operation
1
2
3
4
5
Request Message :
DeleteDeviceIdentityReq expects a valid did as string 

Response Message :
DeleteDeviceIdentityRes returns empty response
  • GetDeviceIdentity : Client calls this service to confirm the validity of the properly generated distributed identity
1
2
3
4
5
Request Message :
GetDeviceIdentityReq expects string datatype input containing public distributed identity

Response Message :
GetDeviceIdentityRes provides info if distributed identity is a valid one and if it was generated previously
  • GetScuridEdgeAgentVersion : Client calls this function to retrieve the current installed and operating version of the Scurid Edge Agent
1
2
3
4
5
Request Message :
Empty no input is expected

Response Message :
GetScuridEdgeAgentVersionRes returns string data typed response with agent's version
  • SignWithIdentity : Client calls this service to get the string payload cryptographically signed, which is used ensuring higher data integrity on the payload
1
2
3
4
5
Request Message :
SignWithIdentityReq expects payload and public distributed identity generated using CreateDeviceIdentity rpc

Response Message :
SignWithIdentityRes returns string data typed signature
  • VerifySignature : Client calls this to verify a signature tagged along with the payload
1
2
3
4
5
6
7
8
Request Message :
VerifySignatureReq expects string data typed
* signature 
* payload
* did = distributed identity

Response Message :
VerifySignatureRes returns boolean confirmation if the signature is valid or otherwise
Note

For corresponding data type mapping in your choice of program language see gRPC’s language guide