GitHub(nextgroup2706/ken_nogi)は今後使わず自社Gitea運用に切替え。 NodeSrvは旧リポジトリの履歴を破棄しファイルのみ統合(Dokploy用サービスアカウントは 別途mygit-admin/NodeSrv.gitに履歴あり)。notepmエクスポート(12GB)とPleasanter インストーラzip(208MB)はサイズが大きいため.gitignoreで除外。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| .claude/skills | ||
| pleasanter-saml | ||
| sample | ||
| scripts | ||
| src | ||
| test | ||
| merge-master-rules.md | ||
| n8n-merge-master-workflow-design.md | ||
| NEW_workflow-PLAN.TXT | ||
| NEXTGROUP従業員マスタ_2026_08_24 09_14_11.json | ||
| package.json | ||
| README.md | ||
| workflow-list.md | ||
| プリザンター代替マスタ_2026_09_03 16_09_34.json | ||
org-master-sync
LINEWORKS・プリザンター・Keycloak横断の組織・社員管理データベース構築プロジェクト。 設計: docs/superpowers/specs/2026-08-07-org-master-sync-design.md
現状ステータス
Phase 1完了: LINEWORKS取得(①fetch-lineworks)→ プリザンターマスタテーブル反映(②merge-master)が動作。
Phase 2完了: マスタ→Keycloak完全同期(④sync-keycloak)が動作。マスタの全項目(プリザンターの
SiteSettings.Columnsから動的取得)をKeycloakのカスタム属性として同期し、項目の追加・削除の
両方に自動追従する。新規作成はClassZ=有のみ、既存ユーザーはCheck062に応じて無効化のみ
(削除はしない)、マスタからレコード自体が消えた場合のみKeycloakユーザーを完全削除する。
前回同期状態はconfigs/keycloak-sync/で管理。
マスタテーブルはプリザンターSiteId=1(.envのPLEASANTER_MASTER_SITE_ID)。
③sync-pleasanterは本番移行後に着手(別プランで対応)。
セットアップ
cd apps/org-master-sync
npm test # ユニットテスト実行(node --test)
.envは3システム分の認証情報を含む(gitignore対象、既に設定済み)。
Keycloak側はorg-master-syncクライアントのサービスアカウントにrealm-managementのrealm-adminロールが
付与済み(User Profile属性定義の動的追加・削除に必要。Keycloak管理コンソールで1回のみ設定済み)。
コマンド
node src/commands/fetch-lineworks.js # ① LINEWORKSから全件取得 → data/master-source/lineworks-snapshot.json
node src/commands/merge-master.js # ② マスタテーブル(SiteId=1)へ突合・反映
node src/commands/sync-keycloak.js [--execute] # ④ マスタをKeycloak(nexthdレルム)へ完全同期
運用上の注意:
- ④実行前には必ず①②を先に実行すること。LINEWORKS退職者検知(②)は都度の実行に依存するため、①②を経ずに④だけを実行すると在籍状態が古いままKeycloakへ反映される
- ④はプリザンター側でカラムが削除されると対応するKeycloak属性も削除し、マスタレコード自体が削除されると対応するKeycloakユーザーも完全削除する(完全同期)。ドライランで「属性削除予定」「delete予定」件数を必ず確認してから
--executeすること
Claude Skill経由でも起動可能(.claude/skills/org-fetch-lineworks/ / org-merge-master/ / org-sync-keycloak/)。
ディレクトリ構成
org-master-sync/
.env 認証情報(git管理対象外)
keys/ LINEWORKS秘密鍵(git管理対象外)
src/
lib/ lineworksAuth.js / lineworksClient.js / pleasanterClient.js / keycloakClient.js / keycloakColumnSync.js
config/ masterFields.js(マスタ項目→プリザンターフィールドの割当定義)
commands/ fetch-lineworks.js / merge-master.js / sync-keycloak.js
scripts/ 一回限りの移行・保守スクリプト(本番→テスト環境インポート等)
test/ node --testによるユニットテスト
data/ 取得データ・スナップショット(git管理対象外)
pleasanter-saml/ SAML SSO設定一式
他システムから独立したフォルダとして構成。単体で別リポジトリへ切り出す場合もこのフォルダごと移動すればよい。