Skip to content

Commit cab9c92

Browse files
committed
don't count api keys as users
1 parent 0b08bf4 commit cab9c92

File tree

3 files changed

+15
-6
lines changed

3 files changed

+15
-6
lines changed

backend/danswer/db/auth.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
from danswer.utils.variable_functionality import (
2323
fetch_versioned_implementation_with_fallback,
2424
)
25+
from ee.danswer.db.api_key import get_api_key_email_pattern
2526

2627

2728
def get_default_admin_user_emails() -> list[str]:
@@ -35,12 +36,16 @@ def get_default_admin_user_emails() -> list[str]:
3536
return get_default_admin_user_emails_fn()
3637

3738

38-
def get_total_users(db_session: Session) -> int:
39+
def get_total_users_count(db_session: Session) -> int:
3940
"""
4041
Returns the total number of users in the system.
4142
This is the sum of users and invited users.
4243
"""
43-
user_count = db_session.query(User).count()
44+
user_count = (
45+
db_session.query(User)
46+
.filter(~User.email.endswith(get_api_key_email_pattern()))
47+
.count()
48+
)
4449
invited_users = len(get_invited_users())
4550
return user_count + invited_users
4651

backend/danswer/server/manage/users.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
from danswer.configs.app_configs import SESSION_EXPIRE_TIME_SECONDS
3838
from danswer.configs.app_configs import VALID_EMAIL_DOMAINS
3939
from danswer.configs.constants import AuthType
40-
from danswer.db.auth import get_total_users
40+
from danswer.db.auth import get_total_users_count
4141
from danswer.db.engine import CURRENT_TENANT_ID_CONTEXTVAR
4242
from danswer.db.engine import get_session
4343
from danswer.db.models import AccessToken
@@ -226,7 +226,7 @@ def bulk_invite_users(
226226
try:
227227
logger.info("Registering tenant users")
228228
register_tenant_users(
229-
CURRENT_TENANT_ID_CONTEXTVAR.get(), get_total_users(db_session)
229+
CURRENT_TENANT_ID_CONTEXTVAR.get(), get_total_users_count(db_session)
230230
)
231231
if ENABLE_EMAIL_INVITES:
232232
try:
@@ -262,7 +262,7 @@ def remove_invited_user(
262262
try:
263263
if MULTI_TENANT:
264264
register_tenant_users(
265-
CURRENT_TENANT_ID_CONTEXTVAR.get(), get_total_users(db_session)
265+
CURRENT_TENANT_ID_CONTEXTVAR.get(), get_total_users_count(db_session)
266266
)
267267
except Exception:
268268
logger.error(

backend/ee/danswer/db/api_key.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,12 @@
1717
from ee.danswer.server.api_key.models import APIKeyArgs
1818

1919

20+
def get_api_key_email_pattern() -> str:
21+
return DANSWER_API_KEY_DUMMY_EMAIL_DOMAIN
22+
23+
2024
def is_api_key_email_address(email: str) -> bool:
21-
return email.endswith(f"{DANSWER_API_KEY_DUMMY_EMAIL_DOMAIN}")
25+
return email.endswith(get_api_key_email_pattern())
2226

2327

2428
def fetch_api_keys(db_session: Session) -> list[ApiKeyDescriptor]:

0 commit comments

Comments
 (0)