Go's TLS stack doesn't need a separate CA cert and in fact for sessions
we don't use this. So simplify the worker connection to remove an
unnecessary extra key generation.
This tells SSH to use the (random, autogen'd) host ID when doing host
key checking. That way we avoid having an IP/port mismatch every time we
connect.
* Define initial warehouse schema
* Add session id as the primary key to the session accumulating fact table
* Insert a row to use instead of nulls in the time and date dimensions
* Add missing attributes and a partial index
* Rename files
* Refactor: move fact table to a separate migration
* Add domain types for the warehouse
* Add session connection transaction fact table
* Change columns to match ingress data types
* Add views for host dimension ingress
* Create source and target views for the host and user dimensions
* Generate random ID for dimension table primary key
* Formatting changes
* Add current dimension id to target views
* Implement upsert function for host dimension
* Use domain types for upsert function parameters
* Fix indentation
* Add wh_public_id domain type
* Fix value of type columns when the other columns are null
* Implement upsert function for user dimension
* Add warehouse domain types for timestamps and text fields
* Move fact table migrations to a higher number
* Add functions for getting the current date and current time IDs
* Rename backend to endpoint in column names
* Rename fact tables
The fact tables are actually accumulating fact tables not transactional
fact tables.
* Add default value to connection_authorized_time column
* Update session fact table
* Add session_max_seconds, session_connection_limit, and default_port to wh_host_dimension
* Move session table above connection table
* Add after insert trigger to session table for warehouse ingress
* Add fk from connection warehouse table to session warehouse table
* Implement insert trigger for session connections
* Update warehouse for a user having multiple auth accounts
* Rename warehouse columns to be consistent with operational tables
* Add connection specific columns to the connection fact table
* Update session calculations in warehouse
* Rename functions and formatting changes
* Rename session columns to match names of session states
* Implement warehouse triggers for session and connection state changes
* Run 'make migrations'
* Use a static start and end date for the warehouse date dimension
* Document warehouse functions
* Remove outdated TODO comments
* Add TODO comments for additional dimensions and fact table columns