GIAO TRINH KY THUAT

NODE n8n · C11 — LOTUS GPM LOGIN

Quan ly profile GPM-Login qua cau MQTT — 8 action, 2 nhom



Package n8n-nodes-c11_lotus_gpm_login@0.0.7 · payload c11-gpm-login-man-v1 · Bien soan 2026-09-19



Loi noi dau

Cuon giao trinh nay huong dan toan dien node n8n C11 — LOTUS GPM Login: mot node chuyen dung de QUAN LY profile trinh duyet GPM-Login (antidetect browser) tu trong workflow n8n, thong qua mot cau noi (bridge) MQTT ⇄ HTTP di kem san trong thu vien.

Doi tuong doc

GHI CHÚ · KY LUAT NGUON CUA TAI LIEU NAY

Moi con so va ten thanh phan trong sach deu truy duoc ve mot trong ba nguon: (1) MA NGUON DANG CHAY — doc thang file LotusGpmLogin.node.ts va mqtt_client_gpm_login_man.py; (2) TAI LIEU NOI BO co so do that — Agent_Readme.md, Agent_MQTT_and_Bridge.md, Agent_Actions_Reference.md, va memory du an; (3) ANH CHUP HE THONG SONG — mo node that trong n8n tren Chrome that (B35) luc bien soan. Cho nao khong truy duoc nguon thi bo, khong doan cho du trang.

▸ Phien ban node kiem tra truc tiep trong container n8n: 0.0.7 — TRUNG voi ban trong repo, nen tai lieu nay dung thang ma nguon repo lam chuan.



Bang trang thai he thong luc chup anh

Hang muc

Gia tri luc bien soan (2026-09-19)

n8n

phien ban 2.36.8 — container lotus_n8n, API cong 20150

Node C11

n8n-nodes-c11_lotus_gpm_login@0.0.7 (cai trong container, TRUNG repo)

Type node

n8n-nodes-c11_lotus_gpm_login.lotusGpmLogin · hien thi 'LOTUS GPM Login'

So action / nhom

8 action / 2 nhom (Profile ×7, Group ×1)

payload version

c11-gpm-login-man-v1

Broker MQTT

128.199.200.17:1883 (VPS ngoai) — KHONG phai B06 noi bo

GPM HTTP API

http://127.0.0.1:16813/api/v3 (cuc bo tren may worker)

Credential n8n

kieu 'mqtt' (bat buoc) — anh chup dung WP1_HP1_DCP_LOTUS_MQTTS



Anh chup giao dien lay tu mot workflow tao rieng de lam tai lieu (mot node C11 noi sau Manual Trigger), mo Node Detail View (NDV) tren Chrome that.



Muc luc

⟳ Mở bằng Microsoft Word rồi bấm Ctrl+A → F9 để sinh mục lục kèm số trang.



PHẦN I

TONG QUAN





Chương 1 — C11 la gi va giai quyet van de gi

C11 — LOTUS GPM Login la mot node n8n dung de dieu khien ung dung GPM-Login tu xa. GPM-Login la mot 'antidetect browser': no tao nhieu profile trinh duyet, moi profile mang mot dau van tay (fingerprint) khac nhau de trong nhu mot thiet bi / nguoi dung rieng, tranh bi website lien ket cac tai khoan voi nhau.

Van de ma C11 giai quyet

Neu chi nho MOT dieu:

ĐÚNG THIẾT KẾ · DINH NGHIA MOT CAU

C11 = 'GPM profile manager' — 8 action GPM (list / get / create / open / close / update / delete profile + list groups). 8 action nay ve sau duoc gop nguyen vao nhom ManagerAction cua C10. C11 ton tai doc lap cho tinh huong CHI can quan ly profile ma khong can browser automation, va di kem SAN mot client Python de chay duoc ngay.



Ranh gioi trach nhiem

Rat de hieu nham 'C11 tu mo Chrome'. Thuc te node C11 KHONG tu lam gi tren may worker — no chi dong goi lua chon thanh JSON va publish len MQTT. Ai lam that:

Thanh phan

Trach nhiem

KHONG lam gi

Node n8n C11 (nua 1)

Sinh UI, gom payload JSON, publish <topic>, (tuy chon) cho RES_<topic>

Khong goi HTTP, khong dung tay vao GPM

Bridge Python (nua 2)

Subscribe topic, dich payload → GPM HTTP /api/v3, publish ket qua

Khong quyet dinh nghiep vu; chi dich lenh

Ung dung GPM

Tao/mo/dong Chrome that, quan ly fingerprint, tra JSON

Khong biet gi ve MQTT



Chương 2 — Hai nua cua C11 va vi tri trong ho node

Diem khac biet lon nhat cua C11 so voi C10/C12 la no gom HAI NUA lam viec cung nhau qua MQTT, va nua thu hai (bridge Python) duoc dong goi SAN trong repo.

Hình 2.1. Hai nua cua C11: node n8n (nua 1) va bridge Python (nua 2) noi nhau qua MQTT, bridge goi tiep GPM HTTP API.

Nua 1 — Node n8n LOTUS GPM Login

Giong khung C10/C12: data-driven ACTION_SPECS, publish action qua MQTT, tuy chon cho phan hoi. Nhung chi co 8 action quan ly profile, khong co browser-control.

Nua 2 — Bridge Python mqtt_client_gpm_login_man.py

Subscribe topic request, DICH payload C11 thanh loi goi GPM HTTP API (http://127.0.0.1:16813/api/v3/...), roi publish ket qua ve RES_<topic>. Day la ben THUC SU noi chuyen voi ung dung GPM. Khong co bridge (hoac mot client tuong duong) thi node C11 publish vao hu khong.

LƯU Ý · NODE C11 MOT MINH CHUA DU

Nua n8n publish MQTT la du de GUI lenh, nhung PHAI co bridge Python (nua 2) chay song song thi lenh moi CO TAC DUNG len GPM. Day la ly do C11 dong goi san bridge trong repo.



Vi tri trong ho node MQTT Great Lotus

Hình 2.2. C10 / C11 / C12: pham vi va client di kem. C11 chi quan ly profile va kem san bridge.

Thu vien

Co nua n8n?

Client di kem

Pham vi

C10

Co

Playwright A12 (tach roi)

Browser automation + profile GPM (hop nhat)

C11 (day)

Co

Bridge Python KEM SAN trong repo

CHI quan ly profile GPM

C12

Co

PyAutoGUI A13 (tach roi)

Browser automation tren desktop that



GHI CHÚ · QUAN HE VOI C10

8 action cua C11 = TAP CON ManagerAction cua C10. Khi can vua quan ly profile vua tu dong hoa web trong cung workflow, dung C10. Khi chi can CRUD profile, dung C11 cho gon — va no chay duoc ngay nho bridge Python co san. Cac hang so fingerprint (BROWSER_VERSION/OS/SCREEN/WEBRTC) trung nhau, nen giu DONG BO khi cap nhat.



Kien truc data-driven: mot nguon khai bao sinh ra tat ca

Toan bo UI cua nua n8n khong viet tay tung o. No sinh ra tu MOT mang khai bao ACTION_SPECS (8 action), qua bo sinh buildActionArtifacts().

Hình 2.3. Data-driven codegen: ACTION_SPECS → buildActionArtifacts() sinh dropdown, notice, o nhap, ban do execute().

He qua: them 1 action = them 1 dong vao ACTION_SPECS (nua n8n) + 1 ham _handle_<fn> (bridge). UI, mo ta, vi du, placeholder va validation co ban tu co.



PHẦN II

KIEN TRUC VA HA TANG





Chương 3 — Luong request/response va hop dong MQTT

Mot lan chay node C11 di qua bon chang.

Hình 3.1. Luong end-to-end: node → broker → bridge → GPM HTTP, roi phan hoi ve RES_<topic>.

Ban tin REQUEST (node → bridge)

Node gom mot doi tuong JSON gom bon khoi: version, action, inputs, meta.

{

"version": "c11-gpm-login-man-v1",

"action": { "key": "profile.open_profile", "group": "ProfileAction", "function": "open_profile" },

"inputs": {

"profile_id": { "type": "string", "value": "xgyasg1995" }

},

"meta": {

"requestId": "a1b2c3d4e5f60718",

"requestTopic": "GPM_LOGIN_TOPIC",

"responseTopic": "RES_GPM_LOGIN_TOPIC",

"waitForResponse": true

}

}



Ban tin RESPONSE (bridge → node)

{

"ok": true,

"request": { "request_id": "...", "request_topic": "...", "action": "open_profile" },

"http": { "method": "GET", "url": ".../api/v3/profiles/start/xgyasg1995?...", "status_code": 200 },

"data": { /* body JSON GPM tra ve */ },

"error": null,

"meta": { "requestId": "...", "bridge": "c11_gpm_login_man_mqtt_client" }

}



GHI CHÚ · KHOP REQUESTID — CHONG NHAN NHAM

Node BO QUA moi ban tin tren response topic co requestId khac request hien tai. Bridge ECHO requestId o ca request.request_id lan meta.requestId. Nho vay nhieu node chay song song tren cung mot response topic khong nhan nham ket qua cua nhau.



Response Topic — diem khac C10/C12

Diem

C11

C10 / C12

Response Topic

Field RIENG, cho nguoi dung dat tuy y (mac dinh RES_ + topic)

Luon tu suy RES_<topic> cung

Response Timeout

Don vi mili-giay (mac dinh 10000)

Don vi giay

Parse Response As JSON

Bat/tat; giu ca raw lan payload

Khong co lua chon nay

Phan doan thanh/bai

Do workflow tu lam theo ok/error

Ap quy tac return:'NG'



Output cua nua n8n xuong node sau nam trong mqtt: mqtt.response.payload.data... la noi lay du lieu GPM (vd danh sach profile, id profile moi tao).

Chương 4 — Bridge Python: anh xa HTTP, dedupe, cau hinh

Bridge la ben bien MQTT thanh HTTP. No dispatch qua bang self._handlers (map ca dang profile.list_profiles lan list_profiles) → ham _handle_*, moi ham dung request GPM /api/v3.

Hình 4.1. Anh xa 8 action → phuong thuc + endpoint GPM HTTP API /api/v3.

Bang anh xa chi tiet

Action (fn)

HTTP

Endpoint

Tham so / body

list_profiles

GET

/profiles

query: page(>=1,md 1), per_page(md 100), group_id, group, sort(int), search

get_profile_info

GET

/profiles/{id}

— (vai ban GPM dung /profile/{id})

create_profile

POST

/profiles/create

body fingerprint + extra_payload (merge). Bo field None

open_profile

GET

/profiles/start/{id}

query: addination_args, remote_port, win_scale, win_pos, win_size

close_profile

GET

/profiles/close/{id}

—

update_profile

POST

/profiles/update/{id}

body cac field doi (>=1) + group_id(int) + extra_payload

delete_profile

GET

/profiles/delete/{id}

query: mode (md 2)

list_groups

GET

/groups

—



base_url chuan hoa ve <gpm-base-url>/api/v3. Neu co --gpm-api-key, bridge tu them ?api_key=... vao MOI request.

Xu ly remote_port khi open_profile

Ham _build_addination_args_with_remote_port: neu co remote_port, bridge CHEN/THAY --remote-debugging-port=<port> vao chuoi addination_args (regex thay neu da co, noi them neu chua). Day chinh la cach C11 mo profile voi cong CDP co dinh de C10/Playwright attach vao sau.

Chong trung lap (dedupe) — quan trong cho thao tac ghi

Vi MQTT QoS 1 la at-least-once, cung mot request co the toi bridge nhieu lan. Voi create/delete/update profile, chay hai lan la tai hai. Bridge dung cache theo requestId.

Hình 4.2. May trang thai dedupe: NEW → IN-FLIGHT → PROCESSED; ban trung bi bo qua hoac phat lai cache.

Trang thai

Y nghia

Hanh dong

processed

requestId da xu ly xong truoc do

Phat LAI response da cache, khong goi GPM lai

inflight

ban trung toi khi ban goc dang chay

Bo qua delivery nay

new

requestId chua thay

Danh dau in-flight roi xu ly binh thuong



GHI CHÚ · LOG 'DUPLICATE REQUEST' LA DUNG

Neu thay log 'Duplicate request detected ... replay cached response', do la hanh vi DUNG (bao ve idempotency), khong phai bug. Muon retry THAT su phai doi requestId — chay lai node se sinh requestId moi. TTL cache = --dedupe-ttl-sec (mac dinh 300s, toi thieu 10s).



Cau hinh bridge (CLI / ENV)

Co CLI

ENV

Mac dinh

--broker-host

MQTT_HOST

127.0.0.1

--broker-port

MQTT_PORT

1883

--broker-username / --broker-password

MQTT_USERNAME / _PASSWORD

(rong)

--request-topics

MQTT_REQUEST_TOPICS

gpm/login/request (ngan cach dau phay)

--request-qos / --response-qos

MQTT_REQUEST_QOS / _RESPONSE_QOS

1 / 1

--default-response-prefix

MQTT_RESPONSE_PREFIX

RES_

--gpm-base-url

GPM_BASE_URL

http://127.0.0.1:16813 (tu them /api/v3)

--gpm-api-key

GPM_API_KEY

(rong) → them query api_key

--http-timeout-sec

GPM_HTTP_TIMEOUT_SEC

30

--dedupe-ttl-sec

MQTT_DEDUPE_TTL_SEC

300



NGUY HIỂM · DEBUG_PRESET_ARGS CHUA CREDENTIAL THAT

Dau file bridge co DEBUG_FLAG=True + DEBUG_PRESET_ARGS: khi chay KHONG co tham so dong lenh (F5 trong VSCode, len(sys.argv)==1), bridge dung preset chua credential broker THAT (host 128.199.200.17, user/pass, topic GPM_LOGIN_TOPIC). Khi trien khai production, truyen tham so qua CLI/ENV va giu file nay khong ro ri ra ngoai.





PHẦN III

GIAO DIEN — MO XE TUNG MAN HINH





Chương 5 — Giai phau Node Detail View (NDV)

Khi bam doi vao node C11 tren canvas, n8n mo Node Detail View (NDV) gom ba cot: INPUT (trai), Parameters (giua) va OUTPUT (phai). Duoi day danh so tung thanh phan.

Hình 5.1. Giai phau NDV cua node C11 — 13 thanh phan chinh (anh chup dang o action Update Profile).

So

Thanh phan

Cong dung

1

Vung INPUT

Du lieu tu node truoc. 'No input data' khi chua chay node truoc do

2

Nut Docs / dong

Docs mo documentationUrl (docs.gpmloginapp.com); dau X dong NDV

3

Credential

Chon credential kieu 'mqtt' (bat buoc). Anh dung WP1_HP1_DCP_LOTUS_MQTTS

4

Action Group

Chon nhom chuc nang: Profile hoac Group

5

Action

Chon action cu the trong nhom da chon

6

Notice tai lieu

Tom tat action + link 'Huong dan chi tiet' + 'Muc luc tai lieu C11'

7

Topic

Kenh MQTT gui lenh di (bat buoc). Vd GPM_LOGIN_TOPIC

8

QoS

Muc dam bao gui tin: 0/1/2. Thuong dung 1

9

Include Input Items

Bat de gui kem du lieu tu node truoc sang bridge

10

Wait For Response

Bat de node cho phan hoi RES_<topic> roi moi tra ket qua

11

Action Input Fields

Cac o tham so rieng cua action dang chon (o day: Group ID...)

12

Tieu de node

'LOTUS GPM Login' + bieu tuong GPM

13

Vung OUTPUT

Ket qua tra ve sau khi chay; 'No output data' khi chua chay



LƯU Ý · O BI AN BANG DISPLAYOPTIONS VAN GUI GIA TRI

Cac o tham so chi HIEN khi chon dung action (qua displayOptions). Nhung theo dac diem n8n, o bi an van co the mang gia tri cu. Voi C11 dieu nay it anh huong vi payload chi gom o cua action dang chon (execute doc theo actionDefinitions[actionKey]), nhung nen luu y khi doc ky.



Toan canh NDV o trang thai mac dinh

Hình 5.2. NDV mo mac dinh o Profile / List Profiles — day du credential, dropdown, notice va cac o.

Chon Action Group va Action

Buoc dau tien khi cau hinh la chon nhom (Action Group) roi chon action trong nhom do.

Hình 5.3. Dropdown Action Group: hai nhom Profile va Group.

Hình 5.4. Dropdown Action nhom Profile: 7 action, moi dong kem tom tat 'action nay lam gi'.

Hình 5.5. Dropdown Action nhom Group: chi mot action List Groups.

Action Group

resource (noi bo)

So action

Cac action

Profile

profileaction

7

list/get/create/open/close/update/delete profile

Group

groupaction

1

list_groups



GHI CHÚ · TOM TAT ACTION HIEN O BA NOI

Mot cau 'action nay lam gi' (nguon ACTION_SUMMARIES) hien o: (1) mo ta duoi ten action trong dropdown; (2) dong dau notice tai lieu; (3) muc 'Chuc nang' dau trang HTML. Mot nguon, ba cho dung.



Chương 6 — Cac truong chung cho moi action

Truoc phan tham so rieng, moi action deu co chung cac truong dieu khien MQTT sau.

Topic, QoS

Truong

Kieu

Mac dinh

Y nghia

Topic

string (bat buoc)

(rong)

Kenh MQTT gui lenh. Vd GPM_LOGIN_TOPIC hoac gpm/login/request

QoS

options

1

0=At most once, 1=At least once, 2=Exactly once



Include Input Items

Bat de gui kem du lieu tu node truoc sang bridge. Khi bat, hien them o danh sach field.

Hình 6.1. Include Input Items bat: hien o nhap danh sach field (vd id,name,status.detail).

Truong

Kieu

Y nghia

Include Input Items

boolean

Bat → gui kem inputItems vao payload.inputs

(o danh sach field)

string (requiresDataPath)

Danh sach field muon gui, ngan bang dau phay/xuong dong. Vd: id,name hoac profile.id



Wait For Response va cac truong phan hoi

Bat 'Wait For Response' se hien ba truong dieu khien viec cho phan hoi.

Hình 6.2. Wait For Response bat: hien Response Topic (bieu thuc), Response Timeout (ms), Parse Response As JSON.

Truong

Kieu

Mac dinh

Y nghia

Wait For Response

boolean

false

Bat → node subscribe RES_<topic> va cho ket qua

Response Topic

string (bat buoc khi bat)

={{...}} → RES_ + topic

Kenh nhan phan hoi. Cho phep dat tuy y

Response Timeout (ms)

number

10000

Thoi gian cho phan hoi toi da, don vi mili-giay

Parse Response As JSON

boolean

true

Tu chuyen phan hoi thanh JSON khi co the



Chương 7 — Action List Profiles (profile.list_profiles)

Liet ke profile GPM dang co, phan trang va loc duoc theo nhom hoac tu khoa ten. Dung de lay profile_id cho cac action sau, hoac de duyet qua toan bo profile trong mot vong lap workflow.

Anh xa HTTP:

GET /profiles

Hình 7.1. Panel tham so cua action List Profiles.

Ten o

payloadName

Kieu

Mac dinh

Y nghia

Group ID

group_id

optStr

(rong)

Nhap ID nhom neu chi muon xem profile trong dung nhom do.

Group (Alias)

group

optStr

(rong)

Nhap ten nhom de loc profile nhanh ma khong can nho ID.

Page

page

num

1

Trang muon xem. Trang dau tien la so 1.

Per Page

per_page

num

100

Moi trang hien thi bao nhieu profile.

Sort

sort

optNum

—

Cach sap xep danh sach. De trong neu khong can sap xep.

Search

search

optStr

(rong)

Tu khoa de tim profile theo ten hoac thong tin lien quan.



GHI CHÚ · DUNG DE LAY PROFILE_ID

list_profiles la buoc dau tien cua nhieu workflow: lay danh sach profile roi lap qua tung ={{$json.profile_id}} de mo/dong/cap nhat.



Chương 8 — Action Get Profile Info (profile.get_profile_info)

Doc toan bo cau hinh cua mot profile theo ID: fingerprint, proxy, nhom, ghi chu, trang thai. Dung de kiem tra truoc khi mo, hoac de sao chep cau hinh sang profile moi.

Anh xa HTTP:

GET /profiles/{id}

Hình 8.1. Panel tham so cua action Get Profile Info.

Ten o

payloadName

Kieu

Mac dinh

Y nghia

Profile ID

profile_id

str (bat buoc)

(rong)

ID cua profile ban muon xem chi tiet.



Vi du gia tri:

O

Vi du

Profile ID

929e187c-2da7-4ecb-b3dd-9600e211fa4f



Chương 9 — Action Open Profile (profile.open_profile)

Khoi chay mot profile GPM va tra ve remote debugging port. Day la action MO DAU moi chuoi tu dong hoa: cac node C10/C12 phia sau dung cong nay de bam dung phien trinh duyet vua mo.

Anh xa HTTP:

GET /profiles/start/{id}

Hình 9.1. Panel tham so cua action Open Profile.

Ten o

payloadName

Kieu

Mac dinh

Y nghia

Profile ID

profile_id

str (bat buoc)

(rong)

ID profile can mo.

Additional Args

addination_args

optStr

(rong)

Tham so mo rong khi mo profile. Bridge nhoi --remote-debugging-port vao day neu co remote_port.

Win Scale

win_scale

optNum

—

Ti le phong cua cua so, vd 0.8 hoac 1.

Win Pos

win_pos

optStr

(rong)

Vi tri cua so dang x,y, vd 300,300.

Win Size

win_size

optStr

(rong)

Kich thuoc cua so dang width,height, vd 1280,720.



Vi du gia tri:

O

Vi du

Profile ID

xgyasg1995

Additional Args

--lang=vi-VN

Win Scale

0.8

Win Pos

300,300

Win Size

1280,720



ĐÚNG THIẾT KẾ · BUOC MO DAU CHUOI TU DONG HOA

Muon co dinh cong CDP de C10/C12 attach: dat --remote-debugging-port=<port> trong Additional Args (node C11 thuan khong co o remote_port rieng).



Hình 9.2. open_profile mo cong CDP; C10/C12 phia sau attach vao remote_port de dieu khien trinh duyet.

Chương 10 — Action Close Profile (profile.close_profile)

Dong phien trinh duyet cua mot profile dang chay. Nen goi o cuoi workflow (ke ca nhanh loi) de khong bo lai tien trinh chiem RAM tren may.

Anh xa HTTP:

GET /profiles/close/{id}

Hình 10.1. Panel tham so cua action Close Profile.

Ten o

payloadName

Kieu

Mac dinh

Y nghia

Profile ID

profile_id

str (bat buoc)

(rong)

ID cua profile ban muon dong.



Vi du gia tri:

O

Vi du

Profile ID

xgyasg1995



LƯU Ý · LUON DONG O CUOI WORKFLOW

Ke ca nhanh loi cung nen goi close_profile — profile mo ma khong dong se chiem RAM va co the khoa file profile.



Chương 11 — Action List Groups (group.list_groups)

Liet ke cac nhom profile dang co kem ID. Chay truoc create_profile de biet chinh xac ten nhom hop le, vi GPM khong tu tao nhom moi khi tao profile.

Anh xa HTTP:

GET /groups

Action nay KHONG co tham so rieng.

GHI CHÚ · NHOM GROUP ACTION

list_groups la action DUY NHAT trong nhom Group. No khong co tham so rieng — chi can Topic + (tuy chon) Wait For Response.



Chương 12 — Action Create Profile (profile.create_profile)

Tao profile GPM moi kem toan bo tham so chong fingerprint. Nhom phai ton tai san — node KHONG tu tao nhom. Anh xa HTTP: POST /profiles/create.

Vi so tham so lon (25 o), phan panel duoc chia lam bon anh cuon.

Hình 12.1. Create Profile — dau panel: Profile Name (bat buoc), Group Name.

Hình 12.2. Create Profile — Browser Version, Random Browser Version, Raw Proxy, Startup URLs.

Hình 12.3. Create Profile — nhom cong tac fingerprint: Masked Font (bat), Noise Canvas (tat), Noise Audio Context (bat)... voi trang thai mac dinh.

Hình 12.4. Create Profile — Screen Resolution, Masked WebGL/Media, Random OS, OS, WebRTC Mode, User Agent.

Bang day du 25 tham so create_profile

Ten o

payloadName

Kieu

Mac dinh

Y nghia

Profile Name

profile_name

str (bat buoc)

(rong)

Ten profile moi se xuat hien trong GPM.

Group Name

group_name

str (bat buoc)

All

Ten nhom de gan. Nhom phai co san — node khong tu tao nhom.

Browser Core

browser_core

str

chromium

Loai loi trinh duyet. Thuong de chromium.

Browser Name

browser_name

str

Chrome

Ten trinh duyet hien thi, thuong la Chrome.

Browser Version

browser_version

opt (18)

142.0.7444.163

Phien ban trinh duyet dung cho fingerprint.

Random Browser Version

is_random_browser_version

bool

false

Bat de GPM tu chon ngau nhien phien ban.

Raw Proxy

raw_proxy

optStr

(rong)

Proxy dang host:port:user:pass. De trong neu khong dung proxy.

Startup URLs

startup_urls

optStr

(rong)

Link se tu mo khi profile duoc chay.

Masked Font

is_masked_font

bool

true

Che thong tin font cua may that.

Noise Canvas

is_noise_canvas

bool

false

Them nhieu vao Canvas fingerprint.

Noise WebGL

is_noise_webgl

bool

false

Them nhieu vao WebGL fingerprint.

Noise Client Rect

is_noise_client_rect

bool

false

Lam nhieu thong tin Client Rect.

Noise Audio Context

is_noise_audio_context

bool

true

Lam nhieu thong tin Audio Context.

Random Screen

is_random_screen

bool

false

Random kich thuoc man hinh.

Screen Resolution

screen_resolution

opt (6)

1920x1080

Kich thuoc man hinh (dung khi khong random screen).

Masked WebGL Data

is_masked_webgl_data

bool

true

Che du lieu WebGL that cua may.

Masked Media Device

is_masked_media_device

bool

true

Che thong tin camera va micro that.

Random OS

is_random_os

bool

false

Random he dieu hanh.

OS

os

opt (13)

Windows 11

He dieu hanh cua profile.

WebRTC Mode

webrtc_mode

opt

2 (Base on IP)

1=Off, 2=Base on IP (khop IP proxy).

User Agent

user_agent

optStr

(rong)

User Agent tuy chinh. De trong de dung mac dinh.

Note

note

optStr

(rong)

Ghi chu de de nhan biet profile.

Color

color

optStr

(rong)

Mau nhan cua profile de nhin nhanh trong danh sach.

Auditor

is_auditor

bool

false

Bat tinh nang Auditor cua GPM (neu tai khoan ho tro).

Extra Payload (JSON Object)

extra_payload

jsonOpt

(rong)

JSON nang cao → merge thang vao body GPM (gui field chua co o rieng).



Hình 12.5. Phan nhom cac tham so chong fingerprint: MASKED / NOISE / RANDOM / WebRTC-proxy / dinh danh nhat quan.

MẸO · TAO PROFILE 'SACH' GIONG NGUOI THAT

Dung mac dinh (masked font/audio/webgl/media = true; noise canvas/webgl = false de tranh qua bat thuong), gan proxy rieng, chon os/version nhat quan (vd Windows 11 + Chrome hop ly). webrtc_mode=2 an toan nhat khi dung proxy.



Chương 13 — Action Update Profile (profile.update_profile)

Sua cau hinh mot profile da co. Anh xa HTTP: POST /profiles/update/{id}. Bridge yeu cau it nhat MOT field de update, neu khong se loi.

Diem dac biet: nhieu co boolean o dang ba trang thai Omit / True / False (optBool).

Hình 13.1. Update Profile — dau panel: notice giai thich Omit/True/False.

Hình 13.2. Update Profile — cac o optStr: Profile Name, Group Name, Raw Proxy... (de trong = khong doi).

Hình 13.3. Dropdown Omit/True/False mo ra — va toan bo cac o optBool cua update_profile ben duoi.

LƯU Ý · VI SAO DUNG OMIT/TRUE/FALSE O UPDATE

Voi boolean thuong, khong phan biet duoc 'giu nguyen' va 'dat false'. optBool cho phep chon Omit = KHONG gui field do (giu nguyen gia tri cu), khac han voi dat False. Day la ly do update dung dropdown ba trang thai.



Bang day du 26 tham so update_profile

Ten o

payloadName

Kieu

Y nghia

Profile ID

profile_id

str (bat buoc)

ID profile ban muon cap nhat.

Profile Name

profile_name

optStr

Ten moi cua profile.

Group Name

group_name

optStr

Ten nhom moi de chuyen profile sang.

Group ID

group_id

optNum

ID nhom moi de chuyen profile sang.

Raw Proxy

raw_proxy

optStr

Proxy moi cho profile.

Browser Core

browser_core

optStr

Loi trinh duyet moi.

Browser Name

browser_name

optStr

Ten trinh duyet moi.

Browser Version

browser_version

optStr

Phien ban trinh duyet moi.

Startup URLs

startup_urls

optStr

Link moi se mo khi chay profile.

User Agent

user_agent

optStr

User Agent moi.

Note

note

optStr

Ghi chu moi cua profile.

Color

color

optStr

Mau nhan moi cua profile.

OS

os

optStr

He dieu hanh moi cua profile.

WebRTC Mode

webrtc_mode

optNum

Che do WebRTC moi.

Random Browser Version

is_random_browser_version

optBool

Bat/tat random browser version (Omit = giu nguyen).

Masked Font

is_masked_font

optBool

Bat/tat che font (Omit = giu nguyen).

Noise Canvas

is_noise_canvas

optBool

Bat/tat nhieu Canvas.

Noise WebGL

is_noise_webgl

optBool

Bat/tat nhieu WebGL.

Noise Client Rect

is_noise_client_rect

optBool

Bat/tat nhieu Client Rect.

Noise Audio Context

is_noise_audio_context

optBool

Bat/tat nhieu Audio Context.

Random Screen

is_random_screen

optBool

Bat/tat random man hinh.

Masked WebGL Data

is_masked_webgl_data

optBool

Bat/tat che du lieu WebGL.

Masked Media Device

is_masked_media_device

optBool

Bat/tat che camera va micro.

Random OS

is_random_os

optBool

Bat/tat random he dieu hanh.

Auditor

is_auditor

optBool

Bat/tat tinh nang Auditor cua GPM.

Extra Payload (JSON Object)

extra_payload

jsonOpt

JSON nang cao → merge vao body update.



GHI CHÚ · OPTBOOL ANH XA THE NAO XUONG BRIDGE

Chon Omit → o bi loai khoi payload (nua n8n khong gui) → bridge khong dung field do (giu nguyen). Chon True/False → gui gia tri boolean tuong ung. Bridge yeu cau >=1 field, neu payload rong → loi.



Chương 14 — Action Delete Profile (profile.delete_profile)

Xoa han mot profile. Anh xa HTTP: GET /profiles/delete/{id}?mode=. KHONG hoan tac duoc.

Hình 14.1. Delete Profile — Profile ID (bat buoc) va Mode.

Hình 14.2. Dropdown Mode: 1. Delete database only / 2. Delete database and storage.

Ten o

payloadName

Kieu

Mac dinh

Y nghia

Profile ID

profile_id

str (bat buoc)

(rong)

ID cua profile ban muon xoa.

Mode

mode

opt

2

1=Chi xoa ban ghi database; 2=Xoa ca database va thu muc du lieu tren dia (cookie, cache, dang nhap).



NGUY HIỂM · MODE 2 XOA CA DU LIEU TREN DIA — KHONG HOAN TAC

Mode 2 xoa CA thu muc du lieu profile (cookie, cache, phien dang nhap). Mat het dang nhap da luu. Chi dung mode 2 khi chac chan khong con can profile. Voi thao tac ghi nay, dedupe theo requestId bao ve khoi bi xoa hai lan neu MQTT giao trung.





PHẦN IV

CAC TAC VU CHINH





Chương 15 — Quy trinh chuan

Tac vu 1 — Tao mot profile sach roi mo no

1. Chay List Groups de biet ten nhom hop le (GPM khong tu tao nhom).

2. Chay Create Profile: dien Profile Name, Group Name (khop nhom co san), gan Raw Proxy rieng, giu mac dinh masked=true / noise canvas,webgl=false, chon OS+version nhat quan, webrtc_mode=2.

3. Bat Wait For Response de lay ket qua tao (profile_id moi) tu mqtt.response.payload.data.

4. Chay Open Profile voi profile_id vua tao; neu can cong CDP co dinh, them --remote-debugging-port=<port> vao Additional Args.

5. Node C10/C12 phia sau attach vao cong do de dieu khien trinh duyet.

6. Cuoi cung chay Close Profile (ke ca o nhanh loi).

Tac vu 2 — Duyet va cap nhat hang loat

1. Chay List Profiles (loc theo group/search, phan trang) → mang profile.

2. Dung node lap qua tung item; moi vong goi Update Profile voi ={{$json.profile_id}}.

3. O update chi dien field can doi; cac optBool khong doi thi de Omit.

4. Neu MQTT giao trung, dedupe theo requestId tu phat lai ket qua — an toan.

MẸO · LAY DU LIEU GPM O NODE SAU

Dung ={{$json.mqtt.response.payload.data...}} de lay body GPM tra ve — vd danh sach profile, id profile moi tao, trang thai mo.





PHẦN V

VAN HANH HANG NGAY





Chương 16 — Chay va theo doi bridge

Chay bridge

pip install -r requirements.txt

python mqtt_client_gpm_login_man.py \

--broker-host 127.0.0.1 --broker-port 1883 \

--request-topics gpm/login/request \

--gpm-base-url http://127.0.0.1:16813



Nua n8n publish MQTT la du de gui lenh, nhung phai co bridge chay song song tren may worker thi lenh moi co tac dung len GPM.

Doc log

Them action moi — dung CA HAI nua

Khac C10/C12, them action o C11 phai sua hai noi cho khop:

1. Nua n8n (LotusGpmLogin.node.ts): them action(...) vao ACTION_SPECS + (nen) them doc vao LIBWRAP_FUNCTION_DOCS.

2. Bridge Python: them _handle_<fn> va dang ky vao self._handlers (ca key dang group.fn lan fn), map sang endpoint GPM dung.

functionName o nua n8n phai trung key trong self._handlers cua bridge (bridge fallback action.key.split('.')[-1] neu khong khop nguyen).



PHẦN VI

AN TOAN VA BAO MAT





Chương 17 — Credential, bi mat va thao tac pha huy

NGUY HIỂM · THAO TAC KHONG HOAN TAC

delete_profile (mode 2) va update_profile ghi de cau hinh la cac thao tac khong hoan tac. Luon xac nhan profile_id dung truoc khi chay, va tan dung dedupe (requestId) de tranh chay lai ngoai y muon.





PHẦN VII

RUI RO VA SU CO





Chương 18 — Cac kich ban hong thuong gap

Kich ban

Bieu hien

Xu ly

Khong co bridge chay

Node publish nhung khong bao gio nhan RES_ → timeout

Chay bridge tren may worker, dung topic khop

Sai Topic

Bridge khong nhan → node timeout

Kiem Topic node = --request-topics cua bridge

GPM chua mo / sai base-url

Bridge tra ok:false, error ket noi HTTP

Mo GPM, kiem --gpm-base-url = 127.0.0.1:16813

Nhom chua ton tai khi create

GPM tra loi, profile khong tao

Chay list_groups truoc, dung ten nhom co san

update rong (khong field nao)

Bridge nem loi 'requires at least one field'

Dien it nhat 1 field (khong de tat ca Omit)

MQTT giao trung

Log 'Duplicate request' + replay cache

Binh thuong (dedupe). Muon retry that → doi requestId





PHẦN VIII

KHAC PHUC SU CO (BANG TRA)





Chương 19 — Trieu chung → nguyen nhan → cach chua

Trieu chung

Nguyen nhan co the

Cach chua

Node timeout khi Wait For Response

Bridge khong chay / sai topic / GPM chet

Kiem tuan tu: bridge → topic → GPM API

ok:false, status_code null

RequestException — khong noi duoc GPM

Kiem GPM dang chay va base-url; xem error

Nhan nham ket qua node khac

requestId khong khop

Bridge phai echo requestId; kiem log

Profile tao thieu field

Field None bi loai; extra_payload sai

Dien du o hoac dung extra_payload JSON dung

Cong CDP khong co dinh

Node C11 khong co o remote_port

Dat --remote-debugging-port trong Additional Args





PHẦN IX

THUC HANH





Chương 20 — Cac bai lab

Lab 1 — Liet ke nhom va profile

Lab 2 — Tao profile sach + mo + dong

Lab 3 — Cap nhat hang loat voi optBool

Lab 4 — Kiem chung dedupe



PHẦN PL

PHU LUC





Phụ lục A — Kien thuc nen ve fingerprint GPM

GPM-Login la antidetect browser — tao nhieu profile voi dau van tay khac nhau de moi profile trong nhu mot thiet bi rieng, tranh bi website lien ket cac tai khoan.

Phụ lục B — Hang so danh sach (dong bo voi C10)

Cac danh sach lua chon co dinh trong node, trung voi cac hang GPM_* trong C10 — hai ban nen giu dong bo khi cap nhat.

Hang so

So luong

Vai gia tri

BROWSER_VERSION_OPTIONS

18

142.0.7444.163, 139.0..., 119.0..., 100.0.4896.75

SCREEN_RESOLUTION_OPTIONS

6

3840x2160, 2560x1440, 1920x1080, 1366x768

OS_OPTIONS

13

Windows 11/10/8.1/..., Windows Server 2012-2019, MacOS M1 10.15.7

WEBRTC_MODE_OPTIONS

2

1 Off, 2 Base on IP

DELETE_PROFILE_MODE_OPTIONS

2

1 Delete database only, 2 Delete database and storage



Phụ lục C — Bay da tra gia (tu memory du an)

Cac bai hoc rut ra tu qua trinh van hanh he thong Great Lotus lien quan toi profile GPM.

C.1 — ID profile = UID_xxxxxx_GPM_Profile, cau noi la TEN

ID profile trong he Great Lotus la UID_xxxxxx_GPM_Profile — no la TEN o GPM (A1) dong thoi la ID o cac lop A2-A5. UUID cua GPM chi la tay nam noi bo; so khop phai xet CA hai id. Khi lam viec voi profile_id trong C11, luu y chuoi ngan (vd xgyasg1995) la ID nguoi dung tu dat, con UUID la do GPM sinh.

C.2 — open_profile khong nhan raw_proxy

Gan proxy phai goi create/update TRUOC; open_profile chi mo bang proxy da luu, KHONG nhan raw_proxy. Day la bay lap lai: mo profile roi moi doi proxy se khong an.

C.3 — Kho profile NAS2

Profile Chrome tai tu kho NAS2 (docs/tools/profile_store.py, da test tren SMB that). C11 khong cham NAS truc tiep — no chi quan ly profile trong GPM; viec keo/day profile tu NAS do worker (APP_5) lam.

C.4 — Race spawn worker khi clear/sync/open

Chuoi TEST_Clear_Sync_Open_LocalProfile tung gap race WinError 5/6 do spawn trung key; fix la serialize theo key. Lien quan khi dung C11 mo nhieu profile song song tren cung may worker.

Phụ lục D — Bang API, thuat ngu, nguon va cach dung tai lieu

D.1 — Thuat ngu

Thuat ngu

Y nghia

NDV

Node Detail View — cua so cau hinh node trong n8n

Action Group / Action

Nhom chuc nang (resource) va viec cu the (operation)

payload

Ban tin JSON node publish len MQTT

bridge

mqtt_client_gpm_login_man.py — nua 2, dich MQTT → GPM HTTP

dedupe

Chong xu ly trung mot requestId

fingerprint

Dau van tay trinh duyet — thong tin de website nhan dien thiet bi

optBool

Dropdown ba trang thai Omit/True/False

remote debugging port

Cong CDP de C10/C12 dieu khien Chrome vua mo



D.2 — Nguon va cach dung tai lieu

GHI CHÚ · MUC LUC VA SO TRANG

Mo bang Microsoft Word roi bam Ctrl+A → F9 de sinh/cap nhat muc luc kem so trang. Ban PDF di kem da co muc luc dien san so trang.