chore(site_domain): flesh out TODO stubs in legacy lookup routes

Uncommented and completed access_key + referrer handling in
lookup_site_domain_fqdn() and the GET /site/domain/fqdn/{fqdn} route.
These routes are disabled in registry.py and not currently active.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Scott Idem
2026-03-31 14:48:28 -04:00
parent 4629e1ec63
commit 293f447a1c
2 changed files with 34 additions and 16 deletions

View File

@@ -147,8 +147,9 @@ def get_site_domain_rec_list(
# ### BEGIN ### API Site Domain Methods ### lookup_site_domain_fqdn() ### # ### BEGIN ### API Site Domain Methods ### lookup_site_domain_fqdn() ###
def lookup_site_domain_fqdn( def lookup_site_domain_fqdn(
fqdn: str, fqdn: str,
# TODO: Accept access_key as an argument for validation (str|None) # Accept access_key as an argument for validation (str|None)
# access_key: Optional[str] = None, access_key: Optional[str] = None,
referrer: Optional[str] = None,
enabled: str = 'enabled', # enabled, disabled, all enabled: str = 'enabled', # enabled, disabled, all
limit: int = 100, limit: int = 100,
offset: int = 0, offset: int = 0,
@@ -158,22 +159,37 @@ def lookup_site_domain_fqdn(
data = {} data = {}
data['fqdn'] = fqdn data['fqdn'] = fqdn
# TODO: If access_key is provided, add it to the data dict for SQL parameterization # If access_key is provided, add it to the data dict for SQL parameterization
# if access_key is not None: data['domain_access_key'] = access_key
# data['access_key'] = access_key if referrer:
data['required_referrer'] = referrer
sql_enabled, data['enable'] = sql_enable_part(table_name='site_domain', enabled=enabled) # Reasonably safe return str and bool sql_enabled, data['enable'] = sql_enable_part(table_name='site_domain', enabled=enabled) # Reasonably safe return str and bool
sql_limit = sql_limit_offset_part(limit=limit, offset=offset) # Reasonably safe return str sql_limit = sql_limit_offset_part(limit=limit, offset=offset) # Reasonably safe return str
# TODO: Add access_key to WHERE clause if provided, e.g.: # Build access key / referrer SQL similar to router.lookup_fqdn behavior
# WHERE site_domain.fqdn = :fqdn AND (:access_key IS NULL OR site_domain.access_key = :access_key) if access_key and referrer:
sql_access_key_referrer = """
AND site_domain.domain_access_key = :domain_access_key
AND site_domain.required_referrer = :required_referrer
"""
elif access_key:
sql_access_key_referrer = """
AND site_domain.domain_access_key = :domain_access_key
AND (site_domain.required_referrer IS NULL OR site_domain.required_referrer = '')
"""
else:
sql_access_key_referrer = """
AND (site_domain.domain_access_key IS NULL OR site_domain.domain_access_key = '')
AND (site_domain.required_referrer IS NULL OR site_domain.required_referrer = '')
"""
sql = f""" sql = f"""
SELECT `site_domain`.id AS 'site_domain_id', `site_domain`.id_random AS 'site_domain_id_random' SELECT `site_domain`.id AS 'site_domain_id', `site_domain`.id_random AS 'site_domain_id_random'
FROM `v_site_domain` AS site_domain FROM `v_site_domain` AS site_domain
WHERE WHERE
site_domain.fqdn = :fqdn site_domain.fqdn = :fqdn
-- TODO: Add access_key check here for stricter validation {sql_access_key_referrer}
-- AND (:access_key IS NULL OR site_domain.access_key = :access_key)
{sql_enabled} {sql_enabled}
ORDER BY `site_domain`.fqdn ASC, `site_domain`.access_key ASC, `site_domain`.required_referrer ASC, `site_domain`.created_on DESC, `site_domain`.updated_on DESC ORDER BY `site_domain`.fqdn ASC, `site_domain`.access_key ASC, `site_domain`.required_referrer ASC, `site_domain`.created_on DESC, `site_domain`.updated_on DESC
{sql_limit}; {sql_limit};

View File

@@ -77,18 +77,20 @@ async def patch_site_domain_obj(
@router.get('/site/domain/fqdn/{fqdn}', response_model=Resp_Body_Base) @router.get('/site/domain/fqdn/{fqdn}', response_model=Resp_Body_Base)
async def lookup_site_domain_obj( async def lookup_site_domain_obj(
fqdn: str, fqdn: str,
# x_account_id: str = Header(...), # x_account_id: str = Header(...),
# response: Response = Response, # response: Response = Response,
access_key: Optional[str] = Query(None, min_length=4, max_length=50),
commons: Common_Route_Params_Min = Depends(common_route_params_min), referrer: Optional[str] = Query(None, min_length=8, max_length=150),
commons: Common_Route_Params_Min = Depends(common_route_params_min),
): ):
log.setLevel(logging.INFO) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals()) log.debug(locals())
# Updated 2021-12-13
# Updated 2021-12-13
if site_domain_rec_list_result := lookup_site_domain_fqdn( if site_domain_rec_list_result := lookup_site_domain_fqdn(
fqdn = fqdn, fqdn = fqdn,
access_key = access_key,
referrer = referrer,
enabled = commons.enabled, enabled = commons.enabled,
limit = commons.limit, limit = commons.limit,
offset = commons.offset offset = commons.offset