Core(共通ライブラリ)の概要とバージョン別の機能
VehicleVision.PleasanterTools.Core(以下 Core)は、VehicleVision.PleasanterTools の各ツール(Questionnaire・CalendarFeed・IdentityProvider ほか)が共通で組み込む部品を集めた .NET ライブラリです。DB への接続・マイグレーション・メール送信など、ツールごとにコピーが育ってばらつきやすい部分を 1 か所にまとめ、直すのを 1 回で済ませるために切り出しています。ソースは GitHub で公開しています。
プレビュー版です(安定版はまだありません)
Core の版は 0.1.0-preview.N です。安定版(1.0.0)はまだ出ておらず、1.0.0 未満は互換が保証されません。 プレビューの間は、クラス名・引数・マイグレーションの内容が変わり得ます(ソースの README.md と _documents/コア化の方針.md に、1.0.0 未満は互換を保証しない旨の記載があります)。壊す変更は版を上げる PR に明記する運用ですが、このマニュアルが追従するのは公開済みの版だけです。
本マニュアルは、nuget.org に公開済みの最新プレビュー版 0.1.0-preview.9(2026-10-21 公開)に対応しています。ここでの「版」は Core の版で、プリザンター本体の版とは別です。各ページの見出しにある「preview.5 以降」のようなバッジも Core の版を表します。
Core はプリザンター本体とは独立したライブラリです。プリザンターの DB には接続せず、プリザンターのソースも含みません(ソースの LICENSING.md の記載)。使うのは、各ツールが自分の DB(ツール専用の DB)を持つための基盤です。
誰が読むか
| 読者 | 読むページ |
|---|---|
| 自社ツールを動かす人(設定・更新・障害の切り分け) | 本ページの対応表、DB の接続・暗号化・排他(設定名の規約と起動時の挙動)、マイグレーションと共有表(Core_ 表と更新時の注意)、メール送信(環境変数) |
| 同じ基盤でツールを作る人 | 上記に加えて、共有ストア |
採用状況の確認方法
このマニュアルを書いた時点で、resources/tools/ に置いている各ツールの master のソースには、Core への参照(PackageReference など)は見つかりませんでした。各ツールが Core を使い始める版は、ツールごとの変更履歴で確認してください。このページの内容が自分のツールの挙動に当てはまるかは、そのツールが Core の何版を参照しているかで決まります。
パッケージ
| パッケージ | 内容 |
|---|---|
VehicleVision.PleasanterTools.Core.Data | DB 接続・RDBMS ごとの方言差・接続の暗号化検査・起動時マイグレーションと排他・アプリ ID から DB の名前を導く AppDatabase・共有ストア(管理者・セッション・招待・監査ログ・メール送信箱・設定・レート制限) |
VehicleVision.PleasanterTools.Core.Mail | メール送信(SMTP / Amazon SES / Azure Communication Services)と、環境変数からの設定の読み取り |
- 2 つのパッケージは同じ版で出します。
Core.MailとCore.Dataは互いを参照せず、アプリがそれぞれを参照します(依存の向きは、常にアプリから Core です)。 - 対象は .NET 10(
net10.0)です。 - nuget.org から認証なしで取得できます。参照するリポジトリは
PackageReferenceを書くだけで、nuget.configの追加もトークンも要りません。
<PackageReference Include="VehicleVision.PleasanterTools.Core.Data" Version="0.1.0-preview.9" />
<PackageReference Include="VehicleVision.PleasanterTools.Core.Mail" Version="0.1.0-preview.9" />- ライセンスはデュアルライセンス(AGPL-3.0-or-later、または PMC 商用ライセンス)です。Core を組み込んでネットワーク越しにサービスを提供するアプリは、AGPL を選ぶ場合その全体が AGPL の対象になり得ます。詳細はリポジトリの
LICENSING.mdを参照してください。
対応する RDBMS
| RDBMS | 位置づけ(ソースの記載) |
|---|---|
| SQL Server | 本番 |
| PostgreSQL | 本番 |
| MySQL | 本番(マイグレーションは FluentMigrator の MySQL 8 用ランナーを使う) |
| SQLite | 簡易セットアップ・デバッグ用。本番運用には使わない |
原則は、プリザンターが対応する 3 つの RDBMS に揃えることです。導入先のプリザンターが使う RDBMS に合わせられないと、DB サーバを別に立てることになるためです(DatabaseProvider.cs のコメント)。
何を Core に置くか
Core には、2 つ以上のアプリが同じ目的で使い、アプリの業務を知らずに書けるものだけを置きます(_documents/コア化の方針.md)。アプリ名・環境変数名・SQLite のファイル名・ロック名のようなアプリごとの値は Core に書かず、呼び出し側が引数で渡します。迷ったときは Core に置かない方針です。
図を読み込み中…
版の一覧
公開日は日本時間です。nuget.org への公開日時は nuget.org のパッケージ情報(登録 API の published)で確認しました。
| 版 | 公開日 | 配布先 | 要点 |
|---|---|---|---|
| 0.1.0-preview.9 | 2026-10-21 | nuget.org | 管理者の表示言語を空へ戻せるようにした |
| 0.1.0-preview.8 | 2026-10-21 | nuget.org | 管理者ストアに、復旧コードのハッシュ一覧と表示言語の変更を追加 |
| 0.1.0-preview.7 | 2026-10-20 | nuget.org | 監査ログの絞り込みに、ログイン ID の部分一致を追加 |
| 0.1.0-preview.6 | 2026-10-20 | nuget.org | 共有ストアと Core_ の共有表(M10001〜M10007)を追加 |
| 0.1.0-preview.5 | 2026-10-20 | nuget.org | AppDatabase(アプリ ID から DB の名前を規約で導く)を追加 |
| 0.1.0-preview.4 | 2026-10-20 | nuget.org | SQLite の型の対応表を、アプリのモデルのアセンブリへ広げられるようにした |
| 0.1.0-preview.3 | 2026-10-20 | nuget.org | DatabaseMigrationLock を公開 |
| 0.1.0-preview.2 | 2026-10-20 | nuget.org | nuget.org での最初の公開 |
| 0.1.0-preview.1 | 2026-10-18(タグの日付) | GitHub Packages のみ | 最初の切り出し。nuget.org には無い |
詳細は 変更履歴 を参照してください。
機能 × バージョンの対応表
「○」はその版で使えることを表します。「-」はその版に無いことを表します。版の判定は、リリースタグごとのソースで確かめました(確認方法は 変更履歴 の末尾に書いています)。
Core.Data
| 機能 | p.1 | p.2 | p.3 | p.4 | p.5 | p.6 | p.7 | p.8 | p.9 |
|---|---|---|---|---|---|---|---|---|---|
接続のファクトリ・暗号化の検査(DbConnectionFactory / ConnectionSecurity) | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
起動時マイグレーションと排他(DatabaseMigrator) | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
DatabaseMigrationLock を直接使う | - | - | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
SQLite の型の対応表を、アプリのモデルへ広げる(AddModelAssemblies) | - | - | - | ○ | ○ | ○ | ○ | ○ | ○ |
アプリ ID から DB の名前を導く(AppDatabase) | - | - | - | - | ○ | ○ | ○ | ○ | ○ |
Core_ の共有表と共有ストア | - | - | - | - | - | ○ | ○ | ○ | ○ |
監査ログのログイン ID の部分一致(ActorLoginContains) | - | - | - | - | - | - | ○ | ○ | ○ |
| 管理者ストアの復旧コード一覧・表示言語の変更 | - | - | - | - | - | - | - | ○ | ○ |
| 表示言語を空文字へ戻す | - | - | - | - | - | - | - | - | ○ |
Core.Mail
メール送信の機能(SMTP / Amazon SES / Azure Communication Services の 3 経路、MailOptions.FromConfiguration、OutgoingMail、MailPayload、IMailPayloadProtector)は、タグ preview.1 の時点で揃っていました。preview.2 から preview.9 までの間に、Core.Mail のソース(src/VehicleVision.PleasanterTools.Core.Mail/)の機能変更はありません。
更新時の注意
- プレビュー版どうしの更新で、互換が保たれる保証はありません。 版を上げる前に、変更履歴 で自分の版との差を確かめてください。
- preview.5 から preview.6 へ上げると、DB に
Core_接頭辞の表が自動で作られます。DatabaseMigratorが、アプリのマイグレーションと一緒に Core.Data の共有マイグレーション(M10001〜)も当てるためです。使わないストアの表も作られます。詳細は マイグレーションと共有表 を参照してください。 - 依存パッケージ(Dapper・FluentMigrator・DB ドライバなど)は Core が持つ版に揃える方針です。アプリ側で別の版を宣言し直すと、実行時に食い違う原因になります(
_documents/コア化の方針.md)。
次に読むページ
| 目的 | ページ |
|---|---|
| DB の設定名・接続・暗号化・起動時の排他を知る | DB の接続・暗号化・排他 |
マイグレーションの番号と Core_ 表を知る | マイグレーションと共有表 |
| 管理者・セッション・メール送信箱などの共有ストアを使う | 共有ストア |
| メール送信の環境変数と経路を知る | メール送信 |
| 自分の版との差を調べる | 変更履歴 |