Files
threshold/internal/authtoken/query.go
T
Johan Brandhorst-Satzkorn b6c2e900ba internal/authtoken: join to auth_account to filter (#4198)
Instead of doing the scope_id filtering in the second CTE,
join the auth_account table to the auth_token table
in the query directly.
2024-01-05 07:43:21 -08:00

87 lines
2.5 KiB
Go

// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: BUSL-1.1
package authtoken
const (
estimateCountAuthTokens = `
select reltuples::bigint as estimate from pg_class where oid in ('auth_token'::regclass)
`
listAuthTokensTemplate = `
select at.public_id,
at.auth_account_id,
aa.scope_id,
aa.auth_method_id,
aa.iam_user_id,
aa.iam_user_scope_id,
at.create_time,
at.update_time,
at.approximate_last_access_time,
at.expiration_time,
at.status
from auth_token at
join auth_account aa on aa.public_id = at.auth_account_id
where aa.scope_id in @scope_ids
order by at.create_time desc, at.public_id desc
limit %d;
`
listAuthTokensPageTemplate = `
select at.public_id,
at.auth_account_id,
aa.scope_id,
aa.auth_method_id,
aa.iam_user_id,
aa.iam_user_scope_id,
at.create_time,
at.update_time,
at.approximate_last_access_time,
at.expiration_time,
at.status
from auth_token at
join auth_account aa on aa.public_id = at.auth_account_id
where aa.scope_id in @scope_ids
and (at.create_time, at.public_id) < (@last_item_create_time, @last_item_id)
order by at.create_time desc, at.public_id desc
limit %d;
`
refreshAuthTokensTemplate = `
select at.public_id,
at.auth_account_id,
aa.scope_id,
aa.auth_method_id,
aa.iam_user_id,
aa.iam_user_scope_id,
at.create_time,
at.update_time,
at.approximate_last_access_time,
at.expiration_time,
at.status
from auth_token at
join auth_account aa on aa.public_id = at.auth_account_id
where aa.scope_id in @scope_ids
and at.update_time > @updated_after_time
order by at.update_time desc, at.public_id desc
limit %d;
`
refreshAuthTokensPageTemplate = `
select at.public_id,
at.auth_account_id,
aa.scope_id,
aa.auth_method_id,
aa.iam_user_id,
aa.iam_user_scope_id,
at.create_time,
at.update_time,
at.approximate_last_access_time,
at.expiration_time,
at.status
from auth_token at
join auth_account aa on aa.public_id = at.auth_account_id
where aa.scope_id in @scope_ids
and at.update_time > @updated_after_time
and (at.update_time, at.public_id) < (@last_item_update_time, @last_item_id)
order by at.update_time desc, at.public_id desc
limit %d;
`
)