create-entity-server 0.9.12 → 0.9.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -13,13 +13,24 @@
13
13
  "rbac_role": {
14
14
  "index": true,
15
15
  "comment": "엔티티 접근 역할",
16
- "type": ["admin", "editor", "viewer", "auditor", "user"],
16
+ "type": [
17
+ "admin",
18
+ "editor",
19
+ "viewer",
20
+ "auditor",
21
+ "user"
22
+ ],
17
23
  "default": "user"
18
24
  },
19
25
  "status": {
20
26
  "index": true,
21
27
  "comment": "계정 상태",
22
- "type": ["active", "inactive", "blocked", "dormant"],
28
+ "type": [
29
+ "active",
30
+ "inactive",
31
+ "blocked",
32
+ "dormant"
33
+ ],
23
34
  "default": "active"
24
35
  },
25
36
  "max_session_cnt": {
@@ -48,62 +59,16 @@
48
59
  "comment": "다음 로그인 시 비밀번호 변경 강제"
49
60
  }
50
61
  },
51
- "reset_defaults": [
52
- {
53
- "email": "admin1@${DEFAULT_EMAIL_DOMAIN}",
54
- "passwd": "admin12345",
55
- "rbac_role": "admin",
56
- "status": "active"
57
- },
58
- {
59
- "email": "admin2@${DEFAULT_EMAIL_DOMAIN}",
60
- "passwd": "admin12345",
61
- "rbac_role": "admin",
62
- "status": "active"
63
- },
64
- {
65
- "email": "admin3@${DEFAULT_EMAIL_DOMAIN}",
66
- "passwd": "admin12345",
67
- "rbac_role": "admin",
68
- "status": "active"
69
- },
70
- {
71
- "email": "test1@${DEFAULT_EMAIL_DOMAIN}",
72
- "passwd": "test12345",
73
- "rbac_role": "user",
74
- "status": "active"
75
- },
76
- {
77
- "email": "test2@${DEFAULT_EMAIL_DOMAIN}",
78
- "passwd": "test12345",
79
- "rbac_role": "user",
80
- "status": "active"
81
- },
82
- {
83
- "email": "test3@${DEFAULT_EMAIL_DOMAIN}",
84
- "passwd": "test12345",
85
- "rbac_role": "user",
86
- "status": "active"
87
- },
88
- {
89
- "email": "test4@${DEFAULT_EMAIL_DOMAIN}",
90
- "passwd": "test12345",
91
- "rbac_role": "user",
92
- "status": "active"
93
- },
94
- {
95
- "email": "test5@${DEFAULT_EMAIL_DOMAIN}",
96
- "passwd": "test12345",
97
- "rbac_role": "user",
98
- "status": "active"
99
- }
100
- ],
101
62
  "hooks": {
102
63
  "after_insert": [
103
64
  {
104
65
  "type": "sql",
105
66
  "query": "INSERT INTO account_audit (account_seq, action, email, created_time) VALUES (?, ?, ?, NOW())",
106
- "params": ["${new.seq}", "INSERT", "${new.email}"],
67
+ "params": [
68
+ "${new.seq}",
69
+ "INSERT",
70
+ "${new.email}"
71
+ ],
107
72
  "required": true
108
73
  }
109
74
  ],
@@ -111,7 +76,11 @@
111
76
  {
112
77
  "type": "sql",
113
78
  "query": "INSERT INTO account_audit (account_seq, action, email, created_time) VALUES (?, ?, ?, NOW())",
114
- "params": ["${new.seq}", "UPDATE", "${new.email}"],
79
+ "params": [
80
+ "${new.seq}",
81
+ "UPDATE",
82
+ "${new.email}"
83
+ ],
115
84
  "required": true
116
85
  }
117
86
  ],
@@ -119,7 +88,11 @@
119
88
  {
120
89
  "type": "sql",
121
90
  "query": "INSERT INTO account_audit (account_seq, action, email, created_time) VALUES (?, ?, ?, NOW())",
122
- "params": ["${old.seq}", "DELETE", "${old.email}"],
91
+ "params": [
92
+ "${old.seq}",
93
+ "DELETE",
94
+ "${old.email}"
95
+ ],
123
96
  "required": true
124
97
  }
125
98
  ],
@@ -9,12 +9,6 @@
9
9
  "unique": true,
10
10
  "comment": "익명 디바이스 ID (cookie/device_id)"
11
11
  },
12
- "calc_count": {
13
- "index": true,
14
- "type": "uint",
15
- "default": 0,
16
- "comment": "거리 계산 사용 횟수"
17
- },
18
12
  "first_seen_time": {
19
13
  "comment": "최초 식별 시각"
20
14
  },
@@ -22,14 +16,6 @@
22
16
  "index": true,
23
17
  "comment": "마지막 식별 시각"
24
18
  },
25
- "last_calc_time": {
26
- "index": true,
27
- "comment": "마지막 거리 계산 시각"
28
- },
29
- "blocked_until_time": {
30
- "index": true,
31
- "comment": "차단 해제 시각"
32
- },
33
19
  "last_ip_addr": {
34
20
  "comment": "마지막 IP주소"
35
21
  },
@@ -0,0 +1,50 @@
1
+ [
2
+ {
3
+ "email": "admin1@${DEFAULT_EMAIL_DOMAIN}",
4
+ "passwd": "admin12345",
5
+ "rbac_role": "admin",
6
+ "status": "active"
7
+ },
8
+ {
9
+ "email": "admin2@${DEFAULT_EMAIL_DOMAIN}",
10
+ "passwd": "admin12345",
11
+ "rbac_role": "admin",
12
+ "status": "active"
13
+ },
14
+ {
15
+ "email": "admin3@${DEFAULT_EMAIL_DOMAIN}",
16
+ "passwd": "admin12345",
17
+ "rbac_role": "admin",
18
+ "status": "active"
19
+ },
20
+ {
21
+ "email": "test1@${DEFAULT_EMAIL_DOMAIN}",
22
+ "passwd": "test12345",
23
+ "rbac_role": "user",
24
+ "status": "active"
25
+ },
26
+ {
27
+ "email": "test2@${DEFAULT_EMAIL_DOMAIN}",
28
+ "passwd": "test12345",
29
+ "rbac_role": "user",
30
+ "status": "active"
31
+ },
32
+ {
33
+ "email": "test3@${DEFAULT_EMAIL_DOMAIN}",
34
+ "passwd": "test12345",
35
+ "rbac_role": "user",
36
+ "status": "active"
37
+ },
38
+ {
39
+ "email": "test4@${DEFAULT_EMAIL_DOMAIN}",
40
+ "passwd": "test12345",
41
+ "rbac_role": "user",
42
+ "status": "active"
43
+ },
44
+ {
45
+ "email": "test5@${DEFAULT_EMAIL_DOMAIN}",
46
+ "passwd": "test12345",
47
+ "rbac_role": "user",
48
+ "status": "active"
49
+ }
50
+ ]
@@ -0,0 +1,6 @@
1
+ [
2
+ {
3
+ "name": "system",
4
+ "name_abbr": "system"
5
+ }
6
+ ]
@@ -0,0 +1,62 @@
1
+ [
2
+ {
3
+ "name": "admin",
4
+ "description": "전체 권한 (모든 엔티티 CRUD + 관리)",
5
+ "permissions": [
6
+ "*"
7
+ ]
8
+ },
9
+ {
10
+ "name": "editor",
11
+ "description": "읽기 + 쓰기 (생성/수정/삭제 가능)",
12
+ "permissions": [
13
+ "entity:meta",
14
+ "entity:validate",
15
+ "entity:read",
16
+ "entity:list",
17
+ "entity:count",
18
+ "entity:query",
19
+ "entity:create",
20
+ "entity:delete",
21
+ "entity:history",
22
+ "entity:rollback",
23
+ "admin:entities",
24
+ "admin:stats",
25
+ "admin:reindex"
26
+ ]
27
+ },
28
+ {
29
+ "name": "viewer",
30
+ "description": "읽기 전용",
31
+ "permissions": [
32
+ "entity:meta",
33
+ "entity:read",
34
+ "entity:list",
35
+ "entity:count",
36
+ "entity:query",
37
+ "admin:entities",
38
+ "admin:stats"
39
+ ]
40
+ },
41
+ {
42
+ "name": "auditor",
43
+ "description": "읽기 + history 조회 전용",
44
+ "permissions": [
45
+ "entity:read",
46
+ "entity:list",
47
+ "entity:history",
48
+ "admin:entities",
49
+ "admin:stats"
50
+ ]
51
+ },
52
+ {
53
+ "name": "user",
54
+ "description": "일반 사용자 (기본 CRUD)",
55
+ "permissions": [
56
+ "entity:meta",
57
+ "entity:read",
58
+ "entity:list",
59
+ "entity:count"
60
+ ]
61
+ }
62
+ ]
@@ -51,11 +51,5 @@
51
51
  "default": 0,
52
52
  "nullable": false
53
53
  }
54
- },
55
- "reset_defaults": [
56
- {
57
- "name": "system",
58
- "name_abbr": "system"
59
- }
60
- ]
54
+ }
61
55
  }
@@ -18,65 +18,5 @@
18
18
  "type": "json",
19
19
  "comment": "권한 목록"
20
20
  }
21
- },
22
- "reset_defaults": [
23
- {
24
- "name": "admin",
25
- "description": "전체 권한 (모든 엔티티 CRUD + 관리)",
26
- "permissions": ["*"]
27
- },
28
- {
29
- "name": "editor",
30
- "description": "읽기 + 쓰기 (생성/수정/삭제 가능)",
31
- "permissions": [
32
- "entity:meta",
33
- "entity:validate",
34
- "entity:read",
35
- "entity:list",
36
- "entity:count",
37
- "entity:query",
38
- "entity:create",
39
- "entity:delete",
40
- "entity:history",
41
- "entity:rollback",
42
- "admin:entities",
43
- "admin:stats",
44
- "admin:reindex"
45
- ]
46
- },
47
- {
48
- "name": "viewer",
49
- "description": "읽기 전용",
50
- "permissions": [
51
- "entity:meta",
52
- "entity:read",
53
- "entity:list",
54
- "entity:count",
55
- "entity:query",
56
- "admin:entities",
57
- "admin:stats"
58
- ]
59
- },
60
- {
61
- "name": "auditor",
62
- "description": "읽기 + history 조회 전용",
63
- "permissions": [
64
- "entity:read",
65
- "entity:list",
66
- "entity:history",
67
- "admin:entities",
68
- "admin:stats"
69
- ]
70
- },
71
- {
72
- "name": "user",
73
- "description": "일반 사용자 (기본 CRUD)",
74
- "permissions": [
75
- "entity:meta",
76
- "entity:read",
77
- "entity:list",
78
- "entity:count"
79
- ]
80
- }
81
- ]
21
+ }
82
22
  }
@@ -14,7 +14,12 @@
14
14
  "status": {
15
15
  "index": true,
16
16
  "comment": "작업 상태",
17
- "type": ["running", "completed", "partial", "failed"],
17
+ "type": [
18
+ "running",
19
+ "completed",
20
+ "partial",
21
+ "failed"
22
+ ],
18
23
  "default": "running",
19
24
  "required": true
20
25
  },
@@ -42,5 +47,6 @@
42
47
  "total_bytes": {
43
48
  "comment": "전송된 총 바이트 수"
44
49
  }
45
- }
50
+ },
51
+ "data_encryption": false
46
52
  }
@@ -39,5 +39,6 @@
39
39
  "account_seq": false,
40
40
  "file_seq": false
41
41
  },
42
- "read_only": true
42
+ "read_only": true,
43
+ "data_encryption": false
43
44
  }
@@ -8,7 +8,11 @@
8
8
  "fields": {
9
9
  "backup_type": {
10
10
  "index": true,
11
- "type": ["data", "file", "full"],
11
+ "type": [
12
+ "data",
13
+ "file",
14
+ "full"
15
+ ],
12
16
  "required": true
13
17
  },
14
18
  "finished_time": {
@@ -19,7 +23,12 @@
19
23
  },
20
24
  "status": {
21
25
  "index": true,
22
- "type": ["running", "completed", "partial", "failed"],
26
+ "type": [
27
+ "running",
28
+ "completed",
29
+ "partial",
30
+ "failed"
31
+ ],
23
32
  "required": true
24
33
  },
25
34
  "session_id": {
@@ -53,5 +62,6 @@
53
62
  "description": "manifest.json 경로"
54
63
  }
55
64
  },
56
- "read_only": true
65
+ "read_only": true,
66
+ "data_encryption": false
57
67
  }
@@ -0,0 +1,14 @@
1
+ [
2
+ {
3
+ "name": "샘플 상품 A",
4
+ "category": "전자제품",
5
+ "price": 10000,
6
+ "stock": 50
7
+ },
8
+ {
9
+ "name": "샘플 상품 B",
10
+ "category": "가구",
11
+ "price": 50000,
12
+ "stock": 20
13
+ }
14
+ ]
@@ -11,25 +11,15 @@
11
11
  "category": {
12
12
  "index": true,
13
13
  "comment": "카테고리",
14
- "type": ["전자제품", "가구", "생활용품"]
14
+ "type": [
15
+ "전자제품",
16
+ "가구",
17
+ "생활용품"
18
+ ]
15
19
  },
16
20
  "price": {
17
21
  "index": true,
18
22
  "comment": "가격"
19
23
  }
20
- },
21
- "reset_defaults": [
22
- {
23
- "name": "샘플 상품 A",
24
- "category": "전자제품",
25
- "price": 10000,
26
- "stock": 50
27
- },
28
- {
29
- "name": "샘플 상품 B",
30
- "category": "가구",
31
- "price": 50000,
32
- "stock": 20
33
- }
34
- ]
24
+ }
35
25
  }
@@ -603,13 +603,15 @@ if [ $# -eq 0 ]; then
603
603
  echo "모드:"
604
604
  echo " dev environment=development로 설정하고 database.default는 유지한 채 바이너리 실행"
605
605
  echo " start 설정파일을 수정하지 않고 현재 설정 그대로 백그라운드 실행"
606
- echo " stop run.sh로 백그라운드 실행한 서버 중지"
607
- echo " status 서버 상태 조회"
606
+ echo " stop run.sh로 백그라운드 실행한 서버 중지"
607
+ echo " restart 서버 재시작"
608
+ echo " status 서버 상태 조회"
608
609
  echo ""
609
610
  echo "예제:"
610
611
  echo " $0 dev # 개발 모드로 시작"
611
612
  echo " $0 start # 현재 설정 그대로 시작(백그라운드)"
612
613
  echo " $0 stop # 서버 중지"
614
+ echo " $0 restart # 서버 재시작"
613
615
  echo " $0 status # 상태 조회"
614
616
  fi
615
617
 
@@ -768,6 +770,19 @@ case "$MODE" in
768
770
  stop_server
769
771
  ;;
770
772
 
773
+ restart)
774
+ svc=$(find_systemd_service || true)
775
+ if [ -n "$svc" ]; then
776
+ echo "ℹ️ systemd 서비스 재시작: $svc"
777
+ sudo systemctl restart "$svc"
778
+ echo "✅ ${SERVER_NAME} 재시작 완료 (systemd)"
779
+ exit 0
780
+ fi
781
+
782
+ stop_server || exit $?
783
+ exec "$SCRIPT_DIR/run.sh" start
784
+ ;;
785
+
771
786
  status)
772
787
  show_status
773
788
  ;;