code: def message_from(self, context: Optional[WarningContext] = None):
      message = None
      confirmation = self.confirmation
      if context is not None:
          node = context.node
          node_side_type = node.node_side_type
          node_type = node.node_type
          _msg = (
              "which could host datasets with private information."
              if node_side_type.value == NodeSideType.HIGH_SIDE.value
              else "which only hosts mock or synthetic data."
          )
          message = (
              "You're performing an operation on "
              f"{node_side_type.value} side {node_type.value}, {_msg}"
          )
          message = message
  
      return CRUDReminder(confirmation=confirmation, message=message)
  
imports: from typing import Optional
  from IPython.display import display
  from rich.prompt import Confirm
  from typing_extensions import Self
  from ..abstract_node import AbstractNode
  from ..abstract_node import NodeSideType
  from ..node.credentials import SyftCredentials
  from ..serde.serializable import serializable
  from ..types.base import SyftBaseModel
  from ..types.syft_object import Context
  from .user.user_roles import ServiceRole
label_desc: Use image node_id 1 for calling the CRUDReminder obj's underlying member method code with example usage: obj.message_from(context) and returns: CRUDReminder