Commit Graph
88 Commits
Author SHA1 Message Date
Jim dc379ed09f handle unlimited connections when terminating sessions. (#536) 2020-10-05 17:01:22 -04:00
Jim bd547fd0d6 terminate a canceled session when its last connection is closed. (#520) 2020-10-02 10:01:46 -04:00
Jeff Mitchell fa700dc002 Add account ID templating (#518)
* Remove default role and create via the same mechanism as other initial resources
2020-10-01 10:51:54 -04:00
Jim 19aecfefae terminate "completed" sessions (#477) 2020-10-01 10:13:57 -04:00
Jeff Mitchell 6ddfe407a3 Update allowed formats of ACL strings (#508) 2020-10-01 01:49:20 -04:00
Michael Gaffney a9e806b673 Data warehouse (#475)
* 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
2020-09-30 14:09:40 -04:00
Jeff Mitchell cefea936c3 Update ACLs to allow type=*. (#504) 2020-09-29 22:55:22 -04:00
Jeff Mitchell a38f40606e Create default roles in scopes to allow authentication and listing scopes/auth methods (#502) 2020-09-29 20:38:16 -04:00
Jim 978f7dc34c fix immutable columns for session_state and session_connnection_state (#449) 2020-09-25 16:04:43 -04:00
Michael Gaffney 36d465476c Name all the check constraints in the database (#410)
* Name all of the check constraints

* Run 'make migrations'
2020-09-22 14:44:21 -04:00
Jim 57da9f918e cancel a session when one of its FKs is set to null (#406) 2020-09-22 14:36:20 -04:00
Michael Gaffney f0c84de49c Disambiguate auth_account scope_id by adding iam_user_scope_id column (#407) 2020-09-22 13:30:11 -04:00
Jeff Mitchell 7e3c174b70 Disallow deletion of r_default (#398)
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.
2020-09-21 16:50:39 -04:00
Jeff Mitchell f25186f78a Standardize on one spelling of "canceled" (#399) 2020-09-21 16:33:28 -04:00
Michael Gaffney d52fb81e68 Change the default max session for a target to 8 hours (#392)
* Change the default max session for a target to 8 hours

* Run 'make migrations'
2020-09-21 12:12:18 -04:00
Jeff Mitchell 7db0e2a5ed Fix database check 2020-09-20 16:09:11 -04:00
Jim 5764b2c70a return States as a field of Connection repo operations. (#382) 2020-09-20 15:54:39 -04:00
Jeff Mitchell edffc7863d Change connection limit to -1 for unlimited so it works with TF (#383)
* Migrate connection limit unlimited value to -1

* Fix authorization check
2020-09-20 15:53:49 -04:00
Jim 66400c9cff changes needed for sessions.AuthorizeConnection (#377) 2020-09-19 14:21:09 -04:00
Jeff Mitchell 5bf555cca2 Remove connection idle timeout seconds for now (#379) 2020-09-19 14:01:49 -04:00
Jeff Mitchell 0a3f9b8357 Rename connection idle timeout duration -> seconds and sessions max duration -> seconds (#376) 2020-09-19 11:32:38 -04:00
Jeff MitchellandJim Lambert 62baef1b7e Add multi connection parameters through targets and into session creation (#375)
* 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>
2020-09-19 10:31:49 -04:00
Jeff Mitchell 07a7e9750a Tie together the database-driven session handling with the worker and add relevant CLI comands (#370) 2020-09-19 00:18:17 -04:00
Jim e7e70b1b94 new domain functions for the session repo (#368) 2020-09-18 18:12:41 -04:00
Jim 7e927203e8 schema changes to support multi-connections (#372) 2020-09-18 17:41:45 -04:00
Jeff Mitchell 8bef1d734a Fix mismatch in default role creation permissions 2020-09-16 12:56:41 -04:00
Jim 611288bdc7 basic sessions (#337) 2020-09-16 12:02:02 -04:00
Jeff Mitchell 4ef0c57a39 Fix r_default description typo 2020-09-16 08:53:36 -04:00
Todd Knight b998591add Adding and updating host address validation checks (#350) 2020-09-12 22:07:56 -07:00
Michael Gaffney 4ae3a52056 Define session database schema (#322)
* Define session database schema

* Update comments

* Add insert trigger for session state

* Add canceling state and update foreign keys to 'set null' on delete
2020-09-03 10:49:27 -04:00
Jim f29869b715 support for additional deks: oplog, session and token and new CreateKeysTx() (#321) 2020-09-02 14:37:19 -04:00
Jim f3dd62d5d8 database DEKs (#317) 2020-09-02 07:42:03 -04:00
Jim fcb61d4b67 targets repo (#298) 2020-08-26 13:58:46 -04:00
Michael Gaffney 58dec98ea2 Rename table from servers to server (#307) 2020-08-26 13:15:12 -04:00
Jeff Mitchell ac4d9fa311 Add nonce storage and replay prevention test (#293) 2020-08-24 13:22:10 -04:00
Jeff Mitchell b47cca0329 Add (non-db aspects of) the recovery key workflow (#286) 2020-08-20 13:34:03 -04:00
Jeff Mitchell 6bf4a5ce38 Add not null checks to wt_private_id, wt_scope_id, and wt_user_id (#284) 2020-08-19 21:45:46 -04:00
Jim 9570897032 basic keys mgmt repo (#264) 2020-08-19 16:47:18 -04:00
Jeff Mitchell 282177afc2 Remove the default org (#270) 2020-08-17 15:38:41 -04:00
Michael Gaffney 7d133878be Add base types for host catalog, host set, and host (#272)
* 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
2020-08-17 11:00:41 -04:00
Jeff Mitchell c195c4bc9b Remove disabled property and sync up field ordering and numbering (#259) 2020-08-12 13:00:49 -04:00
Jeff Mitchell 203e2b5dc2 Initial worker porting steps (#232) 2020-08-12 00:40:39 -04:00
Jeff Mitchell 73a38b1433 Remove some unneeded resource types and fix the resource typing for default role in global scope (#256) 2020-08-12 00:02:26 -04:00
Jeff Mitchell 4cfab04307 Migrate user name to login name (#255) 2020-08-11 17:25:00 -04:00
Michael Gaffney 6f886976e4 Add not null constraint to wt_version domain (#254) 2020-08-11 14:15:19 -04:00
Jeff Mitchell 78d7f539c5 Add versioning to host catalogs/sets/hosts and fix up tests (#247)
* 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
2020-08-11 11:20:06 -04:00
Jeff Mitchell 565059ed63 Add versioning to auth methods and accounts (#249) 2020-08-11 11:19:29 -04:00
Michael GaffneyandJeff Mitchell a7c467bd68 Password - UpdateAccount and SetPassword (#248)
* Implement UpdateAccount

* Implement SetPassword

* Add tests for duplicate user names

* Fix imports broken after product rename

Co-authored-by: Jeff Mitchell <jeffrey.mitchell@gmail.com>
2020-08-11 10:12:36 -04:00
Jeff Mitchell 6661117d4c The name. The name. The name! 2020-08-10 17:15:02 -04:00
Jeff Mitchell 0d0660b061 Fix some tests I broke 2020-08-07 17:46:33 -04:00