Papillon開発状況:組織での共有・定期レポート・ブラウザ閲覧を実装中

木村 優志

Published: 7/20/2026, 3:00:00 AM

eye catch

Convergence Lab.で開発しているAI搭載BIツール「Papillon(パピヨン)」は、ローカルでのSQL分析やダッシュボード作成に加えて、組織内で安全に共有・運用するための機能を拡張しています。

前回の記事では、デスクトップアプリを中心に、SQLワークスペース、Text-to-SQL、可視化、Data Prepを紹介しました。今回は、2026年7月20日時点で開発中の、共有・配信・閲覧に関する機能と、その設計上の考え方をまとめます。

Papillonは現在もバージョン0.1.0の開発段階です。本記事で紹介する機能には、実装・検証を進めているものが含まれます。正式導入の前には、利用するデータベース、認証基盤、ネットワーク構成に合わせた検証が必要です。

デスクトップ分析から、組織で使うBIへ

個人がローカルで分析するだけなら、デスクトップアプリ内でデータ接続とダッシュボードを完結できます。一方、チームで同じ指標を見たり、定期的にレポートを受け取ったりするには、閲覧者の認証、ダッシュボードの配置、データアクセスの制御が必要です。

そこでPapillonでは、デスクトップアプリとは別に組織サーバー(papillon-serverを用意しています。組織ごとにワークスペースを分け、招待されたメンバーがダッシュボードを閲覧・共有できる構成です。

現在、次の機能を実装・改善しています。

  • 組織アカウントと招待:初回管理者の作成、組織の追加、メンバー招待、30日を基本とするセッション維持
  • OIDCによるSSO:既存のIDプロバイダと連携するための認証フロー
  • ダッシュボードの整理:フォルダやコレクションへの配置、検索、アクセス権の管理
  • 共有リンク:有効期限、パスワード、失効、リンクの再発行を設定できる公開リンク
  • ブラウザ閲覧:デスクトップアプリをインストールしていない利用者にも、ブラウザからダッシュボードを提供するビューア

共有リンクでは、URLのフラグメントにトークンを置く設計を採用しています。フラグメントは通常、ブラウザからWebサーバーへのリクエストに送られないため、リバースプロキシやWebサーバーのアクセスログへトークンが残るリスクを抑えられます。また、iframe埋め込みを許可する場合も、許可するHTTPSオリジンを明示的に指定する方式です。

「見せる」ための機能を、運用まで含めて作る

ダッシュボードは作成しただけでは業務に定着しません。毎朝の数値確認、異常値の通知、会議用の資料作成など、必要なタイミングで結果を届ける仕組みが必要です。

Papillonでは、サーバー側で次のようなレポーティング機能を追加しています。

  • スケジュール実行:ダッシュボードをCSVまたはPDFで定期出力
  • アーティファクト管理:出力したファイルを組織ごとに保存し、一定期間後に自動削除
  • 通知:閾値を条件にしたアラート、ダッシュボードのダイジェスト、Slack Webhookへの通知
  • クエリキャッシュ:同じ条件の可視化を繰り返し開くときの応答を改善するためのサーバー側キャッシュ

PDF出力はHeadless Chromiumを利用します。PDFのように見えるHTMLファイルを生成するのではなく、必要な実行環境が見つからない場合は明示的に失敗させる方針です。日本語の帳票では、Chromiumに加えて日本語フォントの導入も必要になります。

キャッシュも、単にSQL文字列だけで共有する設計にはしていません。組織、実行ユーザー、行レベルセキュリティで認可されたSQL、フィルター、接続先、共有範囲をキーに含めます。ダッシュボードのクエリ、ポリシー、接続設定を更新した場合や、共有リンクを失効させた場合には、関連するキャッシュを無効化します。

共有しても、データアクセスの境界を曖昧にしない

組織利用では、「誰がどのダッシュボードを開けるか」だけでなく、「どのデータ行・列を見られるか」を扱う必要があります。Papillonでは、行レベルセキュリティ(RLS)と列の制限を含むデータポリシーを実装しています。

クエリの認可処理ではSQLを文字列結合するのではなく、SQLパーサーで構文木として扱う設計です。また、通常の分析クエリは読み取り専用に制限しています。こうした基盤の上で、閲覧者や共有リンクのスコープに応じた結果だけを返すことを目指しています。

ただし、デスクトップで利用していたローカルDuckDBファイルは、そのまま組織サーバーから共有できるわけではありません。ブラウザビューアや公開リンクからクエリを実行するのはサーバーであるため、接続先のデータベースと認証情報はサーバーから到達可能である必要があります。ローカルのDuckDBを共有する場合も、同じデータファイルをサーバー側へ適切に配置・管理する必要があります。

認証情報は、デスクトップではOSのキーリング、組織接続では暗号化されたサーバーストレージに保存し、ダッシュボードのエクスポートファイルには含めない方針です。

SQL、ドラッグ&ドロップ、AIを行き来できる分析体験

共有・運用機能を拡張する一方で、分析を作る体験も改善を続けています。

SQLに慣れた利用者は、複数タブのSQLワークスペースでクエリを書き、パラメータ、履歴、保存クエリ、CSV出力を使えます。SQLを最初から書かない利用者向けには、スキーマのフィールドをColumns、Rows、Colorなどのシェルフへドラッグ&ドロップして、結合を含むSQLの候補を作るビジュアルシェルフを実装しています。

さらに、接続先ごとにフィールド名や計算メトリクスを定義するセマンティックモデルを追加しました。これは、分析者ごとに異なるSQLを量産するのではなく、指標の意味を再利用しやすくするための基盤です。Text-to-SQLでも、この定義をコンテキストとして利用できます。

Text-to-SQLはOpenAIまたはAnthropicのAPIを利用します。質問文、スキーマ、セマンティックモデルなどからSQLとチャート設定の候補を作り、生成後も人がSQLを確認・修正できるようにしています。LLMへデータ本体を送信する設計ではありませんが、質問文とスキーマ情報は外部APIに送信されるため、利用時には組織のデータ利用ルールを確認してください。

次に取り組むこと

現在の開発では、ローカルで試せるBIツールを、個人利用に閉じない形へ拡張しています。今後は、実データと実際の運用フローに合わせて、次の領域を重点的に検証・改善します。

  1. 共有・公開機能の安定化:組織、権限、公開リンク、ブラウザビューアの操作と監査しやすさを高める
  2. レポート配信の実用性:スケジュール、通知、CSV/PDF出力を業務の定例運用に合わせる
  3. データアクセス制御の検証:RLS、接続情報、キャッシュ無効化が組織のセキュリティ要件を満たすか確認する
  4. 分析作成体験の改善:セマンティックモデル、ビジュアルシェルフ、Text-to-SQLを実際の業務データで磨く

Papillonは、データを手元で扱う分析の自由度と、組織で安全に届けるための運用性を両立させようとするプロジェクトです。ローカル分析、クラウドBI、社内データ基盤の間で運用に悩みがある方は、ぜひ課題をお聞かせください。開発中の機能を実際の利用シーンに照らして改善していきます。


メールマガジンにて、Convergence Lab.のブログの更新情報をお届けしています。配信に必要なメールアドレス以外の情報は収集しておりません。

メールマガジン登録


最新の記事