aboutsummaryrefslogtreecommitdiff
path: root/server/store
AgeCommit message (Collapse)Author
2018-08-24Update depsNiall Sheridan
2018-08-23Record request reason in the db instead of loggingNiall Sheridan
2018-08-08Misc fixesNiall Sheridan
- Add `fast_finish` to travis config - Specify that Go 1.9 is supported - Additional error checking which was previously missed - Make the migrations test better -
2018-08-08Change the primary key on the issued_certs tableNiall Sheridan
In retrospect a primary key that has no relation to the certificate is preferred to using the certificate KeyID. The KeyID is also very large for a primary index. This is a moderately tricky migration, especially for SQLite which has no means of altering the table in this fashion - it involves creating the new table and copying the data. Order of commands also matters - index names are global in SQLite, so the `idx_expires_at` index needs to be created at the correct stages. For MySQL migration the necessary steps are run as a single alter statement to minimise the risk of leaving the migration in an incomplete state if anything aborts. When tested on a table with 250,000 rows (MySQL 5.7) the migration took 3 seconds to complete. As certificates will be requested infrequently the risk of prolonged locking is minimal.
2018-08-07Drop unneeded index idx_revoked_expires_atNiall Sheridan
2018-08-07Add migrations testsNiall Sheridan
2018-08-07Updates to static content generation, docs and examplesNiall Sheridan
Static content generator finds the root of the git repo and executes from there. Packr will scan subdirs for boxes to be packed.
2018-08-07Move StringSlice into the store packageNiall Sheridan
2018-08-07Unexport store implementationsNiall Sheridan
Return an error if the store isn't known, instead of defaulting to a mem store
2018-08-07Remove obsolete db seed scriptNiall Sheridan
2018-08-07Manage db schema with rubenv/sql-migrateNiall Sheridan
It's currently hard to make changes to the database schema. Use sql-migrate to make incremental changes. Stop hard-coding the database name (the default is still "certs" for backward-compatibility) The `automigrate()` function will automatically run pending migrations. Use a different migration directory per database driver. This carries a cost of duplication, but is easier than creating migrations which will cleanly execute in both SQLite and MySQL. Migrations are shipped using the packr utility.
2018-06-20use mysql.NewConfig() to set defaults correctlyNiall Sheridan
2017-10-19Warn when not using a persistent datastoreNiall Sheridan
2017-04-15Revoke multiple certs in a single callNiall Sheridan
2017-04-10remove calls to t.Parallel()Niall Sheridan
2017-04-10Add comment for exported methodNiall Sheridan
2017-04-10override the json marshaller's time formatNiall Sheridan
2017-04-10fix behaviour of SQLStore.ListNiall Sheridan
2017-04-10Populate all fields during testNiall Sheridan
2017-02-19Add grpc signerNiall Sheridan
2017-01-27Remove mongo supportKevin Lyda
Resolves #40
2017-01-22Switch from database/sql to sqlxNiall Sheridan
2017-01-15Make CertStorer implementations publicNiall Sheridan
2017-01-13Db test config (#43)Kevin Lyda
* Allow tests to specify mysql connection info. User can set MYSQL_TEST_USER, MYSQL_TEST_PASS and MYSQL_TEST_HOST environment variables for test environments that need that. * Changes from testing. Need to set both time fields as '0000-00-00' depends on a feature deprecated in MySQL 5.7.4. Go lint wanted snake case for my sql_config var. sqlConfig it is. * Go go idioms. Based on feedback from Niall, a cleaner way to do this in Go.
2017-01-08Remove dbinit and use sql/js seed filesNiall Sheridan
2017-01-05Move GetPublicKey to the shared `lib` packageNiall Sheridan
2016-12-28quieten the linterNiall Sheridan
2016-12-28Allow building static binariesNiall Sheridan
sqlite uses CGO which prevents the building of statically-linked binaries. This change will omit sqlite support when building a static binary with: CGO_ENABLED=0 go build --ldflags '-extldflags "-static"'
2016-10-11Replace the 'datastore' option with a 'database' optionNiall Sheridan
The 'datastore' string option is deprecated and will be removed in a future version. The new 'database' map option is preferred.
2016-10-06Add support for Hashicorp VaultNiall Sheridan
Vault is supported for the following: As a well-known filesystem for TLS cert, TLS key and SSH signing key. For configuration secrets for cookie_secret, csrf_secret, oauth_client_id and oauth_client_secret options.
2016-09-30Use json.NewDecoder to decode json from httpNiall Sheridan
2016-09-24Use a new session for each requestNiall Sheridan
2016-09-11Add a toggle for unexpired certsNiall Sheridan
2016-09-11Allow filtering resultsNiall Sheridan
2016-08-28List only certs which haven't expiredNiall Sheridan
2016-08-20Run some tests in parallelNiall Sheridan
2016-08-09SQLite DB supportNiall Sheridan
2016-08-07Ping the db before attempting to query itNiall Sheridan
2016-08-01fix buildNiall Sheridan
2016-07-31Support mongo datastoresNiall Sheridan
2016-07-24Add a page for revoking certsNiall Sheridan
Add a template for revocation Use DATETIME type to store created/expires times Require auth for the /admin and /revoke endpoints
2016-07-03first pass at a certificate storeNiall Sheridan