Patrole
This is the page you're already on — the Human View toggle above shows it in full.
A green key on the record, left, is one Decision Insights added. It doesn't exist on the company's site or in a wire feed. The same key labels its row on the right, so you can match them directly. More on how DI enriches a record.
This is what the machine sees: the exact JSON-LD an agent receives for this listing.
{
"@context": "https://schema.org",
"@id": "https://decisioninsights.ai/#website",
"@type": "WebSite",
"name": "Decision Insights",
"potentialAction": {
"@type": "SearchAction",
"target": {
"@type": "EntryPoint",
"urlTemplate": "https://decisioninsights.ai/search/?q={search_term_string}\u0026submit=1"
}
},
"publisher": {
"@id": "https://decisioninsights.ai/#organization"
},
"url": "https://decisioninsights.ai"
}
{
"@context": "https://schema.org",
"@id": "https://decisioninsights.ai/#organization",
"@type": "Organization",
"contactPoint": {
"@type": "ContactPoint",
"contactType": "customer support",
"email": "[email protected]"
},
"description": "Decision Insights is a Registry of technology companies, open source projects, and industry terms, built for people and for AI agents that need sourced, structured information.",
"logo": {
"@type": "ImageObject",
"url": "https://wiretap-cdn-assets.nyc3.cdn.digitaloceanspaces.com/decision-insights/[email protected]"
},
"name": "Decision Insights",
"parentOrganization": {
"@type": "Organization",
"name": "Wiretap Labs",
"sameAs": [
"https://www.linkedin.com/company/wiretap-labs",
"https://www.crunchbase.com/organization/wiretap-labs"
],
"url": "https://wiretaplabs.com"
},
"publishingPrinciples": "https://decisioninsights.ai/standards/",
"sameAs": [
"https://www.linkedin.com/company/decisioninsights"
],
"url": "https://decisioninsights.ai"
}
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"item": "https://decisioninsights.ai",
"name": "Decision Insights",
"position": 1
},
{
"@type": "ListItem",
"item": "https://decisioninsights.ai/registry/",
"name": "Registry",
"position": 2
},
{
"@type": "ListItem",
"item": "https://decisioninsights.ai/projects/",
"name": "Projects",
"position": 3
},
{
"@type": "ListItem",
"item": "https://decisioninsights.ai/registry/open-infrastructure-foundation/",
"name": "Open Infrastructure Foundation",
"position": 4
},
{
"@type": "ListItem",
"item": "https://decisioninsights.ai/projects/patrole/",
"name": "Patrole",
"position": 5
}
]
}
{
"@context": "https://schema.org",
"@id": "https://decisioninsights.ai/projects/patrole/#project",
"@type": "SoftwareSourceCode",
"additionalProperty": [
{
"@type": "PropertyValue",
"name": "Related projects",
"propertyID": "https://decisioninsights.ai/ns#relatedProjects",
"value": [
{
"@id": "https://decisioninsights.ai/projects/tempest/#project",
"@type": "SoftwareSourceCode",
"mainEntityOfPage": "https://decisioninsights.ai/projects/tempest/",
"name": "Tempest"
},
{
"@id": "https://decisioninsights.ai/projects/openstack-keystone/#project",
"@type": "SoftwareSourceCode",
"mainEntityOfPage": "https://decisioninsights.ai/projects/openstack-keystone/",
"name": "OpenStack Keystone"
},
{
"@id": "https://decisioninsights.ai/projects/openstack-barbican/#project",
"@type": "SoftwareSourceCode",
"mainEntityOfPage": "https://decisioninsights.ai/projects/openstack-barbican/",
"name": "OpenStack Barbican"
},
{
"@id": "https://decisioninsights.ai/projects/openstack-rally/#project",
"@type": "SoftwareSourceCode",
"mainEntityOfPage": "https://decisioninsights.ai/projects/openstack-rally/",
"name": "OpenStack Rally"
},
{
"@id": "https://decisioninsights.ai/projects/openstack/#project",
"@type": "SoftwareSourceCode",
"mainEntityOfPage": "https://decisioninsights.ai/projects/openstack/",
"name": "OpenStack"
},
{
"@id": "https://decisioninsights.ai/projects/paralus/#project",
"@type": "SoftwareSourceCode",
"mainEntityOfPage": "https://decisioninsights.ai/projects/paralus/",
"name": "Paralus"
},
{
"@id": "https://decisioninsights.ai/projects/openstack-congress/#project",
"@type": "SoftwareSourceCode",
"mainEntityOfPage": "https://decisioninsights.ai/projects/openstack-congress/",
"name": "OpenStack Congress"
},
{
"@id": "https://decisioninsights.ai/projects/openstack-mistral/#project",
"@type": "SoftwareSourceCode",
"mainEntityOfPage": "https://decisioninsights.ai/projects/openstack-mistral/",
"name": "OpenStack Mistral"
}
]
},
{
"@type": "PropertyValue",
"name": "Related organizations",
"propertyID": "https://decisioninsights.ai/ns#relatedOrganizations",
"value": [
{
"@id": "https://decisioninsights.ai/registry/descope/#organization",
"@type": "Organization",
"mainEntityOfPage": "https://decisioninsights.ai/registry/descope/",
"name": "Descope"
},
{
"@id": "https://decisioninsights.ai/registry/applied-insight/#organization",
"@type": "Organization",
"mainEntityOfPage": "https://decisioninsights.ai/registry/applied-insight/",
"name": "Applied Insight"
},
{
"@id": "https://decisioninsights.ai/registry/openid-foundation/#organization",
"@type": "Organization",
"mainEntityOfPage": "https://decisioninsights.ai/registry/openid-foundation/",
"name": "OpenID Foundation (OIDF)"
},
{
"@id": "https://decisioninsights.ai/registry/ory/#organization",
"@type": "Organization",
"mainEntityOfPage": "https://decisioninsights.ai/registry/ory/",
"name": "Ory"
},
{
"@id": "https://decisioninsights.ai/registry/cequence-security/#organization",
"@type": "Organization",
"mainEntityOfPage": "https://decisioninsights.ai/registry/cequence-security/",
"name": "Cequence Security"
},
{
"@id": "https://decisioninsights.ai/registry/immuniweb/#organization",
"@type": "Organization",
"mainEntityOfPage": "https://decisioninsights.ai/registry/immuniweb/",
"name": "ImmuniWeb"
},
{
"@id": "https://decisioninsights.ai/registry/microblink/#organization",
"@type": "Organization",
"mainEntityOfPage": "https://decisioninsights.ai/registry/microblink/",
"name": "Microblink"
},
{
"@id": "https://decisioninsights.ai/registry/openapi-initiative/#organization",
"@type": "Organization",
"mainEntityOfPage": "https://decisioninsights.ai/registry/openapi-initiative/",
"name": "OpenAPI Initiative"
}
]
}
],
"author": {
"@id": "https://decisioninsights.ai/registry/open-infrastructure-foundation/#organization",
"@type": "Organization",
"mainEntityOfPage": "https://decisioninsights.ai/registry/open-infrastructure-foundation/",
"name": "Open Infrastructure Foundation"
},
"dateModified": "2026-08-27T03:10:32Z",
"description": "Patrole is an OpenStack Tempest plugin for automated RBAC and policy validation testing across OpenStack APIs.",
"keywords": [
"Open Source",
"Access Control",
"Authorization",
"Compliance",
"Continuous Integration",
"JSON",
"Services"
],
"knowsAbout": [
{
"@id": "https://decisioninsights.ai/term/cybersecurity/#definedterm",
"@type": "DefinedTerm",
"mainEntityOfPage": "https://decisioninsights.ai/term/cybersecurity/",
"name": "Cybersecurity"
},
{
"@id": "https://decisioninsights.ai/term/access-control/#definedterm",
"@type": "DefinedTerm",
"mainEntityOfPage": "https://decisioninsights.ai/term/access-control/",
"name": "Access Control"
},
{
"@id": "https://decisioninsights.ai/term/authorization/#definedterm",
"@type": "DefinedTerm",
"mainEntityOfPage": "https://decisioninsights.ai/term/authorization/",
"name": "Authorization"
},
{
"@id": "https://decisioninsights.ai/term/compliance/#definedterm",
"@type": "DefinedTerm",
"mainEntityOfPage": "https://decisioninsights.ai/term/compliance/",
"name": "Compliance"
},
{
"@id": "https://decisioninsights.ai/term/continuous-integration-ci/#definedterm",
"@type": "DefinedTerm",
"mainEntityOfPage": "https://decisioninsights.ai/term/continuous-integration-ci/",
"name": "Continuous Integration"
},
{
"@id": "https://decisioninsights.ai/term/json/#definedterm",
"@type": "DefinedTerm",
"mainEntityOfPage": "https://decisioninsights.ai/term/json/",
"name": "JSON"
},
{
"@id": "https://decisioninsights.ai/term/services/#definedterm",
"@type": "DefinedTerm",
"mainEntityOfPage": "https://decisioninsights.ai/term/services/",
"name": "Services"
}
],
"mainEntityOfPage": "https://decisioninsights.ai/projects/patrole/",
"maintainer": {
"@id": "https://decisioninsights.ai/registry/open-infrastructure-foundation/#organization",
"@type": "Organization",
"mainEntityOfPage": "https://decisioninsights.ai/registry/open-infrastructure-foundation/",
"name": "Open Infrastructure Foundation"
},
"name": "Patrole",
"publisher": {
"@id": "https://decisioninsights.ai/registry/open-infrastructure-foundation/#organization",
"@type": "Organization",
"mainEntityOfPage": "https://decisioninsights.ai/registry/open-infrastructure-foundation/",
"name": "Open Infrastructure Foundation"
},
"url": "https://docs.openstack.org/patrole/"
}
Topic graph
A wire service tags a release with a category, once. It doesn't maintain a durable graph over time. We connect them to a topic graph an agent can query.
Counted facts
A protocol or open source project keeps no vendor list and publishes no figures of its own to check this against. This counts how it actually shows up across the graph -- articles that name it, the organizations named alongside it in those articles, similar projects, and organizations whose topic tags overlap with its own -- computed, not curated.