- Obsidian Community đã ra mắt như một thư mục và bảng điều khiển dành cho nhà phát triển mới cho plugin và theme, hợp nhất quy trình gửi, quản lý, khám phá và sử dụng
- Kể từ khi Obsidian API được công bố vào năm 2020, cộng đồng đã tạo ra hơn 4.000 plugin và theme, và số lượt tải plugin đã vượt 120 triệu
- Thư mục mới cung cấp khả năng duyệt, tìm kiếm, lọc và sắp xếp, đồng thời hiển thị ảnh chụp màn hình, thông tin chi tiết và bảng điểm an toàn trên trang dự án
- Đánh giá tự động được áp dụng cho mọi phiên bản để kiểm tra việc tuân thủ chính sách nhà phát triển, chất lượng mã, các lỗ hổng đã biết và khả năng có mã độc
- Các dự án hiện có sẽ được chuyển sang hệ thống mới, và những plugin hoặc theme không vượt qua tiêu chuẩn mới nhất sẽ được miễn trừ tạm thời trước khi dần bị loại khỏi thư mục chính thức
Ra mắt Obsidian Community
- Obsidian Community đã ra mắt như một thư mục và bảng điều khiển dành cho nhà phát triển mới cho plugin và theme của Obsidian
- Kể từ khi Obsidian API được công bố vào năm 2020, cộng đồng đã tạo ra hơn 4.000 plugin và theme, và tổng số lượt tải plugin Obsidian đã vượt 120 triệu
- Mục tiêu là giúp bất kỳ ai cũng có thể tạo, phát hành, khám phá và sử dụng plugin và theme dễ dàng hơn và an toàn hơn
- Đợt ra mắt này là khởi đầu của một kế hoạch lớn hơn, trong đó cùng lúc giới thiệu website Community, bảng điều khiển nhà phát triển, đánh giá tự động, an toàn plugin và các công cụ cho nhóm
Website Community và bảng điều khiển nhà phát triển
- Website Community mới cung cấp duyệt, tìm kiếm, lọc và sắp xếp để khám phá plugin và theme
- Có thể tìm plugin qua hàng chục danh mục như Integrations, Bases, Charts và nhiều danh mục khác
- Dự án có thể được sắp xếp theo tên, số lượt tải, mức độ phổ biến, ngày phát hành và ngày cập nhật
- Mỗi trang chi tiết dự án bao gồm ảnh chụp màn hình, thông tin chi tiết và bảng điểm an toàn
- Plugin trả phí và các tích hợp chính thức sẽ hiển thị nhãn mới
- Tác giả có thể thêm tùy chọn tài trợ, liên kết website và liên kết mạng xã hội vào trang hồ sơ
- Website Obsidian Community cung cấp bảng điều khiển nhà phát triển mới để tác giả gửi, quản lý và theo dõi trạng thái dự án
- Tất cả plugin, theme và bài gửi đang chờ xử lý trước đây được thêm qua GitHub sẽ tự động được chuyển sang website mới
- Để nhận quyền sở hữu các dự án hiện có, cần đăng nhập vào website Community và kết nối tài khoản GitHub
- Sau khi kết nối tài khoản GitHub, có thể quản lý dự án hiện có, gửi dự án mới và chỉnh sửa trang hồ sơ
Đánh giá tự động và an toàn
- Đánh giá tự động được áp dụng cho tất cả dự án cộng đồng
- Hệ thống đánh giá tự động mới quét mọi phiên bản, không chỉ lần gửi đầu tiên, theo các tiêu chuẩn bảo mật và chất lượng mã
- Trước đây, một nhóm nhỏ sẽ xem xét thủ công các bài gửi ban đầu để xác minh việc tuân thủ Developer Policies, nhưng khi Obsidian trở nên phổ biến hơn, việc theo kịp tốc độ bài gửi trở nên khó khăn và các phiên bản sau đó không còn được đánh giá
- Khi các coding agent đẩy nhanh việc tạo plugin, hàng chờ đánh giá càng dài hơn, còn các công cụ như Obsidian CLI khiến việc tạo plugin trở nên dễ dàng hơn
- Khi plugin hoặc theme được gửi, hệ thống đánh giá tự động sẽ kiểm tra việc tuân thủ chính sách nhà phát triển, việc tuân theo các thông lệ tốt nhất của mã nguồn và sự vắng mặt của các lỗ hổng đã biết
- Các bài kiểm tra tự động có thể được cải thiện liên tục, tạo nền tảng để nâng cao chất lượng và độ an toàn của hệ sinh thái Obsidian một cách toàn diện hơn
- Đánh giá thủ công vẫn sẽ tiếp tục. Nhờ hệ thống mới, nguồn lực có thể được tập trung vào những plugin cần xem xét sâu hơn, như plugin phổ biến, plugin được đề xuất hoặc các vấn đề do cộng đồng gắn cờ
- Các plugin và theme hiện có đã được đánh giá lại bằng hệ thống mới, và đã phát hiện những plugin và theme cũ không đáp ứng hướng dẫn mới nhất
- Các dự án hiện có không vượt qua tiêu chuẩn mới nhất sẽ được cấp miễn trừ tạm thời, nhưng mọi plugin và theme không vượt qua quy trình đánh giá mới cuối cùng sẽ dần bị loại khỏi thư mục chính thức
- Trong vài ngày gần đây, hệ thống mới đã xử lý hơn 2.300 bài gửi đang chờ xử lý, và các nhà phát triển đang chờ đánh giá plugin có thể đăng nhập vào website Community để kiểm tra trạng thái hiện tại
-
Quét tự động
- Mọi phiên bản đều tự động được kiểm tra chất lượng mã và lỗ hổng bảo mật
- Cũng bao gồm quét mã độc để phát hiện các bổ sung có khả năng độc hại trong plugin
- Nhà phát triển có thể xem các đề xuất chi tiết, cảnh báo và cờ thất bại cho từng dự án trong bảng điều khiển nhà phát triển
-
Bảng điểm
- Người dùng và nhà phát triển có thể kiểm tra trạng thái kiểm tra tự động trong bảng điểm của mọi dự án
- Bảng điểm sẽ tiếp tục được cải thiện, tích hợp thông tin công khai, nhãn quyền riêng tư, chứng thực artifact, kết quả đánh giá thủ công và việc áp dụng các tính năng của ứng dụng
-
Công bố phạm vi truy cập
- Trong vài tháng tới, mức độ minh bạch về plugin và tác giả sẽ còn tăng lên
- Plugin sẽ phải khai báo chúng truy cập vào những gì như mạng, hệ thống tệp, clipboard và các tính năng khác
- Người dùng sẽ có thể xem các thông tin công bố này trước khi cài đặt plugin
-
Tác giả đã xác minh
- Một nhãn sẽ được thêm cho các nhà phát triển đáng tin cậy đã vượt qua các bước xác minh bổ sung và duy trì trạng thái tốt
- Người dùng có thể báo cáo trực tiếp mọi vấn đề bảo mật cho đội ngũ Obsidian bất cứ lúc nào
Thay đổi ở cấp độ nhóm và ứng dụng
- Các nhóm sử dụng Obsidian đã có thể triển khai kiểm soát an toàn cho người dùng
- Trong vài tháng tới, các nhóm sẽ có thể quản lý dễ dàng hơn những plugin cộng đồng được phép dùng và phân phối plugin riêng tư cho thành viên nhóm
- Các nhóm phát hành plugin Obsidian chính thức có thể đăng ký huy hiệu Official trong thư mục Community
- Nếu plugin đủ điều kiện, có thể liên hệ
- Cùng với việc cải thiện thư mục Community và hệ thống đánh giá tự động, ứng dụng Obsidian và API cũng sẽ có những thay đổi để tăng khả năng khám phá và độ an toàn
- Hệ sinh thái cộng đồng là một trong những yếu tố thú vị và mạnh mẽ của Obsidian, và định hướng là cung cấp nền tảng cần thiết để nó tiếp tục phát triển
- Sẽ tiếp nhận phản hồi tại Obsidian Community
Những thay đổi chính dành cho người dùng và nhà phát triển
-
Ảnh hưởng tới người dùng
- Có thể khám phá plugin và theme trên website Community mới
- Thời gian đánh giá được rút ngắn đáng kể, nên có thể sẽ ít cần cài thủ công plugin truy cập sớm hơn
-
Gửi plugin hoặc theme mới
- Đăng nhập vào website Community để truy cập bảng điều khiển nhà phát triển mới
- Kết nối tài khoản GitHub, chọn repository cần gửi rồi hoàn tất các bước trong bảng điều khiển
- Việc đánh giá dự án bắt đầu ngay sau khi gửi, và thông thường có thể xem kết quả trong vài phút
- Nếu dự án vượt qua, nó sẽ có thể được tìm kiếm và tải về trong ứng dụng trong vòng 24 giờ
-
Nhận quyền sở hữu plugin và theme hiện có
- Đăng nhập vào website Community để truy cập bảng điều khiển nhà phát triển mới
- Khi kết nối tài khoản GitHub, có thể nhận quyền sở hữu plugin và cập nhật tiêu đề, mô tả và ảnh chụp màn hình
-
Có thể cập nhật mà không cần bảng điều khiển nhà phát triển hay không
- Vẫn có thể tiếp tục phát hành phiên bản mới qua GitHub
- Các bản phát hành mới sẽ được đánh giá tự động, và nếu không vượt qua đánh giá thì cần xem chi tiết trong bảng điều khiển nhà phát triển
-
Plugin và theme không vượt qua đánh giá tự động
- Plugin và theme mới phải vượt qua đánh giá tự động trước khi được thêm vào thư mục và có thể tìm kiếm
- Mỗi phiên bản mới đều được quét, và nếu không vượt qua đánh giá thì sẽ bị gỡ khỏi kết quả tìm kiếm trong vòng 24 giờ
- Các plugin và theme đã được phê duyệt trước đây vẫn có thể tiếp tục được sử dụng trong thời gian tới ngay cả khi không vượt qua đánh giá tự động
- Cuối cùng các plugin cũ cũng sẽ được yêu cầu đáp ứng tiêu chuẩn mới, nhưng hiện chưa có thời hạn và quá trình chuyển đổi sẽ được quyết định cùng với các nhà phát triển trong cộng đồng
-
Chạy đánh giá tự động mà không cần gửi bản phát hành
- Có thể dùng eslint plugin để kiểm tra plugin Obsidian cục bộ theo hướng dẫn chính thức dành cho nhà phát triển
- Có thể chạy quét xem trước trên bất kỳ branch, tag hoặc commit nào trong bảng điều khiển nhà phát triển
-
Đồng bảo trì và repository của tổ chức
- Hiện tại trong Obsidian Community, chỉ chủ sở hữu repository GitHub mới có thể chỉnh sửa dự án tương ứng
- Repository của tổ chức có thể được nhận quyền sở hữu và chỉnh sửa nếu tư cách thành viên trong tổ chức được để công khai
- Hỗ trợ nhiều cộng tác viên sẽ được bổ sung trong tương lai gần
-
Plugin mã nguồn riêng tư
- Hiện tại chưa nhận plugin mã nguồn riêng tư mới vào thư mục
- Các plugin mã nguồn riêng tư hiện có vẫn có thể tiếp tục được sử dụng cho tới khi có thông báo thêm
- Trong tương lai sẽ xem xét cách điều chỉnh hệ thống đánh giá mới để phù hợp với plugin mã nguồn riêng tư
-
Yêu cầu về tài khoản và GitHub
- Cần có tài khoản Obsidian để truy cập bảng điều khiển nhà phát triển mới
- Hiện tại bắt buộc phải dùng GitHub, và trong tương lai sẽ xem xét bổ sung các nền tảng lưu trữ phần mềm khác
- Đăng nhập GitHub sẽ chia sẻ tên người dùng và danh sách repository công khai, và thông tin này chỉ được dùng để xác minh quyền sở hữu repository
-
Nhãn Paid và Optional payments
- Obsidian Community không phải là cửa hàng và không cung cấp giải pháp thanh toán tích hợp
- Nhà phát triển vẫn có thể tiếp tục sử dụng các cơ chế thanh toán bên ngoài như license key, API key hoặc cổng đăng nhập
- Nhà phát triển phải gắn nhãn chính xác plugin vào một trong ba danh mục
- Free là plugin không có bất kỳ hình thức thanh toán nào và cũng hoàn toàn không liên kết với dịch vụ trả phí, nhưng vẫn cho phép liên kết quyên góp và tài trợ
- Optional payments là trường hợp người dùng có thể chọn trả tiền để mở thêm tính năng, hoặc plugin kết nối với dịch vụ trả phí
- Nếu plugin kết nối với dịch vụ hoặc API trả phí thì phải được gắn nhãn Optional payments, ngay cả khi dịch vụ đó có gói miễn phí
- Paid là trường hợp người dùng bắt buộc phải trả tiền để dùng các tính năng chính, ngay cả khi có cung cấp bản dùng thử miễn phí
- Các nhãn này không biểu thị việc nhà phát triển có thu tiền hay không, mà cho biết người dùng nên kỳ vọng loại thanh toán nào
-
Lỗi bảng điểm và liên hệ
- Bảng điểm là tính năng mới nên có thể có lỗi, và có thể xảy ra false positive hoặc false negative
- Nếu phát hiện nội dung không chính xác, cần liên hệ qua kênh #plugin-dev trên máy chủ Discord của Obsidian
- Nếu có câu hỏi hoặc lo ngại, có thể liên hệ qua kênh
#plugin-dev trên máy chủ Discord của Obsidian
1 bình luận
Ý kiến trên Hacker News
Tôi đã cố gắng viết đầy đủ nhất có thể về bài blog, FAQ và các bước tiếp theo trong lộ trình, nhưng chắc vẫn có chỗ sót nên mọi người cứ hỏi
Với một đội chỉ có 7 người mà phải phục vụ hàng nghìn nhà phát triển plugin và hàng triệu người dùng, việc cân bằng các ưu tiên xung đột lẫn nhau thực sự rất khó
Hệ thống mới phải dễ áp dụng, giữ tính tương thích ngược, cải thiện đáng kể so với cách cũ mà không phá vỡ hoàn toàn quy trình làm việc hiện có, đồng thời có thể nâng dần mức độ an toàn và khả năng khám phá plugin
Mong mọi người xem đây là công việc vẫn đang tiếp diễn; tôi sẽ lắng nghe ý tưởng và phàn nàn rồi tiếp tục lặp lại để cải thiện
Một trong những lý do khiến tôi chần chừ, ngoài khoản thời gian đầu tư khổng lồ, là nỗi lo rằng nếu sau khi mọi người bắt đầu dựa vào quy trình review đó mà mã độc bị làm rối vẫn lọt qua, thì trách nhiệm cho một cuộc tấn công về sau sẽ đổ lên dự án
Tôi tò mò đội ngũ nhìn nhận chuyện này như thế nào
Với tôi, nó giống khác biệt giữa cách Debian/Ubuntu kiểm tra nghiêm ngặt mọi thứ trong kho phần mềm và cách PyPI/npm không đưa ra bất kỳ bảo đảm review nào
Có thể xem ví dụ tại https://community.obsidian.md/plugins/zotlit
Ví dụ, nếu một plugin tóm tắt AI ban đầu truy cập
url="api.openai.com"+pathbằng khóa OpenAI do người dùng cung cấp thì đó sẽ là dạng rất phổ biến, và tôi khá mong đợi những thứ cộng đồng sẽ làm từ đâyNhưng nếu sau một bản cập nhật, người dùng có thể chọn endpoint tùy ý cho API tương thích OpenAI, thì làm sao có thể bảo đảm đó không phải là một bản cập nhật âm thầm cài sẵn endpoint độc hại để tạo kênh rò rỉ dữ liệu qua mạng và lợi dụng chính sự linh hoạt đó để lách việc quét?
Khi tôi thử dùng Obsidian, tôi đã xóa ngay sau khi biết tính năng bảng dữ liệu không phải tích hợp sẵn mà là một plugin có toàn quyền truy cập
Mà đội chỉ có 7 người thì thật bất ngờ
Sự bất mãn trong cộng đồng nhà phát triển ngày một tăng, còn đội ngũ thì cũng đang kiệt sức vì quá tải
Vì vậy xin chúc mừng đội ngũ. Đây gần như là đã gỡ được một nút thắt mở rộng quy mô rất lớn, và việc theo dõi cách họ xây dựng rồi mở rộng nó khá là ấn tượng
Khi công ty phần mềm dùng tiêu đề kiểu “tương lai của XYZ”, tôi thường mặc định đó là dấu hiệu họ sắp siết XYZ rất mạnh hoặc chuẩn bị khai tử nó
Theo tôi, cách tốt nhất, thậm chí có lẽ là duy nhất, để giải quyết vấn đề bảo mật plugin là sandbox với API và hệ thống quyền rõ ràng
Nhưng nếu nó không thể giao tiếp với Internet thì có lẽ cũng không phải vấn đề quá lớn
Xem thêm thì với kiến trúc JavaScript và Electron, plugin Obsidian có vẻ là những khối JavaScript chạy ở phạm vi toàn cục, có thể đọc/ghi toàn bộ hệ thống tệp trong phạm vi quyền của người dùng và cũng có thể tạo yêu cầu HTTP; có ai xác nhận giúp tôi điều này không?
Tuy vậy tôi vẫn tò mò trong hệ sinh thái này nó sẽ hoạt động tốt đến đâu. Theo kinh nghiệm của tôi, quét trên diện rộng rất dễ tạo ra false positive, tức là có CVE nhưng thực tế lại không áp dụng cho ngữ cảnh sử dụng
Vì thế cần kiến thức để diễn giải đúng kết quả quét, và điều đó có thể trở thành gánh nặng khá lớn cho maintainer
Chỉ quyền thôi thì không ngăn được một số hành vi độc hại nhất định, nên tất cả đều cần thiết
Chỉ cần xem vài bảng điểm trên trang Community là sẽ nhanh chóng thấy có những cảnh báo mà hệ thống quyền hay sandboxing không thể xử lý
Bài blog có chi tiết về cách phát hành, và vì cần thay đổi API plugin nên việc này sẽ được triển khai theo từng giai đoạn
Bảo mật và phân quyền vốn dĩ rất khó, và khi thiết kế nền tảng, đến một lúc nào đó bạn buộc phải tự hỏi liệu có đáng chấp nhận rủi ro đó để đổi lấy tính linh hoạt hay không
Lập kế hoạch cho một hệ thống an toàn tuyệt đối là chuyện vô vọng
Có lẽ một ngày nào đó tôi cũng phải học cách triển khai hệ thống tương tự cho dự án của mình
Rò rỉ dữ liệu xảy ra rất âm thầm
Nếu trước mặt tôi là cả đống lỗi và cảnh báo từ linter thì tôi phải làm gì?
Tôi muốn hiểu luồng trải nghiệm lý tưởng phía người dùng. Bảng điểm có vẻ hợp với phía nhà phát triển hơn
Quản lý dạng đóng góp cộng đồng như thế này vốn khó, nên đây có vẻ là một bước tiến lớn
Tôi cũng tò mò AI có thể đóng vai trò gì trong kiểu review tự động này. Có vẻ là một ca sử dụng khá hứa hẹn
Nếu Obsidian không phải phần mềm độc quyền thì tôi đã tự sửa rồi
Đã đến lúc ai đó làm một bản clone tương thích
.obsidian/pluginstrong vault.obsidian/plugins/thôi