mirror of
https://github.com/outbackdingo/labca.git
synced 2026-01-27 10:19:34 +00:00
308 lines
12 KiB
Diff
308 lines
12 KiB
Diff
diff --git a/sa/db/boulder_sa/20230419000000_CombinedSchema.sql b/sa/db/boulder_sa/20230419000000_CombinedSchema.sql
|
|
index 42c489be9..d2b1eb43b 100644
|
|
--- a/sa/db/boulder_sa/20230419000000_CombinedSchema.sql
|
|
+++ b/sa/db/boulder_sa/20230419000000_CombinedSchema.sql
|
|
@@ -1,7 +1,9 @@
|
|
-- +migrate Up
|
|
-- SQL in section 'Up' is executed when this migration is applied
|
|
|
|
-CREATE TABLE `authz2` (
|
|
+DROP TABLE IF EXISTS `authz`;
|
|
+
|
|
+CREATE TABLE IF NOT EXISTS `authz2` (
|
|
`id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
`identifierType` tinyint(4) NOT NULL,
|
|
`identifierValue` varchar(255) NOT NULL,
|
|
@@ -18,11 +20,9 @@ CREATE TABLE `authz2` (
|
|
KEY `regID_expires_idx` (`registrationID`,`status`,`expires`),
|
|
KEY `regID_identifier_status_expires_idx` (`registrationID`,`identifierType`,`identifierValue`,`status`,`expires`),
|
|
KEY `expires_idx` (`expires`)
|
|
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
|
|
- PARTITION BY RANGE(id)
|
|
-(PARTITION p_start VALUES LESS THAN (MAXVALUE));
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-CREATE TABLE `blockedKeys` (
|
|
+CREATE TABLE IF NOT EXISTS `blockedKeys` (
|
|
`id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
`keyHash` binary(32) NOT NULL,
|
|
`added` datetime NOT NULL,
|
|
@@ -35,7 +35,7 @@ CREATE TABLE `blockedKeys` (
|
|
KEY `extantCertificatesChecked_idx` (`extantCertificatesChecked`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-CREATE TABLE `certificateStatus` (
|
|
+CREATE TABLE IF NOT EXISTS `certificateStatus` (
|
|
`id` bigint(20) NOT NULL AUTO_INCREMENT,
|
|
`serial` varchar(255) NOT NULL,
|
|
`subscriberApproved` tinyint(1) DEFAULT 0,
|
|
@@ -53,11 +53,9 @@ CREATE TABLE `certificateStatus` (
|
|
KEY `serial` (`serial`),
|
|
KEY `isExpired_ocspLastUpdated_idx` (`isExpired`,`ocspLastUpdated`),
|
|
KEY `notAfter_idx` (`notAfter`)
|
|
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
|
|
- PARTITION BY RANGE(id)
|
|
-(PARTITION p_start VALUES LESS THAN (MAXVALUE));
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-CREATE TABLE `certificates` (
|
|
+CREATE TABLE IF NOT EXISTS `certificates` (
|
|
`id` bigint(20) NOT NULL AUTO_INCREMENT,
|
|
`registrationID` bigint(20) NOT NULL,
|
|
`serial` varchar(255) NOT NULL,
|
|
@@ -69,11 +67,9 @@ CREATE TABLE `certificates` (
|
|
KEY `serial` (`serial`),
|
|
KEY `regId_certificates_idx` (`registrationID`) COMMENT 'Common lookup',
|
|
KEY `issued_idx` (`issued`)
|
|
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
|
|
- PARTITION BY RANGE(id)
|
|
-(PARTITION p_start VALUES LESS THAN (MAXVALUE));
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-CREATE TABLE `certificatesPerName` (
|
|
+CREATE TABLE IF NOT EXISTS `certificatesPerName` (
|
|
`id` bigint(20) NOT NULL AUTO_INCREMENT,
|
|
`eTLDPlusOne` varchar(255) NOT NULL,
|
|
`time` datetime NOT NULL,
|
|
@@ -82,7 +78,22 @@ CREATE TABLE `certificatesPerName` (
|
|
UNIQUE KEY `eTLDPlusOne_time_idx` (`eTLDPlusOne`,`time`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-CREATE TABLE `fqdnSets` (
|
|
+CREATE TABLE IF NOT EXISTS `challenges` (
|
|
+ `id` bigint(20) NOT NULL AUTO_INCREMENT,
|
|
+ `authorizationID` varchar(255) NOT NULL,
|
|
+ `LockCol` bigint(20) DEFAULT NULL,
|
|
+ `type` varchar(255) NOT NULL,
|
|
+ `status` varchar(255) NOT NULL,
|
|
+ `error` mediumblob DEFAULT NULL,
|
|
+ `validated` datetime DEFAULT NULL,
|
|
+ `token` varchar(255) NOT NULL,
|
|
+ `validationRecord` mediumblob DEFAULT NULL,
|
|
+ `keyAuthorization` varchar(255) DEFAULT NULL,
|
|
+ PRIMARY KEY (`id`),
|
|
+ KEY `authorizationID_challenges_idx` (`authorizationID`)
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
+
|
|
+CREATE TABLE IF NOT EXISTS `fqdnSets` (
|
|
`id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
`setHash` binary(32) NOT NULL,
|
|
`serial` varchar(255) NOT NULL,
|
|
@@ -93,11 +104,9 @@ CREATE TABLE `fqdnSets` (
|
|
PRIMARY KEY (`id`),
|
|
KEY `serial` (`serial`),
|
|
KEY `setHash_issued_idx` (`setHash`,`issued`)
|
|
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
|
|
- PARTITION BY RANGE(id)
|
|
-(PARTITION p_start VALUES LESS THAN (MAXVALUE));
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-CREATE TABLE `incidents` (
|
|
+CREATE TABLE IF NOT EXISTS `incidents` (
|
|
`id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
`serialTable` varchar(128) NOT NULL,
|
|
`url` varchar(1024) NOT NULL,
|
|
@@ -106,7 +115,7 @@ CREATE TABLE `incidents` (
|
|
PRIMARY KEY (`id`)
|
|
) CHARSET=utf8mb4;
|
|
|
|
-CREATE TABLE `issuedNames` (
|
|
+CREATE TABLE IF NOT EXISTS `issuedNames` (
|
|
`id` bigint(20) NOT NULL AUTO_INCREMENT,
|
|
`reversedName` varchar(640) CHARACTER SET ascii NOT NULL,
|
|
`notBefore` datetime NOT NULL,
|
|
@@ -114,11 +123,9 @@ CREATE TABLE `issuedNames` (
|
|
`renewal` tinyint(1) NOT NULL DEFAULT 0,
|
|
PRIMARY KEY (`id`),
|
|
KEY `reversedName_notBefore_Idx` (`reversedName`,`notBefore`)
|
|
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
|
|
- PARTITION BY RANGE(id)
|
|
-(PARTITION p_start VALUES LESS THAN (MAXVALUE));
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-CREATE TABLE `keyHashToSerial` (
|
|
+CREATE TABLE IF NOT EXISTS `keyHashToSerial` (
|
|
`id` bigint(20) NOT NULL AUTO_INCREMENT,
|
|
`keyHash` binary(32) NOT NULL,
|
|
`certNotAfter` datetime NOT NULL,
|
|
@@ -128,7 +135,7 @@ CREATE TABLE `keyHashToSerial` (
|
|
KEY `keyHash_certNotAfter` (`keyHash`,`certNotAfter`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-CREATE TABLE `newOrdersRL` (
|
|
+CREATE TABLE IF NOT EXISTS `newOrdersRL` (
|
|
`id` bigint(20) NOT NULL AUTO_INCREMENT,
|
|
`regID` bigint(20) NOT NULL,
|
|
`time` datetime NOT NULL,
|
|
@@ -137,7 +144,7 @@ CREATE TABLE `newOrdersRL` (
|
|
UNIQUE KEY `regID_time_idx` (`regID`,`time`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-CREATE TABLE `orderFqdnSets` (
|
|
+CREATE TABLE IF NOT EXISTS `orderFqdnSets` (
|
|
`id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
`setHash` binary(32) NOT NULL,
|
|
`orderID` bigint(20) NOT NULL,
|
|
@@ -147,20 +154,18 @@ CREATE TABLE `orderFqdnSets` (
|
|
KEY `setHash_expires_idx` (`setHash`,`expires`),
|
|
KEY `orderID_idx` (`orderID`),
|
|
KEY `orderFqdnSets_registrationID_registrations` (`registrationID`)
|
|
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
|
|
- PARTITION BY RANGE(id)
|
|
-(PARTITION p_start VALUES LESS THAN (MAXVALUE));
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
+
|
|
+DROP TABLE IF EXISTS `orderToAuthz`;
|
|
|
|
-CREATE TABLE `orderToAuthz2` (
|
|
+CREATE TABLE IF NOT EXISTS `orderToAuthz2` (
|
|
`orderID` bigint(20) NOT NULL,
|
|
`authzID` bigint(20) NOT NULL,
|
|
PRIMARY KEY (`orderID`,`authzID`),
|
|
KEY `authzID` (`authzID`)
|
|
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
|
|
- PARTITION BY RANGE COLUMNS(orderID, authzID)
|
|
-(PARTITION p_start VALUES LESS THAN (MAXVALUE, MAXVALUE));
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-CREATE TABLE `orders` (
|
|
+CREATE TABLE IF NOT EXISTS `orders` (
|
|
`id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
`registrationID` bigint(20) NOT NULL,
|
|
`expires` datetime NOT NULL,
|
|
@@ -171,14 +176,12 @@ CREATE TABLE `orders` (
|
|
PRIMARY KEY (`id`),
|
|
KEY `reg_status_expires` (`registrationID`,`expires`),
|
|
KEY `regID_created_idx` (`registrationID`,`created`)
|
|
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
|
|
- PARTITION BY RANGE(id)
|
|
-(PARTITION p_start VALUES LESS THAN (MAXVALUE));
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-- Note: This table's name is a historical artifact and it is now
|
|
-- used to store linting certificates, not precertificates.
|
|
-- See #6807.
|
|
-CREATE TABLE `precertificates` (
|
|
+CREATE TABLE IF NOT EXISTS `precertificates` (
|
|
`id` bigint(20) NOT NULL AUTO_INCREMENT,
|
|
`registrationID` bigint(20) NOT NULL,
|
|
`serial` varchar(255) NOT NULL,
|
|
@@ -189,11 +192,11 @@ CREATE TABLE `precertificates` (
|
|
KEY `serial` (`serial`),
|
|
KEY `regId_precertificates_idx` (`registrationID`),
|
|
KEY `issued_precertificates_idx` (`issued`)
|
|
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
|
|
- PARTITION BY RANGE(id)
|
|
-(PARTITION p_start VALUES LESS THAN (MAXVALUE));
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
+
|
|
+DROP TABLE IF EXISTS `pendingAuthorizations`;
|
|
|
|
-CREATE TABLE `registrations` (
|
|
+CREATE TABLE IF NOT EXISTS `registrations` (
|
|
`id` bigint(20) NOT NULL AUTO_INCREMENT,
|
|
`jwk` mediumblob NOT NULL,
|
|
`jwk_sha256` varchar(255) NOT NULL,
|
|
@@ -208,20 +211,32 @@ CREATE TABLE `registrations` (
|
|
KEY `initialIP_createdAt` (`initialIP`,`createdAt`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-CREATE TABLE `requestedNames` (
|
|
+CREATE TABLE IF NOT EXISTS `requestedNames` (
|
|
`id` bigint(20) NOT NULL AUTO_INCREMENT,
|
|
`orderID` bigint(20) NOT NULL,
|
|
`reversedName` varchar(253) CHARACTER SET ascii NOT NULL,
|
|
PRIMARY KEY (`id`),
|
|
KEY `orderID_idx` (`orderID`),
|
|
KEY `reversedName_idx` (`reversedName`)
|
|
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
|
|
- PARTITION BY RANGE(id)
|
|
-(PARTITION p_start VALUES LESS THAN (MAXVALUE));
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
+
|
|
+CREATE TABLE IF NOT EXISTS `revokedCertificates` (
|
|
+ `id` bigint(20) NOT NULL AUTO_INCREMENT,
|
|
+ `issuerID` bigint(20) NOT NULL,
|
|
+ `serial` varchar(255) NOT NULL,
|
|
+ `notAfterHour` datetime NOT NULL,
|
|
+ `shardIdx` bigint(20) NOT NULL,
|
|
+ `revokedDate` datetime NOT NULL,
|
|
+ `revokedReason` int(11) NOT NULL,
|
|
+ PRIMARY KEY (`id`),
|
|
+ KEY `issuerID_shardIdx_notAfterHour_idx` (`issuerID`, `shardIdx`, `notAfterHour`)
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-- Tables below have foreign key constraints, so are created after all other tables.
|
|
|
|
-CREATE TABLE `serials` (
|
|
+DROP TABLE IF EXISTS `sctReceipts`;
|
|
+
|
|
+CREATE TABLE IF NOT EXISTS `serials` (
|
|
`id` bigint(20) NOT NULL AUTO_INCREMENT,
|
|
`registrationID` bigint(20) NOT NULL,
|
|
`serial` varchar(255) NOT NULL,
|
|
@@ -239,6 +254,18 @@ CREATE TABLE `serials` (
|
|
-- First set of tables have foreign key constraints, so are dropped first.
|
|
DROP TABLE `serials`;
|
|
|
|
+CREATE TABLE `authz` (
|
|
+ `id` varchar(255) NOT NULL,
|
|
+ `identifier` varchar(255) NOT NULL,
|
|
+ `registrationID` bigint(20) NOT NULL,
|
|
+ `status` varchar(255) NOT NULL,
|
|
+ `expires` datetime DEFAULT NULL,
|
|
+ `combinations` varchar(255) NOT NULL,
|
|
+ PRIMARY KEY (`id`),
|
|
+ KEY `registrationID_identifier_status_expires_authz_idx` (`registrationID`,`identifier`,`status`,`expires`),
|
|
+ CONSTRAINT `regId_authz` FOREIGN KEY (`registrationID`) REFERENCES `registrations` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
+
|
|
DROP TABLE `authz2`;
|
|
DROP TABLE `blockedKeys`;
|
|
DROP TABLE `certificateStatus`;
|
|
@@ -249,8 +276,44 @@ DROP TABLE `issuedNames`;
|
|
DROP TABLE `keyHashToSerial`;
|
|
DROP TABLE `newOrdersRL`;
|
|
DROP TABLE `orderFqdnSets`;
|
|
+
|
|
+CREATE TABLE `orderToAuthz` (
|
|
+ `orderID` bigint(20) NOT NULL,
|
|
+ `authzID` varchar(255) NOT NULL,
|
|
+ PRIMARY KEY (`orderID`,`authzID`),
|
|
+ KEY `authzID` (`authzID`)
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
+
|
|
DROP TABLE `orderToAuthz2`;
|
|
DROP TABLE `orders`;
|
|
+
|
|
+CREATE TABLE `pendingAuthorizations` (
|
|
+ `id` varchar(255) NOT NULL,
|
|
+ `identifier` varchar(255) NOT NULL,
|
|
+ `registrationID` bigint(20) NOT NULL,
|
|
+ `status` varchar(255) NOT NULL,
|
|
+ `expires` datetime DEFAULT NULL,
|
|
+ `combinations` varchar(255) NOT NULL,
|
|
+ `LockCol` bigint(20) NOT NULL,
|
|
+ PRIMARY KEY (`id`),
|
|
+ KEY `identifier_registrationID_status_expires_idx` (`identifier`,`registrationID`,`status`,`expires`),
|
|
+ KEY `registrationID_status_expires_idx` (`registrationID`,`status`,`expires`),
|
|
+ CONSTRAINT `regId_pending_authz` FOREIGN KEY (`registrationID`) REFERENCES `registrations` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
+
|
|
+CREATE TABLE `sctReceipts` (
|
|
+ `id` bigint(20) NOT NULL AUTO_INCREMENT,
|
|
+ `sctVersion` tinyint(1) NOT NULL,
|
|
+ `logID` varchar(255) NOT NULL,
|
|
+ `timestamp` bigint(20) NOT NULL,
|
|
+ `extensions` blob DEFAULT NULL,
|
|
+ `signature` blob DEFAULT NULL,
|
|
+ `certificateSerial` varchar(255) NOT NULL,
|
|
+ `LockCol` bigint(20) DEFAULT NULL,
|
|
+ PRIMARY KEY (`id`),
|
|
+ UNIQUE KEY `certificateSerial_logID` (`certificateSerial`,`logID`)
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
+
|
|
DROP TABLE `precertificates`;
|
|
DROP TABLE `registrations`;
|
|
DROP TABLE `requestedNames`;
|