CRUD observations

From AMTech WikiDocs
Revision as of 15:22, 21 September 2020 by Lianet (Talk | contribs)

Jump to: navigation, search

Crud observations are produced when a thing instance is created, updated or deleted.

The observations are sent if:

  • The thing type of the resource being modified, is configured as a Crud Producer in an activity. They are sent to the topic /crud/<typeId>.
  • Thing is of type bridge, smart type(stg, stpg) or if it is a thing contained in a bridge instance list.
    • For things of type AmtechM2mBridge, resources contained in a bridge, and for things linked to a bridge via the bridgeInstances property, crud observations are always generated and sent to the topic /<typeId>/<instanceId>/crud ex./amtechM2mBridge/bridge1/crud (to be used by the edge logic). Observations are sent to this topic for all instances of these types, even if they are not configured as crud producers in any activity.
      • For all new/update/delete operations on a resource contained in a reasoner, a generic crud observation is generated
        • Indicates that the property 'reasoners' changed. Note that the change might have been in any resource contained in the reasoner
        • the New value of the observation contains the full json of the reasoner
        • the Old value of the observation is empty (for performance reasons, given that it is not used in the edge logic)
  • When looking for the crud producers configured in the activities the user has :
    • for creators, all activities he has created are analyzed
    • for followers, all activities he is subscribed to are analyzed

Notes :

  • The resource must have a valid status (not draft), otherwise the crud is not sent
  • The CRUD observations are sent to the topic /crud/<thingType> example "topic": "/crud/endCustomer"
  • Crud observations are only sent if the value of a property changes
    • For properties of type collection such as the guest tenant or guest users, the content of the list is analyzed to determine if it changed. So an update of guest tenants [tenant1, tenant2] to [tenant2, tenant1] will not generate a crud observation.
  • When creating things with a topology execution using a reasoner, are created via a PUT operation with the parameter createIfNotExist=true, so the crud observation generated will have the operation PUT