Jeff Mitchell
3a9903a836
Don't attempt session teardown if the session is expired ( #3312 )
...
This avoids a situation where teardown results in an error due to the
worker not accepting the connection (since the credentials are invalid).
Teardown is a best-effort way to avoid sessions that have long lifetimes
ending up having to wait for expiration before cleanup, but if we're
near expiration it doesn't really matter.
Fixes ICU-9633
2023-06-14 21:55:24 -04:00
Jeff Mitchell
8322916fb4
Remove all deprecated Err/Wrap/E calls ( #3286 )
2023-06-14 21:55:24 -04:00
Jeff Mitchell
feb3aea38f
Support multiple IDs in grants ( #3263 )
...
This allows specifying multiple IDs in grants via an `ids` field, which
will eventually become the normal way to specify IDs. Internally, each
grant with multiple IDs turns into multiple ACL grants each with a
single ID; to make this distinction clearer and allow for better
separation of concerns an AclGrant type has been introduced, so really
multiple IDs in a Grant turn into multiple AclGrants.
The nice thing about doing it this way is that it becomes purely a
parsing concern; no actual validation logic has changed.
For backwards compatibility with grants already stored in roles, we do
not error out if `id` is specified. However, eventually we will simply
not support grants with `id` coming via the API; they will fail API
validation, such that new grants will require the use of the updated
`ids` field.
A follow-on PR will plumb this through the service handlers/API/CLI, but
I decided to do it in separate chunks to make reviewing easier, given
that they are easily separable into the internal and external aspects of
the change.
* Add CLI/API checks around using ID in grants (#3264 )
* Plumb through some contexts to remove a lot of deprecated errors (#3268 )
2023-06-14 21:55:24 -04:00
Dan Heath
8acc73dc6e
docs: Add bsr key to requirements ( #3330 )
...
* docs: Add bsr key to requirements
* docs: Rewrite for clarity
* docs: Add bsr key definition to security page
2023-06-14 15:58:24 -04:00
Michael Li
5f2f6ca6ca
test: Set worker config to a variable ( #3324 )
2023-06-14 13:44:08 -04:00
PPacent
d15f3cec88
Update system-requirements.mdx ( #3327 )
...
Clarify Postgres version recommendation
2023-06-14 12:55:16 -04:00
Irena Rindos and Dan Heath
c0538bd074
docs: Update storage bucket worker requirement ( #3320 )
...
* docs: Update storage bucket worker requirement
* docs: Minor copy edits
---------
Co-authored-by: Dan Heath <76443935+Dan-Heath@users.noreply.github.com >
2023-06-14 11:18:20 -04:00
Michael Li
4f1552abde
chore: Add check for go mod tidy ( #3321 )
2023-06-13 14:33:26 -04:00
Dan Heath
2e8cd853a5
docs: Fix display issue with code blocks ( #3314 )
2023-06-13 05:11:42 -04:00
PPacent and Dan Heath
4db4fae949
Updates to 'what is Boundary?' ( #3315 )
...
* Updates to 'what is Boundary?'
* Typo fixes
* simplifying edits
* Update website/content/docs/overview/what-is-boundary.mdx
Co-authored-by: Dan Heath <76443935+Dan-Heath@users.noreply.github.com >
* Update website/content/docs/overview/what-is-boundary.mdx
Co-authored-by: Dan Heath <76443935+Dan-Heath@users.noreply.github.com >
* Update website/content/docs/overview/what-is-boundary.mdx
Co-authored-by: Dan Heath <76443935+Dan-Heath@users.noreply.github.com >
* Update website/content/docs/overview/what-is-boundary.mdx
Co-authored-by: Dan Heath <76443935+Dan-Heath@users.noreply.github.com >
---------
Co-authored-by: Dan Heath <76443935+Dan-Heath@users.noreply.github.com >
2023-06-13 01:49:41 -07:00
Michael Gaffney
f98167fd2a
doc(changelog): Add 0.13 release
2023-06-13 00:53:40 -07:00
2179af63cb
Hashidays Docs ( #3313 )
...
docs: add 0.13 feature docs
---------
Co-authored-by: Dan Heath <76443935+Dan-Heath@users.noreply.github.com >
Co-authored-by: Jeff Malnick <malnick@gmail.com >
Co-authored-by: Michael Li <michael.li@hashicorp.com >
Co-authored-by: Irena Rindos <irenarindos@users.noreply.github.com >
Co-authored-by: Johan Brandhorst-Satzkorn <johan.brandhorst@gmail.com >
Co-authored-by: XingLu Wang <95828202+xingluw@users.noreply.github.com >
Co-authored-by: Jeff Mitchell <jeffrey.mitchell@gmail.com >
2023-06-12 23:53:27 -07:00
Louis Ruch
0a921beb42
chore: Add DHC changelog entry
2023-06-12 16:28:30 -07:00
Michael Gaffney
fda1a0b572
doc(changelog): Add LDAP auth method
2023-06-12 17:53:39 -04:00
Mark Collao
23bc0782ea
chore: update security-scanner workflow runner ( #3309 )
2023-06-12 16:07:55 -05:00
Michael Gaffney
531f7cf449
changelog: reorder sections
2023-06-12 17:01:03 -04:00
Cameron Perera
4ad2d5664e
chore: update CHANGELOG with UI changes ( #3307 )
...
* chore: update CHANGELOG with UI changes
* chore: include UI bug fixes
2023-06-12 15:04:28 -05:00
Timothy Messier
2d81103ef5
doc(docker): Separate docker.io readme contents from directory readme ( #3308 )
...
This moves the contents of the readme used for hashicorp/boundary on
docker.io/registry.hub.docker.com to a separate readme file from the one that
documents how to build docker images. It also makes some minor fixups
and updates the docker.io readme, must notably updating the minimum
version of postgres that boundary requires.
2023-06-12 15:31:27 -04:00
Jeff Mitchell
8b7d063a6d
Revert "Add multiple IDs in changelog"
...
This reverts commit c4f8a77ad8 .
2023-06-12 14:11:30 -04:00
Jeff Mitchell
c4f8a77ad8
Add multiple IDs in changelog
2023-06-12 14:03:11 -04:00
XingLu Wang and Dan Heath
2ebae57b9e
IAM New Docs ( #3201 )
...
* IAM docs
* added diagram
* Apply suggestions from code review
Co-authored-by: Dan Heath <76443935+Dan-Heath@users.noreply.github.com >
* Apply suggestions from code review
Co-authored-by: Dan Heath <76443935+Dan-Heath@users.noreply.github.com >
* Apply suggestions from code review
* Apply suggestions from code review
* Updates to IAM docs
* Update iam.mdx
* docs: Markdown syntax fixes
* Apply suggestions from code review
Co-authored-by: Dan Heath <76443935+Dan-Heath@users.noreply.github.com >
---------
Co-authored-by: Dan Heath <76443935+Dan-Heath@users.noreply.github.com >
2023-06-12 16:05:36 +02:00
XingLu Wang and Dan Heath
4fc872fc15
Restructuring and addition to permissions docs ( #3270 )
...
* docs: Create grants topic
* Update grants
* Restructuring of permissions docs
* Fixing links
Co-authored-by: Dan Heath <76443935+Dan-Heath@users.noreply.github.com >
* Update website/content/docs/concepts/security/permissions/index.mdx
* Update website/content/docs/concepts/security/permissions/index.mdx
* Update website/content/docs/concepts/security/permissions/advanced.mdx
* Apply suggestions from code review
Co-authored-by: Dan Heath <76443935+Dan-Heath@users.noreply.github.com >
* Apply suggestions from code review
Co-authored-by: Dan Heath <76443935+Dan-Heath@users.noreply.github.com >
* Apply suggestions from code review
Co-authored-by: Dan Heath <76443935+Dan-Heath@users.noreply.github.com >
* docs: Add redirect for deleted file
---------
Co-authored-by: Dan Heath <76443935+Dan-Heath@users.noreply.github.com >
2023-06-12 10:04:43 -04:00
Johan Brandhorst-Satzkorn
888349c99f
website: add separate note about worker tags ( #3306 )
...
Using worker tags in expressions can be confusing, this adds
a note to make it clear how to match values in tags.
2023-06-12 09:15:40 -04:00
Louis Ruch
6eb1c9919f
chore: update sdk/api deps
2023-06-09 16:42:30 -07:00
Timothy Messier
837734b745
test(bsr/fstest): Add new FS for testing out of space errors ( #3305 )
...
This provides a new storage.FS implementation that expands the on
fstest.MemFS by allowing tests to mark the filesystem as out of space.
When this happens any write/create operation will start returning an
error indicating that the filesystem is out of space.
2023-06-09 16:32:24 -04:00
Dharini Jeeva
f7823d3f71
ui changes ( #3304 )
2023-06-09 11:47:20 -07:00
Michael Milton
7820af3924
rename optout to lurEnabled for clarity ( #3303 )
2023-06-09 12:41:12 -04:00
Jeff Mitchell
929ede1c18
Modify some tests to expose error cases that weren't being exposed ( #3302 )
2023-06-09 11:13:15 -04:00
Johan Brandhorst-Satzkorn
e4f49e1bb0
api: add classification to session recordings ( #3300 )
2023-06-08 23:01:39 -07:00
Todd
8980143278
Allow kms purpose "downstream-worker-auth" ( #3299 )
2023-06-08 15:41:49 -07:00
Jeff Mitchell
74e8491f85
Disallow updates on all types of KMS workers ( #3295 )
...
This also slightly changes delete logic and ensures authorized actions
match what is allowable.
2023-06-08 12:17:45 -04:00
Johan Brandhorst-Satzkorn
ebcd6d2828
api: remove connection ID ( #3298 )
...
Removing this until we figure out why it's sometimes missing.
May add it back again later.
2023-06-08 09:15:12 -07:00
Timothy Messier
fe7c87dc82
feat(bsr/ssh): Add open failure details to ChannelSummary ( #3297 )
2023-06-08 11:17:32 -04:00
Cameron Perera
eaaaae5cce
chore: bump ui commit ( #3296 )
2023-06-07 16:28:11 -07:00
Todd
5a68d789ec
Initialize base context when creating New worker and not at start ( #3294 )
2023-06-07 11:42:16 -07:00
Johan Brandhorst-Satzkorn
43f3c6bd68
Upgrade Go version to 1.20.5 ( #3293 )
...
Go 1.20.5 contains security fixes for the runtime and the compiler
2023-06-07 10:09:43 -07:00
XingLu Wang and Dan Heath
1628fcf01f
Worker docs cleanup for 0.13 ( #3292 )
...
* Worker docs cleanup
* Apply suggestions from code review
Co-authored-by: Dan Heath <76443935+Dan-Heath@users.noreply.github.com >
* Update pki-worker.mdx
* Update website/content/docs/configuration/worker/pki-worker.mdx
---------
Co-authored-by: Dan Heath <76443935+Dan-Heath@users.noreply.github.com >
2023-06-06 15:14:31 -07:00
Timothy Messier
f7386a5d53
Merge pull request #3280 from hashicorp/tmessi-fix-session-list
...
fix(session): List performance with large number of session connections
This includes the backported migration and a migration to ensure the next
release has the correct view.
2023-06-06 14:34:15 -04:00
Michael Milton
fbf56793c6
Add snapshot job ( #3282 )
...
* snapshot job
* update census to include context, controller to include snapshot registry
* no need to export runFn in snapshot
2023-06-06 14:26:01 -04:00
Timothy Messier
603642f271
fix(session): List performance with large number of session connections ( #3288 )
...
As part of the performance improvements for listing sessions for v0.9.0,
the view used to retrieve sessions for listing was updated to no longer
include a join on session_connection. However, a later migration that
was adding additional columns to this view inadvertently re-added the
join and session_connection columns. This resulted in requests to list
sessions performing this join, and returning additional rows for each
connection in a session. The application would ignore this additional
data, since it is no longer returned via the API. This would be
particularly impactful in cases where there are a large number of
connections per session, as this would greatly increase the amount of
data returned by the database.
This fix removes the session_connection join from this view, which
should restore the original performance improvements even in cases where
there is a large number of session connections per session.
See: https://github.com/hashicorp/boundary/pull/2160
Ref: 32070678dc
Fixes: 1e3c941be1
(cherry picked from commit 7aef341682e65b42c1b919e03936bdf81e26e87c)
2023-06-06 17:45:53 +00:00
Timothy Messier
876f9bb07f
fix(session): List performance with large number of session connections
...
As part of the performance improvements for listing sessions for v0.9.0,
the view used to retrieve sessions for listing was updated to no longer
include a join on session_connection. However, a later migration that
was adding additional columns to this view inadvertently re-added the
join and session_connection columns. This resulted in requests to list
sessions performing this join, and returning additional rows for each
connection in a session. The application would ignore this additional
data, since it is no longer returned via the API. This would be
particularly impactful in cases where there are a large number of
connections per session, as this would greatly increase the amount of
data returned by the database.
This fix removes the session_connection join from this view, which
should restore the original performance improvements even in cases where
there is a large number of session connections per session.
See: https://github.com/hashicorp/boundary/pull/2160
Ref: 32070678dc
Fixes: 1e3c941be1
2023-06-06 17:45:30 +00:00
Timothy Messier
7e094d824f
feat(bsr/convert): Remove asciicast minimum window size ( #3287 )
...
This removes the minimum on width and height, instead it will just used
the largest width, height seen as the initial size for the asciicast.
This also provides the ability to still set a minimum via options to
convert.ToAsciicast if the caller has a known minimum size. Also note
that in cases where there is no size information, ie if there was no pty
request, this will still pick a default size of 80x24.
2023-06-06 12:26:46 -04:00
Jim
330c5cca22
chore (CHANGELOG): add entry for resource listing fix PR #3278 ( #3289 )
2023-06-06 11:44:42 -04:00
Jim
d6c6d428ff
chore: update go-dbw dep, required a few other deps as well. ( #3284 )
2023-06-05 17:39:48 -04:00
Louis Ruch
99a4c1f781
chore: update sdk/api deps
2023-06-05 14:21:03 -07:00
Michael Gaffney
3a9439a4e9
docs: Fix markdown in SQL style guide
2023-06-05 15:30:43 -04:00
Michael Gaffney
99a8777866
fix(db): Add index to session connection table
...
This index improves the performance for two queries on the
`session_connection` table. The execution time for the first query went
from 40.105 ms to 1.405 ms. The execution time for the second query went
from 13.808 ms to 0.217 ms.
Query 1 explain plan before index:
Update on session_connection (cost=6465.17..6557.68 rows=11 width=50) (actual time=38.868..39.147 rows=3 loops=1)
-> Nested Loop (cost=6465.17..6557.68 rows=11 width=50) (actual time=38.471..38.506 rows=3 loops=1)
-> HashAggregate (cost=6464.75..6464.86 rows=11 width=40) (actual time=38.447..38.450 rows=3 loops=1)
Group Key: (session_connection_1.public_id)::text
Batches: 1 Memory Usage: 24kB
-> Nested Loop Semi Join (cost=0.42..6464.72 rows=11 width=40) (actual time=29.184..38.434 rows=3 loops=1)
-> Seq Scan on session_connection session_connection_1 (cost=0.00..6329.38 rows=16 width=20) (actual time=15.744..38.014 rows=23 loops=1)
Filter: ((worker_id)::text = 'w__________k'::text)
Rows Removed by Filter: 163607
-> Index Scan using session_connection_state_connection_id_end_time_key on session_connection_state (cost=0.42..8.45 rows=1 width=20) (actual time=0.016..0.016 rows=0 loops=23)
Index Cond: (((connection_id)::text = (session_connection_1.public_id)::text) AND (end_time IS NULL))
Filter: ((state = ANY ('{authorized,connected}'::text[])) AND (start_time < (CURRENT_TIMESTAMP - '00:00:05'::interval)))
Rows Removed by Filter: 1
-> Index Scan using session_connection_pkey on session_connection (cost=0.42..8.44 rows=1 width=20) (actual time=0.016..0.016 rows=1 loops=3)
Index Cond: ((public_id)::text = (session_connection_1.public_id)::text)
Planning Time: 0.793 ms
Trigger immutable_columns: time=0.474 calls=3
Trigger update_connection_state_on_closed_reason: time=0.159 calls=3
Trigger update_time_column: time=0.034 calls=3
Trigger update_version_column: time=0.041 calls=3
Trigger wh_update_session_connection: time=0.688 calls=3
Execution Time: 40.105 ms
Query 1 explain plan after index:
Update on session_connection (cost=152.71..219.87 rows=8 width=50) (actual time=0.497..0.683 rows=3 loops=1)
-> Nested Loop (cost=152.71..219.87 rows=8 width=50) (actual time=0.266..0.292 rows=3 loops=1)
-> HashAggregate (cost=152.29..152.37 rows=8 width=40) (actual time=0.256..0.258 rows=3 loops=1)
Group Key: (session_connection_1.public_id)::text
Batches: 1 Memory Usage: 24kB
-> Nested Loop Semi Join (cost=4.94..152.27 rows=8 width=40) (actual time=0.199..0.251 rows=3 loops=1)
-> Bitmap Heap Scan on session_connection session_connection_1 (cost=4.51..50.76 rows=12 width=20) (actual time=0.017..0.035 rows=10 loops=1)
Recheck Cond: ((worker_id)::text = 'w__________k'::text)
Heap Blocks: exact=9
-> Bitmap Index Scan on session_connection_worker_id_closed_reason_ix (cost=0.00..4.51 rows=12 width=0) (actual time=0.011..0.011 rows=10 loops=1)
Index Cond: ((worker_id)::text = 'w__________k'::text)
-> Index Scan using session_connection_state_connection_id_end_time_key on session_connection_state (cost=0.42..8.45 rows=1 width=20) (actual time=0.021..0.021 rows=0 loops=10)
Index Cond: (((connection_id)::text = (session_connection_1.public_id)::text) AND (end_time IS NULL))
Filter: ((state = ANY ('{authorized,connected}'::text[])) AND (start_time < (CURRENT_TIMESTAMP - '00:00:05'::interval)))
Rows Removed by Filter: 1
-> Index Scan using session_connection_pkey on session_connection (cost=0.42..8.44 rows=1 width=20) (actual time=0.010..0.010 rows=1 loops=3)
Index Cond: ((public_id)::text = (session_connection_1.public_id)::text)
Planning Time: 0.614 ms
Trigger immutable_columns: time=0.279 calls=3
Trigger update_connection_state_on_closed_reason: time=0.185 calls=3
Trigger update_time_column: time=0.027 calls=3
Trigger update_version_column: time=0.032 calls=3
Trigger wh_update_session_connection: time=0.450 calls=3
Execution Time: 1.405 ms
Query 2 explain plan before index:
Limit (cost=1002.40..6147.94 rows=1 width=253) (actual time=12.244..13.726 rows=1 loops=1)
-> Nested Loop Left Join (cost=1002.40..6147.93 rows=1 width=253) (actual time=12.243..13.724 rows=1 loops=1)
Join Filter: ((w.public_id)::text = (session_connection.worker_id)::text)
CTE worker_config_tags
-> GroupAggregate (cost=1.71..2.26 rows=22 width=59) (actual time=0.044..0.082 rows=22 loops=1)
Group Key: ct_1.worker_id, ct_1.source
-> Sort (cost=1.71..1.77 rows=22 width=49) (actual time=0.031..0.034 rows=22 loops=1)
Sort Key: ct_1.worker_id, ct_1.source
Sort Method: quicksort Memory: 27kB
-> Seq Scan on server_worker_tag ct_1 (cost=0.00..1.22 rows=22 width=49) (actual time=0.007..0.010 rows=22 loops=1)
-> Nested Loop Left Join (cost=0.14..9.28 rows=1 width=245) (actual time=0.106..0.108 rows=1 loops=1)
Join Filter: ((w.public_id)::text = (ct.worker_id)::text)
-> Nested Loop Left Join (cost=0.14..8.72 rows=1 width=213) (actual time=0.103..0.104 rows=1 loops=1)
Join Filter: ((w.public_id)::text = (wt.worker_id)::text)
-> Index Scan using server_worker_pkey on server_worker w (cost=0.14..8.15 rows=1 width=181) (actual time=0.012..0.012 rows=1 loops=1)
Index Cond: ((public_id)::text = 'w__________k'::text)
-> CTE Scan on worker_config_tags wt (cost=0.00..0.55 rows=1 width=64) (actual time=0.090..0.090 rows=0 loops=1)
Filter: (((worker_id)::text = 'w__________k'::text) AND (source = 'api'::text))
Rows Removed by Filter: 22
-> CTE Scan on worker_config_tags ct (cost=0.00..0.55 rows=1 width=64) (actual time=0.001..0.002 rows=1 loops=1)
Filter: (((worker_id)::text = 'w__________k'::text) AND (source = 'configuration'::text))
Rows Removed by Filter: 8
-> GroupAggregate (cost=1000.00..6136.36 rows=1 width=21) (actual time=12.133..13.610 rows=0 loops=1)
Group Key: session_connection.worker_id
-> Gather (cost=1000.00..6136.35 rows=1 width=13) (actual time=12.132..13.608 rows=0 loops=1)
Workers Planned: 2
Workers Launched: 2
-> Parallel Seq Scan on session_connection (cost=0.00..5136.25 rows=1 width=13) (actual time=9.012..9.012 rows=0 loops=3)
Filter: ((closed_reason IS NULL) AND ((worker_id)::text = 'w__________k'::text))
Rows Removed by Filter: 54544
Planning Time: 0.398 ms
Execution Time: 13.808 ms
Query 2 explain plan after index:
Limit (cost=2.82..20.03 rows=1 width=253) (actual time=0.132..0.134 rows=1 loops=1)
-> Nested Loop Left Join (cost=2.82..20.02 rows=1 width=253) (actual time=0.131..0.133 rows=1 loops=1)
Join Filter: ((w.public_id)::text = (session_connection.worker_id)::text)
CTE worker_config_tags
-> GroupAggregate (cost=1.71..2.26 rows=22 width=59) (actual time=0.046..0.086 rows=22 loops=1)
Group Key: ct_1.worker_id, ct_1.source
-> Sort (cost=1.71..1.77 rows=22 width=49) (actual time=0.033..0.035 rows=22 loops=1)
Sort Key: ct_1.worker_id, ct_1.source
Sort Method: quicksort Memory: 27kB
-> Seq Scan on server_worker_tag ct_1 (cost=0.00..1.22 rows=22 width=49) (actual time=0.007..0.011 rows=22 loops=1)
-> Nested Loop Left Join (cost=0.14..9.28 rows=1 width=245) (actual time=0.120..0.120 rows=1 loops=1)
Join Filter: ((w.public_id)::text = (ct.worker_id)::text)
-> Nested Loop Left Join (cost=0.14..8.72 rows=1 width=213) (actual time=0.117..0.118 rows=1 loops=1)
Join Filter: ((w.public_id)::text = (wt.worker_id)::text)
-> Index Scan using server_worker_pkey on server_worker w (cost=0.14..8.15 rows=1 width=181) (actual time=0.011..0.012 rows=1 loops=1)
Index Cond: ((public_id)::text = 'w__________k'::text)
-> CTE Scan on worker_config_tags wt (cost=0.00..0.55 rows=1 width=64) (actual time=0.104..0.105 rows=0 loops=1)
Filter: (((worker_id)::text = 'w__________k'::text) AND (source = 'api'::text))
Rows Removed by Filter: 22
-> CTE Scan on worker_config_tags ct (cost=0.00..0.55 rows=1 width=64) (actual time=0.002..0.002 rows=1 loops=1)
Filter: (((worker_id)::text = 'w__________k'::text) AND (source = 'configuration'::text))
Rows Removed by Filter: 8
-> GroupAggregate (cost=0.42..8.45 rows=1 width=21) (actual time=0.010..0.010 rows=0 loops=1)
Group Key: session_connection.worker_id
-> Index Only Scan using session_connection_worker_id_closed_reason_ix on session_connection (cost=0.42..8.44 rows=1 width=13) (actual time=0.010..0.010 rows=0 loops=1)
Index Cond: ((worker_id = 'w__________k'::text) AND (closed_reason IS NULL))
Heap Fetches: 0
Planning Time: 0.544 ms
Execution Time: 0.217 ms
Closes #3281
2023-06-05 15:22:41 -04:00
Johan Brandhorst-Satzkorn
610df9892b
all: propagate more history metadata ( #3279 )
...
A few target and host properties were missed when reading historical
data from the history tables.
2023-06-05 10:19:11 -07:00
Jim
2b3e50ebdd
fix (listing): return all resources from listing requests ( #3278 )
2023-06-05 12:53:59 -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