Skip to content

@keymaster/connect / AppMsgMessage

Interface: AppMsgMessage

公开消息视图:app / plugin 看到的就是这个形状。

关键约束(施工单 §4.4 + 反馈 §"必须修改"):

  • 包含 endpoint 字段,也不暴露 ownerPublicKeyHex / atMs
  • sender / recipient 都用 senderPublicKeyHex + (originappId) 表达:外部 app 用 origin,内部插件 / 系统应用用 appId; 同一消息至多携带其中一个(同源端互斥);
  • body 是明文 / markdown 字符串;v1 已做端到端密封(static-static ECDH + AES-256-GCM,详见 §4.2 / §4.5);明文 / 密文边界由 plugin-appmsg 唯一持有,外部调用方仍按本明文 API 编程;
  • clientMessageId 是发送方侧幂等键(发送方自己带,接收方透传)。

Properties overview

PropertyTypeRequiredDescription
messageIdstringYesprovider 服务端主键;客户端不可伪造。
clientMessageIdstringYes调用方幂等键(发送方设)。
senderPublicKeyHexstringYes发送方 publicKeyHex。
senderOrigin?stringNo发送方来源 exact origin(外部 app 才有值)。
senderAppId?stringNo发送方来源 appId(内部插件 / 系统应用才有值)。
recipientPublicKeyHexstringYes收件方 publicKeyHex。
recipientOrigin?stringNo收件方来源 exact origin(外部 app 才有值)。
recipientAppId?stringNo收件方来源 appId(内部插件 / 系统应用才有值)。
contentTypeAppMsgContentTypeYes正文内容类型。
bodystringYes正文。
createdAtMsnumberYes客户端声明的创建时间(unix milliseconds)。
insertedAtMsnumberYes服务端入库时间(unix milliseconds)。

Properties

messageId

messageId: string

provider 服务端主键;客户端不可伪造。


clientMessageId

clientMessageId: string

调用方幂等键(发送方设)。


senderPublicKeyHex

senderPublicKeyHex: string

发送方 publicKeyHex。


senderOrigin?

optional senderOrigin?: string

发送方来源 exact origin(外部 app 才有值)。


senderAppId?

optional senderAppId?: string

发送方来源 appId(内部插件 / 系统应用才有值)。


recipientPublicKeyHex

recipientPublicKeyHex: string

收件方 publicKeyHex。


recipientOrigin?

optional recipientOrigin?: string

收件方来源 exact origin(外部 app 才有值)。


recipientAppId?

optional recipientAppId?: string

收件方来源 appId(内部插件 / 系统应用才有值)。


contentType

contentType: AppMsgContentType

正文内容类型。


body

body: string

正文。v1 走端到端密封;调用方仍通过明文字符串 API 读写。


createdAtMs

createdAtMs: number

客户端声明的创建时间(unix milliseconds)。


insertedAtMs

insertedAtMs: number

服务端入库时间(unix milliseconds)。

Capability access without key custody.