diff --git a/apps/api/app/main.py b/apps/api/app/main.py index c6b2f60..52fd634 100644 --- a/apps/api/app/main.py +++ b/apps/api/app/main.py @@ -1547,6 +1547,8 @@ class ApiHandler(BaseHTTPRequestHandler): if requested == 'google_browser_search' and bool(payload.get('enabled', False)) and os.environ.get('GOOGLE_BROWSER_SEARCH_ENABLED', '').strip().lower() != 'true': return self.send_json(409,{"error":"source_feature_disabled","detail":"GOOGLE_BROWSER_SEARCH_ENABLED=true is required"}) if contains_secret(config):return self.send_json(400,{"error":"secret_not_permitted"}) if any(field in config for field in DISCOVERY_CRITERIA_FIELDS):return self.send_json(400,{"error":"source_configuration_contains_criteria"}) + # The dashboard exposes the human-readable terms status; keep the + # adapter's explicit acceptance gate synchronized with that policy. if config.get('terms_status') == 'approved' and 'terms_accepted' not in config: config = dict(config); config['terms_accepted'] = True policy = payload.get('policy', {}) if isinstance(payload.get('policy', {}), dict) else {}