Skip to content

glitter-form_builder v0.3.16

Latest

Choose a tag to compare

@glitter-gim glitter-gim released this 12 Aug 02:39

그누보드7을 위한 Form Builder & Submission 모듈의 첫 공개 릴리스입니다.

glitter-form_builder는 폼 정의부터 버전 관리, 공개 폼 렌더링, 제출 데이터 처리와 관리자 조회까지 이어지는 폼 라이프사이클을 모듈 단위로 제공하는 것을 목표로 합니다.

단순한 입력 폼 UI에 그치지 않고, Canonical Form Schema와 Field Provider Contract를 중심으로 다양한 필드와 외부 확장이 동일한 규약 위에서 동작할 수 있도록 설계했습니다.

주요 기능

Form 관리

관리자에서 폼을 생성하고 관리할 수 있습니다.

  • 폼 목록 및 검색
  • 폼 생성
  • 폼 수정
  • 폼 상태 관리
  • Schema 검증
  • Publish 흐름
  • Form Version 관리

폼의 편집 상태와 실제 공개 상태를 분리하고, 게시 시점의 Schema를 버전 단위로 관리할 수 있는 구조를 제공합니다.

Canonical Form Schema

폼 필드의 정의를 공통 Schema Contract로 관리합니다.

Field Definition은 필드의 종류뿐 아니라 key, type, provider, contract version, validation 및 metadata 등을 일관된 계약으로 다룰 수 있도록 설계되어 있습니다.

이를 통해 관리자 Form Builder, 공개 폼 렌더러, 제출 처리 계층이 동일한 Schema를 기준으로 동작합니다.

Built-in Field Providers

기본 Field Provider를 제공합니다.

  • Text
  • Textarea
  • Email
  • Number
  • Date
  • Datetime
  • Select
  • Radio
  • Checkbox
  • Consent
  • Hidden

Field Provider 구조를 통해 새로운 필드 타입을 독립적으로 확장할 수 있습니다.

Schema Validation

폼을 게시하기 전에 Schema의 구조와 필드 정의를 검증합니다.

  • Form Schema parsing
  • Schema validation
  • Publish validation
  • Field definition validation
  • Field contract compatibility 검사
  • 중복 및 알 수 없는 field type 검사
  • Schema issue severity 처리

잘못된 Schema가 공개 폼이나 제출 처리 단계까지 전달되는 것을 줄이기 위한 검증 계층을 제공합니다.

Public Form

게시된 폼을 사용자 화면에 렌더링할 수 있는 공개 Form 구조를 제공합니다.

  • 공개 Form Schema 조회
  • Schema 기반 Form projection
  • Public rendering policy
  • 사용자 Form layout
  • 공개 제출 API

관리자에서 정의한 Form Schema를 공개 UI와 Submission 처리 계층에서 공통으로 사용할 수 있도록 구성했습니다.

Submission 처리

사용자가 제출한 데이터를 Schema와 Field Provider Contract에 따라 정규화하고 저장합니다.

  • Submission 입력 검증
  • Field별 normalization
  • Canonical payload 처리
  • Submission Context
  • Submission Receipt
  • Idempotency conflict 처리
  • SubmissionReceived event
  • 제출 데이터 및 field value 저장

Form 정의와 Submission 데이터를 분리하여 이후 connector, automation 및 외부 처리 계층으로 확장할 수 있는 기반을 제공합니다.

관리자 Submission 관리

관리자에서 제출 데이터를 조회할 수 있습니다.

  • 제출 목록
  • 제출 검색 및 필터
  • 제출 상세 조회
  • Pagination
  • 관리자 전용 Submission Resource

Form 관리와 Submission 관리를 별도의 관리자 화면으로 제공합니다.

관리자 UI

그누보드7 JSON Layout과 typed frontend route 구조를 사용합니다.

주요 관리자 화면:

  • Form 목록
  • Form 생성
  • Form 수정
  • Submission 목록
  • Submission 상세

관리자 사이드 메뉴는 다음과 같이 구성됩니다.

반짝이 폼 관리

  • 제출

관리자 목록 화면은 sirsoft-admin_basic의 반응형 관리자 레이아웃 규약을 사용하며 화면 크기에 따라 적절한 콘텐츠 padding과 section spacing을 적용합니다.

다국어 지원

한국어와 영어 UI를 지원합니다.

  • 관리자 메뉴
  • Form 관리 화면
  • Submission 관리 화면
  • 공개 Form 화면
  • Field 관련 UI

JSON Layout의 표시 문자열은 G7 frontend i18n 체계를 사용하며, backend message와 field metadata도 모듈 language resource를 통해 관리합니다.

권한 관리

G7의 Role / Permission 체계를 사용하여 Form과 Submission 관리 권한을 분리합니다.

관리자 route와 API는 모듈의 permission contract를 기준으로 접근을 제어합니다.

권한 검사를 제거하거나 별도의 관리자 우회 로직을 사용하지 않습니다.

확장 구조

glitter-form_builder는 독립적인 Form UI보다 다른 모듈에서도 사용할 수 있는 Form Infrastructure를 지향합니다.

주요 확장 지점:

  • Field Provider
  • Field Type Registry
  • Form Schema Contract
  • Submission Contract
  • Submission Handler
  • Processing Lifecycle
  • Connector Boundary
  • Event
  • Idempotency

관련 contract와 설계 문서를 docs/contractsdocs/design에 포함했습니다.

테스트

초기 릴리스에는 다음 영역에 대한 테스트가 포함되어 있습니다.

  • Module lifecycle
  • Module skeleton
  • Form repository/service
  • Field Provider contract
  • Built-in field behavior
  • Field Type Registry
  • Schema parser/validator
  • Publish validation
  • Public Form rendering
  • Submission contract
  • Submission resource
  • 관리자 UI/layout contract
  • i18n/menu contract
  • Designer state/publish flow

기술 환경

  • PHP 8.2+
  • Laravel 12.x
  • Gnuboard7 7.0.5+
  • TypeScript
  • JSON Layout
  • Vite

설치

그누보드7의 module lifecycle을 통해 설치 및 활성화합니다.

모듈 identifier:

glitter-form_builder

배포 환경에서는 저장소의 소스를 직접 수정하기보다 그누보드7의 정식 모듈 설치·업데이트 절차를 사용하는 것을 권장합니다.

v0.3.16 UI 보완

첫 공개 릴리스에 앞서 관리자 UI를 추가로 정리했습니다.

  • 모듈 표시명을 반짝이 폼 관리로 정리
  • 관리자 사이드 메뉴 branding 통일
  • 관리자 메뉴 i18n 처리 보완
  • Form/Submission 화면 i18n contract 검증
  • Form/Submission 목록의 반응형 콘텐츠 padding 적용
  • 관리자 section 간 vertical spacing 정리
  • 기존 route, API 및 permission contract 유지

현재 단계

v0.3.16은 glitter-form_builder의 첫 공개 릴리스입니다.

현재 릴리스는 Form Schema, Field Provider, Public Form, Submission 처리 및 관리자 UI를 포함하는 기반 기능을 제공합니다.

향후 다른 그누보드7 모듈이 Form Builder를 공통 입력·제출 인프라로 사용할 수 있도록 Contract와 확장 지점을 지속적으로 안정화할 예정입니다.