Skip to content

互換性方針と主要な制約 ​

基本方針 ​

判断の基準は「一般ユーザーまたはサードパーティークライアントから観測できるか」です。観測できるものは upstream Misskey との互換を優先し、観測できないもの(管理機能やインフラ固有の機能)は Cloudflare に合わせた最適化や改変を許容します。

対象方針
ユーザー向け API・ストリーミングupstream との互換を堅持する。サードパーティークライアント(Miria など)での動作を保証する
Web クライアントupstream のものをそのまま使う(下記)
ActivityPubupstream と同じ形式で連合する
データベースupstream と同じ PostgreSQL スキーマを使う
管理者向け API・管理画面サードパーティークライアントから参照されないものは、最適化・改変・削除を許容する
インフラ固有の機能S3 の指定、SMTP サーバーの指定、ジョブキューの操作など upstream の基盤に依存する機能は、改変・削除を許容する
機能追加原則として行わない

Web クライアント ​

Web クライアントは upstream Misskey のものがほぼそのまま動作しています。

項目内容
ソースピン留めした upstream のコミットを無改変でビルドし、静的ファイルとして配信する
配信される HTMLupstream のサーバーが返すものと同じ構造(初期データ、OGP、ユーザー・ノートなどのページごとの描画)を Worker で生成する
動作クライアントは upstream と同じ API とストリーミングに接続するため、画面と操作は upstream と同じ
違いが見える箇所サーバーの制約に由来するもののみ(下の「主要な制約」と API 互換性一覧)

データの互換 ​

項目内容
スキーマupstream と同じ。スキーマの正は upstream のマイグレーションで、Worker はスキーマを変更しない
マイグレーションupstream のマイグレーションを SQL に変換して同梱する。適用記録の形式も upstream と同じため、upstream で適用した DB と相互に引き継げる
既存データ既存の Misskey の PostgreSQL をそのまま接続して使える
IDupstream と同じ方式(aidx)で生成する。既存の DB では方式を変更しない

主要な制約 ​

upstream と挙動が異なる主な点です。エンドポイント単位の一覧は API 互換性一覧、その理由は Workers 固有の制約 にあります。

項目upstreammisskey-cf
データベースPostgreSQLPostgreSQL のみ。Cloudflare D1 は使えない(スキーマが PostgreSQL 固有の型に依存するため)
全文検索Meilisearch など(任意)SQL の部分一致のみ
チャート専用テーブルに記録元のデータから都度集計。削除数と、連合・リクエスト数などイベント由来の系列は 0
ランキング(注目ノート、トレンドなど)Redis で集計PostgreSQL で同じ期間を集計した近似値
タイムラインRedis に保持PostgreSQL で同じ結果を返す。保持件数の上限は再現しない
設定変更の反映即時ほかの実行環境には最大 30 秒遅れて反映
アップロード上限250 MB(既定)100 MB(既定)
センシティブ画像の自動判定あり(任意)なし
メール送信SMTPCloudflare Email Service。SMTP の設定は使われない
リアクションのバッファリングあり(任意)なし(常に即時反映)
ジョブキューの管理画面すべてのジョブを表示・操作失敗・遅延したジョブのみ
サーバー情報マシンの CPU・メモリなど固定値
初期セットアップセットアップパスワードは任意セットアップパスワードが必須