管理画面編集とGit経由の同期運用

現場は管理画面で編集、開発はGitで管理 — push/pullで両立させる運用

管理画面Git同期push/pull編集フロー運用
読了時間: 6分

はじめに

FAQ運用でいちばん揉めやすいのが、「誰がFAQを直すのか」という点です。
現場は「気づいたらすぐ直したい」、開発は「データはちゃんと管理したい」。この二つ、放っておくと衝突しますよね。

この記事では、私がアパレル・ギア系のECサイトで、現場は管理画面で編集、開発はGitで管理という二つの経路を、push/pullスクリプトで両立させた運用を解説します。どちらから触っても、最終的にデータが一つに収束する仕組みです。

二つの編集経路を用意する

現場スタッフは管理画面から

FAQを直したい人の多くは、コードもGitも触りません。カスタマーサポートの担当者が「この回答、古くなってる」と気づいたとき、その場で直せることが大事です。そこで、OTP認証(ワンタイムパスワード)でログインできる管理画面を用意し、質問・回答・並び順を直接編集できるようにしました。専門知識なしに、必要な人が必要なときに直せる。これが現場側の入り口です。

開発側はGitでJSONを管理

一方、開発側はカテゴリ別JSONをGitで管理します。大きな構造変更、カテゴリの追加、複数サイトへの展開といった作業は、コードと同じようにブランチを切ってレビューを通したい。Gitで扱えば、いつ・誰が・どこを変えたかが履歴に残り、問題があれば戻せます。日々の細かな修正は現場、まとまった変更は開発、という自然な役割分担ができます。

二つの編集経路
現場スタッフ

OTP認証の管理画面から、質問・回答・並び順を直接編集。日々の細かな修正を担う

開発チーム

GitでJSONを管理。構造変更・カテゴリ追加・サイト展開をレビュー付きで担う

push/pullで双方向に同期する

faq-push と faq-pull の役割

二つの経路があると、必ず「どっちが最新か」という問題が起きます。これを解くのが、双方向の同期スクリプトです。faq-pushはGit上のJSONをVercel KV(本番データ)へ反映し、faq-pullは管理画面で変更された最新のKVデータをGit側へ取り込みます。開発がまとめた変更はpushで配信し、現場が直した内容はpullで手元へ回収する。この往復があるからこそ、二つの経路が破綻せずに共存できるんです。

現場の変更を取りこぼさない

いちばん怖いのは、現場が管理画面で直した内容を、開発がGitから古いJSONをpushして上書きしてしまうことです。これを防ぐため、開発側で作業を始める前にまずfaq-pullで最新を取り込む、という手順を運用ルールにしています。「触る前に引く」を徹底しておけば、現場の修正を潰す事故はぐっと減ります。

Git経由の同期フロー
作業前に pull

faq-pull で管理画面側の最新変更をGitへ取り込む

Gitで編集・レビュー

ブランチを切ってJSONを変更し、レビューを通す

push で配信

faq-push でKVへ反映し、本番へ展開

検索インデックス更新

横断検索用の索引を再生成して整合を取る

運用を安全に回すために

認証と権限を分ける

管理画面はFAQという公開情報を扱うとはいえ、誰でも書き換えられては困ります。OTP認証でログインを絞り、編集できる人を限定しています。パスワードの使い回しやハードコードを避けられるOTPは、現場スタッフが使う管理画面と相性が良い方式です。

同期のタイミングを決めておく

push/pullは強力ですが、いつ実行するかを曖昧にすると事故のもとです。「作業前は必ずpull」「配信はpush後に検索インデックスも更新」といったタイミングを運用ルールとして明文化しておくと、担当者が変わっても同じ手順で回せます。仕組みだけでなく、この決めごとの部分が地味に効いてきますよね。

まとめ

FAQの編集は、現場が管理画面、開発がGit、という二つの経路を持ち、faq-push / faq-pullで双方向に同期することで両立させました。「すぐ直したい現場」と「きちんと管理したい開発」、どちらの要望も潰さずに済むのがこの運用の良さです。

このFAQをユーザーの自己解決にどうつなげるかは、FAQと問い合わせ導線の接続でCS負荷を下げるで解説します。データ構造の詳細はJSON+KVによるFAQデータ管理と検索インデックスをご覧ください。