@soddong/agentic-domain-methodology 0.11.1
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.
- package/.tbls.yml +64 -0
- package/CHANGELOG.md +97 -0
- package/README.md +501 -0
- package/dist/database.d.ts +8 -0
- package/dist/database.d.ts.map +1 -0
- package/dist/database.js +76 -0
- package/dist/database.js.map +1 -0
- package/dist/fixtures.d.ts +13 -0
- package/dist/fixtures.d.ts.map +1 -0
- package/dist/fixtures.js +413 -0
- package/dist/fixtures.js.map +1 -0
- package/dist/index.d.ts +31 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/repositories.d.ts +54 -0
- package/dist/repositories.d.ts.map +1 -0
- package/dist/repositories.js +652 -0
- package/dist/repositories.js.map +1 -0
- package/dist/seed-apply.d.ts +20 -0
- package/dist/seed-apply.d.ts.map +1 -0
- package/dist/seed-apply.js +728 -0
- package/dist/seed-apply.js.map +1 -0
- package/dist/service.d.ts +107 -0
- package/dist/service.d.ts.map +1 -0
- package/dist/service.js +225 -0
- package/dist/service.js.map +1 -0
- package/dist/types.d.ts +356 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/validators.d.ts +17 -0
- package/dist/validators.d.ts.map +1 -0
- package/dist/validators.js +297 -0
- package/dist/validators.js.map +1 -0
- package/docs/build.md +47 -0
- package/docs/configuration.md +33 -0
- package/docs/delivery.md +52 -0
- package/docs/operations.md +55 -0
- package/docs/publishing.md +84 -0
- package/docs/schema/generated/README.md +39 -0
- package/docs/schema/generated/methodology_activities.md +121 -0
- package/docs/schema/generated/methodology_activities.svg +143 -0
- package/docs/schema/generated/methodology_activity_artifact_requirements.md +129 -0
- package/docs/schema/generated/methodology_activity_artifact_requirements.svg +52 -0
- package/docs/schema/generated/methodology_activity_criteria.md +112 -0
- package/docs/schema/generated/methodology_activity_criteria.svg +52 -0
- package/docs/schema/generated/methodology_baseline_requirements.md +103 -0
- package/docs/schema/generated/methodology_baseline_requirements.svg +27 -0
- package/docs/schema/generated/methodology_code_groups.md +70 -0
- package/docs/schema/generated/methodology_code_groups.svg +49 -0
- package/docs/schema/generated/methodology_codes.md +88 -0
- package/docs/schema/generated/methodology_codes.svg +49 -0
- package/docs/schema/generated/methodology_common_blueprint_policies.md +104 -0
- package/docs/schema/generated/methodology_common_blueprint_policies.svg +72 -0
- package/docs/schema/generated/methodology_common_blueprint_policy_nodes.md +118 -0
- package/docs/schema/generated/methodology_common_blueprint_policy_nodes.svg +59 -0
- package/docs/schema/generated/methodology_handoff_requirements.md +130 -0
- package/docs/schema/generated/methodology_handoff_requirements.svg +27 -0
- package/docs/schema/generated/methodology_lifecycles.md +105 -0
- package/docs/schema/generated/methodology_lifecycles.svg +71 -0
- package/docs/schema/generated/methodology_methodologies.md +92 -0
- package/docs/schema/generated/methodology_methodologies.svg +92 -0
- package/docs/schema/generated/methodology_phase_processes.md +106 -0
- package/docs/schema/generated/methodology_phase_processes.svg +77 -0
- package/docs/schema/generated/methodology_phases.md +107 -0
- package/docs/schema/generated/methodology_phases.svg +77 -0
- package/docs/schema/generated/methodology_processes.md +98 -0
- package/docs/schema/generated/methodology_processes.svg +118 -0
- package/docs/schema/generated/methodology_schema_migrations.md +52 -0
- package/docs/schema/generated/methodology_schema_migrations.svg +27 -0
- package/docs/schema/generated/methodology_stage_activities.md +106 -0
- package/docs/schema/generated/methodology_stage_activities.svg +77 -0
- package/docs/schema/generated/methodology_stage_artifact_requirements.md +109 -0
- package/docs/schema/generated/methodology_stage_artifact_requirements.svg +52 -0
- package/docs/schema/generated/methodology_stage_criteria.md +112 -0
- package/docs/schema/generated/methodology_stage_criteria.svg +52 -0
- package/docs/schema/generated/methodology_stages.md +117 -0
- package/docs/schema/generated/methodology_stages.svg +121 -0
- package/docs/schema/generated/methodology_steps.md +105 -0
- package/docs/schema/generated/methodology_steps.svg +52 -0
- package/docs/schema/generated/methodology_trace_policies.md +121 -0
- package/docs/schema/generated/methodology_trace_policies.svg +27 -0
- package/docs/schema/generated/schema.json +4253 -0
- package/docs/schema/generated/schema.mmd +296 -0
- package/docs/schema/generated/schema.svg +446 -0
- package/docs/schema/migrations.md +24 -0
- package/docs/usage.md +39 -0
- package/package.json +29 -0
- package/src/database/migrations/0001_methodology_base.sql +1190 -0
|
@@ -0,0 +1,1190 @@
|
|
|
1
|
+
PRAGMA foreign_keys = ON;
|
|
2
|
+
|
|
3
|
+
-- methodology 패키지의 migration 적용 이력을 관리한다.
|
|
4
|
+
CREATE TABLE IF NOT EXISTS methodology_schema_migrations (
|
|
5
|
+
-- migration 식별자
|
|
6
|
+
migration_id VARCHAR(128) PRIMARY KEY,
|
|
7
|
+
|
|
8
|
+
-- migration 이름
|
|
9
|
+
migration_name VARCHAR(256) NOT NULL,
|
|
10
|
+
|
|
11
|
+
-- 적용 시각
|
|
12
|
+
applied_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
13
|
+
);
|
|
14
|
+
|
|
15
|
+
-- 코드 그룹을 정의한다.
|
|
16
|
+
CREATE TABLE IF NOT EXISTS methodology_code_groups (
|
|
17
|
+
-- 코드 그룹 식별자
|
|
18
|
+
code_group_code VARCHAR(64) PRIMARY KEY,
|
|
19
|
+
|
|
20
|
+
-- 코드 그룹 한글명
|
|
21
|
+
code_group_name VARCHAR(128) NOT NULL,
|
|
22
|
+
|
|
23
|
+
-- 코드 그룹 설명
|
|
24
|
+
description TEXT,
|
|
25
|
+
|
|
26
|
+
-- 표시 정렬 순서
|
|
27
|
+
sort_order INTEGER NOT NULL DEFAULT 0,
|
|
28
|
+
|
|
29
|
+
-- 활성 여부. 1은 활성, 0은 비활성
|
|
30
|
+
is_active INTEGER NOT NULL DEFAULT 1
|
|
31
|
+
CHECK (is_active IN (0, 1)),
|
|
32
|
+
|
|
33
|
+
-- 생성 시각
|
|
34
|
+
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
35
|
+
|
|
36
|
+
-- 수정 시각
|
|
37
|
+
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
38
|
+
);
|
|
39
|
+
|
|
40
|
+
-- 코드 그룹별 코드 값을 정의한다.
|
|
41
|
+
CREATE TABLE IF NOT EXISTS methodology_codes (
|
|
42
|
+
-- 코드 그룹 식별자
|
|
43
|
+
code_group_code VARCHAR(64) NOT NULL,
|
|
44
|
+
|
|
45
|
+
-- 코드 값. lower_snake_case를 사용한다.
|
|
46
|
+
code VARCHAR(128) NOT NULL,
|
|
47
|
+
|
|
48
|
+
-- 코드 한글명
|
|
49
|
+
code_name VARCHAR(128) NOT NULL,
|
|
50
|
+
|
|
51
|
+
-- 코드 설명
|
|
52
|
+
description TEXT,
|
|
53
|
+
|
|
54
|
+
-- 표시 정렬 순서
|
|
55
|
+
sort_order INTEGER NOT NULL DEFAULT 0,
|
|
56
|
+
|
|
57
|
+
-- 활성 여부. 1은 활성, 0은 비활성
|
|
58
|
+
is_active INTEGER NOT NULL DEFAULT 1
|
|
59
|
+
CHECK (is_active IN (0, 1)),
|
|
60
|
+
|
|
61
|
+
-- 확장 메타데이터
|
|
62
|
+
metadata_json JSON
|
|
63
|
+
CHECK (metadata_json IS NULL OR json_valid(metadata_json)),
|
|
64
|
+
|
|
65
|
+
-- 생성 시각
|
|
66
|
+
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
67
|
+
|
|
68
|
+
-- 수정 시각
|
|
69
|
+
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
70
|
+
|
|
71
|
+
PRIMARY KEY (code_group_code, code),
|
|
72
|
+
|
|
73
|
+
FOREIGN KEY (code_group_code)
|
|
74
|
+
REFERENCES methodology_code_groups (code_group_code)
|
|
75
|
+
ON DELETE CASCADE
|
|
76
|
+
);
|
|
77
|
+
|
|
78
|
+
-- 방법론 정의의 최상위 versioned definition을 관리한다.
|
|
79
|
+
CREATE TABLE IF NOT EXISTS methodology_methodologies (
|
|
80
|
+
-- 방법론 식별자
|
|
81
|
+
methodology_id CHAR(36) PRIMARY KEY
|
|
82
|
+
CHECK (length(methodology_id) = 36),
|
|
83
|
+
|
|
84
|
+
-- 방법론 코드
|
|
85
|
+
methodology_code VARCHAR(128) NOT NULL,
|
|
86
|
+
|
|
87
|
+
-- 방법론명
|
|
88
|
+
methodology_name VARCHAR(256) NOT NULL,
|
|
89
|
+
|
|
90
|
+
-- 방법론 정의 데이터 버전
|
|
91
|
+
methodology_version VARCHAR(64) NOT NULL,
|
|
92
|
+
|
|
93
|
+
-- 방법론 상태 코드
|
|
94
|
+
methodology_status_code VARCHAR(32) NOT NULL DEFAULT 'draft'
|
|
95
|
+
CHECK (methodology_status_code IN ('draft', 'active', 'deprecated', 'archived')),
|
|
96
|
+
|
|
97
|
+
-- 방법론 설명
|
|
98
|
+
description TEXT,
|
|
99
|
+
|
|
100
|
+
-- 활성 여부. 1은 활성, 0은 비활성
|
|
101
|
+
is_active INTEGER NOT NULL DEFAULT 1
|
|
102
|
+
CHECK (is_active IN (0, 1)),
|
|
103
|
+
|
|
104
|
+
-- 생성 시각
|
|
105
|
+
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
106
|
+
|
|
107
|
+
-- 수정 시각
|
|
108
|
+
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
109
|
+
|
|
110
|
+
-- 확장 메타데이터
|
|
111
|
+
metadata_json JSON
|
|
112
|
+
CHECK (metadata_json IS NULL OR json_valid(metadata_json)),
|
|
113
|
+
|
|
114
|
+
UNIQUE (methodology_code, methodology_version)
|
|
115
|
+
);
|
|
116
|
+
|
|
117
|
+
-- 방법론 차원의 공통 문서 구조 정책을 관리한다.
|
|
118
|
+
CREATE TABLE IF NOT EXISTS methodology_common_blueprint_policies (
|
|
119
|
+
-- common blueprint policy 식별자
|
|
120
|
+
common_blueprint_policy_id CHAR(36) PRIMARY KEY
|
|
121
|
+
CHECK (length(common_blueprint_policy_id) = 36),
|
|
122
|
+
|
|
123
|
+
-- 소속 방법론 식별자
|
|
124
|
+
methodology_id CHAR(36) NOT NULL
|
|
125
|
+
CHECK (length(methodology_id) = 36),
|
|
126
|
+
|
|
127
|
+
-- policy 코드
|
|
128
|
+
policy_code VARCHAR(128) NOT NULL,
|
|
129
|
+
|
|
130
|
+
-- policy 이름
|
|
131
|
+
policy_name VARCHAR(256) NOT NULL,
|
|
132
|
+
|
|
133
|
+
-- 적용 대상 Artifact Standard 유형 코드. NULL이면 방법론 기본 공통 정책이다.
|
|
134
|
+
applies_to_standard_type_code VARCHAR(64),
|
|
135
|
+
|
|
136
|
+
-- 기본 policy 여부
|
|
137
|
+
is_default INTEGER NOT NULL DEFAULT 0
|
|
138
|
+
CHECK (is_default IN (0, 1)),
|
|
139
|
+
|
|
140
|
+
-- policy 상태 코드
|
|
141
|
+
status_code VARCHAR(32) NOT NULL DEFAULT 'DRAFT'
|
|
142
|
+
CHECK (status_code IN ('DRAFT', 'ACTIVE', 'DEPRECATED', 'ARCHIVED')),
|
|
143
|
+
|
|
144
|
+
-- 활성 여부
|
|
145
|
+
is_active INTEGER NOT NULL DEFAULT 1
|
|
146
|
+
CHECK (is_active IN (0, 1)),
|
|
147
|
+
|
|
148
|
+
-- 생성 시각
|
|
149
|
+
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
150
|
+
|
|
151
|
+
-- 수정 시각
|
|
152
|
+
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
153
|
+
|
|
154
|
+
-- 확장 메타데이터
|
|
155
|
+
metadata_json JSON
|
|
156
|
+
CHECK (metadata_json IS NULL OR json_valid(metadata_json)),
|
|
157
|
+
|
|
158
|
+
FOREIGN KEY (methodology_id)
|
|
159
|
+
REFERENCES methodology_methodologies (methodology_id)
|
|
160
|
+
ON DELETE CASCADE,
|
|
161
|
+
|
|
162
|
+
UNIQUE (methodology_id, policy_code)
|
|
163
|
+
);
|
|
164
|
+
|
|
165
|
+
-- 방법론 공통 문서 구조 정책의 node를 관리한다.
|
|
166
|
+
CREATE TABLE IF NOT EXISTS methodology_common_blueprint_policy_nodes (
|
|
167
|
+
-- common blueprint policy node 식별자
|
|
168
|
+
common_blueprint_policy_node_id CHAR(36) PRIMARY KEY
|
|
169
|
+
CHECK (length(common_blueprint_policy_node_id) = 36),
|
|
170
|
+
|
|
171
|
+
-- 소속 common blueprint policy 식별자
|
|
172
|
+
common_blueprint_policy_id CHAR(36) NOT NULL
|
|
173
|
+
CHECK (length(common_blueprint_policy_id) = 36),
|
|
174
|
+
|
|
175
|
+
-- 상위 common blueprint policy node 식별자
|
|
176
|
+
parent_policy_node_id CHAR(36)
|
|
177
|
+
CHECK (parent_policy_node_id IS NULL OR length(parent_policy_node_id) = 36),
|
|
178
|
+
|
|
179
|
+
-- node 코드
|
|
180
|
+
node_code VARCHAR(128) NOT NULL,
|
|
181
|
+
|
|
182
|
+
-- node 제목
|
|
183
|
+
node_title VARCHAR(256) NOT NULL,
|
|
184
|
+
|
|
185
|
+
-- node 유형 코드
|
|
186
|
+
node_type_code VARCHAR(32) NOT NULL
|
|
187
|
+
CHECK (node_type_code IN ('FRONT_MATTER', 'BACK_MATTER', 'BODY_POLICY')),
|
|
188
|
+
|
|
189
|
+
-- node level
|
|
190
|
+
node_level INTEGER NOT NULL
|
|
191
|
+
CHECK (node_level BETWEEN 1 AND 7),
|
|
192
|
+
|
|
193
|
+
-- 필수 여부
|
|
194
|
+
is_required INTEGER NOT NULL DEFAULT 0
|
|
195
|
+
CHECK (is_required IN (0, 1)),
|
|
196
|
+
|
|
197
|
+
-- 정렬 순서
|
|
198
|
+
sort_order INTEGER NOT NULL DEFAULT 0,
|
|
199
|
+
|
|
200
|
+
-- 생성 시각
|
|
201
|
+
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
202
|
+
|
|
203
|
+
-- 수정 시각
|
|
204
|
+
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
205
|
+
|
|
206
|
+
-- 확장 메타데이터
|
|
207
|
+
metadata_json JSON
|
|
208
|
+
CHECK (metadata_json IS NULL OR json_valid(metadata_json)),
|
|
209
|
+
|
|
210
|
+
FOREIGN KEY (common_blueprint_policy_id)
|
|
211
|
+
REFERENCES methodology_common_blueprint_policies (common_blueprint_policy_id)
|
|
212
|
+
ON DELETE CASCADE,
|
|
213
|
+
|
|
214
|
+
FOREIGN KEY (parent_policy_node_id)
|
|
215
|
+
REFERENCES methodology_common_blueprint_policy_nodes (common_blueprint_policy_node_id)
|
|
216
|
+
ON DELETE CASCADE,
|
|
217
|
+
|
|
218
|
+
UNIQUE (common_blueprint_policy_id, node_code),
|
|
219
|
+
UNIQUE (common_blueprint_policy_id, parent_policy_node_id, sort_order)
|
|
220
|
+
);
|
|
221
|
+
|
|
222
|
+
-- 방법론 생명주기 모델을 관리한다.
|
|
223
|
+
CREATE TABLE IF NOT EXISTS methodology_lifecycles (
|
|
224
|
+
-- lifecycle 식별자
|
|
225
|
+
lifecycle_id CHAR(36) PRIMARY KEY
|
|
226
|
+
CHECK (length(lifecycle_id) = 36),
|
|
227
|
+
|
|
228
|
+
-- 소속 방법론 식별자
|
|
229
|
+
methodology_id CHAR(36) NOT NULL
|
|
230
|
+
CHECK (length(methodology_id) = 36),
|
|
231
|
+
|
|
232
|
+
-- lifecycle 코드
|
|
233
|
+
lifecycle_code VARCHAR(128) NOT NULL,
|
|
234
|
+
|
|
235
|
+
-- lifecycle 이름
|
|
236
|
+
lifecycle_name VARCHAR(256) NOT NULL,
|
|
237
|
+
|
|
238
|
+
-- lifecycle 유형 코드
|
|
239
|
+
lifecycle_type_code VARCHAR(64) NOT NULL DEFAULT 'default',
|
|
240
|
+
|
|
241
|
+
-- 설명
|
|
242
|
+
description TEXT,
|
|
243
|
+
|
|
244
|
+
-- 표시 정렬 순서
|
|
245
|
+
sort_order INTEGER NOT NULL DEFAULT 0,
|
|
246
|
+
|
|
247
|
+
-- 활성 여부
|
|
248
|
+
is_active INTEGER NOT NULL DEFAULT 1
|
|
249
|
+
CHECK (is_active IN (0, 1)),
|
|
250
|
+
|
|
251
|
+
-- 생성 시각
|
|
252
|
+
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
253
|
+
|
|
254
|
+
-- 수정 시각
|
|
255
|
+
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
256
|
+
|
|
257
|
+
-- 확장 메타데이터
|
|
258
|
+
metadata_json JSON
|
|
259
|
+
CHECK (metadata_json IS NULL OR json_valid(metadata_json)),
|
|
260
|
+
|
|
261
|
+
FOREIGN KEY (methodology_id)
|
|
262
|
+
REFERENCES methodology_methodologies (methodology_id)
|
|
263
|
+
ON DELETE CASCADE,
|
|
264
|
+
|
|
265
|
+
UNIQUE (methodology_id, lifecycle_code),
|
|
266
|
+
UNIQUE (methodology_id, sort_order)
|
|
267
|
+
);
|
|
268
|
+
|
|
269
|
+
-- lifecycle 내 큰 구간을 관리한다.
|
|
270
|
+
CREATE TABLE IF NOT EXISTS methodology_phases (
|
|
271
|
+
-- phase 식별자
|
|
272
|
+
phase_id CHAR(36) PRIMARY KEY
|
|
273
|
+
CHECK (length(phase_id) = 36),
|
|
274
|
+
|
|
275
|
+
-- 소속 lifecycle 식별자
|
|
276
|
+
lifecycle_id CHAR(36) NOT NULL
|
|
277
|
+
CHECK (length(lifecycle_id) = 36),
|
|
278
|
+
|
|
279
|
+
-- phase 코드
|
|
280
|
+
phase_code VARCHAR(128) NOT NULL,
|
|
281
|
+
|
|
282
|
+
-- phase 이름
|
|
283
|
+
phase_name VARCHAR(256) NOT NULL,
|
|
284
|
+
|
|
285
|
+
-- phase 목적
|
|
286
|
+
phase_purpose TEXT,
|
|
287
|
+
|
|
288
|
+
-- 표시 정렬 순서
|
|
289
|
+
sort_order INTEGER NOT NULL DEFAULT 0,
|
|
290
|
+
|
|
291
|
+
-- 필수 여부
|
|
292
|
+
is_required INTEGER NOT NULL DEFAULT 1
|
|
293
|
+
CHECK (is_required IN (0, 1)),
|
|
294
|
+
|
|
295
|
+
-- 활성 여부
|
|
296
|
+
is_active INTEGER NOT NULL DEFAULT 1
|
|
297
|
+
CHECK (is_active IN (0, 1)),
|
|
298
|
+
|
|
299
|
+
-- 생성 시각
|
|
300
|
+
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
301
|
+
|
|
302
|
+
-- 수정 시각
|
|
303
|
+
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
304
|
+
|
|
305
|
+
-- 확장 메타데이터
|
|
306
|
+
metadata_json JSON
|
|
307
|
+
CHECK (metadata_json IS NULL OR json_valid(metadata_json)),
|
|
308
|
+
|
|
309
|
+
FOREIGN KEY (lifecycle_id)
|
|
310
|
+
REFERENCES methodology_lifecycles (lifecycle_id)
|
|
311
|
+
ON DELETE CASCADE,
|
|
312
|
+
|
|
313
|
+
UNIQUE (lifecycle_id, phase_code),
|
|
314
|
+
UNIQUE (lifecycle_id, sort_order)
|
|
315
|
+
);
|
|
316
|
+
|
|
317
|
+
-- 재사용 가능한 수행 절차를 관리한다.
|
|
318
|
+
CREATE TABLE IF NOT EXISTS methodology_processes (
|
|
319
|
+
-- process 식별자
|
|
320
|
+
process_id CHAR(36) PRIMARY KEY
|
|
321
|
+
CHECK (length(process_id) = 36),
|
|
322
|
+
|
|
323
|
+
-- 소속 방법론 식별자
|
|
324
|
+
methodology_id CHAR(36) NOT NULL
|
|
325
|
+
CHECK (length(methodology_id) = 36),
|
|
326
|
+
|
|
327
|
+
-- process 코드
|
|
328
|
+
process_code VARCHAR(128) NOT NULL,
|
|
329
|
+
|
|
330
|
+
-- process 이름
|
|
331
|
+
process_name VARCHAR(256) NOT NULL,
|
|
332
|
+
|
|
333
|
+
-- process 목적
|
|
334
|
+
process_purpose TEXT,
|
|
335
|
+
|
|
336
|
+
-- process 유형 코드
|
|
337
|
+
process_type_code VARCHAR(64) NOT NULL DEFAULT 'default',
|
|
338
|
+
|
|
339
|
+
-- 활성 여부
|
|
340
|
+
is_active INTEGER NOT NULL DEFAULT 1
|
|
341
|
+
CHECK (is_active IN (0, 1)),
|
|
342
|
+
|
|
343
|
+
-- 생성 시각
|
|
344
|
+
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
345
|
+
|
|
346
|
+
-- 수정 시각
|
|
347
|
+
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
348
|
+
|
|
349
|
+
-- 확장 메타데이터
|
|
350
|
+
metadata_json JSON
|
|
351
|
+
CHECK (metadata_json IS NULL OR json_valid(metadata_json)),
|
|
352
|
+
|
|
353
|
+
FOREIGN KEY (methodology_id)
|
|
354
|
+
REFERENCES methodology_methodologies (methodology_id)
|
|
355
|
+
ON DELETE CASCADE,
|
|
356
|
+
|
|
357
|
+
UNIQUE (methodology_id, process_code)
|
|
358
|
+
);
|
|
359
|
+
|
|
360
|
+
-- phase에서 어떤 process를 어떤 순서로 사용할지 관리한다.
|
|
361
|
+
CREATE TABLE IF NOT EXISTS methodology_phase_processes (
|
|
362
|
+
-- phase process 배치 식별자
|
|
363
|
+
phase_process_id CHAR(36) PRIMARY KEY
|
|
364
|
+
CHECK (length(phase_process_id) = 36),
|
|
365
|
+
|
|
366
|
+
-- 대상 phase 식별자
|
|
367
|
+
phase_id CHAR(36) NOT NULL
|
|
368
|
+
CHECK (length(phase_id) = 36),
|
|
369
|
+
|
|
370
|
+
-- 배치할 process 식별자
|
|
371
|
+
process_id CHAR(36) NOT NULL
|
|
372
|
+
CHECK (length(process_id) = 36),
|
|
373
|
+
|
|
374
|
+
-- phase 내 process 순서
|
|
375
|
+
sort_order INTEGER NOT NULL DEFAULT 0,
|
|
376
|
+
|
|
377
|
+
-- 필수 수행 여부
|
|
378
|
+
is_required INTEGER NOT NULL DEFAULT 1
|
|
379
|
+
CHECK (is_required IN (0, 1)),
|
|
380
|
+
|
|
381
|
+
-- tailoring 허용 여부
|
|
382
|
+
tailoring_allowed INTEGER NOT NULL DEFAULT 0
|
|
383
|
+
CHECK (tailoring_allowed IN (0, 1)),
|
|
384
|
+
|
|
385
|
+
-- 생성 시각
|
|
386
|
+
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
387
|
+
|
|
388
|
+
-- 수정 시각
|
|
389
|
+
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
390
|
+
|
|
391
|
+
-- 확장 메타데이터
|
|
392
|
+
metadata_json JSON
|
|
393
|
+
CHECK (metadata_json IS NULL OR json_valid(metadata_json)),
|
|
394
|
+
|
|
395
|
+
FOREIGN KEY (phase_id)
|
|
396
|
+
REFERENCES methodology_phases (phase_id)
|
|
397
|
+
ON DELETE CASCADE,
|
|
398
|
+
|
|
399
|
+
FOREIGN KEY (process_id)
|
|
400
|
+
REFERENCES methodology_processes (process_id)
|
|
401
|
+
ON DELETE CASCADE,
|
|
402
|
+
|
|
403
|
+
UNIQUE (phase_id, process_id),
|
|
404
|
+
UNIQUE (phase_id, sort_order)
|
|
405
|
+
);
|
|
406
|
+
|
|
407
|
+
-- process 내부의 기본 수행 활동을 관리한다.
|
|
408
|
+
CREATE TABLE IF NOT EXISTS methodology_activities (
|
|
409
|
+
-- activity 식별자
|
|
410
|
+
activity_id CHAR(36) PRIMARY KEY
|
|
411
|
+
CHECK (length(activity_id) = 36),
|
|
412
|
+
|
|
413
|
+
-- 소속 process 식별자
|
|
414
|
+
process_id CHAR(36) NOT NULL
|
|
415
|
+
CHECK (length(process_id) = 36),
|
|
416
|
+
|
|
417
|
+
-- activity 코드
|
|
418
|
+
activity_code VARCHAR(128) NOT NULL,
|
|
419
|
+
|
|
420
|
+
-- activity 이름
|
|
421
|
+
activity_name VARCHAR(256) NOT NULL,
|
|
422
|
+
|
|
423
|
+
-- activity 목적
|
|
424
|
+
activity_purpose TEXT,
|
|
425
|
+
|
|
426
|
+
-- activity 유형 코드
|
|
427
|
+
activity_type_code VARCHAR(64) NOT NULL DEFAULT 'default',
|
|
428
|
+
|
|
429
|
+
-- 책임 role 코드
|
|
430
|
+
responsible_role_code VARCHAR(64),
|
|
431
|
+
|
|
432
|
+
-- process 내 activity 순서
|
|
433
|
+
sort_order INTEGER NOT NULL DEFAULT 0,
|
|
434
|
+
|
|
435
|
+
-- 필수 수행 여부
|
|
436
|
+
is_required INTEGER NOT NULL DEFAULT 1
|
|
437
|
+
CHECK (is_required IN (0, 1)),
|
|
438
|
+
|
|
439
|
+
-- tailoring 허용 여부
|
|
440
|
+
tailoring_allowed INTEGER NOT NULL DEFAULT 0
|
|
441
|
+
CHECK (tailoring_allowed IN (0, 1)),
|
|
442
|
+
|
|
443
|
+
-- 활성 여부
|
|
444
|
+
is_active INTEGER NOT NULL DEFAULT 1
|
|
445
|
+
CHECK (is_active IN (0, 1)),
|
|
446
|
+
|
|
447
|
+
-- 생성 시각
|
|
448
|
+
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
449
|
+
|
|
450
|
+
-- 수정 시각
|
|
451
|
+
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
452
|
+
|
|
453
|
+
-- 확장 메타데이터
|
|
454
|
+
metadata_json JSON
|
|
455
|
+
CHECK (metadata_json IS NULL OR json_valid(metadata_json)),
|
|
456
|
+
|
|
457
|
+
FOREIGN KEY (process_id)
|
|
458
|
+
REFERENCES methodology_processes (process_id)
|
|
459
|
+
ON DELETE CASCADE,
|
|
460
|
+
|
|
461
|
+
UNIQUE (process_id, activity_code),
|
|
462
|
+
UNIQUE (process_id, sort_order)
|
|
463
|
+
);
|
|
464
|
+
|
|
465
|
+
-- activity 하위 순차 절차를 관리한다.
|
|
466
|
+
CREATE TABLE IF NOT EXISTS methodology_steps (
|
|
467
|
+
-- step 식별자
|
|
468
|
+
step_id CHAR(36) PRIMARY KEY
|
|
469
|
+
CHECK (length(step_id) = 36),
|
|
470
|
+
|
|
471
|
+
-- 소속 activity 식별자
|
|
472
|
+
activity_id CHAR(36) NOT NULL
|
|
473
|
+
CHECK (length(activity_id) = 36),
|
|
474
|
+
|
|
475
|
+
-- step 코드
|
|
476
|
+
step_code VARCHAR(128) NOT NULL,
|
|
477
|
+
|
|
478
|
+
-- step 이름
|
|
479
|
+
step_name VARCHAR(256) NOT NULL,
|
|
480
|
+
|
|
481
|
+
-- 수행 절차 설명
|
|
482
|
+
step_instruction TEXT,
|
|
483
|
+
|
|
484
|
+
-- step 유형 코드
|
|
485
|
+
step_type_code VARCHAR(64) NOT NULL DEFAULT 'default',
|
|
486
|
+
|
|
487
|
+
-- 필수 여부
|
|
488
|
+
is_required INTEGER NOT NULL DEFAULT 1
|
|
489
|
+
CHECK (is_required IN (0, 1)),
|
|
490
|
+
|
|
491
|
+
-- activity 내 step 순서
|
|
492
|
+
sort_order INTEGER NOT NULL DEFAULT 0,
|
|
493
|
+
|
|
494
|
+
-- 생성 시각
|
|
495
|
+
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
496
|
+
|
|
497
|
+
-- 수정 시각
|
|
498
|
+
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
499
|
+
|
|
500
|
+
-- 확장 메타데이터
|
|
501
|
+
metadata_json JSON
|
|
502
|
+
CHECK (metadata_json IS NULL OR json_valid(metadata_json)),
|
|
503
|
+
|
|
504
|
+
FOREIGN KEY (activity_id)
|
|
505
|
+
REFERENCES methodology_activities (activity_id)
|
|
506
|
+
ON DELETE CASCADE,
|
|
507
|
+
|
|
508
|
+
UNIQUE (activity_id, step_code),
|
|
509
|
+
UNIQUE (activity_id, sort_order)
|
|
510
|
+
);
|
|
511
|
+
|
|
512
|
+
-- process 내부 activity grouping, gate, 기준선, 전환 구간을 관리한다.
|
|
513
|
+
CREATE TABLE IF NOT EXISTS methodology_stages (
|
|
514
|
+
-- stage 식별자
|
|
515
|
+
stage_id CHAR(36) PRIMARY KEY
|
|
516
|
+
CHECK (length(stage_id) = 36),
|
|
517
|
+
|
|
518
|
+
-- 소속 process 식별자
|
|
519
|
+
process_id CHAR(36) NOT NULL
|
|
520
|
+
CHECK (length(process_id) = 36),
|
|
521
|
+
|
|
522
|
+
-- stage 코드
|
|
523
|
+
stage_code VARCHAR(128) NOT NULL,
|
|
524
|
+
|
|
525
|
+
-- stage 이름
|
|
526
|
+
stage_name VARCHAR(256) NOT NULL,
|
|
527
|
+
|
|
528
|
+
-- stage 목표
|
|
529
|
+
stage_objective TEXT,
|
|
530
|
+
|
|
531
|
+
-- stage 유형 코드
|
|
532
|
+
stage_type_code VARCHAR(64) NOT NULL DEFAULT 'default',
|
|
533
|
+
|
|
534
|
+
-- process 내 stage 순서
|
|
535
|
+
sort_order INTEGER NOT NULL DEFAULT 0,
|
|
536
|
+
|
|
537
|
+
-- 필수 여부
|
|
538
|
+
is_required INTEGER NOT NULL DEFAULT 1
|
|
539
|
+
CHECK (is_required IN (0, 1)),
|
|
540
|
+
|
|
541
|
+
-- tailoring 허용 여부
|
|
542
|
+
tailoring_allowed INTEGER NOT NULL DEFAULT 0
|
|
543
|
+
CHECK (tailoring_allowed IN (0, 1)),
|
|
544
|
+
|
|
545
|
+
-- 활성 여부
|
|
546
|
+
is_active INTEGER NOT NULL DEFAULT 1
|
|
547
|
+
CHECK (is_active IN (0, 1)),
|
|
548
|
+
|
|
549
|
+
-- 생성 시각
|
|
550
|
+
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
551
|
+
|
|
552
|
+
-- 수정 시각
|
|
553
|
+
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
554
|
+
|
|
555
|
+
-- 확장 메타데이터
|
|
556
|
+
metadata_json JSON
|
|
557
|
+
CHECK (metadata_json IS NULL OR json_valid(metadata_json)),
|
|
558
|
+
|
|
559
|
+
FOREIGN KEY (process_id)
|
|
560
|
+
REFERENCES methodology_processes (process_id)
|
|
561
|
+
ON DELETE CASCADE,
|
|
562
|
+
|
|
563
|
+
UNIQUE (process_id, stage_code),
|
|
564
|
+
UNIQUE (process_id, sort_order)
|
|
565
|
+
);
|
|
566
|
+
|
|
567
|
+
-- stage와 activity의 포함 관계를 관리한다.
|
|
568
|
+
CREATE TABLE IF NOT EXISTS methodology_stage_activities (
|
|
569
|
+
-- stage activity 배치 식별자
|
|
570
|
+
stage_activity_id CHAR(36) PRIMARY KEY
|
|
571
|
+
CHECK (length(stage_activity_id) = 36),
|
|
572
|
+
|
|
573
|
+
-- stage 식별자
|
|
574
|
+
stage_id CHAR(36) NOT NULL
|
|
575
|
+
CHECK (length(stage_id) = 36),
|
|
576
|
+
|
|
577
|
+
-- activity 식별자
|
|
578
|
+
activity_id CHAR(36) NOT NULL
|
|
579
|
+
CHECK (length(activity_id) = 36),
|
|
580
|
+
|
|
581
|
+
-- stage 내 activity 순서
|
|
582
|
+
sort_order INTEGER NOT NULL DEFAULT 0,
|
|
583
|
+
|
|
584
|
+
-- 필수 여부
|
|
585
|
+
is_required INTEGER NOT NULL DEFAULT 1
|
|
586
|
+
CHECK (is_required IN (0, 1)),
|
|
587
|
+
|
|
588
|
+
-- tailoring 허용 여부
|
|
589
|
+
tailoring_allowed INTEGER NOT NULL DEFAULT 0
|
|
590
|
+
CHECK (tailoring_allowed IN (0, 1)),
|
|
591
|
+
|
|
592
|
+
-- 생성 시각
|
|
593
|
+
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
594
|
+
|
|
595
|
+
-- 수정 시각
|
|
596
|
+
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
597
|
+
|
|
598
|
+
-- 확장 메타데이터
|
|
599
|
+
metadata_json JSON
|
|
600
|
+
CHECK (metadata_json IS NULL OR json_valid(metadata_json)),
|
|
601
|
+
|
|
602
|
+
FOREIGN KEY (stage_id)
|
|
603
|
+
REFERENCES methodology_stages (stage_id)
|
|
604
|
+
ON DELETE CASCADE,
|
|
605
|
+
|
|
606
|
+
FOREIGN KEY (activity_id)
|
|
607
|
+
REFERENCES methodology_activities (activity_id)
|
|
608
|
+
ON DELETE CASCADE,
|
|
609
|
+
|
|
610
|
+
UNIQUE (stage_id, activity_id),
|
|
611
|
+
UNIQUE (stage_id, sort_order)
|
|
612
|
+
);
|
|
613
|
+
|
|
614
|
+
-- activity의 input/output/supporting 산출물 요구를 관리한다.
|
|
615
|
+
CREATE TABLE IF NOT EXISTS methodology_activity_artifact_requirements (
|
|
616
|
+
-- activity artifact requirement 식별자
|
|
617
|
+
activity_artifact_requirement_id CHAR(36) PRIMARY KEY
|
|
618
|
+
CHECK (length(activity_artifact_requirement_id) = 36),
|
|
619
|
+
|
|
620
|
+
-- 소속 activity 식별자
|
|
621
|
+
activity_id CHAR(36) NOT NULL
|
|
622
|
+
CHECK (length(activity_id) = 36),
|
|
623
|
+
|
|
624
|
+
-- artifact standard 코드
|
|
625
|
+
artifact_standard_code VARCHAR(128) NOT NULL,
|
|
626
|
+
|
|
627
|
+
-- artifact standard 버전
|
|
628
|
+
artifact_standard_version VARCHAR(64) NOT NULL,
|
|
629
|
+
|
|
630
|
+
-- artifact-standard가 정의한 document component 코드. 산출물 전체가 아니라 특정 본문/부록 구성 단위를 대상으로 할 때 사용한다.
|
|
631
|
+
artifact_component_code VARCHAR(128),
|
|
632
|
+
|
|
633
|
+
-- artifact-standard document component 역할 코드. 예: MAIN, APPENDIX
|
|
634
|
+
artifact_component_role_code VARCHAR(64),
|
|
635
|
+
|
|
636
|
+
-- 산출물 요구 역할 코드
|
|
637
|
+
requirement_role_code VARCHAR(32) NOT NULL
|
|
638
|
+
CHECK (requirement_role_code IN ('input', 'output', 'supporting')),
|
|
639
|
+
|
|
640
|
+
-- output activity가 산출물을 어떻게 다루는지 나타내는 사용 코드
|
|
641
|
+
output_usage_code VARCHAR(32)
|
|
642
|
+
CHECK (output_usage_code IS NULL OR output_usage_code IN ('produces', 'refines', 'reviews', 'consolidates')),
|
|
643
|
+
|
|
644
|
+
-- activity 대표 output 여부
|
|
645
|
+
is_primary INTEGER NOT NULL DEFAULT 0
|
|
646
|
+
CHECK (is_primary IN (0, 1)),
|
|
647
|
+
|
|
648
|
+
-- 필수 여부
|
|
649
|
+
is_required INTEGER NOT NULL DEFAULT 1
|
|
650
|
+
CHECK (is_required IN (0, 1)),
|
|
651
|
+
|
|
652
|
+
-- validation 필수 여부
|
|
653
|
+
validation_required INTEGER NOT NULL DEFAULT 0
|
|
654
|
+
CHECK (validation_required IN (0, 1)),
|
|
655
|
+
|
|
656
|
+
-- activity 내 정렬 순서
|
|
657
|
+
sort_order INTEGER NOT NULL DEFAULT 0,
|
|
658
|
+
|
|
659
|
+
-- 생성 시각
|
|
660
|
+
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
661
|
+
|
|
662
|
+
-- 수정 시각
|
|
663
|
+
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
664
|
+
|
|
665
|
+
-- 확장 메타데이터
|
|
666
|
+
metadata_json JSON
|
|
667
|
+
CHECK (metadata_json IS NULL OR json_valid(metadata_json)),
|
|
668
|
+
|
|
669
|
+
FOREIGN KEY (activity_id)
|
|
670
|
+
REFERENCES methodology_activities (activity_id)
|
|
671
|
+
ON DELETE CASCADE,
|
|
672
|
+
|
|
673
|
+
UNIQUE (activity_id, sort_order)
|
|
674
|
+
);
|
|
675
|
+
|
|
676
|
+
-- stage gate, baseline, handoff, approval에 필요한 추가 산출물 요구를 관리한다.
|
|
677
|
+
CREATE TABLE IF NOT EXISTS methodology_stage_artifact_requirements (
|
|
678
|
+
-- stage artifact requirement 식별자
|
|
679
|
+
stage_artifact_requirement_id CHAR(36) PRIMARY KEY
|
|
680
|
+
CHECK (length(stage_artifact_requirement_id) = 36),
|
|
681
|
+
|
|
682
|
+
-- 소속 stage 식별자
|
|
683
|
+
stage_id CHAR(36) NOT NULL
|
|
684
|
+
CHECK (length(stage_id) = 36),
|
|
685
|
+
|
|
686
|
+
-- artifact standard 코드
|
|
687
|
+
artifact_standard_code VARCHAR(128) NOT NULL,
|
|
688
|
+
|
|
689
|
+
-- artifact standard 버전
|
|
690
|
+
artifact_standard_version VARCHAR(64) NOT NULL,
|
|
691
|
+
|
|
692
|
+
-- stage 산출물 요구 역할 코드
|
|
693
|
+
requirement_role_code VARCHAR(32) NOT NULL
|
|
694
|
+
CHECK (requirement_role_code IN ('required', 'supporting')),
|
|
695
|
+
|
|
696
|
+
-- 필수 여부
|
|
697
|
+
is_required INTEGER NOT NULL DEFAULT 1
|
|
698
|
+
CHECK (is_required IN (0, 1)),
|
|
699
|
+
|
|
700
|
+
-- validation 필수 여부
|
|
701
|
+
validation_required INTEGER NOT NULL DEFAULT 0
|
|
702
|
+
CHECK (validation_required IN (0, 1)),
|
|
703
|
+
|
|
704
|
+
-- stage 내 정렬 순서
|
|
705
|
+
sort_order INTEGER NOT NULL DEFAULT 0,
|
|
706
|
+
|
|
707
|
+
-- 생성 시각
|
|
708
|
+
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
709
|
+
|
|
710
|
+
-- 수정 시각
|
|
711
|
+
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
712
|
+
|
|
713
|
+
-- 확장 메타데이터
|
|
714
|
+
metadata_json JSON
|
|
715
|
+
CHECK (metadata_json IS NULL OR json_valid(metadata_json)),
|
|
716
|
+
|
|
717
|
+
FOREIGN KEY (stage_id)
|
|
718
|
+
REFERENCES methodology_stages (stage_id)
|
|
719
|
+
ON DELETE CASCADE,
|
|
720
|
+
|
|
721
|
+
UNIQUE (stage_id, artifact_standard_code, artifact_standard_version, requirement_role_code),
|
|
722
|
+
UNIQUE (stage_id, sort_order)
|
|
723
|
+
);
|
|
724
|
+
|
|
725
|
+
-- stage의 entry, exit, gate 판단 기준을 관리한다.
|
|
726
|
+
CREATE TABLE IF NOT EXISTS methodology_stage_criteria (
|
|
727
|
+
-- stage criteria 식별자
|
|
728
|
+
stage_criteria_id CHAR(36) PRIMARY KEY
|
|
729
|
+
CHECK (length(stage_criteria_id) = 36),
|
|
730
|
+
|
|
731
|
+
-- 소속 stage 식별자
|
|
732
|
+
stage_id CHAR(36) NOT NULL
|
|
733
|
+
CHECK (length(stage_id) = 36),
|
|
734
|
+
|
|
735
|
+
-- criteria 유형 코드
|
|
736
|
+
criteria_type_code VARCHAR(32) NOT NULL
|
|
737
|
+
CHECK (criteria_type_code IN ('entry', 'exit', 'gate')),
|
|
738
|
+
|
|
739
|
+
-- criteria 이름
|
|
740
|
+
criteria_name VARCHAR(256) NOT NULL,
|
|
741
|
+
|
|
742
|
+
-- criteria 내용
|
|
743
|
+
criteria_text TEXT NOT NULL,
|
|
744
|
+
|
|
745
|
+
-- 필수 여부
|
|
746
|
+
is_required INTEGER NOT NULL DEFAULT 1
|
|
747
|
+
CHECK (is_required IN (0, 1)),
|
|
748
|
+
|
|
749
|
+
-- validation 필수 여부
|
|
750
|
+
validation_required INTEGER NOT NULL DEFAULT 0
|
|
751
|
+
CHECK (validation_required IN (0, 1)),
|
|
752
|
+
|
|
753
|
+
-- 심각도 코드
|
|
754
|
+
severity_code VARCHAR(32) NOT NULL DEFAULT 'error'
|
|
755
|
+
CHECK (severity_code IN ('info', 'warning', 'error', 'critical')),
|
|
756
|
+
|
|
757
|
+
-- stage criteria 정렬 순서
|
|
758
|
+
sort_order INTEGER NOT NULL DEFAULT 0,
|
|
759
|
+
|
|
760
|
+
-- 생성 시각
|
|
761
|
+
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
762
|
+
|
|
763
|
+
-- 수정 시각
|
|
764
|
+
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
765
|
+
|
|
766
|
+
-- 확장 메타데이터
|
|
767
|
+
metadata_json JSON
|
|
768
|
+
CHECK (metadata_json IS NULL OR json_valid(metadata_json)),
|
|
769
|
+
|
|
770
|
+
FOREIGN KEY (stage_id)
|
|
771
|
+
REFERENCES methodology_stages (stage_id)
|
|
772
|
+
ON DELETE CASCADE,
|
|
773
|
+
|
|
774
|
+
UNIQUE (stage_id, criteria_type_code, sort_order)
|
|
775
|
+
);
|
|
776
|
+
|
|
777
|
+
-- activity의 completion 판단 기준을 관리한다.
|
|
778
|
+
CREATE TABLE IF NOT EXISTS methodology_activity_criteria (
|
|
779
|
+
-- activity criteria 식별자
|
|
780
|
+
activity_criteria_id CHAR(36) PRIMARY KEY
|
|
781
|
+
CHECK (length(activity_criteria_id) = 36),
|
|
782
|
+
|
|
783
|
+
-- 소속 activity 식별자
|
|
784
|
+
activity_id CHAR(36) NOT NULL
|
|
785
|
+
CHECK (length(activity_id) = 36),
|
|
786
|
+
|
|
787
|
+
-- criteria 유형 코드
|
|
788
|
+
criteria_type_code VARCHAR(32) NOT NULL DEFAULT 'completion'
|
|
789
|
+
CHECK (criteria_type_code = 'completion'),
|
|
790
|
+
|
|
791
|
+
-- criteria 이름
|
|
792
|
+
criteria_name VARCHAR(256) NOT NULL,
|
|
793
|
+
|
|
794
|
+
-- criteria 내용
|
|
795
|
+
criteria_text TEXT NOT NULL,
|
|
796
|
+
|
|
797
|
+
-- 필수 여부
|
|
798
|
+
is_required INTEGER NOT NULL DEFAULT 1
|
|
799
|
+
CHECK (is_required IN (0, 1)),
|
|
800
|
+
|
|
801
|
+
-- validation 필수 여부
|
|
802
|
+
validation_required INTEGER NOT NULL DEFAULT 0
|
|
803
|
+
CHECK (validation_required IN (0, 1)),
|
|
804
|
+
|
|
805
|
+
-- 심각도 코드
|
|
806
|
+
severity_code VARCHAR(32) NOT NULL DEFAULT 'error'
|
|
807
|
+
CHECK (severity_code IN ('info', 'warning', 'error', 'critical')),
|
|
808
|
+
|
|
809
|
+
-- activity criteria 정렬 순서
|
|
810
|
+
sort_order INTEGER NOT NULL DEFAULT 0,
|
|
811
|
+
|
|
812
|
+
-- 생성 시각
|
|
813
|
+
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
814
|
+
|
|
815
|
+
-- 수정 시각
|
|
816
|
+
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
817
|
+
|
|
818
|
+
-- 확장 메타데이터
|
|
819
|
+
metadata_json JSON
|
|
820
|
+
CHECK (metadata_json IS NULL OR json_valid(metadata_json)),
|
|
821
|
+
|
|
822
|
+
FOREIGN KEY (activity_id)
|
|
823
|
+
REFERENCES methodology_activities (activity_id)
|
|
824
|
+
ON DELETE CASCADE,
|
|
825
|
+
|
|
826
|
+
UNIQUE (activity_id, sort_order)
|
|
827
|
+
);
|
|
828
|
+
|
|
829
|
+
-- phase, process, stage, activity 간 전달 요구를 관리한다.
|
|
830
|
+
CREATE TABLE IF NOT EXISTS methodology_handoff_requirements (
|
|
831
|
+
-- handoff requirement 식별자
|
|
832
|
+
handoff_requirement_id CHAR(36) PRIMARY KEY
|
|
833
|
+
CHECK (length(handoff_requirement_id) = 36),
|
|
834
|
+
|
|
835
|
+
-- 전달 원천 scope 코드
|
|
836
|
+
source_scope_code VARCHAR(32) NOT NULL
|
|
837
|
+
CHECK (source_scope_code IN ('phase', 'process', 'stage', 'activity')),
|
|
838
|
+
|
|
839
|
+
-- 전달 원천 참조 식별자
|
|
840
|
+
source_ref_id CHAR(36) NOT NULL
|
|
841
|
+
CHECK (length(source_ref_id) = 36),
|
|
842
|
+
|
|
843
|
+
-- 전달 대상 scope 코드
|
|
844
|
+
target_scope_code VARCHAR(32) NOT NULL
|
|
845
|
+
CHECK (target_scope_code IN ('phase', 'process', 'stage', 'activity')),
|
|
846
|
+
|
|
847
|
+
-- 전달 대상 참조 식별자
|
|
848
|
+
target_ref_id CHAR(36) NOT NULL
|
|
849
|
+
CHECK (length(target_ref_id) = 36),
|
|
850
|
+
|
|
851
|
+
-- handoff 유형 코드
|
|
852
|
+
handoff_type_code VARCHAR(32) NOT NULL
|
|
853
|
+
CHECK (handoff_type_code IN ('artifact', 'issue', 'risk', 'decision', 'constraint', 'approval', 'context')),
|
|
854
|
+
|
|
855
|
+
-- handoff 항목명
|
|
856
|
+
handoff_item_name VARCHAR(256) NOT NULL,
|
|
857
|
+
|
|
858
|
+
-- handoff 설명
|
|
859
|
+
handoff_description TEXT,
|
|
860
|
+
|
|
861
|
+
-- artifact standard 코드. artifact 유형 handoff일 때 사용할 수 있다.
|
|
862
|
+
artifact_standard_code VARCHAR(128),
|
|
863
|
+
|
|
864
|
+
-- artifact standard 버전
|
|
865
|
+
artifact_standard_version VARCHAR(64),
|
|
866
|
+
|
|
867
|
+
-- 필수 여부
|
|
868
|
+
is_required INTEGER NOT NULL DEFAULT 1
|
|
869
|
+
CHECK (is_required IN (0, 1)),
|
|
870
|
+
|
|
871
|
+
-- validation 필수 여부
|
|
872
|
+
validation_required INTEGER NOT NULL DEFAULT 0
|
|
873
|
+
CHECK (validation_required IN (0, 1)),
|
|
874
|
+
|
|
875
|
+
-- 정렬 순서
|
|
876
|
+
sort_order INTEGER NOT NULL DEFAULT 0,
|
|
877
|
+
|
|
878
|
+
-- 생성 시각
|
|
879
|
+
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
880
|
+
|
|
881
|
+
-- 수정 시각
|
|
882
|
+
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
883
|
+
|
|
884
|
+
-- 확장 메타데이터
|
|
885
|
+
metadata_json JSON
|
|
886
|
+
CHECK (metadata_json IS NULL OR json_valid(metadata_json)),
|
|
887
|
+
|
|
888
|
+
CHECK (
|
|
889
|
+
(artifact_standard_code IS NULL AND artifact_standard_version IS NULL)
|
|
890
|
+
OR (artifact_standard_code IS NOT NULL AND artifact_standard_version IS NOT NULL)
|
|
891
|
+
)
|
|
892
|
+
);
|
|
893
|
+
|
|
894
|
+
-- baseline이 필요한 scope와 trigger를 관리한다.
|
|
895
|
+
CREATE TABLE IF NOT EXISTS methodology_baseline_requirements (
|
|
896
|
+
-- baseline requirement 식별자
|
|
897
|
+
baseline_requirement_id CHAR(36) PRIMARY KEY
|
|
898
|
+
CHECK (length(baseline_requirement_id) = 36),
|
|
899
|
+
|
|
900
|
+
-- baseline scope 코드
|
|
901
|
+
baseline_scope_code VARCHAR(32) NOT NULL
|
|
902
|
+
CHECK (baseline_scope_code IN ('phase', 'process', 'stage', 'activity')),
|
|
903
|
+
|
|
904
|
+
-- baseline scope 참조 식별자
|
|
905
|
+
baseline_scope_ref_id CHAR(36) NOT NULL
|
|
906
|
+
CHECK (length(baseline_scope_ref_id) = 36),
|
|
907
|
+
|
|
908
|
+
-- baseline trigger 코드
|
|
909
|
+
baseline_trigger_code VARCHAR(32) NOT NULL
|
|
910
|
+
CHECK (baseline_trigger_code IN ('entry', 'exit', 'gate', 'handoff', 'approval', 'manual')),
|
|
911
|
+
|
|
912
|
+
-- baseline 이름
|
|
913
|
+
baseline_name VARCHAR(256) NOT NULL,
|
|
914
|
+
|
|
915
|
+
-- baseline 설명
|
|
916
|
+
baseline_description TEXT,
|
|
917
|
+
|
|
918
|
+
-- 필수 여부
|
|
919
|
+
is_required INTEGER NOT NULL DEFAULT 1
|
|
920
|
+
CHECK (is_required IN (0, 1)),
|
|
921
|
+
|
|
922
|
+
-- validation 필수 여부
|
|
923
|
+
validation_required INTEGER NOT NULL DEFAULT 0
|
|
924
|
+
CHECK (validation_required IN (0, 1)),
|
|
925
|
+
|
|
926
|
+
-- 정렬 순서
|
|
927
|
+
sort_order INTEGER NOT NULL DEFAULT 0,
|
|
928
|
+
|
|
929
|
+
-- 생성 시각
|
|
930
|
+
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
931
|
+
|
|
932
|
+
-- 수정 시각
|
|
933
|
+
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
934
|
+
|
|
935
|
+
-- 확장 메타데이터
|
|
936
|
+
metadata_json JSON
|
|
937
|
+
CHECK (metadata_json IS NULL OR json_valid(metadata_json))
|
|
938
|
+
);
|
|
939
|
+
|
|
940
|
+
-- 실제 trace link가 아니라 trace 필요 관계 정책을 관리한다.
|
|
941
|
+
CREATE TABLE IF NOT EXISTS methodology_trace_policies (
|
|
942
|
+
-- trace policy 식별자
|
|
943
|
+
trace_policy_id CHAR(36) PRIMARY KEY
|
|
944
|
+
CHECK (length(trace_policy_id) = 36),
|
|
945
|
+
|
|
946
|
+
-- policy 적용 scope 코드
|
|
947
|
+
policy_scope_code VARCHAR(32) NOT NULL
|
|
948
|
+
CHECK (policy_scope_code IN ('methodology', 'lifecycle', 'phase', 'process', 'stage', 'activity')),
|
|
949
|
+
|
|
950
|
+
-- policy 적용 scope 참조 식별자
|
|
951
|
+
policy_scope_ref_id CHAR(36) NOT NULL
|
|
952
|
+
CHECK (length(policy_scope_ref_id) = 36),
|
|
953
|
+
|
|
954
|
+
-- trace source scope 코드
|
|
955
|
+
source_scope_code VARCHAR(64) NOT NULL
|
|
956
|
+
CHECK (source_scope_code IN ('phase', 'process', 'stage', 'activity', 'artifact_requirement', 'artifact_standard')),
|
|
957
|
+
|
|
958
|
+
-- trace target scope 코드
|
|
959
|
+
target_scope_code VARCHAR(64) NOT NULL
|
|
960
|
+
CHECK (target_scope_code IN ('phase', 'process', 'stage', 'activity', 'artifact_requirement', 'artifact_standard')),
|
|
961
|
+
|
|
962
|
+
-- trace 유형 코드
|
|
963
|
+
trace_type_code VARCHAR(32) NOT NULL
|
|
964
|
+
CHECK (trace_type_code IN ('derives', 'produces', 'consumes', 'validates', 'hands_off', 'refines', 'impacts')),
|
|
965
|
+
|
|
966
|
+
-- policy 이름
|
|
967
|
+
policy_name VARCHAR(256) NOT NULL,
|
|
968
|
+
|
|
969
|
+
-- policy 설명
|
|
970
|
+
policy_description TEXT,
|
|
971
|
+
|
|
972
|
+
-- 필수 여부
|
|
973
|
+
is_required INTEGER NOT NULL DEFAULT 1
|
|
974
|
+
CHECK (is_required IN (0, 1)),
|
|
975
|
+
|
|
976
|
+
-- validation 필수 여부
|
|
977
|
+
validation_required INTEGER NOT NULL DEFAULT 0
|
|
978
|
+
CHECK (validation_required IN (0, 1)),
|
|
979
|
+
|
|
980
|
+
-- 심각도 코드
|
|
981
|
+
severity_code VARCHAR(32) NOT NULL DEFAULT 'error'
|
|
982
|
+
CHECK (severity_code IN ('info', 'warning', 'error', 'critical')),
|
|
983
|
+
|
|
984
|
+
-- 정렬 순서
|
|
985
|
+
sort_order INTEGER NOT NULL DEFAULT 0,
|
|
986
|
+
|
|
987
|
+
-- 생성 시각
|
|
988
|
+
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
989
|
+
|
|
990
|
+
-- 수정 시각
|
|
991
|
+
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
992
|
+
|
|
993
|
+
-- 확장 메타데이터
|
|
994
|
+
metadata_json JSON
|
|
995
|
+
CHECK (metadata_json IS NULL OR json_valid(metadata_json))
|
|
996
|
+
);
|
|
997
|
+
|
|
998
|
+
CREATE UNIQUE INDEX IF NOT EXISTS ux_methodology_activity_artifact_requirements_primary_output
|
|
999
|
+
ON methodology_activity_artifact_requirements (activity_id)
|
|
1000
|
+
WHERE is_primary = 1;
|
|
1001
|
+
|
|
1002
|
+
CREATE INDEX IF NOT EXISTS idx_methodology_lifecycles_methodology
|
|
1003
|
+
ON methodology_lifecycles (methodology_id);
|
|
1004
|
+
|
|
1005
|
+
CREATE INDEX IF NOT EXISTS idx_methodology_phases_lifecycle_order
|
|
1006
|
+
ON methodology_phases (lifecycle_id, sort_order);
|
|
1007
|
+
|
|
1008
|
+
CREATE INDEX IF NOT EXISTS idx_methodology_processes_methodology
|
|
1009
|
+
ON methodology_processes (methodology_id);
|
|
1010
|
+
|
|
1011
|
+
CREATE INDEX IF NOT EXISTS idx_methodology_phase_processes_process
|
|
1012
|
+
ON methodology_phase_processes (process_id);
|
|
1013
|
+
|
|
1014
|
+
CREATE UNIQUE INDEX IF NOT EXISTS ux_methodology_common_blueprint_policies_default
|
|
1015
|
+
ON methodology_common_blueprint_policies (methodology_id)
|
|
1016
|
+
WHERE is_default = 1;
|
|
1017
|
+
|
|
1018
|
+
CREATE INDEX IF NOT EXISTS idx_methodology_common_blueprint_policy_nodes_policy_type
|
|
1019
|
+
ON methodology_common_blueprint_policy_nodes (common_blueprint_policy_id, node_type_code, sort_order);
|
|
1020
|
+
|
|
1021
|
+
CREATE INDEX IF NOT EXISTS idx_methodology_activities_process_order
|
|
1022
|
+
ON methodology_activities (process_id, sort_order);
|
|
1023
|
+
|
|
1024
|
+
CREATE INDEX IF NOT EXISTS idx_methodology_steps_activity_order
|
|
1025
|
+
ON methodology_steps (activity_id, sort_order);
|
|
1026
|
+
|
|
1027
|
+
CREATE INDEX IF NOT EXISTS idx_methodology_stages_process_order
|
|
1028
|
+
ON methodology_stages (process_id, sort_order);
|
|
1029
|
+
|
|
1030
|
+
CREATE INDEX IF NOT EXISTS idx_methodology_stage_activities_activity
|
|
1031
|
+
ON methodology_stage_activities (activity_id);
|
|
1032
|
+
|
|
1033
|
+
CREATE INDEX IF NOT EXISTS idx_methodology_activity_artifact_requirements_activity_role
|
|
1034
|
+
ON methodology_activity_artifact_requirements (activity_id, requirement_role_code);
|
|
1035
|
+
|
|
1036
|
+
CREATE INDEX IF NOT EXISTS idx_methodology_activity_artifact_requirements_component
|
|
1037
|
+
ON methodology_activity_artifact_requirements (artifact_standard_code, artifact_component_code);
|
|
1038
|
+
|
|
1039
|
+
CREATE UNIQUE INDEX IF NOT EXISTS ux_methodology_activity_artifact_requirements_unique_target
|
|
1040
|
+
ON methodology_activity_artifact_requirements (
|
|
1041
|
+
activity_id,
|
|
1042
|
+
artifact_standard_code,
|
|
1043
|
+
artifact_standard_version,
|
|
1044
|
+
requirement_role_code,
|
|
1045
|
+
COALESCE(artifact_component_code, '')
|
|
1046
|
+
);
|
|
1047
|
+
|
|
1048
|
+
CREATE INDEX IF NOT EXISTS idx_methodology_stage_artifact_requirements_stage_role
|
|
1049
|
+
ON methodology_stage_artifact_requirements (stage_id, requirement_role_code);
|
|
1050
|
+
|
|
1051
|
+
CREATE INDEX IF NOT EXISTS idx_methodology_stage_criteria_stage_type
|
|
1052
|
+
ON methodology_stage_criteria (stage_id, criteria_type_code);
|
|
1053
|
+
|
|
1054
|
+
CREATE INDEX IF NOT EXISTS idx_methodology_activity_criteria_activity
|
|
1055
|
+
ON methodology_activity_criteria (activity_id);
|
|
1056
|
+
|
|
1057
|
+
CREATE INDEX IF NOT EXISTS idx_methodology_handoff_requirements_source
|
|
1058
|
+
ON methodology_handoff_requirements (source_scope_code, source_ref_id);
|
|
1059
|
+
|
|
1060
|
+
CREATE INDEX IF NOT EXISTS idx_methodology_handoff_requirements_target
|
|
1061
|
+
ON methodology_handoff_requirements (target_scope_code, target_ref_id);
|
|
1062
|
+
|
|
1063
|
+
CREATE INDEX IF NOT EXISTS idx_methodology_baseline_requirements_scope
|
|
1064
|
+
ON methodology_baseline_requirements (baseline_scope_code, baseline_scope_ref_id);
|
|
1065
|
+
|
|
1066
|
+
CREATE INDEX IF NOT EXISTS idx_methodology_trace_policies_policy_scope
|
|
1067
|
+
ON methodology_trace_policies (policy_scope_code, policy_scope_ref_id);
|
|
1068
|
+
|
|
1069
|
+
INSERT INTO methodology_schema_migrations (migration_id, migration_name)
|
|
1070
|
+
VALUES ('0001_methodology_base', 'methodology base schema')
|
|
1071
|
+
ON CONFLICT(migration_id) DO NOTHING;
|
|
1072
|
+
|
|
1073
|
+
INSERT INTO methodology_code_groups (code_group_code, code_group_name, description, sort_order)
|
|
1074
|
+
VALUES
|
|
1075
|
+
('methodology_status', '방법론 상태', '방법론 정의 데이터의 상태를 정의한다.', 10),
|
|
1076
|
+
('lifecycle_type', 'Lifecycle 유형', '방법론 lifecycle 유형을 정의한다.', 20),
|
|
1077
|
+
('process_type', 'Process 유형', '재사용 process 유형을 정의한다.', 30),
|
|
1078
|
+
('stage_type', 'Stage 유형', 'Stage의 governance 성격을 정의한다.', 40),
|
|
1079
|
+
('activity_type', 'Activity 유형', 'Activity 수행 유형을 정의한다.', 50),
|
|
1080
|
+
('step_type', 'Step 유형', 'Step 절차 유형을 정의한다.', 60),
|
|
1081
|
+
('artifact_requirement_role', '산출물 요구 역할', 'Activity 산출물 요구 역할을 정의한다.', 70),
|
|
1082
|
+
('stage_artifact_requirement_role', 'Stage 산출물 요구 역할', 'Stage 추가 산출물 요구 역할을 정의한다.', 80),
|
|
1083
|
+
('stage_criteria_type', 'Stage Criteria 유형', 'Stage entry, exit, gate 기준을 정의한다.', 90),
|
|
1084
|
+
('activity_criteria_type', 'Activity Criteria 유형', 'Activity completion 기준을 정의한다.', 100),
|
|
1085
|
+
('criteria_severity', 'Criteria 심각도', 'Criteria와 trace policy의 심각도를 정의한다.', 110),
|
|
1086
|
+
('common_blueprint_policy_status', 'Common Blueprint Policy 상태', '공통 문서 구조 정책 상태를 정의한다.', 120),
|
|
1087
|
+
('common_blueprint_node_type', 'Common Blueprint Node 유형', '공통 문서 구조 정책 node 유형을 정의한다.', 130),
|
|
1088
|
+
('handoff_scope', 'Handoff Scope', 'Handoff source/target scope를 정의한다.', 140),
|
|
1089
|
+
('handoff_type', 'Handoff 유형', 'Handoff 전달 항목 유형을 정의한다.', 150),
|
|
1090
|
+
('baseline_scope', 'Baseline Scope', 'Baseline requirement scope를 정의한다.', 160),
|
|
1091
|
+
('baseline_trigger', 'Baseline Trigger', 'Baseline requirement trigger를 정의한다.', 170),
|
|
1092
|
+
('trace_policy_scope', 'Trace Policy Scope', 'Trace policy 적용 scope를 정의한다.', 180),
|
|
1093
|
+
('trace_target_type', 'Trace 대상 유형', 'Trace source/target 유형을 정의한다.', 190),
|
|
1094
|
+
('trace_type', 'Trace 유형', 'Trace 관계 유형을 정의한다.', 200),
|
|
1095
|
+
('activity_artifact_output_usage', 'Activity Artifact Output Usage', 'Activity가 output 산출물 또는 component를 어떻게 다루는지 정의한다.', 210)
|
|
1096
|
+
ON CONFLICT(code_group_code) DO UPDATE SET
|
|
1097
|
+
code_group_name = excluded.code_group_name,
|
|
1098
|
+
description = excluded.description,
|
|
1099
|
+
sort_order = excluded.sort_order,
|
|
1100
|
+
updated_at = CURRENT_TIMESTAMP;
|
|
1101
|
+
|
|
1102
|
+
INSERT INTO methodology_codes (code_group_code, code, code_name, description, sort_order, metadata_json)
|
|
1103
|
+
VALUES
|
|
1104
|
+
('methodology_status', 'draft', '작성 중', '작성 중인 방법론 정의다.', 10, NULL),
|
|
1105
|
+
('methodology_status', 'active', '활성', '사용 가능한 방법론 정의다.', 20, NULL),
|
|
1106
|
+
('methodology_status', 'deprecated', '사용 중단 예정', '후속 버전으로 대체 예정인 방법론 정의다.', 30, NULL),
|
|
1107
|
+
('methodology_status', 'archived', '보관', '보관된 방법론 정의다.', 40, NULL),
|
|
1108
|
+
('lifecycle_type', 'default', '기본', '기본 lifecycle 유형이다.', 10, NULL),
|
|
1109
|
+
('lifecycle_type', 'waterfall', 'Waterfall', '순차 lifecycle 유형이다.', 20, NULL),
|
|
1110
|
+
('lifecycle_type', 'iterative', 'Iterative', '반복 lifecycle 유형이다.', 30, NULL),
|
|
1111
|
+
('lifecycle_type', 'incremental', 'Incremental', '증분 lifecycle 유형이다.', 40, NULL),
|
|
1112
|
+
('process_type', 'default', '기본', '기본 process 유형이다.', 10, NULL),
|
|
1113
|
+
('stage_type', 'default', '기본', '기본 stage 유형이다.', 10, NULL),
|
|
1114
|
+
('stage_type', 'gate', 'Gate', '전환 판단 중심 stage다.', 20, NULL),
|
|
1115
|
+
('stage_type', 'baseline', 'Baseline', '기준선 관리 중심 stage다.', 30, NULL),
|
|
1116
|
+
('activity_type', 'default', '기본', '기본 activity 유형이다.', 10, NULL),
|
|
1117
|
+
('activity_type', 'authoring', '작성', '산출물 작성 activity다.', 20, NULL),
|
|
1118
|
+
('activity_type', 'review', '검토', '검토 activity다.', 30, NULL),
|
|
1119
|
+
('activity_type', 'validation', '검증', '검증 activity다.', 40, NULL),
|
|
1120
|
+
('step_type', 'default', '기본', '기본 step 유형이다.', 10, NULL),
|
|
1121
|
+
('artifact_requirement_role', 'input', '입력 산출물', 'Activity 수행 전에 필요한 산출물이다.', 10, NULL),
|
|
1122
|
+
('artifact_requirement_role', 'output', '출력 산출물', 'Activity가 생성하거나 갱신하는 산출물이다.', 20, NULL),
|
|
1123
|
+
('artifact_requirement_role', 'supporting', '참고 산출물', 'Activity 수행에 참고하는 보조 산출물이다.', 30, NULL),
|
|
1124
|
+
('activity_artifact_output_usage', 'produces', '신규 작성', 'Activity가 산출물 또는 component를 신규 작성한다.', 10, NULL),
|
|
1125
|
+
('activity_artifact_output_usage', 'refines', '정제', 'Activity가 기존 산출물 또는 component를 보완하거나 정제한다.', 20, NULL),
|
|
1126
|
+
('activity_artifact_output_usage', 'reviews', '검토', 'Activity가 산출물 또는 component를 검토한다.', 30, NULL),
|
|
1127
|
+
('activity_artifact_output_usage', 'consolidates', '종합', 'Activity가 여러 산출물 또는 component를 종합한다.', 40, NULL),
|
|
1128
|
+
('stage_artifact_requirement_role', 'required', '필수 추가 산출물', 'Stage gate, baseline, handoff, approval에 필요한 추가 산출물이다.', 10, NULL),
|
|
1129
|
+
('stage_artifact_requirement_role', 'supporting', '참고 산출물', 'Stage 검토에 참고하는 보조 산출물이다.', 20, NULL),
|
|
1130
|
+
('stage_criteria_type', 'entry', '진입 기준', 'Stage를 시작할 수 있는 기준이다.', 10, NULL),
|
|
1131
|
+
('stage_criteria_type', 'exit', '종료 기준', 'Stage를 완료할 수 있는 기준이다.', 20, NULL),
|
|
1132
|
+
('stage_criteria_type', 'gate', '게이트 기준', 'Stage 전환 또는 승인 판단 기준이다.', 30, NULL),
|
|
1133
|
+
('activity_criteria_type', 'completion', '완료 기준', 'Activity 완료 판단 기준이다.', 10, NULL),
|
|
1134
|
+
('criteria_severity', 'info', '정보', '정보성 기준이다.', 10, NULL),
|
|
1135
|
+
('criteria_severity', 'warning', '경고', '주의가 필요한 기준이다.', 20, NULL),
|
|
1136
|
+
('criteria_severity', 'error', '오류', '충족되지 않으면 실패로 볼 기준이다.', 30, NULL),
|
|
1137
|
+
('criteria_severity', 'critical', '치명', '반드시 충족해야 하는 중대 기준이다.', 40, NULL),
|
|
1138
|
+
('common_blueprint_policy_status', 'DRAFT', 'Draft', '작성 중인 공통 문서 구조 정책이다.', 10, NULL),
|
|
1139
|
+
('common_blueprint_policy_status', 'ACTIVE', 'Active', '사용 가능한 공통 문서 구조 정책이다.', 20, NULL),
|
|
1140
|
+
('common_blueprint_policy_status', 'DEPRECATED', 'Deprecated', '후속 정책으로 대체 예정인 공통 문서 구조 정책이다.', 30, NULL),
|
|
1141
|
+
('common_blueprint_policy_status', 'ARCHIVED', 'Archived', '보관된 공통 문서 구조 정책이다.', 40, NULL),
|
|
1142
|
+
('common_blueprint_node_type', 'FRONT_MATTER', 'Front Matter', '본문 앞쪽에 공통으로 배치되는 문서 구조 node다.', 10, NULL),
|
|
1143
|
+
('common_blueprint_node_type', 'BACK_MATTER', 'Back Matter', '본문 뒤쪽에 공통으로 배치되는 문서 구조 node다.', 20, NULL),
|
|
1144
|
+
('common_blueprint_node_type', 'BODY_POLICY', 'Body Policy', '본문 상세 구조는 Artifact Standard가 정의한다는 정책 node다.', 30, NULL),
|
|
1145
|
+
('handoff_scope', 'phase', 'Phase', 'Phase 수준 scope다.', 10, NULL),
|
|
1146
|
+
('handoff_scope', 'process', 'Process', 'Process 수준 scope다.', 20, NULL),
|
|
1147
|
+
('handoff_scope', 'stage', 'Stage', 'Stage 수준 scope다.', 30, NULL),
|
|
1148
|
+
('handoff_scope', 'activity', 'Activity', 'Activity 수준 scope다.', 40, NULL),
|
|
1149
|
+
('handoff_type', 'artifact', '산출물', '산출물 전달 항목이다.', 10, NULL),
|
|
1150
|
+
('handoff_type', 'issue', '이슈', '이슈 전달 항목이다.', 20, NULL),
|
|
1151
|
+
('handoff_type', 'risk', '리스크', '리스크 전달 항목이다.', 30, NULL),
|
|
1152
|
+
('handoff_type', 'decision', '결정 사항', '결정 사항 전달 항목이다.', 40, NULL),
|
|
1153
|
+
('handoff_type', 'constraint', '제약 조건', '제약 조건 전달 항목이다.', 50, NULL),
|
|
1154
|
+
('handoff_type', 'approval', '승인 결과', '승인 결과 전달 항목이다.', 60, NULL),
|
|
1155
|
+
('handoff_type', 'context', '배경 정보', '배경 정보 전달 항목이다.', 70, NULL),
|
|
1156
|
+
('baseline_scope', 'phase', 'Phase', 'Phase 수준 기준선 scope다.', 10, NULL),
|
|
1157
|
+
('baseline_scope', 'process', 'Process', 'Process 수준 기준선 scope다.', 20, NULL),
|
|
1158
|
+
('baseline_scope', 'stage', 'Stage', 'Stage 수준 기준선 scope다.', 30, NULL),
|
|
1159
|
+
('baseline_scope', 'activity', 'Activity', 'Activity 수준 기준선 scope다.', 40, NULL),
|
|
1160
|
+
('baseline_trigger', 'entry', '진입', '수행 단위 진입 시 기준선이다.', 10, NULL),
|
|
1161
|
+
('baseline_trigger', 'exit', '종료', '수행 단위 종료 시 기준선이다.', 20, NULL),
|
|
1162
|
+
('baseline_trigger', 'gate', 'Gate', 'gate 통과 시 기준선이다.', 30, NULL),
|
|
1163
|
+
('baseline_trigger', 'handoff', 'Handoff', 'handoff 시 기준선이다.', 40, NULL),
|
|
1164
|
+
('baseline_trigger', 'approval', '승인', '승인 시 기준선이다.', 50, NULL),
|
|
1165
|
+
('baseline_trigger', 'manual', '수동', '사용자가 수동 지정하는 기준선이다.', 60, NULL),
|
|
1166
|
+
('trace_policy_scope', 'methodology', 'Methodology', '방법론 전체 scope다.', 10, NULL),
|
|
1167
|
+
('trace_policy_scope', 'lifecycle', 'Lifecycle', 'Lifecycle scope다.', 20, NULL),
|
|
1168
|
+
('trace_policy_scope', 'phase', 'Phase', 'Phase scope다.', 30, NULL),
|
|
1169
|
+
('trace_policy_scope', 'process', 'Process', 'Process scope다.', 40, NULL),
|
|
1170
|
+
('trace_policy_scope', 'stage', 'Stage', 'Stage scope다.', 50, NULL),
|
|
1171
|
+
('trace_policy_scope', 'activity', 'Activity', 'Activity scope다.', 60, NULL),
|
|
1172
|
+
('trace_target_type', 'phase', 'Phase', 'Phase trace 대상이다.', 10, NULL),
|
|
1173
|
+
('trace_target_type', 'process', 'Process', 'Process trace 대상이다.', 20, NULL),
|
|
1174
|
+
('trace_target_type', 'stage', 'Stage', 'Stage trace 대상이다.', 30, NULL),
|
|
1175
|
+
('trace_target_type', 'activity', 'Activity', 'Activity trace 대상이다.', 40, NULL),
|
|
1176
|
+
('trace_target_type', 'artifact_requirement', 'Artifact Requirement', '산출물 요구 trace 대상이다.', 50, NULL),
|
|
1177
|
+
('trace_target_type', 'artifact_standard', 'Artifact Standard', '산출물 표준 trace 대상이다.', 60, NULL),
|
|
1178
|
+
('trace_type', 'derives', '파생', 'source가 target을 파생한다.', 10, NULL),
|
|
1179
|
+
('trace_type', 'produces', '생성', 'source가 target을 생성한다.', 20, NULL),
|
|
1180
|
+
('trace_type', 'consumes', '소비', 'source가 target을 입력으로 사용한다.', 30, NULL),
|
|
1181
|
+
('trace_type', 'validates', '검증', 'source가 target을 검증한다.', 40, NULL),
|
|
1182
|
+
('trace_type', 'hands_off', '전달', 'source가 target으로 전달된다.', 50, NULL),
|
|
1183
|
+
('trace_type', 'refines', '구체화', 'source가 target을 구체화한다.', 60, NULL),
|
|
1184
|
+
('trace_type', 'impacts', '영향', 'source가 target에 영향을 준다.', 70, NULL)
|
|
1185
|
+
ON CONFLICT(code_group_code, code) DO UPDATE SET
|
|
1186
|
+
code_name = excluded.code_name,
|
|
1187
|
+
description = excluded.description,
|
|
1188
|
+
sort_order = excluded.sort_order,
|
|
1189
|
+
metadata_json = excluded.metadata_json,
|
|
1190
|
+
updated_at = CURRENT_TIMESTAMP;
|