This adds the `recording_dynamic_credential` join table and a trigger
that runs as an after insert on the `recording_session` table. The join
table joins the `recording_session`, `credential_vault_store_hst`,
`credential_library_history_base`, and the `credential_purpose_enm`
tables.
This adds history tables for `credential_vault_store`,
`credential_vault_library`, and `credential_vault_ssh_cert_library`.
This also adds a base table for the credential library history tables.
This adds an `endpoint` column to the `recording_session` table and
updates the session recording insert trigger to copy the value of
`endpoint` from the `session` table to the `recording_session` table.
This adds the `recording_static_credential` join table and a trigger
that runs as an after insert on the `recording_session` table. The join
table joins the `recording_session`, `credential_static_store_hst`,
`credential_static_history_base`, and the `credential_purpose_enm`
tables.
This adds history tables for `credential_static_store`,
`credential_static_json_credential`,
`credential_static_username_password_credential`, and
`credential_static_ssh_private_key_credential`. This also adds a base
table for the static credential history tables.
This adds four columns to the `recording_session` table which are
foreign keys to the `iam_scope_hst`, `target_ssh_hst`,
`host_history_base`, and `host_catalog_history_base` tables. The foreign
key to the `iam_scope_hst` table references the project scope of the
target at the time of the recording.
This renames the migration with the session recording table to come
after the history table migrations. This allows the session recording
table to have foreign key references to the history tables without using
alter table statements.
This adds history tables for `static_host` and `host_plugin_host`. This
also adds a base table for the host history tables.
This also adds a new test to the history table test suite. The new test
verifies the contents of each history table against the contents of
their operational table.
This adds history tables for `static_host_catalog` and
`host_plugin_catalog`. This also adds a base table for the host catalog
history tables and an immutable table with one row for when a target has
a direct address assigned to it.
This also adds a reusable trigger function for tables that are
immutable.
This adds a history table for `target_ssh`.
This also fixes a bug in the history table test suite. Prior to this
change, the operational table name was calculated from the history table
name using the SQL trim() function. The SQL trim function as used
returned 'targe' for 'target_ssh_hst' instead of the expected value
'target_ssh'.
This adds two columns to the `recording_session` table. One column is a
foreign key to the `iam_user_hst` table and the other is a foreign key
to the `iam_scope_hst` table. The foreign key to the `iam_scope_hst`
table reference the IAM scope the user belongs to at the time of the
recording.
This moves and renames the migration with the session recording table to
come after the history table migrations. This allows the session
recording table to have foreign key references to the history tables
without using alter table statements.
This adds a history table for `iam_scope`. It also includes reusable
triggers to maintain the included history table and future history
tables.
This also includes a test suite that runs on any table ending in `_hst`.
This adds a SQL function that generates a secure random ID of at least
14 characters suitable for use as a public or private ID. IDs generated
with the function will only contain characters from the unreserved
character set defined in RFC 3986 Section 2.3 making them safe for use
in a URL.
Add the following new tables used for storing session recordings:
* recording_session
* recording_connection
* recording_channel
* recording_channel_ssh
* storage_bucket
* feat: add a new daily billing view
* update views and table based on early feedback
* address review comments
* update CTE to be an accurate result of what we expect
* remove 'with time zone' from daily range
* remove timezone
* Update internal/db/schema/migrations/oss/postgres/70/01_hcp_billing_daily.up.sql
Co-authored-by: Michael Gaffney <mgaffney@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Timothy Messier <tim.messier@gmail.com>
* go mod updates
* fix tests
---------
Co-authored-by: Michael Gaffney <mgaffney@users.noreply.github.com>
Co-authored-by: Timothy Messier <tim.messier@gmail.com>
* programatically rename unique and foreign key constraints to enforce 'tablename_uq' and 'reftable_fkey' patterns
* manually rename unique constraints for names over 63 characters
* update changed constraint names in db update testcases
The new `ExternalName` field is an optional field that is used to store
the cloud providers' human-identifiable name for a given compute
instance. This field is not user-editable, but it is kept in sync with
the cloud provider's through Boundary's `SetSyncJob`.
* internal/db: add set_once_columns function
Also replace existing before_soft_delete_credential_vault_store
function and trigger with the new function.
* internal/db/schema: add note to replaced definitions
* feature (auth): required schema changes for auth ldap method (#2669)
chore (auth/ldap): move schema changes to next avail migration number
* feature (auth/ldap): define AuthMethod and all its value objects (#2703)
* feature (auth/ldap): storage protos
* feature (auth/ldap): define AuthMethod and all its value objects
* feature (auth/ldap): add repo and reading an auth method (#2718)
* feature (auth/ldap): add Repository.CreateAuthMethod(...) and Repository.DeleteAuthMethod(...) (#2724)
* feature (auth/ldap): add Repository.UpdateAuthMethod(...) (#2739)
* feature (auth/ldap): add Account
* feature (auth/ldap): add AuthMethod.EnableGroups
* fix (auth/ldap): refactor AuthMethod.oplog to enforce proper constraints
* feature (auth/ldap): add Account repo functions
* refactor (auth/ldap): remove entry attributes from account
Realized the entry attributes could have absolutely anything in them
(including binary data) and since we absolutely don't have to have them
there's just no reason to take on the risk.
* feature (auth/ldap): add AuthMethod.UseTokenGroups
* feature (auth/ldap): add Authenticate(...)
* refactor (auth/ldap): ensure options take a context as the 1st parameter
* feature (auth/ldap): add Account attribute maps
* chore (auth/ldap): make fmt deltas
* feature (auth/ldap): add managed groups (#2760)
* tests (auth/ldap): add missing unit test to Repository.DeleteAccount(...)
Add bits to test the delete operation when you're not able to generate
oplog metadata
* feature (auth/ldap): add managed groups
fixup! feature (auth/ldap): add managed groups (#2760)
* feature (auth/ldap): service proto definition (#2761)
* feature (handlers/authmethods): add handlers for ldap auth method operations (#2794)
* feature (auth/ldap): add Account attribute maps
* chore (auth/ldap): update cap/ldap to latest version
* feature (auth/ldap): add ldap api generation definitions
* feature (authmethods): add ldap repo NewService(...)
* feature (authmethods/ldap): add proper mask_mapping to protobufs
* feature (authmethods): add support to get an ldap auth method
* refactor (auth/ldap): export TestGenerateCA(...)
* feature (authmethods): add support to create an ldap auth method
* feature (authmethods): add support to delete an ldap auth method
* feature (authmethods): add support to list ldap auth methods
* refactor (auth/ldap): make urls optional for NewAuthMethod(...)
* refactor (auth/ldap): export ldap.TestInvalidPem
* chore: make fmt changes
* fix (auth/ldap): properly handle group search config
Add constraints and tests to ensure when an ldap AuthMethod.EnableGroups
is true, and UseTokenGroups is false; that there's a GroupDn configured
for finding a user's associated groups
* feature (authmethods): add support to update an ldap auth methods
* chore (db/ldap): tmp mv migrations so there's no conflict with ongoing work
* feature (verifier): add ldap auth method to verifier bits
* fix (controller): prevent panic when controller stops when there's no listener
* feature (authmethods): add support to authenticate via ldap auth methods
* chore (migrations): fix whitespace in stmt
* chore: fmt fixup
* tests (auth/ldap): invalid err msg
* feature (cli/authmethods): add support for ldap auth-methods CRUD and authenticate (#2810)
* feature (authmethods): add CLI support for ldap auth methods CRUD
* tests (api/auth): ldap auth method classification tests
* feature (authmethods): add CLI support for ldap auth authenticate
* feature (auth/ldap): set request timeouts for ldap server connections
* feature (handlers/authmethods): handle u_anon listing properly.
* feature (account/handers): ldap account and managed group CRUDL APIs (#2852)
* feature (auth/ldap) add repository Listing of ManagedGroupMemberAccount
* feature (controller/handlers): add ldapRepoFn to accounts service
* feature (auth/ldap) register ldap managed group subtype
* feature (account/handlers): ldap account CRUDL APIs
* feature (controller/handlers): add ldapRepo to managed groups service
* feature (account/handlers): ldap managed group CRUDL APIs
* docs (domain): add LDAP accounts, auth-methods and managed groups (#2857)
* feature (ldap/cli) add ldap accounts and managed groups CRUDL commands (#2856)
* fix (handlers/authmethods): fix ldap authorized actions (#2892)
* feature (cli/ldap/authenticate): use primary auth method if none is provided (#2890)
* fix (auth/ldap): support setting the state attribute
* feature (cli/ldap/authenticate): use primary auth method if none is provided
* feature (wh/ldap) add tests for new ldap auth method and accounts (#2919)
* refactor (migrations/ldap): mv to correct directory
* chore: add copyright headers
* fix (api/authmethods/ldap): renumber new LdapAuthMethodAttributes field
* fix (auth/ldap): allow the auth method state to be updated (#2951)
* chore: update sdk and api versions for llb - this is tmp until merging
* tests (managed groups): add required errContains for new test
Adds the schema for ssh targets. This also changes the target listing
func to not error out when it encounters a target with an unknown type.
Instead, it now ignores it and continues to the next one.
This defines a new credential library type for ssh certificates.
It adds new repository methods to support CRUDL of the new ssh
certificate credential library.
Co-authored-by: Timothy Messier <tim.messier@gmail.com>
* chore: remove duplicate import
* feat: Add job run cleaner
The new job cleans job runs older than a configured interval.
Configure the job to clean jobs older than 1 minute.
The wh_upsert_credential_group function was incorrectly attempting to
update the session connection fact table. There are a couple problems
with this:
1. At the time that this runs, there would be no session connection facts
for this session.
2. This function is meant to update the session fact table, there is a
separate function that associates the credential group with the
session connection facts.
This also fixes another bug that was causing expired rows of the
credential dimension to be included in the group membership. And finally
it fixes a typo in the function name.
This test uses the target domain repository code to test the ingress
& egress worker filter. With our changes we have updated the target
domain repository logic to fetch the target address. When this migration
test is invoked, the target_address table does not exist and the domain
code will always return an error making this test invalid.