Commit Graph
116 Commits
Author SHA1 Message Date
Jeff Mitchell 18f863514e Finish sqltests for multi grant scopes (#4320) 2024-01-30 11:04:05 -05:00
Jeff Mitchell 025fce6f95 Change error message and add beginnings of sql tests (#4319) 2024-01-29 16:02:16 -05:00
Johan Brandhorst-Satzkorn 133e928c6d internal/db/schema: update recording indexes (#4278)
The new index includes the new delete_time and
delete_after columns, which are used in the list query.
2024-01-25 08:56:15 -08:00
f5dd457b34 Multiple grant scope IDs (#4251)
Co-authored-by: Timothy Messier <tim.messier@gmail.com>
Co-authored-by: Todd <github@quaddi.com>
2024-01-23 14:33:09 -05:00
Louis Ruch fa69ddcb8a fix(db): Set max storage policy days (#4267) 2024-01-22 16:00:17 -08:00
Johan Brandhorst-Satzkorn b229ece914 internal/db: use more efficient index for host listing (#4256)
In tests, the index including the catalog_id performs significantly
better.
2024-01-19 10:59:18 -08:00
Johan Brandhorst-Satzkorn dc4ea67d6e internal/db: changes for pagination 2024-01-16 13:53:44 -08:00
Danielle Miu 39b3bb2d1d fix(db): allow session_recording_aggregate to return recordings correctly 2024-01-16 13:53:44 -08:00
Danielle Miu df02651bb5 feat(db): new cols for retain and delete session recordings, update structs, and tests 2024-01-16 13:53:44 -08:00
Hugo 978db86186 feat(internal/db): Storage policies implementation (#767)
This commit implements part of the storage policy's database model,
focusing specifically on the operational tables for this feature.
2024-01-16 13:20:11 -08:00
Johan Brandhorst-Satzkorn b6fe9824ab internal/db: optimize session list indexes 2024-01-11 09:44:44 -08:00
Johan Brandhorst-Satzkorn 85ca909720 internal/db: add iam_scope indexes
These will help the iam_scope list queries
2024-01-05 07:43:21 -08:00
Johan Brandhorst-Satzkorn d4b60241db internal/db: storage bucket pagination migrations (#4213) 2024-01-05 07:43:21 -08:00
Michael Milton 52b1c1b4c7 Managed group list pagination (#4208)
* wip

* managed groups pagination

* address PR comments

* missed one change
2024-01-05 07:43:21 -08:00
Johan Brandhorst-Satzkorn 44971b3559 internal/db: migrations for accounts pagination 2024-01-05 07:43:21 -08:00
Johan Brandhorst-Satzkorn cce52a16e6 internal/db: db migrations for session recordings (#4200) 2024-01-05 07:43:21 -08:00
Johan Brandhorst-Satzkorn e9b90d9ce1 internal/db: add schema changes for host catalog pagination 2024-01-05 07:43:21 -08:00
Todd 40d9c3fd1d Paginate iam groups (#4194) 2024-01-05 07:43:21 -08:00
Michael MiltonandMichael Gaffney 8d50a0913f Auth Method list pagination (#4165)
* wip

* implement list pagination for auth methods

* remove unused code

* update tests to fix sorting

* address PR comments

* simplify query, add token tests

* change test name

* wip sql testing

* add boolean column to indicate whether auth methods should be returned to unauthenticated users, remove secrets from api response

* is_active_public not null

* remove secrets and unwrapping

* move not null to immediately after data migration

* order public_id descending

* fix(db): Fix auth method migrations (#4193)

* wip

* fix db tests

* fix failing api tests

* reverse order of create time and update time in test

---------

Co-authored-by: Michael Gaffney <mike@gaffney.cc>
2024-01-05 07:43:21 -08:00
Todd 0fad770d8a Paginate iam user (#4185)
* paginate iam user
2024-01-05 07:43:21 -08:00
Johan Brandhorst-Satzkorn 27393a8227 internal/db: add host set indexes 2024-01-05 07:43:21 -08:00
Johan Brandhorst-Satzkorn 21c593ab71 internal/db: add host indexes 2024-01-05 07:43:21 -08:00
Todd 5aa560387c Add pagination for iam Roles (#4161)
* Add pagination for iam Roles
2024-01-05 07:43:21 -08:00
Johan Brandhorst-Satzkorn 22ce2b4468 internal/db: add cred store pagination schema changes
Add create time, update time columns to base table,
add indexes used by list queries.
2024-01-05 07:43:20 -08:00
Michael Milton 6ba3676c37 Auth token pagination (#4113)
* Add pagination support for auth tokens

* change analyze count estimate comment

* adjust queries for efficiency and security

* even more efficient queries
2024-01-05 07:43:20 -08:00
Johan Brandhorst-Satzkorn fcb47f3772 internal/db: add cred library pagination schema changes 2024-01-05 07:43:20 -08:00
Johan Brandhorst-Satzkorn 497c158b9d internal/db: add migration for static credential table
The static credential table is used rather than the credential
table as all credentials returned by ListCredentials are static
at this time.
2024-01-05 07:43:20 -08:00
Michael Milton 9c3eb16046 Sessions list pagination (#4079)
* Session list pagination refactor

* address pr comments, add explanatory comments, clean up sql queries, move tests into proper files

* fix build error

* fix test error
2024-01-05 07:43:20 -08:00
Johan Brandhorst-Satzkorn f0f7e635a0 internal/db: add target schema for pagination design
The new design uses the base table for querying, so the base
table needs to have both create_time and update_time. In this
commit we add the update_time to the target base table. We
also add a number of new indexes to help with looking up targets.
2024-01-05 07:43:20 -08:00
5bfc8a88b1 Add indexes on update_time (#3974)
* Add indexes on update_time

Co-authored-by: Johan Brandhorst-Satzkorn <johan.brandhorst@gmail.com>
Co-authored-by: Michael Gaffney <mike@gaffney.cc>
2024-01-05 07:43:20 -08:00
Johan Brandhorst-Satzkorn 38536f4eef internal/db: add deleted tables for all resources (#3885)
Creates a new foo_deleted table for each subtype of each
resource that needs to support pagination. The deleted
tables are used to track deletions of resources and return
them to users of the new pagination API. We track only the
ID and delete_time of the resource, so there's no way to
filter out resources that the user could not see before it
was deleted. This is intentional to keep the design simple
and is not considered a security issue.
2024-01-05 07:43:19 -08:00
Elim Tsiagbey 8b8d2822df feat(oidc): OIDC Prompt (#4053)
Boundary OIDC method does not currently support passing in prompts during authentication. This change adds the capability of passing OIDC prompts. Prompts are optional OIDC parameters that determine the behaviour of the authentication server: https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest

## Changes

- New `auth_oidc_prompt` table which contains all the prompts for OIDC auth method
- New `auth_oidc_prompt_enm` table which contains possible enum values for a prompt
  - Currently supported:
    - `none`: 
The Authorization Server MUST NOT display any authentication or consent user interface pages
    - `login`: The Authorization Server SHOULD prompt the End-User for reauthentication
    - `consent`: The Authorization Server SHOULD prompt the End-User for consent before returning information to the Client
    - `select_account`: The Authorization Server SHOULD prompt the End-User to select a user account
- `oidc_auth_method_with_value_obj` view has been updated to return `prompt` value
- Add `prompt` option for OIDC auth method CLI create and update
- Pass configured prompt during OIDC authentication
- Add `prompt` API validation for create and update
2023-11-21 11:30:02 -05:00
Johan Brandhorst-Satzkorn 940eb61282 sqltest: fix typo (#3886) 2023-10-26 11:18:41 -07:00
hashicorp-copywrite[bot]andJohan Brandhorst-Satzkorn 29da0bcb92 [COMPLIANCE] License changes (#3567)
* Adding explicit MPL license for sub-package.

This directory and its subdirectories (packages) contain files licensed with the MPLv2 `LICENSE` file in this directory and are intentionally licensed separately from the BSL `LICENSE` file at the root of this repository.

* Adding explicit MPL license for sub-package

This directory and its subdirectories (packages) contain files licensed with the MPLv2 `LICENSE` file in this directory and are intentionally licensed separately from the BSL `LICENSE` file at the root of this repository.

* Updating the license from MPL to Business Source License

Going forward, this project will be licensed under the Business Source License v1.1. Please see our blog post for more details at https://hashi.co/bsl-blog, FAQ at www.hashicorp.com/licensing-faq, and details of the license at www.hashicorp.com/bsl.

* Update copyright file headers to BUS-1.1

* Rerun make gen

This will pick up the last of the license changes

* Revert "Rerun make gen"

This reverts commit dbe0968bffd92745d8663c6940debae098395a6b.

* Remove copywrite from generation script

The current version of copywrite is not sophisticated enough
to only apply the copywrite changes to certain subdirectories,
so to avoid accidentally relicensing our api and sdk modules,
we will stop running the copywrite script until such time
that it can do the right thing.

* License protobuf API as MPL

The protobuf API files are used to generate the SDK,
since we want the SDK to be MPL, the protobuf files
must also be MPL. This extends to all protobuf files
whose sources end up in the SDK directory, including:

- internal/proto/controller/api
- internal/proto/controller/custom_options
- internal/proto/plugin

It also includes the generated service directory in
internal/gen/controller/api/services, since they are
generated from the protobuf sources used for the SDK.

* Change website license file name

This makes the naming scheme consistent with the rest
of the repository.

* Add note on licensing to README

* Set copywrite license to BUSL

* Revert "Add note on licensing to README"

This reverts commit 4d865a91a7a4f11605f0dc4609355d7e3c3cfffe.

---------

Co-authored-by: hashicorp-copywrite[bot] <110428419+hashicorp-copywrite[bot]@users.noreply.github.com>
Co-authored-by: Johan Brandhorst-Satzkorn <johan.brandhorst@gmail.com>
2023-08-11 10:31:53 -07:00
Michael MiltonandMichael Gaffney 8527f0305d Fix issue where snapshot conflicts weren't being handled (#3406)
* fix issue where conflicts weren't being handled

* Instead of using on collision, alter the daily_range

* move tests to appropriate file

* Apply suggestions from code review

Co-authored-by: Michael Gaffney <mike@gaffney.cc>

---------

Co-authored-by: Michael Gaffney <mike@gaffney.cc>
2023-07-10 15:50:38 -04:00
Michael MiltonandMichael Gaffney 23c40a0bc3 Update census to run less frequently (#3346)
* update census to run less frequently

* Update internal/census/census_job.go

Co-authored-by: Michael Gaffney <mike@gaffney.cc>

* change nextrunin duration

---------

Co-authored-by: Michael Gaffney <mike@gaffney.cc>
2023-07-05 15:33:18 -04:00
Michael Gaffney 8159ddb08e feat(db): Add function to update billing snapshot table
This adds the `update_sessions_pending_daily_snapshot` SQL function
which updates the `sessions_pending_daily_snapshot` table by inserting
values for any days missing from the table.

This also adds a check constraint to the
`sessions_pending_daily_snapshot` table along with a `comment on table`.

This also removes the hcp daily billing views since they are no longer
needed.

Ref: ace2def49d
2023-06-05 12:48:15 -04:00
Michael Gaffney 41bdfb4406 fix(db): Fix time zone consistency issues in monthly billing views
The hcp monthly billing views build a range of buckets using the
`generate_series` and the `now()` functions along with relative offsets
like `+ 1 month`. The calculated start and end times for these views can
vary depending on the time zone setting of the PostgreSQL server.

This adds 3 table functions that call their respective views with the
time zone set to UTC. Calling these functions instead of their
underlying views directly prevents the returned values from varying when
the server's time zone is not set to UTC.

This also drops support for PostgreSQL 11. The included tests use the
`date_trunc(field, source [, time_zone ])` function added in PostgreSQL
12.

Fixes: 41b1b5b4b7
2023-06-05 12:48:15 -04:00
Michael Gaffney 053e74f66c feat(db): Add table for census upload job status 2023-06-05 11:32:26 -04:00
Michael Gaffney 8bf80e0544 test(db): Conditionally skip monthly billing view tests
Certain tests fail when run on the first day of the month because of
edge cases in the setup of test data. This adds conditional logic to
skip those tests when run on the first day of a month.
2023-06-04 09:31:40 -04:00
Todd 4063880bbe Add credential history views 2023-05-31 12:18:22 +00:00
Michael Gaffney a783c91b2d feat(sql): Add dynamic credential hst tables to session recording
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.
2023-05-31 12:18:19 +00:00
Michael Gaffney 3769f0851c test(sql): Refactor the colors persona
This changes multiple IDs in the colors persona to be 12 characters. It
also renames some IDs in an attempt to make them more consistent. This
also changes the order of the columns in some insert statements to
follow the pattern of the other insert statements.

This also adds documentation to the top of colors persona file in an
attempt to explain the general patterns being followed in the file.
2023-05-31 12:18:19 +00:00
Michael Gaffney 03b1291b34 feat(sql): Add history tables for dynamic credentials
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.
2023-05-31 12:18:19 +00:00
Todd e1540be9f3 Add host information to session recording view 2023-05-31 12:18:18 +00:00
Michael Gaffney a8224f4f57 feat(sql): Add endpoint from session table to session recording
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.
2023-05-31 12:18:18 +00:00
Michael Gaffney 06e4e46248 feat(sql): Add static credential hst tables to session recording
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.
2023-05-31 12:18:18 +00:00
Michael Gaffney 3a64fb3d58 feat(sql): Add history tables for static credentials
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.
2023-05-31 12:18:18 +00:00
Todd 386eac072c Add recording_channel_ssh_aggregate view 2023-05-31 12:18:18 +00:00
Johan Brandhorst-Satzkorn 11893a8885 db: add state and error_details to recording 2023-05-31 12:18:17 +00:00