Chuyển tới nội dung chính

Tích hợp & Kết nối

Trang này trả lời 3 câu hỏi: API cung cấp dịch vụ cho ai (inbound), hệ thống kết nối ra đâu (outbound), và mỗi phần dùng để làm gì.

1. Inbound — API cung cấp dịch vụ cho ai

Tất cả route theo prefix api/v1/..., xác thực JWT Bearer, CORS mở hoàn toàn (Startup.cs).

NhómEndpoint tiêu biểuCallerMục đích
Account / AuthPOST api/v1/Account/login (AllowAnonymous), Register, Logout, ValidateToken, social loginApp clientĐăng nhập (ủy quyền sang token service ngoài), social login (FB/Google/Instagram/Twitter)
TextSearch_*POST {prefix}/List + CRUD (kế thừa SoEzyBaseCategoryController)App client / UITạo & quản lý yêu cầu tra cứu theo từng nguồn
TextSearch_DESearchGeneral / _ForAPIIsSearchForAPI=trueTích hợp bên thứ 3Gọi search qua API
SearchData_*ABNLookup_CurrentDetails, CoreLogic_Asia_RP_DataApp clientĐọc kết quả đã thu thập
TextSearch_Webhookapi/v1/TextSearch_Webhook (Authorize)Client nội bộCRUD cấu hình webhook — KHÔNG phải endpoint nhận callback. API là bên gửi webhook đi
Hệ thốngCache, GlobalAppSetting, ConfigMenu, SystemAppFile, ProjectPhotoAdmin/UICấu hình, cache, file

Static files mount tại /home/upload. Không có Swagger — chỉ có XML doc comment trên action.

2. Outbound — Hệ thống kết nối ra đâu

Hạ tầng nội bộ

ĐíchĐịa chỉMục đích
Token / OAuth servicehttp://localhost:12391/oauth2/token (key USER_AUTO_LOGIN_URL)Cấp token đăng nhập (password grant)
Avatar servicehttp://localhost:10001Lấy avatar
Selenium worker (UDP)127.0.0.1:11000Tín hiệu kích hoạt job
Selenium worker (TCP)127.0.0.1:11001IPC phụ
SQL Server192.168.0.21 / SOEZY_DESEARCHDB_DEVDB chính + bảng hàng đợi
Redislocalhost:6379Cache
Webhook khách hàngAPIUrl trong bảng TextSearch_WebhooksTrả kết quả search
Google Chatchat.googleapis.com/...Cảnh báo vận hành

Nguồn dữ liệu (worker đi cào)

NguồnHostDữ liệu
ABR / SuperfundLookupabr.business.gov.au, superfundlookup.gov.auABN / business
ASIC Connectconnectonline.asic.gov.auGiấy phép / đăng ký doanh nghiệp
ASIC service APIservice.asic.gov.auTra cứu ASIC (có token)
data.gov.audata.gov.au/data/api/3Dataset ACN
TPBtpb.gov.auĐăng ký đại lý thuế
NT LISntlis.nt.gov.auBuilding practitioners NT
ACT datadata.act.gov.auDữ liệu ACT (app_token)
Access CanberraURL trong DBGiấy phép vùng ACT
OneGov NSWonegov.nsw.gov.auPublic register (trades) NSW
CoreLogicrpp.corelogic.com.au (OAuth auth.corelogic.asia)Bất động sản — cần login
CoreLogic Asia RP Datarpp.rpdata.comBất động sản — cần login
Google Realestaterealestate.com.au (URL từ DB)Listing / ảnh BĐS
WhitePageswhitepages.com.auDanh bạ điện thoại/địa chỉ
VEVOonline.immi.gov.auTrạng thái visa
QBCC (QLD)Đã vô hiệu hóa (code comment out)

3. Mỗi phần dùng để làm gì

  • Web API — backend điều phối: nhận yêu cầu, auth, đẩy job vào hàng đợi, quản lý cấu hình/kết quả, gửi webhook.
  • Worker Selenium — thực thi cào dữ liệu từ website nguồn (mỗi module một nguồn), chụp screenshot, tải PDF.
  • AutoLoad — giữ phiên CoreLogic sống để worker không bị đăng xuất.

⚠️ Cảnh báo bảo mật (cần xử lý)

Quá trình phân tích source phát hiện secret hardcode trong repo — nên đưa ra biến môi trường / vault trước khi public:

  • Connection string + mật khẩu DB hardcode trong .cs / .edps / App.config.
  • Twitter consumer secret, ASIC token, ACT app_token hardcode trong code.
  • Google Chat webhook key/token hardcode (AutoLoad, Share).
  • Credential nhà cung cấp dạng plaintext: AutoLoadConfig.json, CoreLogic_Asia_RP_Data_Professional/Account.json, và các file trong Configs/Auth/*.json.

Tài liệu này cố tình không in giá trị secret thật. Xem mục Vận hành để biết kế hoạch di chuyển secret.