世界を動かす技術を、日本語で。

オブシディアンプラグインの未来

概要

  • Obsidian Community の正式リリース発表
  • 新しい ディレクトリ開発者ダッシュボード の導入
  • 自動レビュー によるプラグインの安全性向上
  • チーム向け管理機能や今後の展望
  • よくある質問(FAQ)でユーザー・開発者の疑問に対応

Obsidian Community 新ディレクトリ&開発者ダッシュボード発表

  • Obsidian Community のローンチにより、プラグイン・テーマの新しい ディレクトリ開発者ダッシュボード を公開
  • 2020年のAPI公開以降、 4,000以上のプラグインとテーマ がコミュニティにより開発
  • プラグインの累計ダウンロード数が 1億2千万回 を突破
  • 誰でも 簡単かつ安全 にプラグインやテーマを作成・配布・発見・利用できる環境の構築を目指す
  • 今回のリリースは、今後展開される一連の新施策の第一歩

Community サイトの主な特徴

  • プラグイン・テーマを カテゴリ別 に閲覧、検索、フィルタ、並び替えが可能
    • Integrations、Bases、Chartsなど多彩なカテゴリ
    • 名前、ダウンロード数、人気度、リリース日、更新日で並び替え
  • 各プロジェクトの詳細ページで スクリーンショット安全性スコアカード を確認可能
  • 有料プラグインや公式連携には 新しいラベル を表示
  • 作者は プロフィールページ をカスタマイズ可能(スポンサーリンクやSNSリンク追加)

開発者ダッシュボード

  • Obsidian Community サイト内に新設
  • プロジェクトの 提出・管理・ステータス追跡 が容易
  • 既存プラグイン・テーマ・申請中のものは自動で新サイトに移行済み
  • GitHubアカウント連携で既存プロジェクトの 管理・新規提出・プロフィール編集 が可能

自動レビューシステムの導入

  • 全コミュニティプロジェクトに対して 自動レビュー を導入
  • セキュリティやコード品質を 全バージョン で自動チェック
  • これまでの手動レビューでは対応が困難だった 提出増加 に対応
  • Obsidian CLIなどのツールで プラグイン開発がより容易
  • 自動レビューで 開発者ポリシー準拠・ベストプラクティス・脆弱性の有無 を確認
  • 手動レビューも継続し、 人気・注目・問題報告 のあるプラグインに注力
  • 既存プラグイン・テーマも 新システムで再レビュー 済み
    • 古いガイドライン未満のものは一時的に例外扱い、今後は段階的に公式ディレクトリから削除予定

プラグインの安全性向上

  • 自動スキャン で全バージョンのコード品質とセキュリティ脆弱性をチェック
    • マルウェア検出機能も搭載
  • 開発者ダッシュボードで 詳細な提案・警告・エラー内容 を確認可能
  • 各プロジェクトに スコアカード を表示し、チェック状況を可視化
  • 今後は 開示情報・プライバシーラベル・証跡・手動レビュー結果 なども反映予定
  • プラグインの アクセス権限(ネットワーク、ファイルシステム等) を事前開示
  • 認証済み開発者ラベル の導入予定
  • ユーザーによる セキュリティ問題の報告機能 も継続

チーム向け機能

  • Obsidian利用チーム向けに 安全管理機能 を提供
  • 許可プラグインの管理や プライベートプラグインの配布 が容易に
  • 公式プラグインには Officialバッジ 申請が可能

今後の展開

  • コミュニティディレクトリ・自動レビューの改善と並行し、アプリ・APIも 発見性と安全性強化
  • コミュニティエコシステムの さらなる発展基盤 を構築
  • 新しいObsidian Communityの 利用とフィードバック を歓迎

FAQ(よくある質問)

  • ユーザーへの影響

    • 新しいCommunityサイトでプラグイン・テーマの探索が可能
    • 早期アクセスプラグインの手動インストールも不要になる場合あり
  • スコアカードの誤り

    • 誤検出があれば、Discordの#plugin-devチャンネルで報告
  • タグやラベルの誤り

    • 開発者はダッシュボードでタグ・価格を修正可能
    • Officialラベルの修正はObsidianスタッフのみ対応
  • 新規プラグイン・テーマの提出手順

    • Communityサイトにサインイン→GitHub連携→リポジトリ選択→ダッシュボード上で手順を完了
    • 提出後すぐに自動レビュー、通常数分で結果通知、合格後24時間以内にアプリで検索・DL可能
  • 既存プラグイン・テーマの引き継ぎ

    • Communityサイトにサインインし、GitHub連携でプラグインを引き継ぎ
    • タイトル、説明、スクリーンショットの更新が可能
  • ディレクトリに表示されない場合

    • エラーがあると検索不可・DL不可となるため、Communityサイトで確認・修正
  • ダッシュボード未使用での更新

    • GitHub経由での新バージョン公開は従来通り可能
    • レビュー不合格時はダッシュボードで詳細確認が必要
  • メンテナンスされていないプロジェクトの扱い

    • 開発者はメンテ継続に同意が必要
    • メンテ停止・新Obsidian未対応・譲渡なしの場合はディレクトリから削除
  • 自動レビュー不合格時の対応

    • 新規・更新時に自動レビュー必須、不合格なら24時間以内に検索不可
    • 既存承認済みは当面利用可能だが、将来的に新基準適用予定
  • 自動レビューのローカル実行方法

    • eslintプラグインでローカルチェック
    • ダッシュボードで任意ブランチ・コミットのプレビュー実行
  • 共同管理者や組織管理

    • 現状はGitHubリポジトリ所有者のみ編集可能
    • 組織リポジトリはパブリックメンバーシップで編集可
    • 近く複数コラボレーター対応予定
  • クローズドソースプラグインの扱い

    • 新規受付は停止中、既存は当面利用可能
    • 今後の審査体制次第で方針検討
  • ダッシュボード利用に必要なアカウント

    • Obsidianアカウントが必須
  • GitHub以外の対応予定

    • 現状はGitHubのみ、今後他プラットフォームも検討
  • GitHubログイン時の情報共有範囲

    • ユーザー名と公開リポジトリ一覧のみ、リポジトリ所有確認のみに利用
  • 有料/オプション課金プラグインの定義

    • Obsidian Community自体はストア機能なし
    • 開発者は外部決済(ライセンスキー・APIキー等)を利用可能
    • 無料:一切の支払い不要、寄付・スポンサーリンクは可
    • オプション課金:追加機能や有料API接続あり、無料枠でも有料サービス連携ならこの区分
    • 有料:基本機能利用に支払い必須(無料トライアルのみも含む)
  • 新ディレクトリ・ダッシュボードでのトラブル対応

    • 問題があればDiscordの#plugin-dev、#theme-devチャンネルへ連絡

この新しいObsidian Communityは、コミュニティの活性化と安全性向上を同時に実現する基盤です。開発者・ユーザー双方にとって、より使いやすく安心な環境の提供を目指しています。

Hackerたちの意見

自動チェックがプラグインが悪意のあるものかどうかを確実に評価できるとは思えないな。プラグインのセキュリティ問題を解決するには、明確なAPIと権限システムを使ってちゃんとサンドボックス化するのが一番(唯一?)の方法だと思う。

もちろん、これは既存のプラグインとは互換性がないから、レガシープラグインと新しいプラグインを分けて、レガシープラグインのインストールにはかなりの手間をかけるべきだね。いつかは廃止されるからね。

ブログ記事を読んでみたけど、自動スキャンに加えて権限システムやチーム向けのコントロールが計画されてるみたい。権限だけでは特定の悪意のある行動を解決できないから、これらは必要だよ。コミュニティサイトのスコアカードを見れば、なぜいくつかの警告が権限システムやサンドボックスでは捕まえられないかすぐにわかると思う。ブログには導入の詳細が書かれてるけど、プラグインAPIの変更が必要だから段階的に進めるみたい。

Podman/Linuxには権限システムを持つAPIがあるけど、それでも「Copy Fail」が起きちゃったよ。セキュリティと認可は本当に難しいし、プラットフォームを設計する時には、柔軟性のためにリスクを取る価値があるのか自問自答しなきゃいけない。完璧に安全なシステムを計画するのは無理な提案だよ。

個人的には、これは時代遅れな見方だと思う。既存の開発者プラットフォームは静的なヒューリスティックや能力ベースの権限システムに頼らざるを得なかったけど、今はAIがスケールで動けるから、以前は不可能だったユーザーに優しくない意図を浮き彫りにできるようになった。権限システムは厳密な制限には確かに役立つけど、AIのレビューはもっと詳細を引き出せるよ(実際にネットワークを通じて送信されるものの種類とかね)。

これはファーストパーティのマルウェアには何も対処できないけど、依存関係がどれだけ最新の状態に保たれているか、既知のCVEが含まれているかを評価するのには大いに役立つよ。例えば、TrivyやArtifacthubがやってるのと同じようにね。ただ、実際にエコシステムでどれだけうまく機能するのかは気になるところ。私の経験では、全体スキャンは誤検知を生む可能性が高いから(CVEが存在するけど、その文脈には当てはまらない)、スキャン結果を正しく解釈するためには専門知識が必要で、それがメンテナーの負担を増やすことにもつながるんだ。

サンドボックス?いいね、今やプライベートノートを読むプラグインがサンドボックス内で動いて、そこからノートを送信するってことだね。

プラグインが悪意のあるものかどうかを確実に評価する必要はないんだ。チェックはフィルターみたいなもので、基準(自動化可能な)をクリアしたプラグインだけ手動レビューを適用できるようにしてるんだよ。

「プラグインのセキュリティ問題を解決する最良(唯一?)の方法は、明示的なAPIと権限システムでしっかりとサンドボックス化することだと思う。特に、私のプライベートデータに触れないようにしたい(つまり、Obsidianプラグインの目的はドキュメントを読み書きすることだから)。でも、インターネットに接続できなければ、あまり問題はないと思う。編集:どうやらJSとElectronの仕組みのせいで、Obsidianプラグインはグローバルスコープで動くJSの塊で、ユーザーの権限に制限されながらもファイルシステム全体を読み書きできて、HTTPリクエストもできるらしい?誰かこれを確認してくれませんか?

知らない人もいるかもしれないけど、新しいプラグインを提出するのがほぼ不可能だったんだ。手動レビューがあって、AIでプラグインを書くのが簡単で楽しいからね。開発者コミュニティはますますフラストレーションを感じていて、チームは負担に押しつぶされそうになってた。だから、チームにはおめでとう!これは大きなスケーリングのボトルネックを解消することになるね。みんながどのように構築してスケールしていくのかを見るのは本当にクールだよ。

何かおすすめのクールなプラグインある? OneNoteから移行して、やっと使いこなせるようになってきたところなんだ。

プラグインをローカルにインストールしやすくしてほしいな。フォルダにコピー&ペーストするだけで済むように。自分で変更したいけど、Obsidianがプロプライエタリソフトだから無理だし。誰か互換性のあるクローンを作ってくれないかな。

ほんとに、.obsidian/plugins/ フォルダにペーストするだけだよね…

まさにその通り。プラグインは、あなたのボールト内の .obsidian/plugins フォルダにコピーできるフォルダに過ぎないんだ。

このアップデートを見るのは嬉しい!こういうコミュニティの貢献を管理するのは大変だよね。素晴らしい進展があるみたい。

すごくクールだね。でも、ウェブサイトがダークモード専用なのは残念。乱視の人には読みづらくなっちゃうよ。

でも、すごく珍しい乱視なのかな?30年以上持ってるけど、全然苦労せずに完璧に読めるよ。

それはObsidianが黒いからだよ。でも、近いうちにライトモードを追加する予定だよ :)

Firefoxのリーダーモードは、白い背景に黒い文字を一クリックで表示できるよね。他のブラウザも同じ機能があるんじゃないかな。

ここにObsidianのCEOがいます。新しいコミュニティサイトとレビューシステムを立ち上げるために、ほぼ1年かけてきました。この初版にとてもワクワクしていますが、まだまだ改善点はたくさんあります。ブログ記事、FAQ、今後のロードマップについては詳しく説明したつもりですが、きっと何かを忘れていると思うので、気軽に質問してください!これはいくつかの理由で非常に挑戦的なプロジェクトでした。私たちはたった7人ですが、何千人ものプラグイン開発者と何百万ものユーザーがいます。バランスを取るべき競合する優先事項がたくさんあります。新しいシステムが採用しやすく、後方互換性があり、みんなのワークフローを完全に壊さないようにしつつ、古いアプローチよりも大きな改善をもたらし、プラグインのセキュリティと発見性を徐々に向上させることができるようにしたいと思っていました。まだ進行中の作業と考えてください。みんなのアイデアや不満を聞いていて、これからも改善を続けていきます :)

Obsidianチームの素晴らしい仕事だね! Obsidian Syncのユーザーを続けるのが楽しみだし、コミュニティのプラグインをもっと使いこなせるようになるのが待ち遠しいよ。みんな、本当に素晴らしい仕事してるね。

発表おめでとう! 自動スキャンシステムが、内部や人間のレビューのためにスコープの拡張やネットワークドメインアクセスをフラグするかどうか気になるな。例えば、ユーザーが提供したOpenAIキーで「url="api.openai.com"+path」にアクセスするって言ってるAI要約プラグインはすごく一般的になるだろうし、コミュニティがここで何を作るのかワクワクしてる! でも、そのプラグインが「ユーザー」に任意のエンドポイントをOpenAI互換APIとして選ばせる更新をしたら、どうやってそれが悪意のある更新じゃないか確認するの? スキャンをバイパスするネットワークの出口を作るために、その柔軟性を悪用する可能性があるかもしれないし、悪意のあるエンドポイントで事前に埋め込まれるかもしれないよね。

プラグインを使ったプロジェクトがいくつかあって、「レビュー済み」メカニズムを導入しようかなって考えたこともあるんだ。特定のバージョンをレビュー済みで信頼できるってマークするやつね。自分が躊躇している理由の一つは(大きな時間的コミットメントを除いて)、人々がそのレビュー過程に依存するようになって、もしそのプロセスが難読化された脆弱性を見逃したら、その後の攻撃の責任をプロジェクトが負わされるんじゃないかっていう恐れなんだ。これについてどう考えてる? 自分にとっては、Debian/Ubuntuのアプローチ(彼らのレジストリのすべてが厳しくレビューされている)と、PyPI/npmのアプローチ(レビューの保証がまったくない)との違いのように感じるんだ。

すごい!!これを試すのがめっちゃ楽しみ。素晴らしい仕事だね。

やっと!Obsidianを試して、データテーブルが組み込まれてなくて、フルアクセスのプラグインだって知ったとき、すぐにObsidianを削除したよ。でも、たった7人なの?クレイジーだね :D

ディスクロージャーのところで「プラグインは1つの外部ドメインにリクエストを送るかもしれません」ってあるのが好き。クリックするとドメインが表示されるんだよね:「github.com」。素晴らしい仕事! https://community.obsidian.md/plugins/zotlit からの例だね。

これがプラグインの利用可能性を減らさないなら(特に自分のための selfhosted-livesync)、いい感じだね。自動レビューにAIが役立つ場面があるのかな? すごく期待できる使い道だと思う。

とても興味深い。これは、小さなチームでも自動プラグインレビューが実現可能だという現実の証拠だね。いつか、自分のプロジェクトでも似たようなシステムを実装する方法を学ばなきゃ。

どうなるか様子見かな。これは猫とネズミのゲームで、ネズミの方がずっと賢いよ。データの流出は静かに起こるからね。

消費者として、スコアカードにどうやって関わればいいの? たくさんのエラーやリンターワーニングのリストを見せられても、どうしたらいいのか分からないよ。ユーザー側の理想的な流れはどんな感じ? スコアカードは開発者側では素晴らしいみたいだけど。

Obsidianは使ってないんだけど、タイトルを見たときに、企業が認めたプラグインの小さいセットに制限されるんだろうなって思った。ソフトウェア会社の「XYZの未来」ってタイトルは、XYZを厳しく制限するか、XYZをシャットダウンする準備をしてるって期待しちゃうよね!

いつこの「エンシティフィケーション」が明らかになるのか気になってた。