Skip to content

Commit db70668

Browse files
committed
refactor DB changes
* various simplifications and improvements * certificate is still as is. this is a future TODO
1 parent 3878731 commit db70668

File tree

1 file changed

+75
-60
lines changed

1 file changed

+75
-60
lines changed

src/main/resources/db/migration/V1_1_1__ocpp16_security.sql

Lines changed: 75 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,78 @@
1+
ALTER TABLE charge_box
2+
ADD COLUMN security_profile INT DEFAULT 0,
3+
ADD COLUMN auth_password VARCHAR(500) DEFAULT NULL;
4+
5+
CREATE TABLE IF NOT EXISTS charge_box_security_event (
6+
charge_box_pk INT NOT NULL,
7+
`type` VARCHAR(100) NOT NULL,
8+
`timestamp` TIMESTAMP NOT NULL,
9+
tech_info VARCHAR(500),
10+
event_timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
11+
12+
FOREIGN KEY (charge_box_pk) REFERENCES charge_box (charge_box_pk) ON DELETE CASCADE,
13+
INDEX idx_charge_box_pk (charge_box_pk),
14+
INDEX idx_type (`type`),
15+
INDEX idx_timestamp (`timestamp`)
16+
);
17+
18+
CREATE TABLE IF NOT EXISTS charge_box_firmware_update_job (
19+
job_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
20+
21+
firmware_location VARCHAR(1000) NOT NULL,
22+
retrieve_datetime TIMESTAMP NULL DEFAULT NULL,
23+
install_datetime TIMESTAMP NULL DEFAULT NULL,
24+
signing_certificate MEDIUMTEXT,
25+
signature MEDIUMTEXT,
26+
27+
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
28+
);
29+
30+
CREATE TABLE IF NOT EXISTS charge_box_firmware_update_status (
31+
job_id INT NOT NULL,
32+
charge_box_pk INT NOT NULL,
33+
34+
event_status VARCHAR(100) NOT NULL,
35+
event_timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
36+
37+
FOREIGN KEY (job_id) REFERENCES charge_box_firmware_update_job (job_id) ON DELETE CASCADE,
38+
FOREIGN KEY (charge_box_pk) REFERENCES charge_box (charge_box_pk) ON DELETE CASCADE,
39+
40+
INDEX idx_job_id (job_id),
41+
INDEX idx_charge_box_pk (charge_box_pk),
42+
INDEX idx_event_status (event_status),
43+
INDEX idx_event_timestamp (event_timestamp)
44+
);
45+
46+
CREATE TABLE IF NOT EXISTS charge_box_log_upload_job (
47+
job_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
48+
49+
log_type VARCHAR(100) NOT NULL,
50+
remote_location VARCHAR(1000),
51+
oldest_timestamp TIMESTAMP NULL DEFAULT NULL,
52+
latest_timestamp TIMESTAMP NULL DEFAULT NULL,
53+
54+
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
55+
);
56+
57+
CREATE TABLE IF NOT EXISTS charge_box_log_upload_status (
58+
job_id INT NOT NULL,
59+
charge_box_pk INT NOT NULL,
60+
61+
event_status VARCHAR(100) NOT NULL,
62+
event_timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
63+
64+
FOREIGN KEY (job_id) REFERENCES charge_box_log_upload_job (job_id) ON DELETE CASCADE,
65+
FOREIGN KEY (charge_box_pk) REFERENCES charge_box (charge_box_pk) ON DELETE CASCADE,
66+
67+
INDEX idx_job_id (job_id),
68+
INDEX idx_charge_box_pk (charge_box_pk),
69+
INDEX idx_event_status (event_status),
70+
INDEX idx_event_timestamp (event_timestamp)
71+
);
72+
73+
--
74+
-- TODO: This table will be reviewed later.
75+
--
176
CREATE TABLE IF NOT EXISTS certificate (
277
certificate_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
378
charge_box_pk INT,
@@ -18,63 +93,3 @@ CREATE TABLE IF NOT EXISTS certificate (
1893
INDEX idx_status (status),
1994
INDEX idx_serial_number (serial_number)
2095
);
21-
22-
CREATE TABLE IF NOT EXISTS security_event (
23-
event_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
24-
charge_box_pk INT NOT NULL,
25-
event_type VARCHAR(100) NOT NULL,
26-
event_timestamp TIMESTAMP NOT NULL,
27-
tech_info MEDIUMTEXT,
28-
severity VARCHAR(20) NOT NULL,
29-
received_timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
30-
CONSTRAINT FK_security_event_charge_box FOREIGN KEY (charge_box_pk) REFERENCES charge_box (charge_box_pk) ON DELETE CASCADE,
31-
INDEX idx_charge_box_pk (charge_box_pk),
32-
INDEX idx_event_type (event_type),
33-
INDEX idx_event_timestamp (event_timestamp),
34-
INDEX idx_severity (severity)
35-
);
36-
37-
CREATE TABLE IF NOT EXISTS log_file (
38-
log_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
39-
charge_box_pk INT NOT NULL,
40-
log_type VARCHAR(50) NOT NULL,
41-
request_id INT NOT NULL,
42-
request_timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
43-
file_path VARCHAR(1000),
44-
upload_status VARCHAR(50) DEFAULT 'Pending',
45-
upload_timestamp TIMESTAMP NULL DEFAULT NULL,
46-
bytes_uploaded BIGINT,
47-
CONSTRAINT FK_log_file_charge_box FOREIGN KEY (charge_box_pk) REFERENCES charge_box (charge_box_pk) ON DELETE CASCADE,
48-
INDEX idx_charge_box_pk (charge_box_pk),
49-
INDEX idx_log_type (log_type),
50-
INDEX idx_request_id (request_id),
51-
INDEX idx_upload_status (upload_status)
52-
);
53-
54-
CREATE TABLE IF NOT EXISTS firmware_update (
55-
update_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
56-
charge_box_pk INT NOT NULL,
57-
firmware_location VARCHAR(1000) NOT NULL,
58-
firmware_signature MEDIUMTEXT,
59-
retrieve_date TIMESTAMP NULL DEFAULT NULL,
60-
install_date TIMESTAMP NULL DEFAULT NULL,
61-
signing_certificate MEDIUMTEXT,
62-
signature_algorithm VARCHAR(100),
63-
request_timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
64-
status VARCHAR(50) DEFAULT 'Pending',
65-
CONSTRAINT FK_firmware_update_charge_box FOREIGN KEY (charge_box_pk) REFERENCES charge_box (charge_box_pk) ON DELETE CASCADE,
66-
INDEX idx_charge_box_pk (charge_box_pk),
67-
INDEX idx_status (status),
68-
INDEX idx_retrieve_date (retrieve_date)
69-
);
70-
71-
ALTER TABLE charge_box ADD COLUMN security_profile INT DEFAULT 0;
72-
ALTER TABLE charge_box ADD COLUMN authorization_key VARCHAR(100);
73-
ALTER TABLE charge_box ADD COLUMN cpo_name VARCHAR(255);
74-
ALTER TABLE charge_box ADD COLUMN certificate_store_max_length INT DEFAULT 0;
75-
ALTER TABLE charge_box ADD COLUMN additional_root_certificate_check BOOLEAN DEFAULT FALSE;
76-
ALTER TABLE charge_box
77-
ADD COLUMN auth_password VARCHAR(255) DEFAULT NULL
78-
COMMENT 'BCrypt hashed password for Basic Authentication';
79-
80-
CREATE INDEX idx_charge_box_auth ON charge_box(charge_box_id, auth_password);

0 commit comments

Comments
 (0)