このプロジェクトについて
immudbは、イミュータビリティ(不変性)とゼロトラスト原則を基盤とする軽量なオープンソースデータベースです。レコードは新しいバージョンとして追加できますが、変更や削除はできません。すべての変更は暗号的に整合性のある検証可能な履歴として追跡され、クライアントはデータベースサーバーを信頼することなく検証できます。リレーショナル(SQL)データベース、キーバリューストア、ドキュメントモデルデータベースとして動作し、スタンドアロンサービスとして実行したり、Goライブラリとしてインプロセスで埋め込めたりします。
プロジェクトに文書化されている主な機能:
- マルチモデルアクセス:トランザクションとBLOB対応のSQL、検証付き読み書きのキーバリューAPI、ドキュメントモデル。
- PostgreSQLワイヤプロトコル互換性:標準のPostgreSQLクライアントやORM(psql、pgAdmin、JDBC、SQLAlchemy、Django、GORM、ActiveRecord、lib/pq、pgx)が直接接続可能。サポートされるSQL機能にはRETURNING句、共通テーブル式(WITH / WITH RECURSIVE)、ウィンドウ関数(ROW_NUMBER、RANK、LAG、LEADなど)、ビュー、シーケンス、幅広いJOINとサブクエリ、集合演算、SAVEPOINTベースのトランザクション制御、COPY FROM stdinによる一括インポート、部分インデックス、75以上の組み込み関数が含まれます。pg_catalogとinformation_schemaテーブルによるカタログエミュレーションでORMのインテロゲーションをサポート。文書化された制限事項には、ストアドプロシージャ/PLpgSQLの非対応、GIN/GiSTインデックスの非対応(B-treeのみ)、生成列の非対応があります。
- タイムトラベルクエリ:DIFF OF SQL構文で2つのトランザクション範囲の間のテーブル状態を比較し、行をINSERT、UPDATE、DELETEとラベル付けします。
- SQLによる暗号検証:immudb_state()、immudb_verify_row()、immudb_verify_tx()、immudb_history()などの関数が、証明システムをクエリ内で直接使用可能にします。
- 構造化監査ログ:すべてのgRPC操作に対するオプションのイミュータブルJSON監査イベント(タイムスタンプ、ユーザー、IP、データベース、メソッド、カテゴリ、所要時間、セッションID)を、immudb自身の改ざん防止KVストアに保存し、SIEMシステムへエクスポート可能。
- デプロイオプション:ビルド済みバイナリ、Dockerイメージ、Kubernetes Helmチャート、埋め込みライブラリモード。データはAmazon S3またはMinIOなどのS3互換ストレージに保存でき、AWS IAMロールとFargate認証情報ソースをサポート。
- クライアントエコシステム:Java、Go(GORMアダプター含む)、.NET、Python、Node.jsの公式SDK、対話的管理用のimmuclient CLI、SDKのない言語向けRESTゲートウェイのimmugw。Rustユーザーは標準のPostgreSQLクライアントまたは生成されたgRPCコードの使用を推奨。crates.ioのimmudbクレートは非公式です。
- セキュリティ強化:アーカイブ復元時のパス横断検証、ユーザー/権限変更時の即時セッション無効化、トークンファイル権限の制限、PostgreSQL互換サーバーがTLSなしで動作する際の起動警告。
報告されている実世界のユースケースには、機密フィールド変更のイミュータブル保存(例:支払データ)、CI/CDビルドレシピの保護、証明書とチェックサムの保存、改ざん検知ログストリーム、センサーデータや位置データの記録があります。ドキュメント、Webコンソールドエモ、Python SDKプレイグラウンドはプロジェクトサイトで利用可能です。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.