Add OpenCorporates collector for org targets, gated on an API token
Closes the last coverage gap for org (person remains intentionally unaddressed — no good free/non-scraping option exists). Unlike the other 8 sources, OpenCorporates now requires an API token even on its free tier (confirmed: keyless request gets 401). RunnerRegistry::has() checks services.opencorporates.token is configured before exposing the source as runnable, so it degrades to "not yet integrated" in the UI rather than a broken Run button, until OPENCORPORATES_API_TOKEN is set. Also fixes a real bug hit while building this: a RunnerRegistry::REQUIRES class constant mapping source key to a closure crashed on file load (PHP class constants can't hold closures) — inlined the one check instead of building an abstraction for a single case. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
86f73c46b2
commit
dc4388eabf
@@ -7,6 +7,7 @@ use App\Osint\Runners\DnsRunner;
|
||||
use App\Osint\Runners\GravatarRunner;
|
||||
use App\Osint\Runners\HoleheRunner;
|
||||
use App\Osint\Runners\IpApiRunner;
|
||||
use App\Osint\Runners\OpenCorporatesRunner;
|
||||
use App\Osint\Runners\SherlockRunner;
|
||||
use App\Osint\Runners\TheHarvesterRunner;
|
||||
use App\Osint\Runners\WhoisRunner;
|
||||
@@ -29,11 +30,23 @@ class RunnerRegistry
|
||||
'holehe' => HoleheRunner::class,
|
||||
'gravatar' => GravatarRunner::class,
|
||||
'dns' => DnsRunner::class,
|
||||
'opencorporates' => OpenCorporatesRunner::class,
|
||||
];
|
||||
|
||||
public function has(string $sourceKey): bool
|
||||
{
|
||||
return isset(self::RUNNERS[$sourceKey]);
|
||||
if (! isset(self::RUNNERS[$sourceKey])) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// OpenCorporates additionally needs an API token configured before
|
||||
// it's actually runnable — otherwise it's hidden rather than shown
|
||||
// as a broken "Run" button that always fails.
|
||||
if ($sourceKey === 'opencorporates') {
|
||||
return filled(config('services.opencorporates.token'));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public function resolve(string $sourceKey): Runner
|
||||
|
||||
Reference in New Issue
Block a user