1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
|
###############################################################
#### Description of SonarQube's schema in H2 SQL syntax ####
#### ####
#### This file is autogenerated and stored in SCM to ####
#### conveniently read the SonarQube's schema at any ####
#### point in time. ####
#### ####
#### DO NOT MODIFY THIS FILE DIRECTLY ####
#### use gradle task :server:sonar-db-dao:dumpSchema ####
###############################################################
CREATE TABLE SCHEMA_MIGRATIONS(
VERSION VARCHAR(255) NOT NULL
);
CREATE TABLE ACTIVE_RULE_PARAMETERS(
ID INTEGER NOT NULL AUTO_INCREMENT (1,1),
ACTIVE_RULE_ID INTEGER NOT NULL,
RULES_PARAMETER_ID INTEGER NOT NULL,
VALUE VARCHAR(4000),
RULES_PARAMETER_KEY VARCHAR(128)
);
ALTER TABLE ACTIVE_RULE_PARAMETERS ADD CONSTRAINT PK_ACTIVE_RULE_PARAMETERS PRIMARY KEY(ID);
CREATE INDEX IX_ARP_ON_ACTIVE_RULE_ID ON ACTIVE_RULE_PARAMETERS(ACTIVE_RULE_ID);
CREATE TABLE ACTIVE_RULES(
ID INTEGER NOT NULL AUTO_INCREMENT (1,1),
PROFILE_ID INTEGER NOT NULL,
RULE_ID INTEGER NOT NULL,
FAILURE_LEVEL INTEGER NOT NULL,
INHERITANCE VARCHAR(10),
CREATED_AT BIGINT,
UPDATED_AT BIGINT
);
ALTER TABLE ACTIVE_RULES ADD CONSTRAINT PK_ACTIVE_RULES PRIMARY KEY(ID);
CREATE UNIQUE INDEX UNIQ_PROFILE_RULE_IDS ON ACTIVE_RULES(PROFILE_ID, RULE_ID);
CREATE TABLE ALM_APP_INSTALLS(
UUID VARCHAR(40) NOT NULL,
ALM_ID VARCHAR(40) NOT NULL,
OWNER_ID VARCHAR(4000) NOT NULL,
INSTALL_ID VARCHAR(4000) NOT NULL,
IS_OWNER_USER BOOLEAN NOT NULL,
USER_EXTERNAL_ID VARCHAR(255),
CREATED_AT BIGINT NOT NULL,
UPDATED_AT BIGINT NOT NULL
);
ALTER TABLE ALM_APP_INSTALLS ADD CONSTRAINT PK_ALM_APP_INSTALLS PRIMARY KEY(UUID);
CREATE UNIQUE INDEX ALM_APP_INSTALLS_OWNER ON ALM_APP_INSTALLS(ALM_ID, OWNER_ID);
CREATE UNIQUE INDEX ALM_APP_INSTALLS_INSTALL ON ALM_APP_INSTALLS(ALM_ID, INSTALL_ID);
CREATE INDEX ALM_APP_INSTALLS_EXTERNAL_ID ON ALM_APP_INSTALLS(USER_EXTERNAL_ID);
CREATE TABLE ANALYSIS_PROPERTIES(
UUID VARCHAR(40) NOT NULL,
ANALYSIS_UUID VARCHAR(40) NOT NULL,
KEE VARCHAR(512) NOT NULL,
TEXT_VALUE VARCHAR(4000),
CLOB_VALUE CLOB(2147483647),
IS_EMPTY BOOLEAN NOT NULL,
CREATED_AT BIGINT NOT NULL
);
ALTER TABLE ANALYSIS_PROPERTIES ADD CONSTRAINT PK_ANALYSIS_PROPERTIES PRIMARY KEY(UUID);
CREATE INDEX ANALYSIS_PROPERTIES_ANALYSIS ON ANALYSIS_PROPERTIES(ANALYSIS_UUID);
CREATE TABLE CE_ACTIVITY(
ID INTEGER NOT NULL AUTO_INCREMENT (1,1),
UUID VARCHAR(40) NOT NULL,
TASK_TYPE VARCHAR(15) NOT NULL,
MAIN_COMPONENT_UUID VARCHAR(40),
COMPONENT_UUID VARCHAR(40),
STATUS VARCHAR(15) NOT NULL,
MAIN_IS_LAST BOOLEAN NOT NULL,
MAIN_IS_LAST_KEY VARCHAR(55) NOT NULL,
IS_LAST BOOLEAN NOT NULL,
IS_LAST_KEY VARCHAR(55) NOT NULL,
SUBMITTER_UUID VARCHAR(255),
SUBMITTED_AT BIGINT NOT NULL,
STARTED_AT BIGINT,
EXECUTED_AT BIGINT,
EXECUTION_COUNT INTEGER NOT NULL,
EXECUTION_TIME_MS BIGINT,
ANALYSIS_UUID VARCHAR(50),
ERROR_MESSAGE VARCHAR(1000),
ERROR_STACKTRACE CLOB(2147483647),
ERROR_TYPE VARCHAR(20),
WORKER_UUID VARCHAR(40),
CREATED_AT BIGINT NOT NULL,
UPDATED_AT BIGINT NOT NULL
);
ALTER TABLE CE_ACTIVITY ADD CONSTRAINT PK_CE_ACTIVITY PRIMARY KEY(ID);
CREATE INDEX CE_ACTIVITY_COMPONENT ON CE_ACTIVITY(COMPONENT_UUID);
CREATE INDEX CE_ACTIVITY_ISLAST ON CE_ACTIVITY(IS_LAST, STATUS);
CREATE INDEX CE_ACTIVITY_ISLAST_KEY ON CE_ACTIVITY(IS_LAST_KEY);
CREATE INDEX CE_ACTIVITY_MAIN_COMPONENT ON CE_ACTIVITY(MAIN_COMPONENT_UUID);
CREATE INDEX CE_ACTIVITY_MAIN_ISLAST ON CE_ACTIVITY(MAIN_IS_LAST, STATUS);
CREATE INDEX CE_ACTIVITY_MAIN_ISLAST_KEY ON CE_ACTIVITY(MAIN_IS_LAST_KEY);
CREATE UNIQUE INDEX CE_ACTIVITY_UUID ON CE_ACTIVITY(UUID);
CREATE TABLE CE_QUEUE(
ID INTEGER NOT NULL AUTO_INCREMENT (1,1),
UUID VARCHAR(40) NOT NULL,
TASK_TYPE VARCHAR(15) NOT NULL,
MAIN_COMPONENT_UUID VARCHAR(40),
COMPONENT_UUID VARCHAR(40),
STATUS VARCHAR(15),
SUBMITTER_UUID VARCHAR(255),
STARTED_AT BIGINT,
WORKER_UUID VARCHAR(40),
EXECUTION_COUNT INTEGER NOT NULL,
CREATED_AT BIGINT NOT NULL,
UPDATED_AT BIGINT NOT NULL
);
ALTER TABLE CE_QUEUE ADD CONSTRAINT PK_CE_QUEUE PRIMARY KEY(ID);
CREATE INDEX CE_QUEUE_MAIN_COMPONENT ON CE_QUEUE(MAIN_COMPONENT_UUID);
CREATE INDEX CE_QUEUE_COMPONENT ON CE_QUEUE(COMPONENT_UUID);
CREATE UNIQUE INDEX CE_QUEUE_UUID ON CE_QUEUE(UUID);
CREATE TABLE CE_SCANNER_CONTEXT(
TASK_UUID VARCHAR(40) NOT NULL,
CONTEXT_DATA BLOB NOT NULL,
CREATED_AT BIGINT NOT NULL,
UPDATED_AT BIGINT NOT NULL
);
ALTER TABLE CE_SCANNER_CONTEXT ADD CONSTRAINT PK_CE_SCANNER_CONTEXT PRIMARY KEY(TASK_UUID);
CREATE TABLE CE_TASK_CHARACTERISTICS(
UUID VARCHAR(40) NOT NULL,
TASK_UUID VARCHAR(40) NOT NULL,
KEE VARCHAR(512) NOT NULL,
TEXT_VALUE VARCHAR(512)
);
ALTER TABLE CE_TASK_CHARACTERISTICS ADD CONSTRAINT PK_CE_TASK_CHARACTERISTICS PRIMARY KEY(UUID);
CREATE INDEX CE_CHARACTERISTICS_TASK_UUID ON CE_TASK_CHARACTERISTICS(TASK_UUID);
CREATE TABLE CE_TASK_INPUT(
TASK_UUID VARCHAR(40) NOT NULL,
INPUT_DATA BLOB,
CREATED_AT BIGINT NOT NULL,
UPDATED_AT BIGINT NOT NULL
);
ALTER TABLE CE_TASK_INPUT ADD CONSTRAINT PK_CE_TASK_INPUT PRIMARY KEY(TASK_UUID);
CREATE TABLE CE_TASK_MESSAGE(
UUID VARCHAR(40) NOT NULL,
TASK_UUID VARCHAR(40) NOT NULL,
MESSAGE VARCHAR(4000) NOT NULL,
CREATED_AT BIGINT NOT NULL
);
ALTER TABLE CE_TASK_MESSAGE ADD CONSTRAINT PK_CE_TASK_MESSAGE PRIMARY KEY(UUID);
CREATE INDEX CE_TASK_MESSAGE_TASK ON CE_TASK_MESSAGE(TASK_UUID);
CREATE TABLE DEFAULT_QPROFILES(
ORGANIZATION_UUID VARCHAR(40) NOT NULL,
LANGUAGE VARCHAR(20) NOT NULL,
QPROFILE_UUID VARCHAR(255) NOT NULL,
CREATED_AT BIGINT NOT NULL,
UPDATED_AT BIGINT NOT NULL
);
ALTER TABLE DEFAULT_QPROFILES ADD CONSTRAINT PK_DEFAULT_QPROFILES PRIMARY KEY(ORGANIZATION_UUID, LANGUAGE);
CREATE UNIQUE INDEX UNIQ_DEFAULT_QPROFILES_UUID ON DEFAULT_QPROFILES(QPROFILE_UUID);
CREATE TABLE DEPRECATED_RULE_KEYS(
UUID VARCHAR(40) NOT NULL,
RULE_ID INTEGER NOT NULL,
OLD_REPOSITORY_KEY VARCHAR(255) NOT NULL,
OLD_RULE_KEY VARCHAR(200) NOT NULL,
CREATED_AT BIGINT NOT NULL
);
ALTER TABLE DEPRECATED_RULE_KEYS ADD CONSTRAINT PK_DEPRECATED_RULE_KEYS PRIMARY KEY(UUID);
CREATE UNIQUE INDEX UNIQ_DEPRECATED_RULE_KEYS ON DEPRECATED_RULE_KEYS(OLD_REPOSITORY_KEY, OLD_RULE_KEY);
CREATE INDEX RULE_ID_DEPRECATED_RULE_KEYS ON DEPRECATED_RULE_KEYS(RULE_ID);
CREATE TABLE DUPLICATIONS_INDEX(
ID BIGINT NOT NULL AUTO_INCREMENT (1,1),
ANALYSIS_UUID VARCHAR(50) NOT NULL,
COMPONENT_UUID VARCHAR(50) NOT NULL,
HASH VARCHAR(50) NOT NULL,
INDEX_IN_FILE INTEGER NOT NULL,
START_LINE INTEGER NOT NULL,
END_LINE INTEGER NOT NULL
);
ALTER TABLE DUPLICATIONS_INDEX ADD CONSTRAINT PK_DUPLICATIONS_INDEX PRIMARY KEY(ID);
CREATE INDEX DUPLICATIONS_INDEX_HASH ON DUPLICATIONS_INDEX(HASH);
CREATE INDEX DUPLICATION_ANALYSIS_COMPONENT ON DUPLICATIONS_INDEX(ANALYSIS_UUID, COMPONENT_UUID);
CREATE TABLE ES_QUEUE(
UUID VARCHAR(40) NOT NULL,
DOC_TYPE VARCHAR(40) NOT NULL,
DOC_ID VARCHAR(4000) NOT NULL,
DOC_ID_TYPE VARCHAR(20),
DOC_ROUTING VARCHAR(4000),
CREATED_AT BIGINT NOT NULL
);
ALTER TABLE ES_QUEUE ADD CONSTRAINT PK_ES_QUEUE PRIMARY KEY(UUID);
CREATE INDEX ES_QUEUE_CREATED_AT ON ES_QUEUE(CREATED_AT);
CREATE TABLE EVENT_COMPONENT_CHANGES(
UUID VARCHAR(40) NOT NULL,
EVENT_UUID VARCHAR(40) NOT NULL,
EVENT_COMPONENT_UUID VARCHAR(50) NOT NULL,
EVENT_ANALYSIS_UUID VARCHAR(50) NOT NULL,
CHANGE_CATEGORY VARCHAR(12) NOT NULL,
COMPONENT_UUID VARCHAR(50) NOT NULL,
COMPONENT_KEY VARCHAR(400) NOT NULL,
COMPONENT_NAME VARCHAR(2000) NOT NULL,
COMPONENT_BRANCH_KEY VARCHAR(255),
CREATED_AT BIGINT NOT NULL
);
ALTER TABLE EVENT_COMPONENT_CHANGES ADD CONSTRAINT PK_EVENT_COMPONENT_CHANGES PRIMARY KEY(UUID);
CREATE UNIQUE INDEX EVENT_COMPONENT_CHANGES_UNIQUE ON EVENT_COMPONENT_CHANGES(EVENT_UUID, CHANGE_CATEGORY, COMPONENT_UUID);
CREATE INDEX EVENT_CPNT_CHANGES_CPNT ON EVENT_COMPONENT_CHANGES(EVENT_COMPONENT_UUID);
CREATE INDEX EVENT_CPNT_CHANGES_ANALYSIS ON EVENT_COMPONENT_CHANGES(EVENT_ANALYSIS_UUID);
CREATE TABLE EVENTS(
ID INTEGER NOT NULL AUTO_INCREMENT (1,1),
UUID VARCHAR(40) NOT NULL,
ANALYSIS_UUID VARCHAR(50) NOT NULL,
NAME VARCHAR(400),
CATEGORY VARCHAR(50),
DESCRIPTION VARCHAR(4000),
EVENT_DATA VARCHAR(4000),
EVENT_DATE BIGINT NOT NULL,
CREATED_AT BIGINT NOT NULL,
COMPONENT_UUID VARCHAR(50) NOT NULL
);
ALTER TABLE EVENTS ADD CONSTRAINT PK_EVENTS PRIMARY KEY(ID);
CREATE UNIQUE INDEX EVENTS_UUID ON EVENTS(UUID);
CREATE INDEX EVENTS_ANALYSIS ON EVENTS(ANALYSIS_UUID);
CREATE INDEX EVENTS_COMPONENT_UUID ON EVENTS(COMPONENT_UUID);
CREATE TABLE FILE_SOURCES(
ID INTEGER NOT NULL AUTO_INCREMENT (1,1),
PROJECT_UUID VARCHAR(50) NOT NULL,
FILE_UUID VARCHAR(50) NOT NULL,
LINE_HASHES CLOB(2147483647),
LINE_HASHES_VERSION INTEGER,
DATA_HASH VARCHAR(50),
SRC_HASH VARCHAR(50),
REVISION VARCHAR(100),
LINE_COUNT INTEGER NOT NULL,
BINARY_DATA BLOB,
CREATED_AT BIGINT NOT NULL,
UPDATED_AT BIGINT NOT NULL
);
ALTER TABLE FILE_SOURCES ADD CONSTRAINT PK_FILE_SOURCES PRIMARY KEY(ID);
CREATE UNIQUE INDEX FILE_SOURCES_FILE_UUID ON FILE_SOURCES(FILE_UUID);
CREATE INDEX FILE_SOURCES_PROJECT_UUID ON FILE_SOURCES(PROJECT_UUID);
CREATE INDEX FILE_SOURCES_UPDATED_AT ON FILE_SOURCES(UPDATED_AT);
CREATE TABLE GROUP_ROLES(
ID INTEGER NOT NULL AUTO_INCREMENT (1,1),
ORGANIZATION_UUID VARCHAR(40) NOT NULL,
GROUP_ID INTEGER,
RESOURCE_ID INTEGER,
ROLE VARCHAR(64) NOT NULL
);
ALTER TABLE GROUP_ROLES ADD CONSTRAINT PK_GROUP_ROLES PRIMARY KEY(ID);
CREATE UNIQUE INDEX UNIQ_GROUP_ROLES ON GROUP_ROLES(ORGANIZATION_UUID, GROUP_ID, RESOURCE_ID, ROLE);
CREATE INDEX GROUP_ROLES_RESOURCE ON GROUP_ROLES(RESOURCE_ID);
CREATE TABLE GROUPS(
ID INTEGER NOT NULL AUTO_INCREMENT (1,1),
ORGANIZATION_UUID VARCHAR(40) NOT NULL,
NAME VARCHAR(500),
DESCRIPTION VARCHAR(200),
CREATED_AT TIMESTAMP,
UPDATED_AT TIMESTAMP
);
ALTER TABLE GROUPS ADD CONSTRAINT PK_GROUPS PRIMARY KEY(ID);
CREATE TABLE GROUPS_USERS(
USER_ID BIGINT,
GROUP_ID BIGINT
);
CREATE INDEX INDEX_GROUPS_USERS_ON_USER_ID ON GROUPS_USERS(USER_ID);
CREATE INDEX INDEX_GROUPS_USERS_ON_GROUP_ID ON GROUPS_USERS(GROUP_ID);
CREATE UNIQUE INDEX GROUPS_USERS_UNIQUE ON GROUPS_USERS(GROUP_ID, USER_ID);
CREATE TABLE INTERNAL_COMPONENT_PROPS(
UUID VARCHAR(40) NOT NULL,
COMPONENT_UUID VARCHAR(50) NOT NULL,
KEE VARCHAR(512) NOT NULL,
VALUE VARCHAR(4000),
UPDATED_AT BIGINT NOT NULL,
CREATED_AT BIGINT NOT NULL
);
ALTER TABLE INTERNAL_COMPONENT_PROPS ADD CONSTRAINT PK_INTERNAL_COMPONENT_PROPS PRIMARY KEY(UUID);
CREATE UNIQUE INDEX UNIQUE_COMPONENT_UUID_KEE ON INTERNAL_COMPONENT_PROPS(COMPONENT_UUID, KEE);
CREATE TABLE INTERNAL_PROPERTIES(
KEE VARCHAR(20) NOT NULL,
IS_EMPTY BOOLEAN NOT NULL,
TEXT_VALUE VARCHAR(4000),
CLOB_VALUE CLOB(2147483647),
CREATED_AT BIGINT NOT NULL
);
ALTER TABLE INTERNAL_PROPERTIES ADD CONSTRAINT PK_INTERNAL_PROPERTIES PRIMARY KEY(KEE);
CREATE TABLE ISSUE_CHANGES(
ID BIGINT NOT NULL AUTO_INCREMENT (1,1),
KEE VARCHAR(50),
ISSUE_KEY VARCHAR(50) NOT NULL,
USER_LOGIN VARCHAR(255),
CHANGE_TYPE VARCHAR(20),
CHANGE_DATA CLOB(2147483647),
CREATED_AT BIGINT,
UPDATED_AT BIGINT,
ISSUE_CHANGE_CREATION_DATE BIGINT
);
ALTER TABLE ISSUE_CHANGES ADD CONSTRAINT PK_ISSUE_CHANGES PRIMARY KEY(ID);
CREATE INDEX ISSUE_CHANGES_ISSUE_KEY ON ISSUE_CHANGES(ISSUE_KEY);
CREATE INDEX ISSUE_CHANGES_KEE ON ISSUE_CHANGES(KEE);
CREATE TABLE ISSUES(
ID BIGINT NOT NULL AUTO_INCREMENT (1,1),
KEE VARCHAR(50) NOT NULL,
RULE_ID INTEGER,
SEVERITY VARCHAR(10),
MANUAL_SEVERITY BOOLEAN NOT NULL,
MESSAGE VARCHAR(4000),
LINE INTEGER,
GAP DOUBLE,
STATUS VARCHAR(20),
RESOLUTION VARCHAR(20),
CHECKSUM VARCHAR(1000),
REPORTER VARCHAR(255),
ASSIGNEE VARCHAR(255),
AUTHOR_LOGIN VARCHAR(255),
ACTION_PLAN_KEY VARCHAR(50),
ISSUE_ATTRIBUTES VARCHAR(4000),
EFFORT INTEGER,
CREATED_AT BIGINT,
UPDATED_AT BIGINT,
ISSUE_CREATION_DATE BIGINT,
ISSUE_UPDATE_DATE BIGINT,
ISSUE_CLOSE_DATE BIGINT,
TAGS VARCHAR(4000),
COMPONENT_UUID VARCHAR(50),
PROJECT_UUID VARCHAR(50),
LOCATIONS BLOB,
ISSUE_TYPE TINYINT,
FROM_HOTSPOT BOOLEAN
);
ALTER TABLE ISSUES ADD CONSTRAINT PK_ISSUES PRIMARY KEY(ID);
CREATE INDEX ISSUES_ASSIGNEE ON ISSUES(ASSIGNEE);
CREATE INDEX ISSUES_COMPONENT_UUID ON ISSUES(COMPONENT_UUID);
CREATE INDEX ISSUES_CREATION_DATE ON ISSUES(ISSUE_CREATION_DATE);
CREATE UNIQUE INDEX ISSUES_KEE ON ISSUES(KEE);
CREATE INDEX ISSUES_PROJECT_UUID ON ISSUES(PROJECT_UUID);
CREATE INDEX ISSUES_RESOLUTION ON ISSUES(RESOLUTION);
CREATE INDEX ISSUES_RULE_ID ON ISSUES(RULE_ID);
CREATE INDEX ISSUES_UPDATED_AT ON ISSUES(UPDATED_AT);
CREATE TABLE LIVE_MEASURES(
UUID VARCHAR(40) NOT NULL,
PROJECT_UUID VARCHAR(50) NOT NULL,
COMPONENT_UUID VARCHAR(50) NOT NULL,
METRIC_ID INTEGER NOT NULL,
VALUE DOUBLE,
TEXT_VALUE VARCHAR(4000),
VARIATION DOUBLE,
MEASURE_DATA BLOB,
UPDATE_MARKER VARCHAR(40),
CREATED_AT BIGINT NOT NULL,
UPDATED_AT BIGINT NOT NULL
);
ALTER TABLE LIVE_MEASURES ADD CONSTRAINT PK_LIVE_MEASURES PRIMARY KEY(UUID);
CREATE INDEX LIVE_MEASURES_PROJECT ON LIVE_MEASURES(PROJECT_UUID);
CREATE UNIQUE INDEX LIVE_MEASURES_COMPONENT ON LIVE_MEASURES(COMPONENT_UUID, METRIC_ID);
CREATE TABLE MANUAL_MEASURES(
ID BIGINT NOT NULL AUTO_INCREMENT (1,1),
METRIC_ID INTEGER NOT NULL,
VALUE DOUBLE,
TEXT_VALUE VARCHAR(4000),
USER_UUID VARCHAR(255),
DESCRIPTION VARCHAR(4000),
CREATED_AT BIGINT,
UPDATED_AT BIGINT,
COMPONENT_UUID VARCHAR(50) NOT NULL
);
ALTER TABLE MANUAL_MEASURES ADD CONSTRAINT PK_MANUAL_MEASURES PRIMARY KEY(ID);
CREATE INDEX MANUAL_MEASURES_COMPONENT_UUID ON MANUAL_MEASURES(COMPONENT_UUID);
CREATE TABLE METRICS(
ID INTEGER NOT NULL AUTO_INCREMENT (1,1),
NAME VARCHAR(64) NOT NULL,
DESCRIPTION VARCHAR(255),
DIRECTION INTEGER DEFAULT 0 NOT NULL,
DOMAIN VARCHAR(64),
SHORT_NAME VARCHAR(64),
QUALITATIVE BOOLEAN DEFAULT FALSE NOT NULL,
VAL_TYPE VARCHAR(8),
USER_MANAGED BOOLEAN DEFAULT FALSE,
ENABLED BOOLEAN DEFAULT TRUE,
WORST_VALUE DOUBLE,
BEST_VALUE DOUBLE,
OPTIMIZED_BEST_VALUE BOOLEAN,
HIDDEN BOOLEAN,
DELETE_HISTORICAL_DATA BOOLEAN,
DECIMAL_SCALE INTEGER
);
ALTER TABLE METRICS ADD CONSTRAINT PK_METRICS PRIMARY KEY(ID);
CREATE UNIQUE INDEX METRICS_UNIQUE_NAME ON METRICS(NAME);
CREATE TABLE NEW_CODE_PERIODS(
UUID VARCHAR(40) NOT NULL,
PROJECT_UUID VARCHAR(40),
BRANCH_UUID VARCHAR(40),
TYPE VARCHAR(30) NOT NULL,
VALUE VARCHAR(40),
UPDATED_AT BIGINT NOT NULL,
CREATED_AT BIGINT NOT NULL
);
ALTER TABLE NEW_CODE_PERIODS ADD CONSTRAINT PK_NEW_CODE_PERIODS PRIMARY KEY(UUID);
CREATE UNIQUE INDEX UNIQ_NEW_CODE_PERIODS ON NEW_CODE_PERIODS(PROJECT_UUID, BRANCH_UUID);
CREATE TABLE NOTIFICATIONS(
ID INTEGER NOT NULL AUTO_INCREMENT (1,1),
DATA BLOB
);
ALTER TABLE NOTIFICATIONS ADD CONSTRAINT PK_NOTIFICATIONS PRIMARY KEY(ID);
CREATE TABLE ORG_QPROFILES(
UUID VARCHAR(255) NOT NULL,
ORGANIZATION_UUID VARCHAR(40) NOT NULL,
RULES_PROFILE_UUID VARCHAR(255) NOT NULL,
PARENT_UUID VARCHAR(255),
LAST_USED BIGINT,
USER_UPDATED_AT BIGINT,
CREATED_AT BIGINT NOT NULL,
UPDATED_AT BIGINT NOT NULL
);
ALTER TABLE ORG_QPROFILES ADD CONSTRAINT PK_ORG_QPROFILES PRIMARY KEY(UUID);
CREATE INDEX QPROFILES_ORG_UUID ON ORG_QPROFILES(ORGANIZATION_UUID);
CREATE INDEX QPROFILES_RP_UUID ON ORG_QPROFILES(RULES_PROFILE_UUID);
CREATE INDEX ORG_QPROFILES_PARENT_UUID ON ORG_QPROFILES(PARENT_UUID);
CREATE TABLE ORG_QUALITY_GATES(
UUID VARCHAR(40) NOT NULL,
ORGANIZATION_UUID VARCHAR(40) NOT NULL,
QUALITY_GATE_UUID VARCHAR(40) NOT NULL
);
ALTER TABLE ORG_QUALITY_GATES ADD CONSTRAINT PK_ORG_QUALITY_GATES PRIMARY KEY(UUID);
CREATE UNIQUE INDEX UNIQ_ORG_QUALITY_GATES ON ORG_QUALITY_GATES(ORGANIZATION_UUID, QUALITY_GATE_UUID);
CREATE TABLE ORGANIZATION_ALM_BINDINGS(
UUID VARCHAR(40) NOT NULL,
ORGANIZATION_UUID VARCHAR(40) NOT NULL,
ALM_APP_INSTALL_UUID VARCHAR(40) NOT NULL,
ALM_ID VARCHAR(40) NOT NULL,
URL VARCHAR(2000) NOT NULL,
USER_UUID VARCHAR(255) NOT NULL,
MEMBERS_SYNC_ENABLED BOOLEAN,
CREATED_AT BIGINT NOT NULL
);
ALTER TABLE ORGANIZATION_ALM_BINDINGS ADD CONSTRAINT PK_ORGANIZATION_ALM_BINDINGS PRIMARY KEY(UUID);
CREATE UNIQUE INDEX ORG_ALM_BINDINGS_ORG ON ORGANIZATION_ALM_BINDINGS(ORGANIZATION_UUID);
CREATE UNIQUE INDEX ORG_ALM_BINDINGS_INSTALL ON ORGANIZATION_ALM_BINDINGS(ALM_APP_INSTALL_UUID);
CREATE TABLE ORGANIZATION_MEMBERS(
ORGANIZATION_UUID VARCHAR(40) NOT NULL,
USER_ID INTEGER NOT NULL
);
ALTER TABLE ORGANIZATION_MEMBERS ADD CONSTRAINT PK_ORGANIZATION_MEMBERS PRIMARY KEY(ORGANIZATION_UUID, USER_ID);
CREATE INDEX IX_ORG_MEMBERS_ON_USER_ID ON ORGANIZATION_MEMBERS(USER_ID);
CREATE TABLE ORGANIZATIONS(
UUID VARCHAR(40) NOT NULL,
KEE VARCHAR(255) NOT NULL,
NAME VARCHAR(255) NOT NULL,
DESCRIPTION VARCHAR(256),
URL VARCHAR(256),
AVATAR_URL VARCHAR(256),
GUARDED BOOLEAN,
DEFAULT_GROUP_ID INTEGER,
DEFAULT_QUALITY_GATE_UUID VARCHAR(40) NOT NULL,
DEFAULT_PERM_TEMPLATE_PROJECT VARCHAR(40),
DEFAULT_PERM_TEMPLATE_APP VARCHAR(40),
DEFAULT_PERM_TEMPLATE_PORT VARCHAR(40),
NEW_PROJECT_PRIVATE BOOLEAN NOT NULL,
SUBSCRIPTION VARCHAR(40) NOT NULL,
CREATED_AT BIGINT NOT NULL,
UPDATED_AT BIGINT NOT NULL
);
ALTER TABLE ORGANIZATIONS ADD CONSTRAINT PK_ORGANIZATIONS PRIMARY KEY(UUID);
CREATE UNIQUE INDEX ORGANIZATION_KEY ON ORGANIZATIONS(KEE);
CREATE TABLE PERM_TEMPLATES_GROUPS(
ID INTEGER NOT NULL AUTO_INCREMENT (1,1),
GROUP_ID INTEGER,
TEMPLATE_ID INTEGER NOT NULL,
PERMISSION_REFERENCE VARCHAR(64) NOT NULL,
CREATED_AT TIMESTAMP,
UPDATED_AT TIMESTAMP
);
ALTER TABLE PERM_TEMPLATES_GROUPS ADD CONSTRAINT PK_PERM_TEMPLATES_GROUPS PRIMARY KEY(ID);
CREATE TABLE PERM_TEMPLATES_USERS(
ID INTEGER NOT NULL AUTO_INCREMENT (1,1),
USER_ID INTEGER NOT NULL,
TEMPLATE_ID INTEGER NOT NULL,
PERMISSION_REFERENCE VARCHAR(64) NOT NULL,
CREATED_AT TIMESTAMP,
UPDATED_AT TIMESTAMP
);
ALTER TABLE PERM_TEMPLATES_USERS ADD CONSTRAINT PK_PERM_TEMPLATES_USERS PRIMARY KEY(ID);
CREATE TABLE PERM_TPL_CHARACTERISTICS(
ID INTEGER NOT NULL AUTO_INCREMENT (1,1),
TEMPLATE_ID INTEGER NOT NULL,
PERMISSION_KEY VARCHAR(64) NOT NULL,
WITH_PROJECT_CREATOR BOOLEAN DEFAULT FALSE NOT NULL,
CREATED_AT BIGINT NOT NULL,
UPDATED_AT BIGINT NOT NULL
);
ALTER TABLE PERM_TPL_CHARACTERISTICS ADD CONSTRAINT PK_PERM_TPL_CHARACTERISTICS PRIMARY KEY(ID);
CREATE UNIQUE INDEX UNIQ_PERM_TPL_CHARAC ON PERM_TPL_CHARACTERISTICS(TEMPLATE_ID, PERMISSION_KEY);
CREATE TABLE PERMISSION_TEMPLATES(
ID INTEGER NOT NULL AUTO_INCREMENT (1,1),
ORGANIZATION_UUID VARCHAR(40) NOT NULL,
NAME VARCHAR(100) NOT NULL,
KEE VARCHAR(100) NOT NULL,
DESCRIPTION VARCHAR(4000),
CREATED_AT TIMESTAMP,
UPDATED_AT TIMESTAMP,
KEY_PATTERN VARCHAR(500)
);
ALTER TABLE PERMISSION_TEMPLATES ADD CONSTRAINT PK_PERMISSION_TEMPLATES PRIMARY KEY(ID);
CREATE TABLE PLUGINS(
UUID VARCHAR(40) NOT NULL,
KEE VARCHAR(200) NOT NULL,
BASE_PLUGIN_KEY VARCHAR(200),
FILE_HASH VARCHAR(200) NOT NULL,
CREATED_AT BIGINT NOT NULL,
UPDATED_AT BIGINT NOT NULL
);
ALTER TABLE PLUGINS ADD CONSTRAINT PK_PLUGINS PRIMARY KEY(UUID);
CREATE UNIQUE INDEX PLUGINS_KEY ON PLUGINS(KEE);
CREATE TABLE PROJECT_ALM_BINDINGS(
UUID VARCHAR(40) NOT NULL,
ALM_ID VARCHAR(40) NOT NULL,
REPO_ID VARCHAR(256) NOT NULL,
PROJECT_UUID VARCHAR(40) NOT NULL,
GITHUB_SLUG VARCHAR(256),
URL VARCHAR(2000) NOT NULL,
CREATED_AT BIGINT NOT NULL,
UPDATED_AT BIGINT NOT NULL
);
ALTER TABLE PROJECT_ALM_BINDINGS ADD CONSTRAINT PK_PROJECT_ALM_BINDINGS PRIMARY KEY(UUID);
CREATE UNIQUE INDEX PROJECT_ALM_BINDINGS_ALM_REPO ON PROJECT_ALM_BINDINGS(ALM_ID, REPO_ID);
CREATE UNIQUE INDEX PROJECT_ALM_BINDINGS_PROJECT ON PROJECT_ALM_BINDINGS(PROJECT_UUID);
CREATE TABLE PROJECT_BRANCHES(
UUID VARCHAR(50) NOT NULL,
PROJECT_UUID VARCHAR(50) NOT NULL,
KEE VARCHAR(255) NOT NULL,
BRANCH_TYPE VARCHAR(12),
MERGE_BRANCH_UUID VARCHAR(50),
KEY_TYPE VARCHAR(12) NOT NULL,
PULL_REQUEST_BINARY BLOB,
MANUAL_BASELINE_ANALYSIS_UUID VARCHAR(40),
CREATED_AT BIGINT NOT NULL,
UPDATED_AT BIGINT NOT NULL
);
ALTER TABLE PROJECT_BRANCHES ADD CONSTRAINT PK_PROJECT_BRANCHES PRIMARY KEY(UUID);
CREATE UNIQUE INDEX PROJECT_BRANCHES_KEE_KEY_TYPE ON PROJECT_BRANCHES(PROJECT_UUID, KEE, KEY_TYPE);
CREATE TABLE PROJECT_LINKS(
UUID VARCHAR(40) NOT NULL,
PROJECT_UUID VARCHAR(40) NOT NULL,
LINK_TYPE VARCHAR(20) NOT NULL,
NAME VARCHAR(128),
HREF VARCHAR(2048) NOT NULL,
CREATED_AT BIGINT NOT NULL,
UPDATED_AT BIGINT NOT NULL
);
ALTER TABLE PROJECT_LINKS ADD CONSTRAINT PK_PROJECT_LINKS PRIMARY KEY(UUID);
CREATE INDEX PROJECT_LINKS_PROJECT ON PROJECT_LINKS(PROJECT_UUID);
CREATE TABLE PROJECT_MAPPINGS(
UUID VARCHAR(40) NOT NULL,
KEY_TYPE VARCHAR(200) NOT NULL,
KEE VARCHAR(4000) NOT NULL,
PROJECT_UUID VARCHAR(40) NOT NULL,
CREATED_AT BIGINT NOT NULL
);
ALTER TABLE PROJECT_MAPPINGS ADD CONSTRAINT PK_PROJECT_MAPPINGS PRIMARY KEY(UUID);
CREATE UNIQUE INDEX KEY_TYPE_KEE ON PROJECT_MAPPINGS(KEY_TYPE, KEE);
CREATE INDEX PROJECT_UUID ON PROJECT_MAPPINGS(PROJECT_UUID);
CREATE TABLE PROJECT_MEASURES(
ID BIGINT NOT NULL AUTO_INCREMENT (1,1),
VALUE DOUBLE,
METRIC_ID INTEGER NOT NULL,
ANALYSIS_UUID VARCHAR(50) NOT NULL,
COMPONENT_UUID VARCHAR(50) NOT NULL,
TEXT_VALUE VARCHAR(4000),
ALERT_STATUS VARCHAR(5),
ALERT_TEXT VARCHAR(4000),
DESCRIPTION VARCHAR(4000),
PERSON_ID INTEGER,
VARIATION_VALUE_1 DOUBLE,
VARIATION_VALUE_2 DOUBLE,
VARIATION_VALUE_3 DOUBLE,
VARIATION_VALUE_4 DOUBLE,
VARIATION_VALUE_5 DOUBLE,
MEASURE_DATA BLOB
);
ALTER TABLE PROJECT_MEASURES ADD CONSTRAINT PK_PROJECT_MEASURES PRIMARY KEY(ID);
CREATE INDEX MEASURES_ANALYSIS_METRIC ON PROJECT_MEASURES(ANALYSIS_UUID, METRIC_ID);
CREATE INDEX MEASURES_COMPONENT_UUID ON PROJECT_MEASURES(COMPONENT_UUID);
CREATE TABLE PROJECT_QGATES(
PROJECT_UUID VARCHAR(40) NOT NULL,
QUALITY_GATE_UUID VARCHAR(40) NOT NULL
);
ALTER TABLE PROJECT_QGATES ADD CONSTRAINT PK_PROJECT_QGATES PRIMARY KEY(PROJECT_UUID);
CREATE UNIQUE INDEX UNIQ_PROJECT_QGATES ON PROJECT_QGATES(PROJECT_UUID, QUALITY_GATE_UUID);
CREATE TABLE PROJECT_QPROFILES(
ID INTEGER NOT NULL AUTO_INCREMENT (1,1),
PROJECT_UUID VARCHAR(50) NOT NULL,
PROFILE_KEY VARCHAR(50) NOT NULL
);
ALTER TABLE PROJECT_QPROFILES ADD CONSTRAINT PK_PROJECT_QPROFILES PRIMARY KEY(ID);
CREATE UNIQUE INDEX UNIQ_PROJECT_QPROFILES ON PROJECT_QPROFILES(PROJECT_UUID, PROFILE_KEY);
CREATE TABLE PROJECTS(
ID INTEGER NOT NULL AUTO_INCREMENT (1,1),
UUID VARCHAR(50) NOT NULL,
ORGANIZATION_UUID VARCHAR(40) NOT NULL,
KEE VARCHAR(400),
DEPRECATED_KEE VARCHAR(400),
NAME VARCHAR(2000),
LONG_NAME VARCHAR(2000),
DESCRIPTION VARCHAR(2000),
ENABLED BOOLEAN DEFAULT TRUE NOT NULL,
SCOPE VARCHAR(3),
QUALIFIER VARCHAR(10),
PRIVATE BOOLEAN NOT NULL,
ROOT_UUID VARCHAR(50) NOT NULL,
LANGUAGE VARCHAR(20),
COPY_COMPONENT_UUID VARCHAR(50),
DEVELOPER_UUID VARCHAR(50),
PATH VARCHAR(2000),
UUID_PATH VARCHAR(1500) NOT NULL,
PROJECT_UUID VARCHAR(50) NOT NULL,
MODULE_UUID VARCHAR(50),
MODULE_UUID_PATH VARCHAR(1500),
AUTHORIZATION_UPDATED_AT BIGINT,
TAGS VARCHAR(500),
MAIN_BRANCH_PROJECT_UUID VARCHAR(50),
B_CHANGED BOOLEAN,
B_NAME VARCHAR(500),
B_LONG_NAME VARCHAR(500),
B_DESCRIPTION VARCHAR(2000),
B_ENABLED BOOLEAN,
B_QUALIFIER VARCHAR(10),
B_LANGUAGE VARCHAR(20),
B_COPY_COMPONENT_UUID VARCHAR(50),
B_PATH VARCHAR(2000),
B_UUID_PATH VARCHAR(1500),
B_MODULE_UUID VARCHAR(50),
B_MODULE_UUID_PATH VARCHAR(1500),
CREATED_AT TIMESTAMP
);
ALTER TABLE PROJECTS ADD CONSTRAINT PK_PROJECTS PRIMARY KEY(ID);
CREATE INDEX PROJECTS_ORGANIZATION ON PROJECTS(ORGANIZATION_UUID);
CREATE UNIQUE INDEX PROJECTS_KEE ON PROJECTS(KEE);
CREATE INDEX PROJECTS_MODULE_UUID ON PROJECTS(MODULE_UUID);
CREATE INDEX PROJECTS_PROJECT_UUID ON PROJECTS(PROJECT_UUID);
CREATE INDEX PROJECTS_QUALIFIER ON PROJECTS(QUALIFIER);
CREATE INDEX PROJECTS_ROOT_UUID ON PROJECTS(ROOT_UUID);
CREATE INDEX PROJECTS_UUID ON PROJECTS(UUID);
CREATE TABLE PROPERTIES(
ID INTEGER NOT NULL AUTO_INCREMENT (1,1),
PROP_KEY VARCHAR(512) NOT NULL,
RESOURCE_ID BIGINT,
USER_ID BIGINT,
IS_EMPTY BOOLEAN NOT NULL,
TEXT_VALUE VARCHAR(4000),
CLOB_VALUE CLOB(2147483647),
CREATED_AT BIGINT NOT NULL
);
ALTER TABLE PROPERTIES ADD CONSTRAINT PK_PROPERTIES PRIMARY KEY(ID);
CREATE INDEX PROPERTIES_KEY ON PROPERTIES(PROP_KEY);
CREATE TABLE QPROFILE_CHANGES(
KEE VARCHAR(40) NOT NULL,
RULES_PROFILE_UUID VARCHAR(255) NOT NULL,
CHANGE_TYPE VARCHAR(20) NOT NULL,
USER_UUID VARCHAR(255),
CHANGE_DATA CLOB(2147483647),
CREATED_AT BIGINT NOT NULL
);
ALTER TABLE QPROFILE_CHANGES ADD CONSTRAINT PK_QPROFILE_CHANGES PRIMARY KEY(KEE);
CREATE INDEX QP_CHANGES_RULES_PROFILE_UUID ON QPROFILE_CHANGES(RULES_PROFILE_UUID);
CREATE TABLE QPROFILE_EDIT_GROUPS(
UUID VARCHAR(40) NOT NULL,
GROUP_ID INTEGER NOT NULL,
QPROFILE_UUID VARCHAR(255) NOT NULL,
CREATED_AT BIGINT NOT NULL
);
ALTER TABLE QPROFILE_EDIT_GROUPS ADD CONSTRAINT PK_QPROFILE_EDIT_GROUPS PRIMARY KEY(UUID);
CREATE INDEX QPROFILE_EDIT_GROUPS_QPROFILE ON QPROFILE_EDIT_GROUPS(QPROFILE_UUID);
CREATE UNIQUE INDEX QPROFILE_EDIT_GROUPS_UNIQUE ON QPROFILE_EDIT_GROUPS(GROUP_ID, QPROFILE_UUID);
CREATE TABLE QPROFILE_EDIT_USERS(
UUID VARCHAR(40) NOT NULL,
USER_ID INTEGER NOT NULL,
QPROFILE_UUID VARCHAR(255) NOT NULL,
CREATED_AT BIGINT NOT NULL
);
ALTER TABLE QPROFILE_EDIT_USERS ADD CONSTRAINT PK_QPROFILE_EDIT_USERS PRIMARY KEY(UUID);
CREATE INDEX QPROFILE_EDIT_USERS_QPROFILE ON QPROFILE_EDIT_USERS(QPROFILE_UUID);
CREATE UNIQUE INDEX QPROFILE_EDIT_USERS_UNIQUE ON QPROFILE_EDIT_USERS(USER_ID, QPROFILE_UUID);
CREATE TABLE QUALITY_GATE_CONDITIONS(
ID INTEGER NOT NULL AUTO_INCREMENT (1,1),
QGATE_ID INTEGER,
METRIC_ID INTEGER,
PERIOD INTEGER,
OPERATOR VARCHAR(3),
VALUE_ERROR VARCHAR(64),
VALUE_WARNING VARCHAR(64),
CREATED_AT TIMESTAMP,
UPDATED_AT TIMESTAMP
);
ALTER TABLE QUALITY_GATE_CONDITIONS ADD CONSTRAINT PK_QUALITY_GATE_CONDITIONS PRIMARY KEY(ID);
CREATE TABLE QUALITY_GATES(
ID INTEGER NOT NULL AUTO_INCREMENT (1,1),
UUID VARCHAR(40) NOT NULL,
NAME VARCHAR(100) NOT NULL,
IS_BUILT_IN BOOLEAN NOT NULL,
CREATED_AT TIMESTAMP,
UPDATED_AT TIMESTAMP
);
ALTER TABLE QUALITY_GATES ADD CONSTRAINT PK_QUALITY_GATES PRIMARY KEY(ID);
CREATE UNIQUE INDEX UNIQ_QUALITY_GATES_UUID ON QUALITY_GATES(UUID);
CREATE TABLE RULE_REPOSITORIES(
KEE VARCHAR(200) NOT NULL,
LANGUAGE VARCHAR(20) NOT NULL,
NAME VARCHAR(4000) NOT NULL,
CREATED_AT BIGINT NOT NULL
);
ALTER TABLE RULE_REPOSITORIES ADD CONSTRAINT PK_RULE_REPOSITORIES PRIMARY KEY(KEE);
CREATE TABLE RULES(
ID INTEGER NOT NULL AUTO_INCREMENT (1,1),
NAME VARCHAR(200),
PLUGIN_RULE_KEY VARCHAR(200) NOT NULL,
PLUGIN_KEY VARCHAR(200),
PLUGIN_CONFIG_KEY VARCHAR(200),
PLUGIN_NAME VARCHAR(255) NOT NULL,
SCOPE VARCHAR(20) NOT NULL,
DESCRIPTION CLOB(2147483647),
PRIORITY INTEGER,
TEMPLATE_ID INTEGER,
STATUS VARCHAR(40),
LANGUAGE VARCHAR(20),
DEF_REMEDIATION_FUNCTION VARCHAR(20),
DEF_REMEDIATION_GAP_MULT VARCHAR(20),
DEF_REMEDIATION_BASE_EFFORT VARCHAR(20),
GAP_DESCRIPTION VARCHAR(4000),
SYSTEM_TAGS VARCHAR(4000),
IS_TEMPLATE BOOLEAN DEFAULT FALSE NOT NULL,
DESCRIPTION_FORMAT VARCHAR(20),
RULE_TYPE TINYINT,
SECURITY_STANDARDS VARCHAR(4000),
IS_AD_HOC BOOLEAN NOT NULL,
IS_EXTERNAL BOOLEAN NOT NULL,
CREATED_AT BIGINT,
UPDATED_AT BIGINT
);
ALTER TABLE RULES ADD CONSTRAINT PK_RULES PRIMARY KEY(ID);
CREATE UNIQUE INDEX RULES_REPO_KEY ON RULES(PLUGIN_RULE_KEY, PLUGIN_NAME);
CREATE TABLE RULES_METADATA(
RULE_ID INTEGER NOT NULL,
ORGANIZATION_UUID VARCHAR(40) NOT NULL,
NOTE_DATA CLOB(2147483647),
NOTE_USER_UUID VARCHAR(255),
NOTE_CREATED_AT BIGINT,
NOTE_UPDATED_AT BIGINT,
REMEDIATION_FUNCTION VARCHAR(20),
REMEDIATION_GAP_MULT VARCHAR(20),
REMEDIATION_BASE_EFFORT VARCHAR(20),
TAGS VARCHAR(4000),
AD_HOC_NAME VARCHAR(200),
AD_HOC_DESCRIPTION CLOB(2147483647),
AD_HOC_SEVERITY VARCHAR(10),
AD_HOC_TYPE TINYINT,
CREATED_AT BIGINT NOT NULL,
UPDATED_AT BIGINT NOT NULL
);
ALTER TABLE RULES_METADATA ADD CONSTRAINT PK_RULES_METADATA PRIMARY KEY(RULE_ID, ORGANIZATION_UUID);
CREATE TABLE RULES_PARAMETERS(
ID INTEGER NOT NULL AUTO_INCREMENT (1,1),
RULE_ID INTEGER NOT NULL,
NAME VARCHAR(128) NOT NULL,
DESCRIPTION VARCHAR(4000),
PARAM_TYPE VARCHAR(512) NOT NULL,
DEFAULT_VALUE VARCHAR(4000)
);
ALTER TABLE RULES_PARAMETERS ADD CONSTRAINT PK_RULES_PARAMETERS PRIMARY KEY(ID);
CREATE INDEX RULES_PARAMETERS_RULE_ID ON RULES_PARAMETERS(RULE_ID);
CREATE UNIQUE INDEX RULES_PARAMETERS_UNIQUE ON RULES_PARAMETERS(RULE_ID, NAME);
CREATE TABLE RULES_PROFILES(
ID INTEGER NOT NULL AUTO_INCREMENT (1,1),
NAME VARCHAR(100) NOT NULL,
LANGUAGE VARCHAR(20),
KEE VARCHAR(255) NOT NULL,
IS_BUILT_IN BOOLEAN NOT NULL,
RULES_UPDATED_AT VARCHAR(100),
CREATED_AT TIMESTAMP,
UPDATED_AT TIMESTAMP
);
ALTER TABLE RULES_PROFILES ADD CONSTRAINT PK_RULES_PROFILES PRIMARY KEY(ID);
CREATE UNIQUE INDEX UNIQ_QPROF_KEY ON RULES_PROFILES(KEE);
CREATE TABLE SNAPSHOTS(
ID INTEGER NOT NULL AUTO_INCREMENT (1,1),
UUID VARCHAR(50) NOT NULL,
COMPONENT_UUID VARCHAR(50) NOT NULL,
STATUS VARCHAR(4) DEFAULT 'U' NOT NULL,
ISLAST BOOLEAN DEFAULT FALSE NOT NULL,
VERSION VARCHAR(500),
PURGE_STATUS INTEGER,
BUILD_STRING VARCHAR(100),
REVISION VARCHAR(100),
BUILD_DATE BIGINT,
PERIOD1_MODE VARCHAR(100),
PERIOD1_PARAM VARCHAR(100),
PERIOD2_MODE VARCHAR(100),
PERIOD2_PARAM VARCHAR(100),
PERIOD3_MODE VARCHAR(100),
PERIOD3_PARAM VARCHAR(100),
PERIOD4_MODE VARCHAR(100),
PERIOD4_PARAM VARCHAR(100),
PERIOD5_MODE VARCHAR(100),
PERIOD5_PARAM VARCHAR(100),
PERIOD1_DATE BIGINT,
PERIOD2_DATE BIGINT,
PERIOD3_DATE BIGINT,
PERIOD4_DATE BIGINT,
PERIOD5_DATE BIGINT,
CREATED_AT BIGINT
);
ALTER TABLE SNAPSHOTS ADD CONSTRAINT PK_SNAPSHOTS PRIMARY KEY(ID);
CREATE UNIQUE INDEX ANALYSES_UUID ON SNAPSHOTS(UUID);
CREATE INDEX SNAPSHOT_COMPONENT ON SNAPSHOTS(COMPONENT_UUID);
CREATE TABLE USER_PROPERTIES(
UUID VARCHAR(40) NOT NULL,
USER_UUID VARCHAR(255) NOT NULL,
KEE VARCHAR(100) NOT NULL,
TEXT_VALUE VARCHAR(4000) NOT NULL,
CREATED_AT BIGINT NOT NULL,
UPDATED_AT BIGINT NOT NULL
);
ALTER TABLE USER_PROPERTIES ADD CONSTRAINT PK_USER_PROPERTIES PRIMARY KEY(UUID);
CREATE UNIQUE INDEX USER_PROPERTIES_USER_UUID_KEE ON USER_PROPERTIES(USER_UUID, KEE);
CREATE TABLE USER_ROLES(
ID INTEGER NOT NULL AUTO_INCREMENT (1,1),
ORGANIZATION_UUID VARCHAR(40) NOT NULL,
USER_ID INTEGER,
RESOURCE_ID INTEGER,
ROLE VARCHAR(64) NOT NULL
);
ALTER TABLE USER_ROLES ADD CONSTRAINT PK_USER_ROLES PRIMARY KEY(ID);
CREATE INDEX USER_ROLES_RESOURCE ON USER_ROLES(RESOURCE_ID);
CREATE INDEX USER_ROLES_USER ON USER_ROLES(USER_ID);
CREATE TABLE USER_TOKENS(
ID INTEGER NOT NULL AUTO_INCREMENT (1,1),
USER_UUID VARCHAR(255) NOT NULL,
NAME VARCHAR(100) NOT NULL,
TOKEN_HASH VARCHAR(255) NOT NULL,
LAST_CONNECTION_DATE BIGINT,
CREATED_AT BIGINT NOT NULL
);
ALTER TABLE USER_TOKENS ADD CONSTRAINT PK_USER_TOKENS PRIMARY KEY(ID);
CREATE UNIQUE INDEX USER_TOKENS_USER_UUID_NAME ON USER_TOKENS(USER_UUID, NAME);
CREATE UNIQUE INDEX USER_TOKENS_TOKEN_HASH ON USER_TOKENS(TOKEN_HASH);
CREATE TABLE USERS(
ID INTEGER NOT NULL AUTO_INCREMENT (1,1),
UUID VARCHAR(255) NOT NULL,
LOGIN VARCHAR(255) NOT NULL,
ORGANIZATION_UUID VARCHAR(40),
NAME VARCHAR(200),
EMAIL VARCHAR(100),
CRYPTED_PASSWORD VARCHAR(100),
SALT VARCHAR(40),
HASH_METHOD VARCHAR(10),
ACTIVE BOOLEAN DEFAULT TRUE,
SCM_ACCOUNTS VARCHAR(4000),
EXTERNAL_LOGIN VARCHAR(255) NOT NULL,
EXTERNAL_IDENTITY_PROVIDER VARCHAR(100) NOT NULL,
EXTERNAL_ID VARCHAR(255) NOT NULL,
IS_ROOT BOOLEAN NOT NULL,
USER_LOCAL BOOLEAN,
ONBOARDED BOOLEAN NOT NULL,
HOMEPAGE_TYPE VARCHAR(40),
HOMEPAGE_PARAMETER VARCHAR(40),
LAST_CONNECTION_DATE BIGINT,
CREATED_AT BIGINT,
UPDATED_AT BIGINT
);
ALTER TABLE USERS ADD CONSTRAINT PK_USERS PRIMARY KEY(ID);
CREATE UNIQUE INDEX USERS_LOGIN ON USERS(LOGIN);
CREATE INDEX USERS_UPDATED_AT ON USERS(UPDATED_AT);
CREATE UNIQUE INDEX USERS_UUID ON USERS(UUID);
CREATE UNIQUE INDEX UNIQ_EXTERNAL_ID ON USERS(EXTERNAL_IDENTITY_PROVIDER, EXTERNAL_ID);
CREATE UNIQUE INDEX UNIQ_EXTERNAL_LOGIN ON USERS(EXTERNAL_IDENTITY_PROVIDER, EXTERNAL_LOGIN);
CREATE TABLE WEBHOOK_DELIVERIES(
UUID VARCHAR(40) NOT NULL,
WEBHOOK_UUID VARCHAR(40) NOT NULL,
COMPONENT_UUID VARCHAR(40) NOT NULL,
CE_TASK_UUID VARCHAR(40),
ANALYSIS_UUID VARCHAR(40),
NAME VARCHAR(100) NOT NULL,
URL VARCHAR(2000) NOT NULL,
SUCCESS BOOLEAN NOT NULL,
HTTP_STATUS INTEGER,
DURATION_MS BIGINT NOT NULL,
PAYLOAD CLOB(2147483647) NOT NULL,
ERROR_STACKTRACE CLOB(2147483647),
CREATED_AT BIGINT NOT NULL
);
ALTER TABLE WEBHOOK_DELIVERIES ADD CONSTRAINT PK_WEBHOOK_DELIVERIES PRIMARY KEY(UUID);
CREATE INDEX COMPONENT_UUID ON WEBHOOK_DELIVERIES(COMPONENT_UUID);
CREATE INDEX CE_TASK_UUID ON WEBHOOK_DELIVERIES(CE_TASK_UUID);
CREATE TABLE WEBHOOKS(
UUID VARCHAR(40) NOT NULL,
ORGANIZATION_UUID VARCHAR(40),
PROJECT_UUID VARCHAR(40),
NAME VARCHAR(100) NOT NULL,
URL VARCHAR(2000) NOT NULL,
SECRET VARCHAR(200),
CREATED_AT BIGINT NOT NULL,
UPDATED_AT BIGINT
);
ALTER TABLE WEBHOOKS ADD CONSTRAINT PK_WEBHOOKS PRIMARY KEY(UUID);
CREATE INDEX ORGANIZATION_WEBHOOK ON WEBHOOKS(ORGANIZATION_UUID);
CREATE INDEX PROJECT_WEBHOOK ON WEBHOOKS(PROJECT_UUID);
|