Web アンケートアプリの変更履歴
Web アンケートアプリ(Questionnaire)の全リリースを、新しい順に並べます。機能と版の対応は概要とバージョン別の機能差に表でまとめています。導入と更新の手順は導入と設定です。
- リリース日は日本時間です。内容は、各リリースのノートと、タグ間の差分(コミット履歴・マイグレーション・設定名)で確かめたものです。
- 各版の末尾に、前の版との GitHub 上の全差分へのリンクを付けています。
- マイグレーションは前方適用だけです。 起動時の自動適用は v0.5.0 から既定で有効です。無効にしているときは、配置の前に手で当てます(手順は導入と設定)。
- 0.x の間は互換を保証しません。複数の版を飛ばして上げるときは、間の版の「更新時の作業」をすべて確認してください。
v0.10.0
2026-10-11 公開(最新版)。マイグレーションなし。
追加・変更
- 本公開中・停止中のアンケートを、下書きへ戻して直せるようになった(#543)。戻すと回答画面は、再度公開するまで閉じる。固めた版は消えない。一覧でも編集画面でも、戻す前に確認が出る。
- 固めた版を一覧し、下書きの編集へ読み込める(#545)。下書きのときの編集画面の「過去の版」から使う。読み込むのは編集中の画面だけで、保存するまで下書きは変わらない。
- 編集画面をタブに分け(「設問と割り当て」「基本設定」「見た目・自動返信」)、ページごとに 1 ページずつ表示し、割り当てを追従させる(#552)。
- マッピング画面に、プリザンターの項目名(論理名)などを添えて表示する(#550)。編集画面と一覧の表示名、選択肢、リンク項目、参照先などが出る。
- 配置用 ZIP の名前が
VehicleVision.PleasanterTools.Questionnaire-X.Y.Z-portable.zipになり、デバッグ記号(pdb)を含まなくなった(#548、#555)。OS と CPU を指定しない発行なので「portable」と名乗る。
修正
- 使える列の本数を、プリザンターが返した列の件数ではなく、標準の 26 本を下限に見積もるようにした(#557)。プリザンターの
GetSiteは設定を付けた列だけを返すので、返った件数をそのまま本数にすると少なく見積もっていた。 - JSON リンクの参照先の重複と、再公開中の表示の切り替わりを直した(#559)。
- 更新スクリプトが、旧名(
-portableなし)へ戻る挙動を外した(#561)。
更新時の作業
- マイグレーションはありません。通常の配置更新とアプリの再起動で上がります。
- 配置用 ZIP と
.sha256の名前が変わります。 自動化(ダウンロードや SHA-256 の確認)で旧名を指定していれば直します。Azure App Service 向けの更新スクリプト(Upgrade-AzureWebApp.ps1、Upgrade-InKudu.ps1)は、v0.9.3 までは旧名を探すので、v0.10.0 のスクリプトを使います。 - 本公開中に「下書きへ戻す」を押すと回答画面が閉じます。回答を受け付けたい時間帯を避けてください。
v0.9.3
2026-10-10 公開。マイグレーションなし。
追加・変更
- 編集画面が、アンケートの公開状態で表示を出し分けるようになった(#538)。下書き以外のときは、「編集は下書きに保存されるだけで、公開中の版には反映されない」と常に表示する。
- テスト公開中は、「テスト公開に反映する」を押すと、保存・下書きへ戻す・テスト公開を一度に行い、版が 1 つ上がる。 保存できなかったとき(他の人が先に更新したなど)は先へ進まない。
更新時の作業
- なし。依存ライブラリの変更もない。
v0.9.2
2026-10-07 公開。マイグレーションなし。
変更
- 依存ライブラリの更新(Dependabot の更新を 1 本にまとめて取り込み、#534)だけ。機能の変更はない。
更新時の作業
- なし。
v0.9.1
2026-09-28 公開。マイグレーションなし。
修正
- プレビューの言語選択を、ダークモードでも読めるようにした(#520)。
- 管理画面の入力種別を、設問カードの中に収めた(#522)。
- 依存ライブラリの更新を取り込んだ(#518)。
更新時の作業
- なし。
v0.9.0
2026-09-25 公開。マイグレーションあり(M0033)。
追加
- Pleasanter SSO の利用者を、組織・グループへの所属で制限できるようになった(#505、#506)。許可した組織またはグループに所属する利用者だけを、自動登録・ログイン・セッションの再確認で許可する。グループの組織メンバーと子グループにも対応する。
- 設定は
QUESTIONNAIRE_PLEASANTERSSO_ALLOWEDDEPTIDS(許可する組織 ID)とQUESTIONNAIRE_PLEASANTERSSO_ALLOWEDGROUPIDS(許可するグループ ID)、または管理画面の Pleasanter ログイン設定。いずれも正の整数をカンマか改行で区切り、既定は空。
更新時の作業
マイグレーション M0033(
M0033_PleasanterSsoMembership)が、SSO 設定へ許可する組織・グループの保存列を足す。自動適用なら起動時に当たる。無効にしているときは、回答の受付を止め、DB と設定をバックアップしてから、新しい版の DLL で次を実行する。powershelldotnet VehicleVision.PleasanterTools.Questionnaire.Web.dll --migrate --wait-for-db=180 dotnet VehicleVision.PleasanterTools.Questionnaire.Web.dll --migrate-status許可する組織・グループが両方とも未設定のとき、自動登録(
QUESTIONNAIRE_PLEASANTERSSO_UNKNOWNUSER=Register)は拒否される。 自動登録を続けるなら、許可先を指定する。許可先を指定すると、登録済みの利用者にも所属制限が掛かる。 所属を外れた利用者は、再確認の間隔を過ぎた次の管理 API の要求でセッションが終わる。
所属を確認できないときも許可しない。グループの確認には、本アプリの Pleasanter 接続設定の API キーと、対象の利用者・グループを取得できる権限が要る。
ローカルのパスワード認証、救済ログイン、SAML は、この所属制限の対象外。
v0.8.0
2026-09-25 公開。マイグレーションなし。
追加・変更
- ClamAV の定期監視を追加した(#499)。検査できない状態と復旧を、管理画面のお知らせとサーバログへ記録する。表示は 7 言語に対応。
- 下書きの画面試験と本人確認のタイムアウト試験を安定化した(#496、#498)。CI の SQL Server 起動失敗の診断を保存し、既知の内部エラーに限り 1 回だけ再起動するようにした(#500)。
更新時の作業
- 追加のマイグレーションも依存ライブラリの変更もない。通常の配置更新と再起動で上がる。
- ClamAV を有効にしている環境では、DB の起動完了後から、固定テキストによる検査可否の監視が始まる。確認の終了から 1 分後に再確認し、既存の ClamAV の検査タイムアウト設定を使う。追加設定は要らない。
- 通知するのは、初回の異常、正常から異常への変化、異常からの復旧。初回の正常確認と、同じ状態の継続では通知を増やさない。異常は Error、復旧は Information でログにも残す。添付ごとの検査と拒否時のログも続く。
- 監視の状態はアプリのインスタンスごとに持ち、再起動で初回判定へ戻る。複数インスタンスでは、同じ障害の検知回数が増えることがある。お知らせは観測の履歴で、全インスタンスの現在の状態を示すものではない。監視間隔より短い障害と、定義ファイルの鮮度は対象外。Defender for Storage は、この定期監視の対象外。
v0.7.1
2026-09-25 公開。マイグレーションなし。
追加・変更
- Helm チャートにサブパス・Pleasanter SSO・起動時マイグレーションの値と、Ingress のパス指定を足した(#487)。チャートは 0.2.0 になった。
- Pleasanter ログイン設定の画面の文言を 5 言語へ訳した(#489)。
修正
- 回答済みの印の cookie を、置くときと消すときで同じ Path の組み立てにした(#485)。
- アンケートの完全削除で、回答通知メールの集約も削除対象にした。削除後のアンケートについて、通知が積まれ続けるのを防ぐ(#492)。
更新時の作業
- v0.7.0 からの更新で、追加のマイグレーションも依存ライブラリの変更もない。
- Helm チャート 0.2.0 には、ConfigMap の変更を Pod へ反映する注釈が加わった。このチャートへ更新すると、Pod がローリング更新される。
- サブパスと Pleasanter SSO を使うときは、リポジトリの
values-subpath-sso.example.yamlと AKS の導入・更新運用手順書を参照する。Ingress では、サブパスの接頭辞を剥がさない。 - 起動時の自動マイグレーションはアプリの既定(有効)のまま。既存の Secret に
QUESTIONNAIRE_DB_AUTO_MIGRATE=falseがあれば、その値が ConfigMap より優先される。 - AKS 実機での Ingress の振り分けと SSO の往復、追加した言語の母語話者による確認は、この版では行っていない(リリースノートの「検証範囲」)。
v0.7.0
2026-09-25 公開。マイグレーションあり(M0032)。
追加
- Pleasanter のログインで管理画面へ入れる(シングルサインオン、#468)。管理画面のログイン画面の「Pleasanter でログイン」から入る。Pleasanter 側の TOTP・メールのワンタイムパスワードを終えた人だけが通る。Pleasanter 側に準備は要らない(標準の API
users/getで本人を確かめる)。 - 本アプリをサブパス(例
/questionnaire/)で動かせる(#466)。QUESTIONNAIRE_PATH_BASEで指定する。
変更・修正
/admin.htmlへ直接アクセスすると 404 になる。 管理画面の入口は、従来どおりQUESTIONNAIRE_ADMIN_PATH(既定/admin)。- 画面の組み立てで書体を data URI にせず、紛れ込んだら組み立てを失敗させる(#472)。CSP による書体の読み込み拒否が起きなくなった。
- リリース実行で、取り込み済みの develop を master へ PR しようとして止まる不具合を直した(#463)。
更新時の作業
マイグレーション M0032 が
PleasanterSsoSettings表(1 行だけ)を足す。SSO 設定の保存先。QUESTIONNAIRE_DB_AUTO_MIGRATEは v0.5.0 から既定で有効なので、起動時に自動で当たる(実行時に DDL 権限が要る)。無効にしているときは、配置の前に手で当てる。既存の動きは変わらない。 追加した行は空で、機能は無効のまま。新しい外部設定は、いずれも未設定なら従来どおり。
設定 既定 内容 QUESTIONNAIRE_PATH_BASE未設定 サブパス。変更には再起動が要る。画面からは変えられない QUESTIONNAIRE_PLEASANTERSSO_ENABLEDfalsePleasanter のログインで入れるようにする QUESTIONNAIRE_PLEASANTERSSO_INTERNALBASEURL未設定 本アプリのサーバから Pleasanter へ問い合わせる URL(有効時は必須) QUESTIONNAIRE_PLEASANTERSSO_LOGINURL未設定 ブラウザで開く Pleasanter のログイン画面(有効時は必須) QUESTIONNAIRE_PLEASANTERSSO_LOGOUTURL未設定 本アプリからログアウトした後に開く Pleasanter のログアウト画面 QUESTIONNAIRE_PLEASANTERSSO_UNKNOWNUSERReject未登録の Pleasanter 利用者を拒否するか、自動登録( Register)するかQUESTIONNAIRE_PLEASANTERSSO_REGISTERROLEEditor自動登録するときの役割 QUESTIONNAIRE_PLEASANTERSSO_REVALIDATEMINUTES5Pleasanter へ本人を確かめ直す間隔(分) QUESTIONNAIRE_PLEASANTERSSO_TIMEOUTSECONDS5Pleasanter への問い合わせを待つ時間(秒) QUESTIONNAIRE_PLEASANTERSSO_COOKIENAMES.AspNetCore.Cookies,Pleasanter_SessionGuidPleasanter へ転送する cookie の名前 QUESTIONNAIRE_PLEASANTERSSO_BUTTONLABEL未設定 ログイン画面のボタンの文字列 QUESTIONNAIRE_PLEASANTERSSO_*は管理画面の「設定」からも変えられる(外部設定がある項目は画面で固定される)。Pleasanter のログインでの入場には、本アプリと Pleasanter を同じホスト名で動かし、本アプリをサブパスに置く必要がある。 Pleasanter の cookie は Pleasanter の PathBase に閉じるので、Pleasanter は
/のままにする。サブパスの外は 404 になる(
/healthzと/readyを除く)。本アプリの cookie の Path もサブパスに閉じる。サブパスへ移した直後は、以前/で発行された cookie がブラウザに残る。管理者は一度ログインし直す。配置例(IIS のサブアプリケーション、Apache・Nginx のサブディレクトリ、Azure)は、リポジトリの
_documents/サブパス配置-運用手順書.mdにある。リリースノートによると、Apache・Nginx の例は実機で確かめ、IIS・Azure は未検証。
v0.6.0
2026-09-24 公開。マイグレーションあり(M0031)。
追加・変更
- 画面の文言を 5 言語へ訳した(中国語(簡体字)#452、スペイン語 #453、ベトナム語 #454、ドイツ語 #455、韓国語 #456)。管理画面と回答画面が 7 言語(
jaenzhdekoesvi)で揃った。追加した 5 言語は機械翻訳の品質。 - アンケートごとに、訳が無いときの表示言語を設定できる(#444)。既定は
ja、公開した版に固定される。 - 管理画面の入口を外部設定で変えられる(
QUESTIONNAIRE_ADMIN_PATH、#443)。 - SAML が有効なとき、合言葉ログインを塞げる(
QUESTIONNAIRE_ADMIN_PASSWORD_SIGNIN=false、#450)。 - 画面文言の多言語カタログの基盤を整えた(#442)。
更新時の作業
マイグレーション M0031 が
SurveysへFallbackLanguage(NOT NULL、既定ja)を足す。自動適用なら起動時に当たる(実行時に DDL 権限が要る)。無効にしているときは、配置の前に手で当てる。既存のアンケートの見え方は変わらない(既定値jaは従来の挙動と同じ)。新しい外部設定(いずれも未設定なら従来どおり)。画面からは変えられない(自分自身を締め出せるため)。
設定 既定 内容 QUESTIONNAIRE_ADMIN_PATH/admin管理画面の入口。変更には再起動が要る QUESTIONNAIRE_ADMIN_PASSWORD_SIGNINtruefalseで、SAML 有効時に合言葉ログインを塞ぐQUESTIONNAIRE_ADMIN_RESCUE_TOKEN未設定 塞いだときの緊急避難用。32 文字以上。未設定なら逃げ道はない 管理画面のパスを変えると、SAML の ACS URL を IdP 側でも直す必要がある。
合言葉を塞いだ状態で IdP が止まると、逃げ道(救済トークン)以外に復旧の手段がない。 トークンの控えの取り方は、リポジトリの
_documents/SAML認証-運用手順書.mdを参照する。画面自身の文言の落とし先が
jaからenに変わった(訳が無い言語 →en→ja)。アンケートの中身(設問・選択肢・見出し)の落とし先はjaのまま。
v0.5.1
2026-09-24 公開。マイグレーションなし。
変更・修正
- 新規作成したアンケートが、空のページ 1 つから始まる(#438)。既存のアンケートは変わらない。
- 管理画面の幅を、全画面で広い方に統一した(#434、#437)。入力欄とチェックボックスの見た目も整えた(#417)。一覧へ戻るリンクを、パンくずへ一本化した(#427)。
- ブラウザの
confirmをやめて、自前のダイアログにした(#419)。 - 画面の配信にキャッシュの指示を付けた(#435)。
- 空の DB へ初回起動しても落ちないようにした(#406)。要求が打ち切られたときの中断を、認証で受け止めるようにした(#428)。
- SQLite のデバッグ起動を、設定なしで動かせるようにした(#409)。
更新時の作業
- データベースのマイグレーションはない。 v0.5.0 からスキーマの変更はなく、配置し直すだけで上がる。
- 入口の HTML にキャッシュの指示が付く。更新後に古い画面が出続けることはなくなるが、ブラウザに残っている v0.5.0 以前の画面は、一度だけ強制再読み込み(Ctrl+F5)が要る場合がある。
v0.5.0
2026-09-23 公開。マイグレーションあり(M0030)。
追加・変更
- 設定を画面から変えられるようにする土台を作った(#380)。管理画面の「設定」から、次の項目を変えられる。外部設定(環境変数)に値がある項目は、画面で固定される。それ以外は、保存後に再起動なしで反映される。
- Pleasanter への接続(#388)
- メール送信(#389。試験送信つき)
- 保持日数・流量・上限値(#391)
- bot 対策のしきい値(#387)
- 埋め込みを許す親サイトと配信元(#384)
- 起動時の自動マイグレーションが、既定で有効になった(#382)。
- 外部設定には、上限と下限を課さない(#390、#396)。設定の未設定を、空文字のままメール設定へ渡さない(#398)。
- 設定パラメータの一覧をドキュメントにした(#379)。
更新時の作業
- マイグレーション M0030(アプリケーション設定の保存先
AppSettings表)がある。リリースノートには明記されていないが、v0.4.0 と v0.5.0 のタグの差分で確かめた。 QUESTIONNAIRE_DB_AUTO_MIGRATEが、v0.4.0 の「無効」から「有効」に変わった。 有効のままなら、起動時に自動で当たり、実行時に DDL 権限が要る。 実行用の DB アカウントを最小権限に分けているなら、QUESTIONNAIRE_DB_AUTO_MIGRATE=falseを明示し、手で当てる。
v0.4.0
2026-09-22 公開。マイグレーションあり(M0027〜M0029)。
追加
- 回答画面を他サイトへ
iframeで埋め込める(#338)。回答画面の高さを親サイトへ合わせる(#355)。 - システムメンテナンスモード(#364)。全体の回答受付を止める。
- 回答が来たことを、管理者へ知らせる(#362)。
- 起動時の DB マイグレーションの自動適用(#363)。この版では既定は無効。
- 設問を、ほかのアンケートから取り込める(#366)。
- 分岐の全体像を、フローチャートで見られる(#339)。
- 文字の大きさと配色を、見る人が切り替えられる(#341)。
- SQLite に対応した(#343。簡易セットアップとデバッグ専用)。意匠を確かめるデザインプレビューを足した(#336)。
更新時の作業
更新前に、マイグレーションを当てる。 当てていないと、アプリは起動を止める。いずれも列・表の追加だけで、既存のデータは変わらない。
版 内容 M0027_EmbeddableSurveysSurveysへAllowEmbeddingを追加(既定false)M0028_ResponseNotifications管理者の受取設定と、 ResponseNotificationDigestsを追加M0029_MaintenanceModeMaintenanceModeを追加当て方は従来どおり。状態の確認は
--migrate-status、適用は--migrate(Docker の検証環境ならdocker compose --profile app run --rm --no-deps migrate --migrate)。QUESTIONNAIRE_DB_AUTO_MIGRATEを有効にすると、起動時に自動で当てる。この版の既定は無効(何もしなければ、当て忘れると起動を止める)。複数インスタンスで同時に起動しても、当てるのは 1 つだけ(RDBMS ごとの接続所有ロックで排他する)。当てている間、/readyは 503、/healthzは 200 を返す。システムメンテナンスモードは、
QUESTIONNAIRE_MAINTENANCE_MODEか管理画面から、全体の回答受付を止める。環境変数で止めた場合は、管理画面から解除できない。回答の埋め込みは、
QUESTIONNAIRE_EMBED_ALLOWEDPARENTSで許可した親サイトに限り、アンケートごとに許可できる。既定は両方とも無効。HTTPS 運用でだけ成立する(cross-site の Cookie にSecureが要るため)。SQLite は簡易セットアップとデバッグ専用。本番では使わない。
回答通知メールは、管理者ごとに受け取りを設定する。既定は無効。 集約の間隔は
QUESTIONNAIRE_RESPONSE_NOTIFICATION_DIGEST_MINUTES(既定 1440 分、下限 60 分)。
v0.3.0
2026-09-17 公開。マイグレーションあり(M0022〜M0026)。振る舞いが変わる点が 3 つある。
追加
- 説明文・完了画面でファイルを配れる(#286)。回答した人にだけ渡し、配り方を 3 つから選べる(#321)。配布資料の受取履歴を、別サイトへ投射できる(#328)。
- 完了メールをキーワードで組み、プレビューと試し送信を付けた(#325)。差出人の表示名・返信先・BCC を、アンケートごとに設定できる(#326)。
- SAML の設定を管理画面から行える(#301)。管理画面のログインと招待受取に、任意の CAPTCHA を足した(#307)。
- Pleasanter 対応の 7 言語を選べる(#300)。
- 確認・同意用の単一チェックボックス設問(#268)。回答の全角と半角を、設問ごとに自動変換できる(#283)。設問の説明文で、プレーンと記法を選べる(#280)。
- マッピング: 数値の列へ入れるための変換
toNumber(#277)、文字列の列へどの設問からでも割り当てられる(#247)、変換ごとの設定を管理画面から入力(#266)、設問作成とマッピングを連携する 2 カラム表示(#284)、マッピング先のサイトを本アプリから作成・同期(#329)。 - 運用・配置: 管理者セッションをセッションストアで管理(#299)、複数プロセスで動かすときの共有状態を KVS へ出せる(#310)、アンケート資産の保存先を設定で選べる(#279)、監視のための Web API と送信元の絞り込み(#278)、OpenAPI の仕様書を条件付きで公開し Scalar で読める(#302、#304)、HTTP 運用を宣言で開ける(#282)、管理画面で動作中のアプリケーションの版を表示(#273)、管理画面にパンくずリストと使い方パネル(#281、#308)、Kudu 上で走らせる更新スクリプト(#297)、誰も入れなくなったときの DB からの復旧手順(#259)。
- ClamAV を立てない運用の選択肢と制約を文書化した(#306)。
修正・変更(細かいもの)
- マッピングの不備に設問の見出しを出す(#249)。未適用のマイグレーションを、型の名前で出す(#244)。一覧の桁が潰れるのを直した(#289)。ビルド成果物を、通常の API と同じレート制限の枠から外した(#317)。アンケート単位のレート制限に、回答画面以外を巻き込まないようにした(#314)。
更新時の作業
マイグレーションを当てる(必須)。 表が 5 つ増える。当てないと、起動時に止まる(何が足りないかを英語で出して止まる)。
番号 内容 M0022 説明文・完了画面に貼る資産(#266) M0023 管理画面のセッション(#299) M0024 SAML の設定(#301) M0025 配布資料の引換券(#318) M0026 配布資料の受取履歴の送信待ち(#323) 配置先で、新しい DLL を使って
dotnet VehicleVision.PleasanterTools.Questionnaire.Web.dll --migrateを実行する。配布ファイルの配り方を選ぶ(振る舞いが変わる)。 完了画面で配る資料は、回答した人にだけ渡すようになった。以前は、URL を知っていれば誰でも、無期限に取得できた。アンケートごとに 3 つから選ぶ。既定は「受付期間に合わせる」。
- 完了したときだけ(後から取り直せない)
- 受付期間に合わせる(既定)
- 回答から N 日(既定 30 日、上限 365 日)
設問や説明文に貼った画像は、これまでどおり、引換券なしで表示される。制限が掛かるのは、完了画面からだけ参照される資料。
完了メールの本文を書き直す(振る舞いが変わる)。 「回答の写しを付ける」「再編集リンクを付ける」という入り切りの旗を廃止した。本文へ書いたキーワードだけが、書いた位置に出る。 旗を使っていたアンケートは、本文へキーワードを足す。
キーワード 内容 アンケートの題名(回答者の言語のもの) 受付日時 回答の写し 、回答を直すリンクと期限 、資料の受け取りリンクと期限 新しく回答する URL 受付の終了日時 管理画面のプレビューと試し送信で、書き直した本文を確かめられる。
推奨構成が、Linux の App Service になった(#296)。Windows App Service でも動くが、ClamAV のサイドカーは Linux 限定。 Windows で添付を使うときは、ウイルス検査の選択肢を選ぶ(リポジトリの
_documents/添付ファイル検査-運用手順書.mdの 5 章)。
v0.2.0
2026-09-16 公開。マイグレーションあり(M0020、M0021)。公開の手順が変わる。
追加・変更
- 下書きと公開の間に「テスト公開」を足した(#234)。
- アンケートをアーカイブでき(#236)、アーカイブ済みのアンケートを完全に削除できる(#237)。
- 入れ物に入らないプリザンターの列へ割り当てられる(#224)。列の本数を、実際のプリザンターのサイトから数える(#230)。
- Azure App Service の更新スクリプトを用意した(#229)。更新後の確認で
/readyも見る(#232)。 - コマンドラインの出力(
--migrate、--migrate-status)を英語にした(#227)。Azure の Kudu の Debug console で、日本語が化けて読めないため。終了コードの意味は変えていない(0 = 適用済み、1 = 未適用あり、2 = DB へ繋がらない)。
更新時の作業
マイグレーションが 2 本ある。 前方適用のみで、アプリは未適用のまま起動しない。
番号 内容 M0020_TestPublishedResponsesResponsesとResponseTokensへIsTestM0021_ArchivedSurveysSurveysへArchivedAt配置用 ZIP を展開したディレクトリで、新しい版の DLL で、
--migrate-status、--migrate --wait-for-db=180、もう一度--migrate-statusの順に実行する。新旧のアプリが、移行後のスキーマで両方動けるとは保証していない。 無停止の swap をせず、メンテナンス時間を設けて更新する。ロールバックは、旧版の ZIP と移行直前の DB バックアップを組にして行う。
scripts/Upgrade-AzureWebApp.ps1を使うと、控えの取得から移行・再起動・確認までを通しで行う。公開の手順が変わった。 下書きから直接は公開できず、間に「テスト公開」が入る。
text下書き ──公開の準備──▶ テスト公開 ──本公開──▶ 公開- 管理 API の
POST /api/admin/surveys/{id}/publishの意味が変わった。 下書きに対して呼ぶと 400 になる。先にPOST .../test-publishを呼ぶ。 - すでに公開中のアンケートは影響を受けない。
- テスト公開中の回答も、実際にプリザンターへ送る。 ただし、本番の回答とは分けて持ち、回答数の上限には数えない。本公開してもテストの回答は消えない。 プリザンター側のレコードは、本アプリから消せないので、運用側で消す。
- 管理 API の
アーカイブ(
ArchivedAt)は、一覧から外れ、回答は存在しない公開 ID と同じ扱いで断る。元に戻せる。完全削除はアーカイブ済みだけ。 新しい権限surveys.deleteを、特権管理者だけが持つ。役割の割り当てを見直す。 消せるのは本アプリの記録だけで、プリザンター側の回答は残る。v0.1.0 からのライブラリの増減はなく、
NOTICEも変わっていない。
v0.1.0
2026-09-15 公開。初回のリリース。空の DB へ、M0001〜M0019 のスキーマ一式が作られる。
リリースノートは、v0.1.0 までの全コミットの一覧です。機能ごとにまとめると次のとおりです。
回答画面・設問
- 回答画面(TypeScript・Vite・Svelte)と、その BFF。
- 回答に応じたページ分岐と、設問の出し分け(#42、#47、#49)。1 問 1 ページ表示。
- 選択グリッド・チェックボックスグリッド・ランキング・NPS(#75)。
- 複数選択の選択数の下限・上限(#105)、正規表現による入力検証(#106)、選択肢と設問の順序のシャッフル(#113)。
- 説明文ブロックを記法で書ける(#116)。埋め込み(画像・動画・iframe)の配信元を設定で絞る(#117)。
- 回答画面の配色の細かい指定(#114)、アンケートのテーマ(色・書体)とヘッダ画像(#64)。フロントの書体とアイコンを同梱(#153)。
- 回答の下書きを端末の中だけに保存して再開(#77)。
- 画面の文言の多言語化と、言語の切り替え(英語対応、#31)。
プリザンターへの送信・マッピング
- 回答をいったんアプリの DB(アウトボックス)で受け、送信ワーカーがプリザンターへ書く。応答不明の
Createは、照合してから判断する。 - マッピングを「ソース N 個 → 変換 0〜1 個 → ターゲット 1 本」で扱う。変換スクリプトは Jint の上限つきで実行する(#90)。グリッドとランキングを写せる(#70)。未回答の日付は
DateTime.MinValueで送って未設定へ戻す(#89)。 - 添付ファイルの受け取り口、添付列へのマッピング、ウイルススキャン(ClamAV・Azure ネイティブ)、弾いた記録(#76)。
- 送信待ちの上限を 2 段構えにし、溜まりすぎたら受付を止め、送信の流量を抑える(#73)。デッドレターの保持期間を設定で決める(#93)。
公開・運用
- 公開した版の保存と読み出し、アンケートの複製(#48)、テンプレート(#62)、プレビュー(#52)、回答用 URL の QR コード(#60)、回答数の上限と受付停止の理由(#61)。
- 送信状況の画面と、デッドレターの手動再送(#50)。管理者への知らせを溜めて未読を出す(#91)。アンケート一覧のページ送りと絞り込み(#92)。
- 管理操作の記録(監査ログ、#37)と、その閲覧(#40)。
認証・管理
- 管理者の認証(合言葉・TOTP・復旧コード)。2 要素認証を必須・任意・無効から選べる(#155)。パスワードの条件を設定で決められる(#159)。管理者の権限を分け、認可を権限で行う(#161)。
- 管理者の管理 API と画面(追加・招待・無効化・役割、#17、#178)、自分のアカウントの画面。
- 管理画面への SAML 認証(#167)と単一ログアウト(#213)。
App_Data/Parameters/*.jsonを実際に読む(#176)。
メール
- 自動返信メール(MailKit が既定、#199)。差し込みと既定の文面(#210)。回答の再編集リンクを自動返信メールで送れる(#211)。
- メールの送信経路に Amazon SES と Azure Communication Services を足した(#214)。
bot 対策
- 回答画面の bot 対策と多重投稿の抑止(#16)。自前設置の proof-of-work(ALTCHA、#63)を、アンケートごとに切り替えられる(#71)。回答画面にアクセス解析のタグを置け、外部の CAPTCHA も選べる(#163)。
- SQL の組み立てから、生の文字列連結を無くした(#35)。
配置・基盤
- 3 つの RDBMS(SQL Server・PostgreSQL・MySQL)に対応した DB 層(Dapper と FluentMigrator)。マイグレーションを当てる口を用意し、起動前に当てる(#36)。
- Azure Web App と IIS の導入・更新手順(#132)。AKS への導入・更新の経路(#134)。
- ライセンスは AGPL と商用のデュアル。CI、CodeQL、依存の脆弱性検査、リリースを bump 種別の選択だけで実行する Actions(#186)。
- 本アプリが参照するプリザンター本体は 1.5.8.1(#182)。
更新時の作業
- 初回のリリースなので、更新の作業はない。空の DB を用意し、導入と設定の手順で導入する。