code: def message_from(self, context: Optional[WarningContext] = None):
      confirmation = self.confirmation
      message = None
      if context is not None:
          node = context.node
          node_side_type = node.node_side_type
          node_type = node.node_type
          if node_side_type.value == NodeSideType.LOW_SIDE.value:
              message = (
                  "You're performing an operation on "
                  f"{node_side_type.value} side {node_type.value} "
                  "which only hosts mock or synthetic data."
              )
  
          message = message
  
      return LowSideCRUDWarning(
          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 LowSideCRUDWarning obj's underlying member method code with example usage: obj.message_from(context) and returns: LowSideCRUDWarning