code: def get_object_metadata(obj, **kw):
      
  
      # inject metadata of volatile data
      metadata = {
          "actor": get_user_id(),
          "roles": get_roles(),
          "action": "",
          "review_state": api.get_review_status(obj),
          "active": api.is_active(obj),
          "snapshot_created": DateTime().ISO(),
          "modified": api.get_modification_date(obj).ISO(),
          "remote_address": "",
          "user_agent": "",
          "referer": "",
          "comments": "",
      }
  
      # Update request data
      metadata.update(get_request_data())
  
      # allow metadata overrides
      metadata.update(kw)
  
      return metadata
docs: Get object metadata
  
      :param obj: Content object
      :returns: Dictionary of extracted object metadata