From d7b5301b3b7e65eb8875faca8b2ef101be4ae46f Mon Sep 17 00:00:00 2001 From: Olivier Desenfans Date: Tue, 21 Apr 2026 17:27:40 +0200 Subject: [PATCH 1/2] Cap channel field length at 128 characters Bound BaseMessage.channel and ChainRef.channel to 128 characters and hoist the shared forget/channel constants above the first model that uses them. --- aleph_message/models/__init__.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/aleph_message/models/__init__.py b/aleph_message/models/__init__.py index 6fa92a4..a4970d5 100644 --- a/aleph_message/models/__init__.py +++ b/aleph_message/models/__init__.py @@ -20,6 +20,11 @@ logger = logging.getLogger(__name__) +MAX_CHANNEL_LENGTH = 128 +MAX_FORGET_TARGETS = 1000 +MAX_FORGET_REASON_LENGTH = 1000 + + __all__ = [ "AggregateContent", "AggregateMessage", @@ -65,7 +70,7 @@ class ChainRef(BaseModel): """Some POST messages have a 'ref' field referencing other content""" chain: Chain - channel: Optional[str] = None + channel: Optional[str] = Field(default=None, max_length=MAX_CHANNEL_LENGTH) item_content: str item_hash: ItemHash item_type: ItemType @@ -194,6 +199,7 @@ class BaseMessage(BaseModel): type: MessageType = Field(description="Type of message (POST, AGGREGATE or STORE)") channel: Optional[str] = Field( default=None, + max_length=MAX_CHANNEL_LENGTH, description="Channel of the message, one application ideally has one channel", ) confirmations: Optional[List[MessageConfirmation]] = Field( From e90f35c9ee2205863f633c06e43e86a11b92a65f Mon Sep 17 00:00:00 2001 From: Olivier Desenfans Date: Tue, 21 Apr 2026 23:57:53 +0200 Subject: [PATCH 2/2] Apply suggestion from @odesenfans --- aleph_message/models/__init__.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/aleph_message/models/__init__.py b/aleph_message/models/__init__.py index a4970d5..1ab18e3 100644 --- a/aleph_message/models/__init__.py +++ b/aleph_message/models/__init__.py @@ -21,8 +21,6 @@ MAX_CHANNEL_LENGTH = 128 -MAX_FORGET_TARGETS = 1000 -MAX_FORGET_REASON_LENGTH = 1000 __all__ = [