Grist について
Gristは、チームで構造化データを管理するためのリレーショナルスプレッドシート兼データベースです。MCPサーバーを使うと、エージェントがチームサイトやドキュメントのレコードを検索・編集し、ドキュメントやテーブルを作成できます。
主な機能
- 01サイトやドキュメント横断のレコード検索
- 02行の追加と更新
- 03ドキュメントとテーブルの作成
- 04Python数式対応のリレーショナルシート
活用シーン
- 01チームのドキュメントからレコードを検索
- 02エージェント経由で行を更新
- 03新しいドキュメントやテーブルを作成
- 04構造化データに数式を適用
MCP 対応
MCPサーバーは、レコードの一覧表示や検索、行の編集、ドキュメントやテーブルの作成などのGrist操作をMCPクライアントに公開します。説明では、共通URLとOAuth 2.0を使用するとされています。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://docs.getgrist.com/api/mcpclaude mcp add --transport http grist-core https://docs.getgrist.com/api/mcp{"mcpServers":{"grist-core":{"type":"http","url":"https://docs.getgrist.com/api/mcp"}}}Cursor で開く{"servers":{"grist-core":{"type":"http","url":"https://docs.getgrist.com/api/mcp"}}}VS Code で開く{"mcpServers":{"grist-core":{"type":"http","url":"https://docs.getgrist.com/api/mcp"}}}{"mcpServers":{"grist-core":{"serverUrl":"https://docs.getgrist.com/api/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
Grist
Grist はモダンなリレーショナルスプレッドシートです。スプレッドシートの柔軟性と、データベースの堅牢性を兼ね備えています。
grist-core(このリポジトリ – Grist Community edition とも呼ばれます) には、スプレッドシートをホストするための強力なサーバーを実行するために必要なものが含まれています。grist-desktopは、ローカルに保存されたスプレッドシートを表示・編集するための Linux/macOS/Windows デスクトップアプリです。grist-staticは、バックエンドサポートなしでウェブサイト上にスプレッドシートを表示するための、完全にブラウザ内で動作する Grist のビルドです。
Grist は、ニューヨーク市に拠点を置く企業である Grist Labs によって開発されています 🇺🇸🗽。フランス政府 🇫🇷 の組織である ANCT Données et Territoires と DINUM (Direction Interministérielle du Numérique) も、コードベースに多大な貢献をしています。
grist-core、grist-desktop、grist-static の各リポジトリはすべてオープンソースです (Apache License, Version 2.0)。Grist Labs は、追加機能 を備えた Grist のエディションを販売しています。また Grist Labs は、getgrist.com で無料および有料のホスト型サービスを提供しており、クラウドパッケージ も用意しています。
質問はありますか?フィードバックはありますか?Grist で何を作っているか共有したいですか?公式 Discord サーバー にご参加いただくか、コミュニティフォーラム をご覧ください。
最新の情報を入手し続けるには、Grist の月次ニュースレターにご登録ください。
https://github.com/user-attachments/assets/fe152f60-3d15-4b11-8cb2-05731a90d273
grist-core の機能
grist-core に何が含まれているかを正確に確認するには、デスクトップアプリ を実行するか、docker を使用してください。Grist を試す最も手っ取り早い方法は、docs.getgrist.com にアクセスして、そこで早速スプレッドシートを操作してみることです – ただし、その場合は grist-core には含まれていない 追加機能 のリストをお読みください。
どの方法で試しても、Grist がデータベースとスプレッドシートのハイブリッドであることがすぐにわかるでしょう。つまり:
- 列はデータベースと同じように機能します。列には名前が付けられ、1 種類のデータを保持します。
- 列はスプレッドシート形式で数式によって埋めることができ、参照先のセルが変更されると自動的に更新されます。
この違いは、Excel や Google Sheets から直接来た人を戸惑わせるかもしれません。ぜひ試してみてください! また、理解を助けるために Grist for Spreadsheet Users という記事も用意されています。Airtable から来た方には、このモデルは馴染み深いものに感じられるでしょう (直接比較した Grist vs Airtable という記事もあります)。
以下は、Grist の具体的な機能ハイライトです (🇫🇷 はフランス政府による多大な貢献を示します):
- Python の数式。
- Python の構文が完全にサポートされており、標準ライブラリも利用できます。
- 多くの Excel 関数も利用できます。
- 数式生成に特化して調整された AI 数式アシスタント(OpenAI、Llama、および OpenRouter や OpenAI 互換のエンドポイントを介したその他多くのモデルで動作します)。
- 遅い数式を診断するための数式タイマー。
- ポータブルで自己完結型のフォーマット。
- 最も広くデプロイされているデータベースエンジンである SQLite をベースにしています。
- SQLite を読み取れるツールであれば、Grist ファイルから数値データやテキストデータを読み取ることができます。
- 安心して完全に復元できるバックアップを可能にします。
- 異なるホスト間での移動に最適です。
grist-staticを使えば、特別なサーバーなしで静的ウェブサイト上に表示できます。- ローカルで閲覧・編集するための自己完結型デスクトップアプリ:
grist-desktop。 - 便利な編集・書式設定機能。
- ドラッグ&ドロップのダッシュボード。
- 可視化のためのグラフ、カードビュー、カレンダーウィジェット。
- グループごとに合計・集計するためのサマリーテーブル。
- ウィジェットのリンクにより、データのフィルタリングと編集を効率化できます。 Grist は可視化に対して独自のアプローチをとっており、混在した素材を 1 つのテーブルに詰め込むことなく、 個別のウィジェットをレイアウトしてリンクし、一緒に表示できます。
- 素早い絞り込みと切り分けのためのフィルターバー。
- ウィジェットを複製して、ビューのバリエーションをすばやく作成できます。
- ドキュメントを比較して、変更点を確認できます。
- 増分インポート。
- 銀行の過去 3 か月の利用明細の CSV をインポートして...
- ...1 か月後に、手間や重複なしに新しい利用明細をインポートできます。
- ネイティブフォーム。手間をかけずにスプレッドシートに直接データを取り込むフォームを作成できます。
- ファイル添付、非表示フィールド、URL パラメータによる事前入力に対応しています。
- 連携。
- インタラクティブな API コンソールを備えた REST API、Zapier のアクション/トリガー、および類似のインテグレーターによるサポート。
- Google Drive、Excel 形式、CSV へのインポート/エクスポート。Airtable からの直接インポート。
- 外部でホストされるカスタムウィジェットでデータをリンクできます。
- 設定可能な送信ウェブフックで、認証ヘッダー、列固有のトリガー、数式条件をサポートします。
- きめ細かな API アクセスのためのサービスアカウント(🇫🇷)。
- 標準的なユーザーとグループのプロビジョニングのための SCIM(🇫🇷)。
- 投資リサーチから宝探しの整理まで、始めるのに役立つ多数のテンプレート。
- アクセス制御のオプション。
- (これらのオプションを利用するにはログインの設定が必要です — ログインを参照してください)
- 個々のドキュメント、ワークスペース、またはチームサイトを共有できます。
- 個々の行、列、テーブルへのアクセスを制御できます。
- セルの値とユーザー属性に基づいてアクセスを制御できます。
- コラボレーション。
- 自己運用可能。
- イントラネット運用や特定のコンプライアンス要件に役立ちます。
- 独自の認証サーバーを運用せずに簡単に認証するための getgrist.com でのサインイン。
.gristファイルを小さく保つために、添付ファイルを外部の S3 互換ストレージに保存できます(🇫🇷)。- 制限の厳しいネットワーク環境で WebSocket の代替としての HTTP ロングポーリング(🇫🇷)。
- 信頼できないドキュメントのためのサンドボックスオプション。
- 多くの言語に翻訳されています(🇫🇷)。
- WCAG レベル AA の要件を満たすハイコントラストテーマ(🇫🇷)。
- スクリーンリーダーや、グリッドビュー、メニュー、ページウィジェットピッカー全体のキーボードナビゲーションを含むアクセシビリティのサポート(🇫🇷)。
F1キーで簡単なヘルプが表示されます。これは今さら言うまでもないことですが、一般的に Grist は優れたキーボードサポートを備えています(🇫🇷)。- 𝕏 または Twitter などで進捗を投稿し、月刊ニュースレターを発行しています。 Grist がどこへ向かっているのかに興味がある場合は、ロードマップをご覧いただくか、フォーラムで質問を投稿するか、豊富なドキュメントを閲覧してください。
grist-core に含まれない機能
getgrist.com のホスト版を使用して Grist を評価する場合は、grist-core には存在しないいくつかの機能が含まれていることにご注意ください。grist-core に含まれている内容を正確に確認するには、デスクトップアプリを実行するか、dockerを使用してください。
以下は、Grist のフルエディションで利用可能であり、grist-core には含まれない機能の一覧を、作成された時系列順に示したものです。セルフホストの場合、管理パネルで Grist のフルエディションを選択することで、これらすべての無料トライアルにアクセスできます。Grist のフルエディションは、個人および年間総資金が 100 万米ドル未満の小規模組織に対して無料です。詳細はこちらをご覧ください。
- GristConnect(2022年)
- Discourse がそのログインを利用できるようにするプラグインを持つサイト(WordPress など)であれば、Grist もそのログインを利用できるようにできます。
- GristConnect は、特定のクライアント向けに作られたニッチな機能であり、おそらく気にする必要はありません。
- ドキュメントストレージ用の Azure バックエンド(2022年)
grist-coreでは、ドキュメントのバージョンを S3 互換の任意のストレージに保存でき、多くのサービスをカバーできますが、Azure に特化したものではありません。Azure バックエンドはその隙間を埋めるものです。- Microsoft を中心に利用しているのでなければ、おそらく気にする必要はありません。
- 監査ログストリーミング(2024年)
grist-coreでは多くの有用な情報がログに記録されますが、監査を意識して整理されているわけではありません。監査ログストリーミングはその整理と、設定のための UI を提供します。- エンタープライズでは気にするかもしれません。
- 高度な管理者コントロール(2025年)
- これは、Grist インストールの管理者がリソースへのユーザーアクセスを監視・編集するための特別なページです。
grist-coreには存在しない、特別な管理用エンドポイントのセットを使用します。- 従業員の出入りがある大規模な Grist インストールを運用する予定であれば、気にするかもしれません。
- Grist アシスタント(2025年)
- 数式の扱いに限定された AI 数式アシスタントは
grist-coreにも存在しますが、新しいアシスタントはテーブルやダッシュボードの構築、スタイルや書式の設定、アクセスルールの説明、データの変更など、より幅広いタスクを支援できます。 - ドキュメントの構築やデータの扱いに助けを必要とするユーザーが多い場合は、これを気にするかもしれません。
- 数式の扱いに限定された AI 数式アシスタントは
- 招待通知(2025年)
- ユーザーがメール通知付きでドキュメント、ワークスペース、またはサイトに追加されると、そのリソースにアクセスするためのリンクがメールで送信されます。
- このリンクは特別なものではなく、
grist-coreでは自分自身または同僚にリンクを送るだけで済みます。 - 緊密に連絡を取り合っていないユーザーがいる大規模な Grist インストールでは、メールがあると便利かもしれません。これを気にするかどうかは判断が難しいところです。
- ドキュメントの変更とコメントの通知(2025年)
grist-coreでも webhook を使って変更通知を実現できますが、あまり便利ではありません。- これは何年も前から要望されている機能です。上司に Grist の費用を払ってもらう口実が必要なら、これがついにうまくいくかもしれません。
- 自動化(2026年)
- ドキュメントのオーナーがトリガー駆動のワークフローを構築するためのツールです。任意のテーブルに条件を設定し、行が一致したときにメール(動的な宛先と Markdown に対応)を送信したり webhook を発火させたりして、その結果を配信ログで確認できます。
grist-coreでも webhook を使って同様のフローを構築できますが、メール送信側と監視は自分で組み上げる必要があります。
- OAuth アプリ(2026年)
- OAuth アプリケーションを登録・認可し、特定の組織、ワークスペース、またはドキュメントにスコープを限定し、後からそのアクセスを確認または取り消すことができます。
- 完全な API キーを渡す代わりに、スコープが限定され取り消し可能なアクセスで外部ツールに Grist への接続を許可する方法です。Grist を他のソフトウェアに接続する場合、API キーの代替としてこれを気にするかもしれません。
- MCP サーバー(2026年)
- Claude や ChatGPT などの AI クライアントが JSON-RPC 経由で Grist ドキュメントを読み取り・編集できるようにする、組み込みの Model Context Protocol エンドポイントです。
GRIST_MCP_ENABLEDで有効化します(環境変数を参照)。 grist-coreでも、REST API を通じて Grist と通信する多くのコミュニティ製 MCP サーバーのいずれかを使用できます。組み込みサーバーはその手間を省きます。
- Claude や ChatGPT などの AI クライアントが JSON-RPC 経由で Grist ドキュメントを読み取り・編集できるようにする、組み込みの Model Context Protocol エンドポイントです。
- OIDC または SAML によるシングルサインオン(SSO)(2026年)
Grist の使用
お使いのコンピューターで Docker を使って grist-core のデフォルトバージョンを実行するには、次のようにします。
docker pull gristlabs/grist
docker run -p 8484:8484 -it gristlabs/grist
その後、ブラウザーで http://localhost:8484 にアクセスします。
まったく新規のインストールでは、管理者メールアドレスの選択、サインイン方法の選択、サイトを利用できるユーザーの設定を順に案内する クイックセットアップ ページが表示されます。最初の画面を通過するには、コンテナーの起動ログで生成されたブートキーを含む行を探し、求められたときに入力してください。クイックセットアップの最後で Apply and go live! をクリックすると、サイトが利用可能になり、ドキュメントの作成、編集、インポート、エクスポートができるようになります。手順を追った説明は 初回セットアップ にあります。
クイックセットアップを完全にスキップして、オープンなシングルユーザー構成で開始したい場合は、GRIST_IN_SERVICE=true を設定します。後から 管理パネル で同じ設定に戻ることができます。
Docker の実行をまたいで作業内容を保持するには、ディレクトリを /persist として共有します。
docker run -p 8484:8484 -v $PWD/persist:/persist -it gristlabs/grist
給与計算、在庫管理、請求書発行、D&D の遭遇管理などに対応するテンプレートは templates.getgrist.com で入手できます。また、docs.getgrist.com で作成した任意のドキュメントを使用することもできます。
Grist が実行されるポートを変更する必要がある場合は、ポートマッピングを変更するのではなく、PORT 変数を設定してください。
docker run --env PORT=9999 -p 9999:9999 -v $PWD/persist:/persist -it gristlabs/grist
gVisor サンドボックス化を有効にするには、--env GRIST_SANDBOX_FLAVOR=gvisor を設定します。これはデフォルトの Docker 設定で動作するはずですが、すべての環境で動作するとは限りません。
Grist の設定、認証のセットアップ、公開サーバーでの実行については、セルフマネージド Grist のドキュメントでさらに多くの情報を確認できます。
モデル非依存および Claude サポートのための OpenRouter と Grist の併用
(手順は @lshalon による提供)
Grist の AI Formula Assistant は、OpenAI に直接接続する代わりに OpenRouter を使用するように設定できます。これにより、Anthropic の Claude モデルを含む幅広い AI モデルにアクセスできます。これは Claude モデルを使用する唯一の方法ではありませんが、Grist で Claude モデルを使用したい場合や、より安価、高速、あるいはより新しいモデルを使用する予定がある場合に適した選択肢です。この設定により、数式生成のニーズに最適な AI モデルを選択する柔軟性が高まるからです。 OpenRouter 連携をセットアップするには、次の環境変数を設定します。
必須: エンドポイントを OpenRouter の API に設定する
ASSISTANT_CHAT_COMPLETION_ENDPOINT=https://openrouter.ai/api/v1/chat/completions
必須: OpenRouter の API キー
ASSISTANT_API_KEY=your_openrouter_api_key_here
OpenRouter の API キーは https://openrouter.ai/ でサインアップしてください。
任意: 使用するモデルを指定する(以下の例)
ASSISTANT_MODEL=anthropic/claude-3.7-sonnet
または次のような他のオプション
ASSISTANT_MODEL=deepseek/deepseek-r1-zero:free
ASSISTANT_MODEL=qwen/qwq-32b:free
ASSISTANT_MODEL=mistralai/mistral-saba
任意: フォールバック用により大きなコンテキストのモデルを設定する
ASSISTANT_LONGER_CONTEXT_MODEL=anthropic/claude-3-opus-20240229
この設定により、Grist の AI Formula Assistant は OpenRouter 経由で指定したモデルにリクエストをルーティングします。これにより、次のことが可能になります。
コンテキストの理解と正確な数式の生成に優れた Anthropic の Claude モデルにアクセスする Grist の設定を変更せずに異なる AI モデルを切り替える OpenRouter のルーティング機能を活用して、コスト、速度、品質を最適化する
利用可能なモデルとその識別子は OpenRouter のウェブサイトで確認できます。 注: OpenRouter を使用するときは、OpenRouter の設定を上書きしてしまうため、OPENAI_API_KEY 変数を設定しないようにしてください。
利用可能な Docker イメージ
デフォルトの Docker イメージは gristlabs/grist です。これには Grist Community エディションのすべての機能に加えて、Grist のフルエディション用の追加拡張機能が含まれています。これらの拡張機能は、自由またはオープンソースのライセンスの下にはありません。これらの拡張機能は、管理パネルでエディションが「Full Grist」に設定されている場合にのみ有効になり、「Community Grist」に設定されている場合は不活性で無効になります。
自由でオープンソースのコードのみを含むイメージを使用したい場合は、その目的のために gristlabs/grist-oss Docker イメージが利用可能です。これは、エディションが「Community Grist」に設定された gristlabs/grist イメージと機能的に同等です。
管理パネル
管理パネルでは、インストールの検査と調整を行えます。ヘルスプローブの確認、いくつかの設定の変更、機能の切り替えなどが可能です。Grist サーバーの /admin にアクセスすると見つかります。まだインストール管理者としてサインインしていない場合、パネルはブートキーログインを促し、そこからキーを貼り付けることができます。
新規インストールではブートキーが自動的に生成され、起動時にコンテナログに出力されます。次のような行に注目してください:
BOOT KEY: <random-string>
独自のブートキーを選びたい場合は、GRIST_BOOT_KEY を設定してください:
docker run -p 8484:8484 -e GRIST_BOOT_KEY=secret -it gristlabs/grist
パネルはよくある問題のためのプローブを収集します。カバーされていない問題に遭遇した場合は、 BootProbes にプローブを追加するか、他の誰かが対応できるように issue を登録してください。
ソースからのビルド
Grist をソースからビルドするには、次の手順に従ってください:
yarn install
yarn install:python
yarn build
yarn start
# Grist は http://localhost:8484/ で利用可能になります
デフォルトでは、ビルドは フル エディションです: yarn install は、管理パネルから Grist のフルエディションに切り替えたときにのみ有効になるオプションの拡張機能を(ext ディレクトリに)ダウンロードします。これにより、ビルドに非 OSS のコードが追加されることに注意してください。
ビルドに拡張機能を含めないようにしたい場合、手順は次のとおりです:
yarn run set-community-edition
yarn install:python
yarn build
yarn start
# Grist は http://localhost:8484/ で利用可能になります
管理パネルでフル Grist エディションと Community エディションを切り替えることができます。
Grist を初めて起動すると、新しい Docker インストールと同様にクイックセットアップページが表示されます。ブートキーについては yarn start を実行したターミナルを確認してください。ハッキング中にクイックセットアップをスキップしたい場合は、GRIST_IN_SERVICE=true を付けて実行してください。
ドキュメント内の Grist の数式は、お使いのマシン上で直接実行される Python を使用して実行されます。GRIST_SANDBOX_FLAVOR 環境変数を使用してサンドボックス化を設定できます。
- macOS では、
export GRIST_SANDBOX_FLAVOR=macSandboxExecはサンドボックス化にネイティブのsandbox-execコマンドを使用します。 - gVisor の runsc がインストールされた Linux では、
export GRIST_SANDBOX_FLAVOR=gvisorが選択肢になります。 - Windows を含む任意の OS では、
export GRIST_SANDBOX_FLAVOR=pyodideが利用可能です。
これらのサンドボックス化の方法は、Grist Labs での私たち自身の使用のために書かれたものであり、 お客様自身の環境で動作させるには調整が必要な場合があります。ここでのプルリクエストは 大歓迎です!
ログイン
git と同様に、Grist にはドキュメントのリビジョン履歴を追跡する機能があります。そのため、完全な操作を行うには、Grist はドキュメントを変更しているユーザーが誰であるかを知る必要があります。それが判明するまでは、限定された匿名モードで動作します。
サインインを設定する最も簡単な方法は、新規インストール時に表示されるクイックセットアップページです。短いメニューから管理者メールアドレスと認証方法を選択できます。詳細な手順については、初回セットアップを参照してください。これらの同じ設定には、後から管理パネルで再度アクセスできます。
サインインをまったく設定したくない場合は、単一のデフォルト ID で実行できます。GRIST_DEFAULT_EMAIL を設定すると、「サインイン」ボタンによって作業がそのアドレスに帰属されます:
docker run --env GRIST_DEFAULT_EMAIL=my@email -p 8484:8484 -v $PWD/persist:/persist -it gristlabs/grist
名前は、ユーザーメニューの プロファイル設定 で変更できます。
マルチユーザー運用の場合、またはパブリックインターネット経由で Grist にアクセスしたい場合は、シングルサインオンサービスに接続する必要があります。getgrist.com でのサインインと転送認証はすべてのエディションで利用可能です。OIDC または SAML を介して独自の ID プロバイダーに直接接続することは、アクティベーションキーがあれば完全にサポートされています。Grist は Authentik、Auth0、および Dex を介した Google/Microsoft サインインでテストされています。
翻訳
翻訳の管理には Weblate を使用しています。協力してくださっているすべての方に感謝します。特に、アプリケーションの大部分をローカライズ可能にするという大変な作業を行った ANCT の開発者に感謝します。Merci beaucoup !
なぜ無料のオープンソースソフトウェアなのか?
このリポジトリ grist-core は Grist Labs によって維持されています。getgrist.com で提供している主力製品は、ここにあるコードと、多数のユーザーへのスケールや課金処理などを目的としたビジネス固有のソフトウェアを組み合わせて構築されています。
Grist Labs はオープンコア企業です。Grist のホスティングをサービスとして提供しており、無料プランと有料プランがあります。また、大規模なセルフマネージド環境を持つ企業のニーズを対象に、独自ライセンスを用いて Grist に関連する機能を開発・販売しています。
私たちはデータポータビリティと自律性を重要な価値と考えており、grist-core はその不可欠な要素です。私たちは grist-core のコードベースを維持・改善し、独自提供の機能がデータポータビリティと自律性に与える影響について十分に配慮することに尽力しています。
ソースコードを公開し、OSI 承認の無料ライセンスを提供することで、Grist はユーザーに次のような利益をもたらします:
- 開発者コミュニティ。 ソースコードを調査し、バグを修正し、新機能を開発する自由は、汎用の表計算のような製品にとって大きな意味を持ちます。そこでは、どこかの誰かにとって vital な機能が非常に長い裾野を形成しています。
- 信頼の向上。 誰でもソースコードを調査できるため、“隠すことによるセキュリティ” は選択肢になりません。コード内の脆弱性は、損害を引き起こす前に他者が発見し報告できます。
- 独立性。 Grist はオープンソースでセルフホスト可能なため、Grist Labs のビジネスの浮き沈みに関わらず利用できます。私たちのホスト型ソリューションの利用は便利ですが、囲い込みはありません。
- 価格の柔軟性。 資金は乏しいが時間を投資できる場合、セルフホスティングは優れた選択肢です。また、DIY ユーザーは技術的な知識とモチベーションを持ち、深く掘り下げて改善を行うことができ、それは Grist のすべてのユーザーに利益をもたらします。
- 拡張性。 開発者にとって、ソースが公開されていることで拡張(カスタムウィジェット など)を構築しやすくなります。Grist をパイプラインにより簡単に組み込めます。また、機能が不足している場合は、ソースコードを取得してその上に構築するだけです。
Grist Labs の歴史と原則の詳細については、私たちについて ページをご覧ください。
スポンサー
レビュー
- ProductHunt の Grist
- AppSumo の Grist(ライフタイムディールは完売)
- Capterra、G2、TrustRadius
環境変数
Grist はさまざまな方法で設定できます。以下は、Grist が影響を受ける主な環境変数です:
| 変数 | 目的 |
|---|---|
| ALLOWED_WEBHOOK_DOMAINS | webhook で使用を許可するドメインのカンマ区切りリスト(例: webhook.site,zapier.com)。これを * に設定するとすべてのドメインを許可できますが、その場合は、ユーザーを完全には信頼していないなら、慎重にロックダウンされたプロキシを使用することをおすすめします(GRIST_PROXY_FOR_UNTRUSTED_URLS を参照)。そうしないと、内部ネットワーク上のサービスが操作に対して脆弱になる可能性があります。 |
| APP_DOC_URL | ブラウザーがこの doc worker に到達するために使用すべき URL。マルチサーバー構成で GRIST_FLEET を使用していない場合、すべての doc worker はそれぞれ固有の公開 URL でブラウザーから到達可能でなければなりません。それらを自動的に割り当てるために GRIST_ROUTER_URL を使用していない場合、実際には APP_DOC_URL を設定する必要があります。設定する場所がどこであれ、worker ごとに異なる値でなければなりません。これはクライアントがドキュメントを保持する worker に到達するための方法であり、また APP_DOC_INTERNAL_URL が未設定の場合は他のサーバーがそこに到達するための方法でもあるからです。単一のフロントエンドの背後では、これは worker ごとのパスを意味します。たとえば https://grist.example.com/dw/worker-1 のようになります。これを GRIST_FLEET と同時に設定すると、起動時に拒否されます。fleet はクライアントを、クライアントが到達したサーバー経由でルーティングし、この値を使用しないためです。 |
| APP_DOC_INTERNAL_URL | APP_DOC_URL と同様ですが、他のサーバーが内部ドメイン名解決(Docker 環境など)を用いてこのサーバーに到達するために使用します。この値を doc worker で定義することだけが意味を持ちます。デフォルトは APP_DOC_URL です。両方とも未設定の場合、アドレスは GRIST_HOST から、またはこのサーバーが Redis に到達するインターフェースから導出されます。同じホストを共有する worker はパスによって区別でき、この URL から導出される id にはそれが含まれます。 |
| APP_HOME_URL | home API の URL プレフィックス(home サーバーと doc サーバーで必要) |
| APP_HOME_INTERNAL_URL | APP_HOME_URL と同様ですが、home サーバーと doc サーバーが内部ドメイン名解決(Docker 環境など)を用いて任意の home worker に到達するために使用します。デフォルトは APP_HOME_URL |
| APP_STATIC_URL | 静的リソースの URL プレフィックス |
| APP_STATIC_INCLUDE_CUSTOM_CSS | 静的ページに custom.css(APP_STATIC_URL から)を含めるには "true" に設定します |
| APP_UNTRUSTED_URL | プラグインのコンテンツを配信/想定する URL。 |
| GRIST_ACTION_HISTORY_MAX_ROWS | プルーニング前に ActionHistory で許可される最大行数(最大 1.25 の猶予係数まで)。デフォルトは 1000。Work on a copy 機能が正常に動作しなくなる可能性があるため、低すぎる値には注意してください ⚠️ |
| GRIST_ACTION_HISTORY_MAX_BYTES | プルーニング前に ActionHistory で許可される最大行数(最大 1.25 の猶予係数まで)。デフォルトは 1Gb。Work on a copy 機能が正常に動作しなくなる可能性があるため、低すぎる値には注意してください ⚠️ |
| GRIST_ADAPT_DOMAIN | 複数のベースドメインをサポートするには "true" に設定します(注意、host ヘッダーは信頼できるものである必要があります) |
| GRIST_ALLOW_AUTOMATIC_VERSION_CHECKING | Grist が新しい Grist バージョンが利用可能かどうかを自動的に確認することを許可するかどうか。デフォルトの grist および grist-ee Docker イメージでは "true" にデフォルト設定されます。grist-oss およびその他すべてでは false にデフォルト設定されます。 |
| GRIST_ALLOW_DEPRECATED_BARE_ORG_DELETE | 設定すると、非推奨の DELETE /api/orgs/:orgId エンドポイントが利用可能になります。 |
| GRIST_APP_ROOT | Grist のサンドボックスとアセット(具体的には sandbox および static サブディレクトリ)を含むディレクトリ。 |
| GRIST_ATTACHMENTS_THRESHOLD_MB | これを超えると Grist が外部ストレージ(利用可能な場合)を推奨する、ドキュメントごとの添付ファイルストレージ制限。デフォルトは 50MB。 |
| GRIST_BACKUP_DELAY_SECS | ドキュメントの変更後、バックアップを作成する前にこれだけの時間待機します |
| GRIST_BOOT_KEY | 設定すると、このキーを使用して /boot でインストール管理者としてサインインします。新規インストールでは自動的に 1 つ生成され、起動時に出力されます。独自に選択したキーを使用したい場合にのみ設定してください。 |
| GRIST_BROADCAST_TIMEOUT_MS | Web クライアントが、ドキュメントに関するブロードキャストメッセージを受け入れてから切断されるまでの最大時間を設定します(デフォルト: 1 分)。 |
| GRIST_DATA_DIR | ドキュメントを保存するディレクトリ。デフォルトは Grist アプリケーションディレクトリからの相対パス docs/ です。Grist のデフォルト Docker イメージでは、マウントされたボリュームとして使用されるようにデフォルト値は /persist/docs です。 |
| GRIST_DEFAULT_EMAIL | 設定すると、他の資格情報が提示されない場合にこのユーザーとしてログインします |
| GRIST_DEFAULT_PRODUCT | 設定すると、新しいサイトの有効な機能と制限を制御します。Product.ts の PRODUCTS の名前を参照してください。 |
| GRIST_DEFAULT_LOCALE | Grist がブラウザーのロケールを尊重できない場合のフォールバックとして使用するロケール。デフォルトは en-US。app/common/LocaleCodes.ts にあるロケールコードと一致する必要があります。 |
| GRIST_DOC_WORKER_ID | doc worker の識別子。Redis を共有するすべてのサーバーで異なる必要があります。未設定のままにすると、自動的に導出されます。同じ値を共有する 2 つのサーバーは、同じドキュメントを同時に開くことができます。 |
| GRIST_DOMAIN | ホスト型 Grist では、Grist はこのドメインのサブドメインから配信されます。デフォルトは "getgrist.com"。 |
| GRIST_EDITION | yarn install フックが設定するエディションを選択します。full または community。yarn run set-full-edition / yarn run set-community-edition によって書き込まれる grist-edition ファイルより優先されます。デフォルトは full。ソースからのビルドを参照してください。 |
| GRIST_SKIP_EXT_AUTOSETUP | フルエディションの ext 素材をダウンロードする yarn install フックをスキップするには 1 に設定します。拡張機能が他の手段(Docker ビルド、grist-desktop、grist-static)でインストールされる場合に便利です。ソースからのビルドを参照してください。 |
| GRIST_EXPERIMENTAL_PLUGINS | 実験的なプラグインを有効にします |
| GRIST_EXTERNAL_ATTACHMENTS_MODE | 添付ファイルの外部ストレージを有効にするために必要です。外部ストレージを有効にするには "snapshots" に設定します。デフォルト値は "none" です。有効にすると、スナップショットストレージも設定する必要があることに注意してください。 |
| GRIST_ENABLE_SERVICE_ACCOUNTS | service accounts 機能を有効にします。この機能により、ユーザーは管理可能で、選択したリソースへの制限付きアクセスを付与できる特別なサービスアカウントを作成できます。サードパーティの自動化で使用するためのきめ細かい API キーを得る方法として便利です。デフォルトでは未設定 |
| GRIST_ENABLE_REQUEST_FUNCTION | REQUEST 関数を有効にします。この関数は requests.request と同様の方法で HTTP リクエストを実行します。この関数は、Grist が公開されている場合にユーザーが内部エンドポイントを呼び出せるようになるため、重大なセキュリティリスクをもたらします。また、この関数はパフォーマンスの問題を引き起こす可能性があります。デフォルトでは未設定。 |
| GRIST_HEADERS_TIMEOUT_MS | 設定すると、Node の server.headersTimeout フラグを上書きします。 |
| GRIST_HIDE_UI_ELEMENTS | 無効にする UI 機能のカンマ区切りリスト。許可されるパーツ名: helpCenter、billing、templates、createSite、multiSite、multiAccounts、importFromAirtable、sendToDrive、tutorials、supportGrist、themes、automations。パーツが GRIST_UI_FEATURES にも存在する場合でも、無効化されます。 |
| GRIST_HOST | ポートでリッスンするときに使用するホスト名。また、doc worker がそのピアに公開するアドレス、およびそこから導出される識別子も決定します。0.0.0.0 に設定するとすべてのインターフェースでリッスンし、未設定のままにすると localhost でのみリッスンします。 |
| GRIST_PROXY_FOR_UNTRUSTED_URLS | webhook ペイロードを配信するためのプロキシの完全な URL。デフォルト値は direct で、プロキシなしでペイロードを配信します。 |
| HTTPS_PROXY または https_proxy | カスタムウィジェットリポジトリまたは発行者からの OIDC 設定を取得するためのリバース Web プロキシ(企業プロキシ)の完全な URL。 |
| GRIST_ID_PREFIX | o-* 形式のサブドメインの場合、o-${GRIST_ID_PREFIX}* を想定または生成します。 |
| GRIST_IGNORE_SESSION | 設定すると、Grist は認証にセッションを使用しません。 |
| GRIST_INCLUDE_CUSTOM_SCRIPT_URL | 設定すると、すべてのアプリページで参照された URL を <script> タグで読み込みます。 |
| GRIST_IN_SERVICE | "true" の場合、初回実行時の Quick setup ゲートをスキップし、サーバーを直接サービス状態にします。新規インストールではオペレーターが Quick setup を完了できるように "false" がデフォルトです。既存のインストールでは "true" がデフォルトです。 |
| GRIST_INST_DIR | Grist サーバー用の Grist インスタンス設定ファイルへのパス。 |
| GRIST_KEEP_ALIVE_TIMEOUT_MS | 設定すると、Node の server.keepAliveTimeout フラグを上書きします。 |
| GRIST_LIST_PUBLIC_SITES | true に設定すると、公開で共有されたサイトが匿名ユーザー向けに一覧表示されます。デフォルトは false。 |
| GRIST_MANAGED_WORKERS | 設定すると、Grist は、doc worker を対象とした URL が 404 を返した場合、その worker は存在しないと見なすことができます |
| GRIST_MAX_NEW_USER_INVITES_PER_ORG | 設定すると、組織ごとの新規ユーザーへの招待数を制限します。超過すると、招待されたユーザーが初めてログインするか、招待が解除されるまで、追加の招待はブロックされます |
| GRIST_MAX_BILLING_MANAGERS_PER_ORG | 設定すると、組織ごとの請求管理者の数を制限します |
| GRIST_MAX_PARALLEL_REQUESTS_PER_DOC | ドキュメントごとに許可される同時 API リクエストの最大数(デフォルトは 10、無制限にするには 0 に設定) |
| GRIST_MAX_UPLOAD_ATTACHMENT_MB | 添付ファイルに許可される最大サイズ(無制限にするには 0 または空)。 |
| GRIST_MAX_UPLOAD_IMPORT_MB | インポートに許可される最大サイズ(.grist ファイルを除く)(無制限にするには 0 または空)。 |
| GRIST_ACTIVEDOC_TIMEOUT_SECONDS | クライアントがいない状態でドキュメントが開かれたまま保持され、その後閉じられるまでの秒数。NODE_ENV=production が設定されている場合は 30 秒、それ以外の場合は 5 秒にデフォルト設定されます。 |
| GRIST_OFFER_ALL_LANGUAGES | 設定すると、翻訳されたすべての言語がユーザーに提供されます(デフォルトでは、特別な 'good enough' キーが設定された言語のみがユーザーに提供されます)。 |
| GRIST_ORG_IN_PATH | true の場合、組織をドメインではなくパスにエンコードします |
| GRIST_PAGE_TITLE_SUFFIX | HTML ドキュメントの <title> の末尾に追加する文字列。デフォルトは " - Grist"。接尾辞をまったく付けない場合は _blank に設定します。 |
| 非推奨。GRIST_FORWARD_AUTH_HEADER の同義語として解釈されます。 | |
| GRIST_REQUEST_TIMEOUT_MS | 設定すると、Node の server.requestTimeout フラグを上書きします。 |
| GRIST_RESTART_SHELL | "true"/"false" に設定して、リッスンソケットを切断せずに設定変更を適用するためのインプレース再起動を有効/無効にします。Node 上の Linux ではデフォルトでオン、Windows と Electron ではオフです。 |
| GRIST_ROUTER_URL | サーバーをロードバランサーに(登録解除)登録できるようにする API のオプションの URL |
| GRIST_SERVE_SAME_ORIGIN | カスタムドメインの場合と同様に、トップレベルのページと同じプロトコル-ホスト-ポートで home サーバーと doc worker にアクセスするには "true" に設定します(注意、host ヘッダーは信頼できるものである必要があります) |
| GRIST_SERVERS | セットアップするサーバーの種類。"home"、"docs"、static"、および/または "app" を含めることができるカンマ区切りの値。デフォルトは "home,docs,static"。 |
| GRIST_SESSION_COOKIE | 設定すると、Grist の Cookie の名前を上書きします |
| GRIST_SESSION_DOMAIN | 設定すると、Cookie を指定されたドメインに関連付けます。それ以外の場合は GRIST_DOMAIN にデフォルト設定されます |
| GRIST_SESSION_SECRET | セッションをエンコードするために使用されるキー |
| GRIST_SQLITE_MODE | wal に設定すると WAL モードで SQLite を使用し、sync に設定すると SYNCHRONOUS=full で SQLite を使用し、nosync(デフォルト)に設定すると SYNCHRONOUS=off で SQLite を使用します |
| GRIST_ANON_PLAYGROUND | false に設定すると、匿名ユーザーのホームページへのアクセスを拒否します(ただし、ドキュメントは引き続き匿名ユーザーと共有できます)。GRIST_ORG_CREATION_ANYONE が false でない限り、デフォルトは true です。 |
| GRIST_FORCE_LOGIN | true に設定すると、GRIST_ANON_PLAYGROUND: false を設定するのと同様ですが、すべての匿名アクセスをブロックします(したがって、公開で共有されたドキュメントは、実際には参照する前にユーザーが認証される必要があります) |
| GRIST_PERSONAL_ORGS | false に設定すると、ユーザーのサインアップ時に新しい個人組織が作成されるのを防ぎます。GRIST_ORG_CREATION_ANYONE が false でない限り、デフォルトは true です。 |
| GRIST_ORG_CREATION_ANYONE | false に設定すると、非管理者ユーザーによる新しいチーム組織の作成を防ぎます。GRIST_ANON_PLAYGROUND と GRIST_PERSONAL_ORGS のデフォルト値を false に設定します。デフォルトは true。 |
| GRIST_SINGLE_ORG | 組織の「ドメイン」に設定して、クライアントをその組織に固定します |
| GRIST_TEMPLATE_ORG | 組織の「ドメイン」に設定して、その組織の公開ドキュメントを表示します |
| GRIST_HELP_CENTER | ヘルプセンターのリンク参照を設定します |
| GRIST_TERMS_OF_SERVICE_URL | 設定すると、利用規約のリンクを追加します |
| GRIST_CONTACT_SUPPORT_URL | エラーページにサポートに連絡するためのリンクを設定します(例: メールアドレスまたはオンラインフォーム) |
| GRIST_ONBOARDING_VIDEO_ID | ホームページおよびオンボーディング中に表示される YouTube 動画の ID を設定します |
| GRIST_CUSTOM_COMMON_URLS | デフォルトの commons URL を上書きします。値は JSON オブジェクトであり、ICommonUrls インターフェースのサブセットであることが想定されています。 |
| GRIST_SUPPORT_ANON | 'true' に設定すると、匿名アクセス用の UI を表示します(デフォルトでは表示されません) |
| GRIST_SUPPORT_EMAIL | 設定すると、指定されたメールアドレスを持つユーザーにサポート権限を与えます。主な追加権限は、サイト、ワークスペース、およびドキュメントをすべてのユーザーと一覧形式で共有する機能です。 |
| GRIST_OPEN_GRAPH_PREVIEW_IMAGE | ソーシャルメディアやチャットアプリケーションなどの Web サイトでリンクを共有するときのプレビュー画像の URL。 |
| GRIST_TELEMETRY_LEVEL | テレメトリレベル。off(デフォルト)、limited、または full に設定できます。 |
| GRIST_THROTTLE_CPU | 設定すると、CPU スロットリングが有効になります |
| GRIST_TRUST_PLUGINS | 設定すると、プラグインは、Grist アプリの他の部分とは別のホストではなく、同じホストから配信されることが想定されます。通常、プラグインは別のホストから配信されるため、Grist アプリが使用する Cookie が自動的にそれらで利用可能になることはありません。セキュリティへの影響を理解している場合にのみ、これを有効にしてください。 |
| GRIST_USER_ROOT | プラグインを探すための追加パス - Grist は $GRIST_USER_ROOT/plugins でプラグインをスキャンします。 |
| GRIST_UI_FEATURES | 有効にする UI 機能のカンマ区切りリスト。許可されるパーツ名: helpCenter、billing、templates、createSite、multiSite、multiAccounts、importFromAirtable、sendToDrive、tutorials、supportGrist、themes、automations。パーツが GRIST_HIDE_UI_ELEMENTS にも存在する場合、有効化されません。注意: importFromAirtable と automations は、ここにリストされていなくてもデフォルトで有効です。無効にするには GRIST_HIDE_UI_ELEMENTS を使用してください。 |
| GRIST_UNTRUSTED_PORT | 設定すると、プラグインは指定されたポートから配信されます。これは APP_UNTRUSTED_URL を設定する代わりの方法です。 |
| GRIST_VACUUM_ON_CLOSE | false に設定すると、非アクティブのために閉じられるときにドキュメントをコンパクト化しません。ドキュメントは、結果を保存するコストに見合うだけのスペースを回収できる場合にのみコンパクト化されます。デフォルトは true。 |
| GRIST_WIDGET_LIST_URL | ウィジェットマニフェストを指す URL。デフォルトでは https://github.com/gristlabs/grist-widget/releases/download/latest/manifest.json が使用されます |
| GRIST_LOG_LEVEL | 出力するログメッセージの最小レベル: error、warn、info、または debug。デフォルトは info。 |
| GRIST_LOG_HTTP | true に設定すると、HTTP リクエストとレスポンスの情報をログに記録します。デフォルトは false。 |
| GRIST_LOG_HTTP_BODY | true に設定すると、API エラー時にリクエストボディをログに記録します。GRIST_LOG_HTTP も true の場合、すべての HTTP リクエストでリクエストボディをログに記録します。:warning: ログに機密情報が漏洩する可能性があることに注意してください。:warning: デフォルトは false。 |
| GRIST_LOG_AS_JSON | この変数が true または真とみなされる値に設定されている場合、ログ行をプレーンテキスト形式ではなく JSON で出力します。 |
| GRIST_LOG_API_DETAILS | この変数が true または真とみなされる値に設定されている場合、API 呼び出しの詳細をログに記録します。 |
| COOKIE_MAX_AGE | セッション Cookie の最大有効期間。デフォルトは 90 日。セッション Cookie にするには "none" に設定できます |
| HOME_PORT | REST API サーバーがリッスンするポート番号。"share" に設定すると、通常の Grist ポートに API エンドポイントを追加します。 |
| PORT | Grist サーバーがリッスンするポート番号 |
| REDIS_URL | ブラウザーセッションおよび DB クエリキャッシュ用のオプションの Redis サーバー |
| GRIST_SNAPSHOT_TIME_CAP | オプション。トラッキングバケットの上限を定義します。使用法: {"hour": 25, "day": 32, "isoWeek": 12, "month": 96, "year": 1000} |
| GRIST_SNAPSHOT_KEEP | オプション。ドキュメントについて、作成時期に関係なく無条件に保持する最近のスナップショットの数 |
| GRIST_PROMCLIENT_PORT | オプション。設定すると、指定されたポート番号で Prometheus メトリクスを配信します。⚠️ 公開されていないポートを使用してください ⚠️。 |
| GRIST_ENABLE_SCIM | オプション。設定すると、SCIM API エンドポイント(実験的)を有効にします |
| GRIST_OIDC_... | オプション。OpenID 認証を設定するために使用される環境変数。関連する環境変数の完全なリストについては OpenID Connect ドキュメントを参照してください。ログインも参照してください。 |
| GRIST_SAML_... | オプション。SAML 認証を設定するために使用される環境変数。関連する環境変数の完全なリストについては SAML ドキュメントを参照してください。ログインも参照してください。 |
| GRIST_IDP_EXTRA_PROPS | オプション。設定すると、ID プロバイダーによって返される追加フィールドのうち、どれが home データベースの users テーブルに(options.ssoExtraInfo オブジェクト内に)保存されるかを定義します。使用法: 'onekey,anotherkey'。 |
| GRIST_FEATURE_FORM_FRAMING | オプション。セキュリティ上の理由から追加される、レンダリングされたフォームの周囲の境界線を設定します。border または minimal に設定できます。デフォルトは border。 |
| GRIST_TRUTHY_VALUES | オプション。データエンジンによって、英語のデフォルトを超えて真とみなされるべき追加の単語のカンマ区切りリスト。例: "oui,ja,si" |
| GRIST_FALSY_VALUES | オプション。データエンジンによって、英語のデフォルトを超えて偽とみなされるべき追加の単語のカンマ区切りリスト。例: "non,nein,no" |
| GRIST_ENABLE_USER_PRESENCE | オプション、デフォルトで有効。'false' に設定すると、すべてのユーザープレゼンス機能が無効になります。 |
フルエディションの機能フラグ:
一部の機能は grist-core ではなく Grist のフルエディションに含まれています。これらの機能トグルは参考のためにここに記載されていますが、フルエディションがビルドされ有効化されている場合にのみ効果を発揮します(ソースからのビルドを参照)。
| 変数 | 目的 |
|---|---|
| GRIST_ACTIVATION | フルエディションのアクティベーションキー。管理パネルを経由せずに直接指定します。スクリプトやヘッドレスデプロイに便利です。GRIST_ACTIVATION_FILE より優先されます。 |
| GRIST_ACTIVATION_FILE | アクティベーションキーを含むファイルのパス。GRIST_ACTIVATION が設定されていない場合に読み込まれます。 |
| GRIST_MCP_ENABLED | "true" に設定すると、MCP サーバーを有効化し、Claude などの外部クライアントが JSON-RPC 経由で Grist と通信できるようにします。デフォルトは "false" です。 |
| GRIST_ENABLE_OIDC_SERVER | "true" に設定すると、Grist の OAuth / OIDC サーバーを有効化します。これは OAuth アプリや MCP クライアントが認証に使用するトークンを発行します。デフォルトは "false" です。 |
| GRIST_ENABLE_OIDC_DCR | "true" に設定すると、OAuth Dynamic Client Registration (RFC 7591)を有効化します。つまり POST /oidc/reg を提供し、それをディスカバリドキュメントで告知することで、OAuth および MCP クライアントが事前プロビジョニングなしで登録できるようになります。デフォルトは "false" です。 |
| GRIST_OIDC_DCR_RATE_LIMIT | 認証されていない POST /oidc/reg エンドポイントで許可される 1 分あたりのリクエスト数。デフォルトは 60 です。 |
| GRIST_OIDC_CIMD_ALLOWED_HOSTS | Client ID Metadata Document (CIMD) を取得できるホストのカンマ区切りの許可リスト。これにより、クライアントは事前登録の代わりに HTTPS メタデータ URL で自身を識別できます。空(デフォルト)にすると CIMD が無効になります。* は任意のホストを許可し、GRIST_PROXY_FOR_UNTRUSTED_URLS と併用する場合にのみ使用してください。 |
AI Formula Assistant 関連の変数(すべてオプション):
| 変数 | 目的 |
|---|---|
| ASSISTANT_API_KEY | オプション。外部の AI 会話エンドポイントにリクエストを送信する際に渡す API キー。 |
| ASSISTANT_CHAT_COMPLETION_ENDPOINT | オプション。呼び出すチャット補完形式のエンドポイント。OpenAI を使用している場合は不要です。 |
| ASSISTANT_MODEL | オプション。設定すると、この文字列が AI 会話エンドポイントへの呼び出しに渡されます。 |
| ASSISTANT_LONGER_CONTEXT_MODEL | オプション。設定すると、コンテキスト長の制限により失敗したリクエストが、このモデルを設定して再試行されます。 |
| OPENAI_API_KEY | オプション。OpenAI エンドポイントを使用することを前提とした ASSISTANT_API_KEY の同義語。OpenAI でアカウントに登録し、こちらでシークレットキーを生成してください。 |
執筆時点では、AI Assistant は OpenAI のチャット補完エンドポイント(/v1/chat/completions で終わるもの)に対して動作することが知られています。
また、llama-cpp-python および LM Studio が提供するチャット補完エンドポイントに対しても動作することが知られています。有用な結果を得るには、LLM は GPT 3.5 以上と同等である必要があります。
サンドボックス関連の変数:
| 変数 | 目的 | サンドボックス |
|---|---|---|
| GRIST_SANDBOX_FLAVOR | gvisor、pynbox、unsandboxed、docker、または macSandboxExec を指定できます。設定すると、Grist は指定された種類のサンドボックスを強制的に使用します。 | N/A |
| GRIST_SANDBOX | サンドボックスとして実行するプログラムまたはイメージ名。詳細は NSandbox.ts を参照してください。 | N/A |
| GVISOR_LIMIT_NPROC | Linux で実行する際にサンドボックスが生成を許可される既存プロセスの数。デフォルトは 8 です。 | GVisor |
| GVISOR_LIMIT_MEMORY | サンドボックス化されたプロセスの仮想メモリの最大サイズ(バイト単位)。デフォルトでは制限なし。 | GVisor |
転送認証の変数:
| 変数 | 目的 |
|---|---|
| GRIST_FORWARD_AUTH_HEADER | 設定すると、指定されたヘッダー(例: "x-forwarded-user")に認可されたユーザーのメールアドレスが含まれていると信頼し、「転送認証」ログインを有効にします。 |
| GRIST_FORWARD_AUTH_LOGIN_PATH | GRIST_FORWARD_AUTH_HEADER が設定されている場合、Grist はこのパスでログインを待ち受けます。デフォルトは /auth/login です。 |
| GRIST_FORWARD_AUTH_LOGOUT_PATH | GRIST_FORWARD_AUTH_HEADER が設定されている場合、ユーザーがログアウトすると Grist はこのパスに転送します。 |
転送認証は 2 つのモードをサポートしており、GRIST_IGNORE_SESSION によって区別されます:
-
セッションを使用し、ログインエンドポイントで転送認証を行う場合。
たとえば、traefik-forward-auth ミドルウェアを備えた traefik リバースプロキシを使用する場合:
GRIST_IGNORE_SESSION: 設定しないでください。または偽とみなされる値を設定してください。- リバースプロキシが
GRIST_FORWARD_AUTH_LOGIN_PATHおよびGRIST_FORWARD_AUTH_LOGOUT_PATHに転送認証ミドルウェアを適用することを確認してください。 - 場合によっては匿名アクセスを許可したい場合は、他のすべてのパスに転送認証ミドルウェアが適用されていないことを確認してください。Grist は必要に応じて
GRIST_FORWARD_AUTH_LOGIN_PATHにリダイレクトすることでそれをトリガーします。ユーザーがログインすると、Grist はログアウトまでセッションを使用してユーザーを識別します。
-
セッションを使用せず、すべてのエンドポイントで転送認証を行う場合。
たとえば、HTTP Basic 認証と、ログインしたユーザーを(
GRIST_FORWARD_AUTH_HEADERで指定された)ヘッダーに設定するサーバー構成を使用する場合。
GRIST_IGNORE_SESSION:trueに設定します。Grist のセッションは使用されません。- リバースプロキシが、ログイン情報を必要とする可能性のあるすべてのリクエストに対して、指定したヘッダーを設定することを確認してください。Grist はその内容をそのまま信頼するため、このヘッダーがユーザーによって偽装されないようにすることが不可欠です。
転送認証を使用する場合、以下の変数も設定するとよいでしょう:
GRIST_FORCE_LOGIN=trueを設定して匿名アクセスを無効にします。
プラグイン:
Grist には、内部的に使用されるプラグインシステムがあります。これを使ってできる便利なことの 1 つは、Grist のビルドにカスタムウィジェットを含めることです。カスタムウィジェットは通常、GRIST_WIDGET_LIST_URL を設定するだけで利用可能になりますが、これは外部依存になるという欠点があり、オフラインでの使用やアーカイブには不便な場合があります。プラグインは別の手段を提供します。
カスタムウィジェットをプラグインとして「バンドル」するには:
pluginsのサブディレクトリ(例:plugins/my-widgets)を追加します。 または、GRIST_USER_ROOT環境変数を任意のパスに設定し、その中にplugins/my-widgetsを作成することもできます。- そのサブディレクトリに、次のような
manifest.ymlファイルを追加します:
name: My Widgets
components:
widgets: widgets.json
widgets.jsonファイルは grist-widget リポジトリで生成される形式である必要があり、manifest.ymlと同じディレクトリに配置する必要があります。plugins/my-widgets内のあらゆる素材は Grist によって配信され、widgets.jsonでは相対 URL を使用できます。- すべてのファイルを配置したら、Grist を再起動します。これでウィジェットが、
GRIST_WIDGET_LIST_URLからのものとあわせて、カスタムウィジェットのドロップダウンで利用可能になるはずです。 - 必要に応じて、複数のウィジェットセットを持つ複数のプラグインサブディレクトリを追加でき、それらはすべて利用可能になります。
Google Drive 連携:
| 変数 | 目的 |
|---|---|
| GOOGLE_CLIENT_ID | Google API クライアントで使用する Google Client Id を設定します |
| GOOGLE_CLIENT_SECRET | Google API クライアントで使用する Google Client Secret を設定します |
| GOOGLE_API_KEY | Google API クライアントで使用する Google API Key を設定します(公開ファイルへのアクセス) |
| GOOGLE_DRIVE_SCOPE | Google Drive 連携のために要求するスコープを設定します(デフォルトは drive.file) |
データベース変数:
| 変数 | 目的 |
|---|---|
| TYPEORM_DATABASE | sqlite の場合はデータベースファイル名、その他の DB タイプの場合はデータベース名 |
| TYPEORM_HOST | DB のホスト |
| TYPEORM_LOGGING | すべての SQL クエリを表示するには 'true' に設定します |
| TYPEORM_PASSWORD | 使用するパスワード |
| TYPEORM_PORT | その DB タイプのデフォルトでない場合の DB のポート番号 |
| TYPEORM_TYPE | 'sqlite' または 'postgres' に設定します |
| TYPEORM_USERNAME | 接続するユーザー名 |
| TYPEORM_EXTRA | TypeORM に JSON 形式で渡すその他のプロパティ |
Docker 専用変数:
| 変数 | 目的 |
|---|---|
| GRIST_DOCKER_USER | オプション。コンテナが root ユーザーとして実行される場合、Grist サービスが実行されるユーザーです。デフォルトを上書きします。 |
| GRIST_DOCKER_GROUP | オプション。コンテナが root ユーザーとして実行される場合、Grist サービスが実行されるグループです。デフォルトを上書きします。 |
テスト:
| 変数 | 目的 |
|---|---|
| GRIST_TESTING_SOCKET | テスト中のみのチャネル外通信に使用されるソケット。 |
| GRIST_TEST_FORCE_LIGHT_MODE | 設定されている場合、システム設定がダークモードでも Grist はライトモードを使用します。一部のテストはライトモードを前提としています。 |
| GRIST_TEST_HTTPS_OFFSET | 設定されている場合、指定したオフセットで https ポートを追加します。これはテスト時に便利です。 |
| GRIST_TEST_SSL_CERT | 設定されている場合、SSL 証明書のファイル名を含みます。 |
| GRIST_TEST_SSL_KEY | 設定されている場合、SSL 秘密鍵のファイル名を含みます。 |
| GRIST_TEST_LOGIN | 偽の未認証テストログインを許可します (開発環境にのみ適しています)。 |
| GRIST_TEST_ROUTER | 設定されている場合、ホームサーバーは /test/router で router API のモックバージョンを提供します |
| GREP_TESTS | 実行する特定のテストを選択するためのパターン (例: env GREP_TESTS=ActionLog yarn test)。 |
テスト
テストは PR がオープンされると、CI の一部として自動的に実行されます。ただし、GitHub に変更をプッシュする前にローカルでテストを実行すると役立つ場合があります。まず、すべての依存関係をインストールしていることを確認してください:
yarn install
yarn install:python
次に、メインのテストスイートを次のように実行できます:
yarn test
Python のテストもローカルで実行できます。(注: 現在は Python 3.10 ~ 3.11 が必要です。)
yarn test:python
特定のテストを実行するには、GREP_TESTS 変数でパターンを指定できます:
env GREP_TESTS=ChoiceList yarn test
env GREP_TESTS=summary yarn test:python
ライセンス
このリポジトリ grist-core は、OSI 承認のフリーソフトウェアライセンスである Apache License, Version 2.0 の下でリリースされています。詳細については LICENSE.txt および NOTICE.txt を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。