feat: Config Sync page — promote platform config across environments#20
Merged
Conversation
Adds a Config Sync screen (ADR 0003) to move definitional config (permissions, roles, menus) from one environment to another: - Export: snapshot this server's config as a code-keyed JSON bundle (view / download / copy). - Import: paste or upload a bundle, preview the diff (dry-run, the default), then apply. Apply is gated on a fresh dry-run reflecting the current text — any edit clears the preview. - merge / mirror modes. mirror deletes target entities absent from the bundle (needs a kit version that supports it; warned in the UI). - Route + sidebar nav entry under Platform; ko/en i18n. Talks to GET /config/export and POST /config/import (kit config-sync, off by default, refused under a production profile).
Follows the kit's config-sync PR (mirror mode + user sync) so the page exposes the full surface: - Import/Export gain an "include users" toggle (export carries users with no password; import is create-only and never overwrites existing users) with an inline hint. - The diff now renders Deleted (red, mirror only) and Skipped (gray — a role still in use, or a user that already exists) alongside Created/Updated, plus a Users section when user sync ran. - Editing the bundle, mode, or the users toggle re-gates Apply behind a fresh dry-run. Built green (vue-tsc + vite).
This was referenced Jun 3, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a Config Sync page (ADR 0003) so an operator can promote platform config — permissions, roles, menus, and (opt-in) users — from one environment (e.g. local) to another (e.g. production), without hand-editing the target.
mirrordeletes target entities absent from the bundle (warned inline).config-sync+ sidebar nav entry under Platform; full ko/en i18n.Backend
Talks to
GET /admin/api/v1/config/exportandPOST /admin/api/v1/config/import— the kit's config-sync surface (off by default viadevslab.kit.config-sync.enabled, refused under a production profile). Themirrormode,deleted/skippedreporting andincludeUsersare delivered by devslab-kit #55 (this PR pairs with it); export/import themselves landed in #53 / #54.Verification
npm run build(vue-tsc typecheck + vite) green locally.요약 (한국어)
설정 동기화 페이지(ADR 0003)를 추가합니다. 운영자가 플랫폼 설정 — 권한·역할·메뉴, 그리고 (옵트인) 사용자 — 을 한 환경(예: 로컬)에서 다른 환경(예: 운영)으로 대상 서버를 직접 손대지 않고 배포할 수 있습니다.
mirror는 번들에 없는 대상 항목을 삭제(화면 경고).config-sync+ 플랫폼 그룹 사이드바 메뉴; ko/en i18n 완비.백엔드
GET /admin/api/v1/config/export,POST /admin/api/v1/config/import호출 — kit 의 config-sync 표면(기본 off:devslab.kit.config-sync.enabled, 운영 프로파일 기동 거부).mirror모드,deleted/skipped보고,includeUsers는 devslab-kit #55 가 제공(이 PR 과 짝); export/import 자체는 #53 / #54 에서 반영됨.검증
npm run build(vue-tsc 타입체크 + vite) 로컬 green.