secret field needs to be text rather than string to accommodate private
keys (this maps to a VARCHAR 255 in PostgreSQL)