@@ -1362,6 +1362,7 @@ class ApiHandler(BaseHTTPRequestHandler):
|
||||
item=row_json(raw); meta=adapter_meta.get(item.get("source_code") or item.get("kind"), {})
|
||||
try: config=json.loads(raw["config_json"] or "{}")
|
||||
except (TypeError,ValueError): config={}
|
||||
if not meta and config.get("provider"): meta=adapter_meta.get(str(config.get("provider")).lower(), {})
|
||||
try: policy=json.loads(raw["policy_json"] or "{}")
|
||||
except (TypeError,ValueError): policy={}
|
||||
credential_exists = bool(db.execute("SELECT 1 FROM source_credentials WHERE source_id=? AND organization_id=? AND provider=? AND key_name=?", (raw["id"], org, "google_places", "api_key")).fetchone())
|
||||
@@ -1402,7 +1403,7 @@ class ApiHandler(BaseHTTPRequestHandler):
|
||||
name=str(payload.get('name','')).strip(); requested=str(payload.get('source_code') or payload.get('kind','')).strip().lower(); config=payload.get('config',{})
|
||||
provider_kinds={'openstreetmap','wikidata','common_crawl'}
|
||||
kind='approved_directory' if requested in provider_kinds else requested
|
||||
source_code=requested
|
||||
source_code=str(config.get('provider','')).strip().lower() if requested == 'approved_directory' and str(config.get('provider','')).strip().lower() in {'openstreetmap','wikidata','common_crawl'} else requested
|
||||
if not name or requested not in ('csv','manual','google_places','bing_local','approved_directory','openstreetmap','wikidata','common_crawl','public_website','permitted_social','ct_logs','dns','rdap') or not isinstance(config,dict):return self.send_json(400,{"error":"invalid_source"})
|
||||
if contains_secret(config):return self.send_json(400,{"error":"secret_not_permitted"})
|
||||
try:
|
||||
|
||||
@@ -418,4 +418,4 @@ def available_adapters() -> list[dict[str, object]]:
|
||||
"available": bool(getattr(cls, "available", False)),
|
||||
"optional": bool(getattr(cls, "optional", False)),
|
||||
"requires_credentials": bool(getattr(cls, "requires_credentials", False))}
|
||||
for cls in ADAPTERS.values()]
|
||||
for cls in ADAPTERS.values() if cls.source_code != "approved_directory"]
|
||||
|
||||
Reference in New Issue
Block a user