* 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
If it's a useful named resource and people accidentally delete it e.g.
with TF, they can't get it back. This doesn't affect TF's ability to
manage it, just delete.
* Update protos and gen
* Add new values to targets CLI command
* Lots more plumbing of new parameters through everything
* allow fields to be set to zero value.
* Disallow set but empty name/description strings in create/update verifiers
Co-authored-by: Jim Lambert <jlambert@hashicorp.com>
* Define session database schema
* Update comments
* Add insert trigger for session state
* Add canceling state and update foreign keys to 'set null' on delete
* Move static host migrations to higher number
* Add wt_host_address domain type
* Add base tables for host catalog, host set, and host
* Reformat create trigger statements
* Add subtype triggers for host catalog, host set, and host
* Remove wt_host_address domain type
* Rename columns in host_set_member
* Add delete trigger functions for base types
* Add delete after triggers to static host subtypes
* Add protobufs for host base types
* Start adding version to host resources and fixing up tests
* Add versioning to host resources and update API tests
* Fix nil in test
* Add missing update