201 lines
5.8 KiB
YAML
201 lines
5.8 KiB
YAML
version: 1
|
|
kind: platform-infra-wechat-archive
|
|
|
|
metadata:
|
|
id: wechat-baidu-archive
|
|
owner: unidesk
|
|
relatedIssues:
|
|
- 313
|
|
- 326
|
|
|
|
target:
|
|
id: G14
|
|
route: G14:k3s
|
|
namespace: platform-infra
|
|
|
|
langbot:
|
|
configRef: config/platform-infra/langbot.yaml
|
|
publicBaseUrl: https://langbot.pikapython.com
|
|
expectedAdapter: openclaw-weixin
|
|
callbackPath: /callback/command
|
|
readOnlyRecord:
|
|
enabled: true
|
|
mode: webhook-skip-pipeline
|
|
webhookName: UniDesk WeChat Archive Read Only
|
|
webhookDescription: Archive LangBot/OpenClaw inbound messages and return skip_pipeline=true so personal WeChat never receives automated replies.
|
|
discardPipelineUuid: __discard__
|
|
pipeline:
|
|
name: UniDesk WeChat Baidu Archive
|
|
description: Forward WeChat/OpenClaw messages to the UniDesk n8n archive workflow.
|
|
runner: n8n-service-api
|
|
outputKey: response
|
|
timeoutSeconds: 120
|
|
notes:
|
|
- LangBot receives WeChat/OpenClaw messages and forwards archive events to the n8n workflow webhook.
|
|
- Credentials for real WeChat channels are bound in LangBot runtime and are not stored in this YAML.
|
|
|
|
n8n:
|
|
configRef: config/platform-infra/n8n.yaml
|
|
publicBaseUrl: https://n8n.pikapython.com
|
|
workflow:
|
|
name: UniDesk WeChat Baidu Archive
|
|
id: unidesk-wechat-baidu-archive
|
|
webhookPath: unidesk-wechat-baidu-archive
|
|
active: true
|
|
timezone: Asia/Shanghai
|
|
|
|
archiveCallback:
|
|
publicUrl: http://74.48.78.17:18081/webhooks/wechat-archive
|
|
secretRoot: /root/unidesk/.state/secrets
|
|
tokenSourceRef: platform-infra/wechat-archive.env
|
|
tokenKey: UNIDESK_WECHAT_ARCHIVE_TOKEN
|
|
timeoutMs: 90000
|
|
|
|
personalWechatIngress:
|
|
enabled: true
|
|
mode: d601-windows-wcf-host-with-k3s-collector
|
|
target:
|
|
id: D601
|
|
windowsRoute: D601:win
|
|
hostRoute: D601
|
|
kubeRoute: D601:k3s
|
|
pcWechat:
|
|
isolation: dedicated-install
|
|
requiredVersion: 3.9.12.51
|
|
installerAsset: WeChatSetup-3.9.12.51.exe
|
|
installMode: silent-nsis-with-ui-fallback
|
|
installRoot: C:/UniDesk/personal-wechat/wechat-3.9.12.51
|
|
dataRoot: C:/UniDesk/personal-wechat/data/profile
|
|
autoUpdatePolicy: disabled
|
|
wcfHost:
|
|
releaseTag: v39.5.2
|
|
requiredWechatVersion: 3.9.12.51
|
|
releaseUrl: https://github.com/lich0821/WeChatFerry/releases/tag/v39.5.2
|
|
sdkRoot: C:/UniDesk/personal-wechat/wcf/v39.5.2
|
|
stateRoot: C:/UniDesk/personal-wechat/wcf-state
|
|
commandPort: 10086
|
|
messagePort: 10087
|
|
bindHost: 0.0.0.0
|
|
supervisor: windows-task-scheduler-user-session
|
|
rdpPolicy: disconnect-not-logout
|
|
firewall:
|
|
publicExposure: false
|
|
allowedClientRefs:
|
|
- windows-loopback
|
|
- d601-wsl
|
|
- d601-k3s-platform-infra
|
|
collector:
|
|
runtime: d601-k3s
|
|
namespace: platform-infra
|
|
createNamespace: false
|
|
workload:
|
|
kind: Deployment
|
|
name: personal-wechat-collector
|
|
serviceAccountName: personal-wechat-collector
|
|
# Paused after the 2026-06-13 login probe: WeChat 3.9.12.51 is rejected as too old.
|
|
replicas: 0
|
|
containerName: personal-wechat-collector
|
|
storage:
|
|
kind: PersistentVolumeClaim
|
|
name: personal-wechat-collector-state
|
|
mountPath: /var/lib/unidesk/personal-wechat
|
|
size: 1Gi
|
|
create: true
|
|
image:
|
|
repository: 127.0.0.1:5000/platform-infra/personal-wechat-collector
|
|
tag: wcferry-39.5.2.0
|
|
pullPolicy: IfNotPresent
|
|
context: src/components/platform-infra/personal-wechat-collector
|
|
dockerfile: src/components/platform-infra/personal-wechat-collector/Dockerfile
|
|
wcferryVersion: 39.5.2.0
|
|
pip:
|
|
indexUrl: http://mirrors.aliyun.com/pypi/simple/
|
|
trustedHost: mirrors.aliyun.com
|
|
timeoutSeconds: 120
|
|
retries: 8
|
|
wcfHost: 172.26.16.1
|
|
commandPort: 10086
|
|
messagePort: 10087
|
|
stateRoot: /var/lib/unidesk/personal-wechat
|
|
queueMode: sqlite-wal
|
|
outboxMode: archive-callback
|
|
archiveCallbackRef: archiveCallback
|
|
secretName: personal-wechat-collector-secrets
|
|
readOnly:
|
|
enabled: true
|
|
sendCapability: false
|
|
allowedMethods:
|
|
- is_login
|
|
- get_self_wxid
|
|
- enable_receiving_msg
|
|
- get_msg
|
|
- download_attach
|
|
- decrypt_image
|
|
forbiddenMethods:
|
|
- send_text
|
|
- send_image
|
|
- send_file
|
|
- send_xml
|
|
- send_emotion
|
|
- send_rich_text
|
|
- send_pat_msg
|
|
- forward_msg
|
|
- accept_friend
|
|
- add_room_members
|
|
- del_room_members
|
|
- invite_room_members
|
|
- exec_db_query
|
|
- refresh_pyq
|
|
- receive_transfer
|
|
poc:
|
|
accountPolicy: test-account-first
|
|
observationWindowHours: 48
|
|
requiredMessageTypes:
|
|
- text
|
|
- image
|
|
- file
|
|
|
|
baiduNetdisk:
|
|
serviceId: baidu-netdisk
|
|
proxyMode: backend-core-microservice-proxy
|
|
configRef: config.json#microservices.baidu-netdisk
|
|
staging:
|
|
hostRoot: /root/unidesk/.state/baidu-netdisk/staging
|
|
containerRoot: /data/staging
|
|
outboxDir: wechat-archive/outbox
|
|
pullDir: wechat-archive/pulls
|
|
archive:
|
|
remoteRoot: /UniDesk/WeChatArchive
|
|
timezone: Asia/Shanghai
|
|
textExtension: txt
|
|
imageExtension: png
|
|
pathTemplate: "{{remoteRoot}}/{{date}}/{{conversationId}}/{{messageId}}.{{extension}}"
|
|
maxInlineBytes: 10485760
|
|
|
|
messageTypes:
|
|
text:
|
|
enabled: true
|
|
contentField: text
|
|
mediaMode: none
|
|
image:
|
|
enabled: true
|
|
contentField: media.dataBase64
|
|
mediaMode: base64
|
|
filenameField: media.filename
|
|
mimeTypeField: media.mimeType
|
|
|
|
validate:
|
|
timeoutMs: 120000
|
|
pollIntervalMs: 1000
|
|
fixtures:
|
|
text:
|
|
conversationId: unidesk-validate
|
|
senderId: cli-smoke
|
|
text: UniDesk WeChat archive validation text fixture.
|
|
image:
|
|
conversationId: unidesk-validate
|
|
senderId: cli-smoke
|
|
filename: pixel.png
|
|
mimeType: image/png
|
|
dataBase64: iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+/p9sAAAAASUVORK5CYII=
|