Skip to content

Web アンケートアプリの変更履歴 ​

第1版作成 最終更新 (日本時間)
確認バージョン1.5.8.1

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 → v0.10.0)

v0.9.3 ​

2026-10-10 公開。マイグレーションなし。

追加・変更 ​

  • 編集画面が、アンケートの公開状態で表示を出し分けるようになった(#538)。下書き以外のときは、「編集は下書きに保存されるだけで、公開中の版には反映されない」と常に表示する。
  • テスト公開中は、「テスト公開に反映する」を押すと、保存・下書きへ戻す・テスト公開を一度に行い、版が 1 つ上がる。 保存できなかったとき(他の人が先に更新したなど)は先へ進まない。

更新時の作業 ​

  • なし。依存ライブラリの変更もない。

全差分(v0.9.2 → v0.9.3)

v0.9.2 ​

2026-10-07 公開。マイグレーションなし。

変更 ​

  • 依存ライブラリの更新(Dependabot の更新を 1 本にまとめて取り込み、#534)だけ。機能の変更はない。

更新時の作業 ​

  • なし。

全差分(v0.9.1 → v0.9.2)

v0.9.1 ​

2026-09-28 公開。マイグレーションなし。

修正 ​

  • プレビューの言語選択を、ダークモードでも読めるようにした(#520)。
  • 管理画面の入力種別を、設問カードの中に収めた(#522)。
  • 依存ライブラリの更新を取り込んだ(#518)。

更新時の作業 ​

  • なし。

全差分(v0.9.0 → v0.9.1)

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 で次を実行する。

    powershell
    dotnet 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 → v0.9.0)

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 → v0.8.0)

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 → v0.7.1)

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 → v0.7.0)

v0.6.0 ​

2026-09-24 公開。マイグレーションあり(M0031)。

追加・変更 ​

  • 画面の文言を 5 言語へ訳した(中国語(簡体字)#452、スペイン語 #453、ベトナム語 #454、ドイツ語 #455、韓国語 #456)。管理画面と回答画面が 7 言語(ja en zh de ko es vi)で揃った。追加した 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 → v0.6.0)

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 → v0.5.1)

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 → v0.5.0)

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 → v0.4.0)

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)。

更新時の作業 ​

  1. マイグレーションを当てる(必須)。 表が 5 つ増える。当てないと、起動時に止まる(何が足りないかを英語で出して止まる)。

    番号内容
    M0022説明文・完了画面に貼る資産(#266)
    M0023管理画面のセッション(#299)
    M0024SAML の設定(#301)
    M0025配布資料の引換券(#318)
    M0026配布資料の受取履歴の送信待ち(#323)

    配置先で、新しい DLL を使って dotnet VehicleVision.PleasanterTools.Questionnaire.Web.dll --migrate を実行する。

  2. 配布ファイルの配り方を選ぶ(振る舞いが変わる)。 完了画面で配る資料は、回答した人にだけ渡すようになった。以前は、URL を知っていれば誰でも、無期限に取得できた。アンケートごとに 3 つから選ぶ。既定は「受付期間に合わせる」。

    • 完了したときだけ(後から取り直せない)
    • 受付期間に合わせる(既定)
    • 回答から N 日(既定 30 日、上限 365 日)

    設問や説明文に貼った画像は、これまでどおり、引換券なしで表示される。制限が掛かるのは、完了画面からだけ参照される資料。

  3. 完了メールの本文を書き直す(振る舞いが変わる)。 「回答の写しを付ける」「再編集リンクを付ける」という入り切りの旗を廃止した。本文へ書いたキーワードだけが、書いた位置に出る。 旗を使っていたアンケートは、本文へキーワードを足す。

    キーワード内容
    アンケートの題名(回答者の言語のもの)
    受付日時
    回答の写し
    、回答を直すリンクと期限
    、資料の受け取りリンクと期限
    新しく回答する URL
    受付の終了日時

    管理画面のプレビューと試し送信で、書き直した本文を確かめられる。

  4. 推奨構成が、Linux の App Service になった(#296)。Windows App Service でも動くが、ClamAV のサイドカーは Linux 限定。 Windows で添付を使うときは、ウイルス検査の選択肢を選ぶ(リポジトリの _documents/添付ファイル検査-運用手順書.md の 5 章)。

全差分(v0.2.0 → v0.3.0)

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 へ IsTest
    M0021_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 を呼ぶ。
    • すでに公開中のアンケートは影響を受けない。
    • テスト公開中の回答も、実際にプリザンターへ送る。 ただし、本番の回答とは分けて持ち、回答数の上限には数えない。本公開してもテストの回答は消えない。 プリザンター側のレコードは、本アプリから消せないので、運用側で消す。
  • アーカイブ(ArchivedAt)は、一覧から外れ、回答は存在しない公開 ID と同じ扱いで断る。元に戻せる。完全削除はアーカイブ済みだけ。 新しい権限 surveys.delete を、特権管理者だけが持つ。役割の割り当てを見直す。 消せるのは本アプリの記録だけで、プリザンター側の回答は残る。

  • v0.1.0 からのライブラリの増減はなく、NOTICE も変わっていない。

全差分(v0.1.0 → v0.2.0)

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 を用意し、導入と設定の手順で導入する。

v0.1.0 のリリース

関連ページ ​

変更履歴

第1版ツールのマニュアルをツール別の独立した構成にし、変更履歴とバージョン別の機能差を追加した