// NewCertificateAuthorityDatabaseImpl constructs a Database for the // Certificate Authority. func NewCertificateAuthorityDatabaseImpl(dbMap *gorp.DbMap) (cadb core.CertificateAuthorityDatabase, err error) { logger := blog.GetAuditLogger() dbMap.AddTableWithName(SerialNumber{}, "serialNumber").SetKeys(true, "ID") cadb = &CertificateAuthorityDatabaseImpl{ dbMap: dbMap, log: logger, } return cadb, nil }
// NewPolicyAuthorityDatabaseImpl constructs a Policy Authority Database (and // creates tables if they are non-existent) func NewPolicyAuthorityDatabaseImpl(dbMap *gorp.DbMap) (padb *PolicyAuthorityDatabaseImpl, err error) { logger := blog.GetAuditLogger() dbMap.AddTableWithName(BlacklistRule{}, "blacklist").SetKeys(false, "Host") dbMap.AddTableWithName(WhitelistRule{}, "whitelist").SetKeys(false, "Host") padb = &PolicyAuthorityDatabaseImpl{ dbMap: dbMap, log: logger, } return padb, nil }
// initTables constructs the table map for the ORM. If you want to also create // the tables, call CreateTablesIfNotExists on the DbMap. func initTables(dbMap *gorp.DbMap) { regTable := dbMap.AddTableWithName(core.Registration{}, "registrations").SetKeys(true, "ID") regTable.SetVersionCol("LockCol") regTable.ColMap("Key").SetMaxSize(1024).SetNotNull(true).SetUnique(true) pendingAuthzTable := dbMap.AddTableWithName(pendingauthzModel{}, "pending_authz").SetKeys(false, "ID") pendingAuthzTable.SetVersionCol("LockCol") pendingAuthzTable.ColMap("Challenges").SetMaxSize(1536) authzTable := dbMap.AddTableWithName(authzModel{}, "authz").SetKeys(false, "ID") authzTable.ColMap("Challenges").SetMaxSize(1536) dbMap.AddTableWithName(core.Certificate{}, "certificates").SetKeys(false, "Serial") dbMap.AddTableWithName(core.CertificateStatus{}, "certificateStatus").SetKeys(false, "Serial").SetVersionCol("LockCol") dbMap.AddTableWithName(core.OCSPResponse{}, "ocspResponses").SetKeys(true, "ID") dbMap.AddTableWithName(core.CRL{}, "crls").SetKeys(false, "Serial") dbMap.AddTableWithName(core.DeniedCSR{}, "deniedCSRs").SetKeys(true, "ID") }
// initTables constructs the table map for the ORM. // NOTE: For tables with an auto-increment primary key (SetKeys(true, ...)), // it is very important to declare them as a such here. It produces a side // effect in Insert() where the inserted object has its id field set to the // autoincremented value that resulted from the insert. See // https://godoc.org/github.com/coopernurse/gorp#DbMap.Insert func initTables(dbMap *gorp.DbMap) { regTable := dbMap.AddTableWithName(regModel{}, "registrations").SetKeys(true, "ID") regTable.SetVersionCol("LockCol") regTable.ColMap("Key").SetNotNull(true) regTable.ColMap("KeySHA256").SetNotNull(true).SetUnique(true) pendingAuthzTable := dbMap.AddTableWithName(pendingauthzModel{}, "pendingAuthorizations").SetKeys(false, "ID") pendingAuthzTable.SetVersionCol("LockCol") dbMap.AddTableWithName(authzModel{}, "authz").SetKeys(false, "ID") dbMap.AddTableWithName(challModel{}, "challenges").SetKeys(true, "ID").SetVersionCol("LockCol") dbMap.AddTableWithName(issuedNameModel{}, "issuedNames").SetKeys(true, "ID") dbMap.AddTableWithName(core.Certificate{}, "certificates").SetKeys(false, "Serial") dbMap.AddTableWithName(core.CertificateStatus{}, "certificateStatus").SetKeys(false, "Serial").SetVersionCol("LockCol") dbMap.AddTableWithName(core.CRL{}, "crls").SetKeys(false, "Serial") dbMap.AddTableWithName(core.DeniedCSR{}, "deniedCSRs").SetKeys(true, "ID") dbMap.AddTableWithName(core.SignedCertificateTimestamp{}, "sctReceipts").SetKeys(true, "ID").SetVersionCol("LockCol") }