Bảo mật và dữ liệu Flowzito
Liên hệ bảo mật: hai@zhouworks.com
Kiến trúc dữ liệu: local-first
Flowzito được thiết kế để phần lớn việc xử lý và lưu dữ liệu diễn ra trên thiết bị của người dùng.
Luồng dữ liệu chính hiện tại có thể hiểu đơn giản như sau:
Thiết bị người dùng ⇄ Flowzito ⇄ Autodesk Forma / Autodesk services
Các yêu cầu đọc hoặc ghi dữ liệu được gửi trực tiếp từ ứng dụng trên thiết bị tới Autodesk bằng tài khoản Autodesk của người dùng.
Trong implementation hiện tại, không có backend Flowzito riêng nằm giữa ứng dụng và Autodesk Forma để trung chuyển hoặc lưu trữ dữ liệu dự án.
Dữ liệu nào nằm trên thiết bị
Flowzito có thể lưu cục bộ:
- Workspace và metadata Hub/Project;
- metadata tài khoản đã liên kết;
- dashboard và layout;
- scenario, filter và tùy chọn công cụ;
- lịch sử tóm tắt của job;
- Data Connector preferences;
- checkpoint của một số tác vụ;
- Data Connector dataset/CSV đã tải từ Autodesk;
- file tạm được tạo khi export, share hoặc xử lý PDF.
Các dữ liệu này nằm trong app sandbox của thiết bị. Flowzito hiện không áp dụng một lớp mã hóa riêng cho toàn bộ AsyncStorage hoặc document storage.
Vì vậy, dữ liệu bí mật như OAuth token được lưu riêng bằng Secure Store, còn các dữ liệu local khác phụ thuộc thêm vào cơ chế bảo vệ thiết bị và chính sách bảo mật của tổ chức.
Dữ liệu nào đi tới Autodesk Forma
Khi người dùng mở dashboard hoặc chạy một công cụ, Flowzito có thể trực tiếp đọc hoặc ghi dữ liệu trên Autodesk Forma và các dịch vụ Autodesk liên quan.
Tùy chức năng, dữ liệu trao đổi có thể bao gồm:
- metadata của Hub, Project, folder và file;
- thành viên và quyền truy cập;
- Reviews, RFI, Issues, Forms, Assets, Submittals và Schedule;
- Data Connector jobs và dataset;
- file được upload hoặc phiên bản file mới;
- các payload cần thiết cho thao tác mà người dùng chủ động xác nhận.
Flowzito không tự động gửi toàn bộ dữ liệu dự án lên một máy chủ Flowzito riêng.
Xác thực
- Flowzito sử dụng Autodesk OAuth Authorization Code Flow với PKCE S256.
- Mobile app là public client và không nhúng client secret.
- Các scope hiện tại gồm
data:read,data:write,data:create,account:read,account:writevàopenid. - Flowzito có thể gọi Autodesk OpenID userinfo để lấy email hoặc tên hiển thị khi cần cho giao diện.
Lưu token
Trên iOS/Android:
- access token, refresh token và thời điểm hết hạn được lưu bằng Expo SecureStore;
- token không được lưu trong AsyncStorage;
- đăng xuất xóa các secret xác thực mà Flowzito đã lưu.
Trên web hiện tại:
- token chỉ được giữ trong bộ nhớ của phiên chạy;
- Flowzito không ghi token vào persistent local storage.
Giao tiếp mạng
Các endpoint cố định trong source hiện tại thuộc Autodesk, bao gồm:
developer.api.autodesk.comapi.userprofile.autodesk.comaccounts.autodesk.comacc.autodesk.comcho deep links
Flowzito cũng có thể tải dữ liệu trực tiếp từ signed URL do Autodesk cung cấp.
Trong helper tải binary hiện tại, bearer token Autodesk không được gắn vào external signed URL.
File import, export và xử lý PDF
Flowzito xử lý nhiều thao tác file trực tiếp trên thiết bị:
- file Excel do người dùng chọn được đọc local để chuẩn bị dữ liệu import;
- CSV report có thể được tạo và lưu vào cache/local storage trước khi share;
- PDF có thể được tải từ Autodesk, xử lý QR trên thiết bị, sau đó lưu tạm để share hoặc upload trở lại Autodesk;
- việc share sử dụng share sheet của hệ điều hành và người dùng tự chọn nơi nhận file.
Logging và telemetry
HTTP helper của Flowzito được thiết kế không log bearer token hoặc request body chứa secret.
Một số diagnostic log Data Connector chỉ chạy trong development build và có thể chứa job ID hoặc tên listing phục vụ debug.
Trong source hiện tại đã kiểm tra, Flowzito không tích hợp SDK quảng cáo, behavioral analytics hoặc crash-reporting của bên thứ ba.
Thao tác ghi dữ liệu
Một số công cụ Flowzito có thể thay đổi dữ liệu trên Autodesk Forma, ví dụ:
- tạo hoặc copy cấu trúc thư mục;
- thêm thành viên;
- xử lý hoặc kiểm tra quyền;
- upload file;
- tạo phiên bản file mới.
Ở các luồng hỗ trợ, Flowzito cố gắng hiển thị phạm vi, preflight, xung đột và kết quả trước hoặc sau thao tác. Người dùng vẫn chịu trách nhiệm xác nhận đúng Project, nguồn, đích và phạm vi tác động.
Các giới hạn cần hiểu rõ
Flowzito hiện không tuyên bố rằng:
- mọi dữ liệu local đều được mã hóa đầu-cuối bởi Flowzito;
- ứng dụng có zero-knowledge backend;
- ứng dụng đã đạt SOC 2, ISO 27001 hoặc chứng nhận tương đương nếu chưa được đánh giá độc lập;
- mọi thao tác Autodesk đều có rollback giao dịch hoàn chỉnh;
- có hệ thống server-side telemetry/security monitoring riêng nếu chưa được triển khai.
Báo cáo vấn đề bảo mật
Nếu bạn phát hiện vấn đề bảo mật, vui lòng liên hệ hai@zhouworks.com và cung cấp phiên bản Flowzito, nền tảng, mô tả và bước tái hiện.
Không gửi access token, refresh token hoặc dữ liệu dự án mật qua email.