[{"data":1,"prerenderedAt":3957},["ShallowReactive",2],{"navigation":3,"integrations-catalog":158,"mdc-gz383k-key":3944},[4,16,42,64,86,118,141],{"title":5,"path":6,"stem":7,"children":8,"icon":15},"Get started","\u002Fgetting-started","1.getting-started\u002F1.index",[9,11],{"title":10,"path":6,"stem":7},"Quickstart",{"title":12,"path":13,"stem":14},"How Polylane works","\u002Fgetting-started\u002Fhow-it-works","1.getting-started\u002F2.how-it-works",false,{"title":17,"path":18,"stem":19,"children":20,"icon":15},"Connect","\u002Fconnect","2.connect\u002F1.index",[21,22,26,30,34,38],{"title":17,"path":18,"stem":19},{"title":23,"path":24,"stem":25},"Integrations","\u002Fconnect\u002Fintegrations","2.connect\u002F2.integrations",{"title":27,"path":28,"stem":29},"Clouds","\u002Fconnect\u002Fclouds","2.connect\u002F3.clouds",{"title":31,"path":32,"stem":33},"Topology","\u002Fconnect\u002Ftopology","2.connect\u002F4.topology",{"title":35,"path":36,"stem":37},"Repositories","\u002Fconnect\u002Frepositories","2.connect\u002F5.repositories",{"title":39,"path":40,"stem":41},"Memories","\u002Fconnect\u002Fmemories","2.connect\u002F6.memories",{"title":43,"path":44,"stem":45,"children":46,"icon":15},"Detect","\u002Fdetect","3.detect\u002F1.index",[47,48,52,56,60],{"title":43,"path":44,"stem":45},{"title":49,"path":50,"stem":51},"Issues","\u002Fdetect\u002Fissues","3.detect\u002F2.issues",{"title":53,"path":54,"stem":55},"Pull request impact assessments","\u002Fdetect\u002Fpull-request-reviews","3.detect\u002F3.pull-request-reviews",{"title":57,"path":58,"stem":59},"Advisories","\u002Fdetect\u002Fadvisories","3.detect\u002F4.advisories",{"title":61,"path":62,"stem":63},"Signals","\u002Fdetect\u002Fsignals","3.detect\u002F5.signals",{"title":65,"path":66,"stem":67,"children":68,"icon":15},"Investigate and fix","\u002Finvestigate","4.investigate\u002F1.index",[69,70,74,78,82],{"title":65,"path":66,"stem":67},{"title":71,"path":72,"stem":73},"Threads","\u002Finvestigate\u002Fthreads","4.investigate\u002F2.threads",{"title":75,"path":76,"stem":77},"Fix runs","\u002Finvestigate\u002Ffix-runs","4.investigate\u002F3.fix-runs",{"title":79,"path":80,"stem":81},"Escalations","\u002Finvestigate\u002Fescalations","4.investigate\u002F4.escalations",{"title":83,"path":84,"stem":85},"Autofix","\u002Finvestigate\u002Fautofix","4.investigate\u002F5.autofix",{"title":87,"path":88,"stem":89,"children":90,"icon":15},"Work from your tools","\u002Ftools","5.tools\u002F1.index",[91,92,96,114],{"title":87,"path":88,"stem":89},{"title":93,"path":94,"stem":95},"Platform MCP server","\u002Ftools\u002Fplatform-mcp","5.tools\u002F2.platform-mcp",{"title":97,"path":98,"stem":99,"children":100,"icon":15},"CLI","\u002Ftools\u002Fcli","5.tools\u002F3.cli\u002F1.index",[101,102,106,110],{"title":97,"path":98,"stem":99},{"title":103,"path":104,"stem":105},"Authentication","\u002Ftools\u002Fcli\u002Fauthentication","5.tools\u002F3.cli\u002F2.authentication",{"title":107,"path":108,"stem":109},"Scripting","\u002Ftools\u002Fcli\u002Fscripting","5.tools\u002F3.cli\u002F3.scripting",{"title":111,"path":112,"stem":113},"Configuration","\u002Ftools\u002Fcli\u002Fconfiguration","5.tools\u002F3.cli\u002F4.configuration",{"title":115,"path":116,"stem":117},"Plugins","\u002Ftools\u002Fplugins","5.tools\u002F5.plugins",{"title":119,"path":120,"stem":121,"children":122,"icon":15},"Administration","\u002Fadministration","6.administration\u002F1.index",[123,125,129,133,137],{"title":124,"path":120,"stem":121},"Workspace",{"title":126,"path":127,"stem":128},"Notifications","\u002Fadministration\u002Fnotifications","6.administration\u002F2.notifications",{"title":130,"path":131,"stem":132},"AI models","\u002Fadministration\u002Fai-models","6.administration\u002F3.ai-models",{"title":134,"path":135,"stem":136},"API keys and OAuth clients","\u002Fadministration\u002Fapi-keys-and-oauth","6.administration\u002F4.api-keys-and-oauth",{"title":138,"path":139,"stem":140},"Billing and usage","\u002Fadministration\u002Fbilling-and-usage","6.administration\u002F5.billing-and-usage",{"title":142,"icon":15,"path":143,"stem":144,"children":145,"page":15},"Reference","\u002Freference","7.reference",[146,150,154],{"title":147,"path":148,"stem":149},"Docs MCP server","\u002Freference\u002Fmcp","7.reference\u002F1.mcp",{"title":151,"path":152,"stem":153},"llms.txt","\u002Freference\u002Fllms","7.reference\u002F2.llms",{"title":155,"path":156,"stem":157},"API reference","\u002Freference\u002Fapi","7.reference\u002F3.api",[159,229,303,354,409,469,532,543,594,660,711,760,794,805,816,1155,1463,1752,1883,2181,2272,2318,2379,2436,2564,2639,2690,2744,2800,2844,2878,2910,2993,3003,3013,3023,3033,3043,3053,3063,3073,3083,3093,3103,3113,3123,3133,3143,3153,3163,3173,3184,3194,3204,3214,3249,3298,3308,3350,3360,3370,3380,3391,3401,3440,3501,3511,3521,3550,3573,3616,3654,3682,3714,3763,3798,3832,3866,3876,3913],{"type":160,"category":161,"subcategory":162,"name":163,"description":164,"longDescription":165,"icon":166,"lifecycle":167,"comingSoon":15,"tools":176,"supportedResources":204,"marketing":205},"github","tool","git","GitHub","Read your code, trace issues to the commit, and open pull requests with fixes","Polylane links each repository to the services it deploys, traces production issues to the commit that caused them, and opens pull requests with the fix.","i-octicon-mark-github-16",{"connect":168,"reconnect":169,"browser":170,"headlessConnect":15,"teardown":171,"residue":172},"app-install","provider",true,"partial",[173,174,175],"polylane\u002Fonboarding\u002F* branch and Set up Polylane PR","autofix branches and PRs","check runs on past commits",[177,180,183,186,189,192,195,198,201],{"name":178,"summary":179},"githubApi","Read any GitHub REST endpoint that lacks a dedicated tool",{"name":181,"summary":182},"githubFetchFiles","Fetch file contents from a GitHub repository",{"name":184,"summary":185},"githubSearchGithub","Search across GitHub repositories, code, issues, pull requests, users, commits, and topics",{"name":187,"summary":188},"githubCommits","Read commits in a GitHub repository (list\u002FgetDiff)",{"name":190,"summary":191},"githubPullRequests","Read pull requests in a GitHub repository (list\u002Fget)",{"name":193,"summary":194},"githubClosePullRequest","Close a pull request Polylane opened",{"name":196,"summary":197},"githubWorkflowRuns","Read GitHub Actions workflow runs (list\u002Fget)",{"name":199,"summary":200},"githubCreateBranch","Create a new branch in a repository",{"name":202,"summary":203},"githubGetPullRequestDiff","Get the diff for a pull request",[],{"whatPolylaneDoes":206,"howItWorks":219},[207,210,213,216],{"title":208,"body":209},"Your code in the graph","Repositories are indexed for agents to grep and linked to the resources they deploy, so an investigation moves from a failing service to the code behind it without leaving the thread.",{"title":211,"body":212},"Changes become suspects","Pushes, merges, and deployments land on the timeline. When production breaks minutes after a merge, the investigation starts from that merge.",{"title":214,"body":215},"Watches on repo events","A thread can wait on pushes, pull requests, releases, and workflow runs, and pick the investigation back up when they land.",{"title":217,"body":218},"Fixes land where code lives","Investigations that end at a line of code end as a pull request on the repo behind the service, with the evidence trail attached. Your review and CI gate the merge.",[220,223,226],{"title":221,"body":222},"Install","Install the Polylane GitHub App on your organisation and pick the repositories it can see.",{"title":224,"body":225},"Index","Repositories are indexed and matched to the services they deploy, and repo events start landing on the timeline.",{"title":227,"body":228},"Agents work with the code","Mid-investigation they grep it, cite it, and when the root cause is a line of code, open the pull request.",{"type":230,"category":161,"subcategory":231,"name":232,"description":233,"longDescription":234,"icon":235,"lifecycle":236,"comingSoon":15,"tools":242,"supportedResources":279,"marketing":280},"datadog","observability","Datadog","Find what's wrong in your Datadog metrics, logs and APM traces","Polylane runs checks on your Datadog metrics, logs and APM traces, investigates monitors as they fire, finds the cause of each issue, and writes the fix.","i-vscode-icons-file-type-datadog",{"connect":237,"reconnect":238,"browser":15,"headlessConnect":170,"teardown":171,"residue":239},"api-key","credentials",[240,241],"@webhook-polylane appended to every monitor message","polylane:managed tag on every monitor",[243,246,249,252,255,258,261,264,267,270,273,276],{"name":244,"summary":245},"datadogApi","Call any Datadog REST endpoint that lacks a dedicated tool",{"name":247,"summary":248},"datadogQueryMetrics","Query time-series metrics from Datadog",{"name":250,"summary":251},"datadogSearchLogs","Search and filter log entries in Datadog",{"name":253,"summary":254},"datadogDashboards","Read or create Datadog dashboards",{"name":256,"summary":257},"datadogMonitors","Read, create, or mute Datadog monitors",{"name":259,"summary":260},"datadogIncidents","Read Datadog incidents",{"name":262,"summary":263},"datadogSLOs","Read or create Datadog Service Level Objectives (SLOs)",{"name":265,"summary":266},"datadogSpans","Query and aggregate Datadog APM spans and traces",{"name":268,"summary":269},"datadogListHosts","List hosts reporting to Datadog",{"name":271,"summary":272},"datadogListEvents","List events from Datadog",{"name":274,"summary":275},"datadogGetServiceDependencies","Get service dependency map from Datadog APM",{"name":277,"summary":278},"datadogCreateDowntime","Schedule a maintenance downtime in Datadog",[],{"whatPolylaneDoes":281,"howItWorks":294},[282,285,288,291],{"title":283,"body":284},"Alerts triaged on arrival","Every monitor that fires lands in Polylane as an issue, and an agent triages it the moment it does: real signal or noise, what it touches, and what changed right before.",{"title":286,"body":287},"Your dashboards become checks","Every query and chart your team saved in Datadog becomes a check: agents run it on a cadence and flag what doesn't look like normal. The curation you already did becomes detection.",{"title":289,"body":290},"Queried mid-investigation","Agents run Datadog metric, log, and trace queries while they work an issue, and every number is cited back to the query behind it.",{"title":292,"body":293},"First-class in the graph","Datadog joins the context graph as a source, so a spike lands next to the deploy, the config change, and the resources behind it.",[295,297,300],{"title":17,"body":296},"Pick your Datadog region and paste an API key and an application key. Credentials are encrypted before they're stored.",{"title":298,"body":299},"Sync","Monitors, dashboards, and saved queries join the context graph next to the services that emit the telemetry.",{"title":301,"body":302},"Agents take the watch","Alerts get triaged as they fire, your charts run as checks on a cadence, and investigations query Datadog directly.",{"type":304,"category":161,"subcategory":231,"name":305,"description":306,"longDescription":307,"icon":308,"lifecycle":309,"comingSoon":15,"tools":312,"supportedResources":334,"marketing":335},"honeycomb","Honeycomb","Find errors and slowdowns in your Honeycomb data","Polylane turns your Honeycomb queries and boards into checks, investigates triggers as they fire, queries your datasets to find the cause, and writes the fix.","HoneycombLogo",{"connect":237,"reconnect":238,"browser":15,"headlessConnect":170,"teardown":310,"residue":311},"complete",[],[313,316,319,322,325,328,331],{"name":314,"summary":315},"honeycombApi","Call any Honeycomb REST endpoint that lacks a dedicated tool",{"name":317,"summary":318},"honeycombRunQuery","Run a query against a Honeycomb dataset",{"name":320,"summary":321},"honeycombDatasets","Read Honeycomb datasets and their columns",{"name":323,"summary":324},"honeycombTriggers","Read or create Honeycomb triggers (alerts)",{"name":326,"summary":327},"honeycombBoards","Read or create Honeycomb boards (dashboards)",{"name":329,"summary":330},"honeycombSLOs","Read or create Honeycomb Service Level Objectives (SLOs)",{"name":332,"summary":333},"honeycombMarkers","List or create markers in a Honeycomb dataset",[],{"whatPolylaneDoes":336,"howItWorks":347},[337,340,343,345],{"title":338,"body":339},"Triggers triaged on arrival","Every Honeycomb trigger that fires lands in Polylane as an issue, and an agent triages it the moment it does, correlated with recent changes across the graph.",{"title":341,"body":342},"Your queries become checks","Every saved query and board becomes a check: agents run it on a cadence and flag what doesn't look like normal for the service behind it.",{"title":289,"body":344},"Agents query your datasets while they work an issue: high-cardinality questions, answered and cited in the thread.",{"title":292,"body":346},"Honeycomb joins the context graph as a source, so a regression in a dataset lands next to the deploy and the resources behind it.",[348,350,352],{"title":17,"body":349},"Pick your Honeycomb region and paste a configuration API key. Credentials are encrypted before they're stored.",{"title":298,"body":351},"Datasets, triggers, and boards join the context graph next to the services that emit the telemetry.",{"title":301,"body":353},"Triggers get triaged as they fire, saved queries run as checks, and investigations query Honeycomb directly.",{"type":355,"category":161,"subcategory":231,"name":356,"description":357,"longDescription":358,"icon":359,"lifecycle":360,"comingSoon":15,"tools":362,"supportedResources":390,"marketing":391},"axiom","Axiom","Find problems in the logs and traces you send to Axiom","Polylane turns your saved Axiom queries into checks, investigates monitors as they fire, runs APL over your logs and traces to find the cause, and writes the fix.","AxiomLogo",{"connect":237,"reconnect":238,"browser":15,"headlessConnect":170,"teardown":310,"residue":361},[],[363,366,369,372,375,378,381,384,387],{"name":364,"summary":365},"axiomApi","Call any Axiom REST endpoint that lacks a dedicated tool",{"name":367,"summary":368},"axiomQueries","Run an Axiom query (APL for logs\u002Ftraces\u002Fevents, MPL for metrics)",{"name":370,"summary":371},"axiomDatasets","Read Axiom datasets and their fields",{"name":373,"summary":374},"axiomDashboards","Read or create Axiom dashboards",{"name":376,"summary":377},"axiomMonitors","Read or create Axiom monitors",{"name":379,"summary":380},"axiomViews","Read or create Axiom saved views",{"name":382,"summary":383},"axiomAnnotations","List or create Axiom annotations",{"name":385,"summary":386},"axiomVirtualFields","List or create Axiom virtual fields",{"name":388,"summary":389},"axiomListNotifiers","List alert notifiers in Axiom",[],{"whatPolylaneDoes":392,"howItWorks":402},[393,395,398,400],{"title":283,"body":394},"Every Axiom monitor that fires lands in Polylane as an issue, and an agent triages it the moment it does, correlated with recent changes across the graph.",{"title":396,"body":397},"APL mid-investigation","Agents run APL queries against your datasets while they work an issue, and every result is cited back to the query behind it.",{"title":341,"body":399},"Every saved query and dashboard becomes a check: agents run it on a cadence and flag results that stray from the service's normal.",{"title":292,"body":401},"Axiom joins the context graph as a source, so a spike in a dataset lands next to the deploy and the resources behind it.",[403,405,407],{"title":17,"body":404},"Paste an Axiom API token. Credentials are encrypted before they're stored.",{"title":298,"body":406},"Datasets, monitors, and dashboards join the context graph next to the services that emit the telemetry.",{"title":301,"body":408},"Alerts get triaged as they fire, saved queries run as checks, and investigations query Axiom directly.",{"type":410,"category":161,"subcategory":231,"name":411,"description":412,"longDescription":413,"icon":414,"lifecycle":415,"comingSoon":15,"tools":418,"supportedResources":446,"credentialSetup":447},"newrelic","New Relic","Catch errors and slow requests on your New Relic services","Polylane watches error rate and latency on your busiest New Relic services, picks up alert issues, runs NRQL over your APM, traces and logs, and writes the fix.","NewrelicLogo",{"connect":237,"reconnect":238,"browser":15,"headlessConnect":170,"teardown":171,"residue":416},[417],"New Relic User key",[419,422,425,428,431,434,437,440,443],{"name":420,"summary":421},"newrelicRunNrql","Run a NRQL query over New Relic logs, metrics, traces and events",{"name":423,"summary":424},"newrelicSearchEntities","Find New Relic services, hosts, monitors and other entities",{"name":426,"summary":427},"newrelicGetEntity","Read one New Relic entity with its golden signals, relationships and deployments",{"name":429,"summary":430},"newrelicListIssues","List New Relic alert issues with their conditions, entities and state",{"name":432,"summary":433},"newrelicListAlertConditions","List New Relic alert policies and NRQL alert conditions with their thresholds",{"name":435,"summary":436},"newrelicDashboards","List New Relic dashboards or read one dashboard's widgets and NRQL",{"name":438,"summary":439},"newrelicGetTrace","Read one New Relic distributed trace as a span tree with durations and errors",{"name":441,"summary":442},"newrelicAlerts","Create New Relic alert policies and NRQL conditions, enable or disable a condition, mute or unmute alerts, and acknowledge or close issues",{"name":444,"summary":445},"newrelicApi","Call the connected New Relic NerdGraph GraphQL API",[],{"url":448,"steps":449,"secrets":462,"accountField":467,"source":468},"{origin}\u002Fapi-keys",[450,454,457,459],{"say":451,"target":452,"action":453},"Start a new key.","Create a key","click",{"say":455,"target":456,"action":453},"Choose the User key type. Polylane reads New Relic with a User key.","User",{"say":458},"Name the key Polylane.",{"say":460,"target":461,"action":453},"Save the key. New Relic shows the full key one time.","Save",[463],{"field":464,"label":465,"pattern":466},"apiKey","User key","^NRAK-[A-Z0-9]{20,}$","accountId","https:\u002F\u002Fdocs.newrelic.com\u002Fdocs\u002Fapis\u002Fintro-apis\u002Fnew-relic-api-keys\u002F",{"type":470,"category":161,"subcategory":231,"name":471,"description":472,"longDescription":473,"icon":474,"lifecycle":475,"comingSoon":15,"tools":480,"supportedResources":511,"marketing":512},"sentry","Sentry","Fix the code behind your Sentry errors, starting from the stack trace","Polylane watches your Sentry errors, searches events to find the cause, and fixes the code behind the stack trace.","i-simple-icons-sentry",{"connect":476,"reconnect":477,"browser":170,"headlessConnect":15,"teardown":171,"residue":478},"oauth","authorize",[479],"Sentry app installation and tokens",[481,484,487,490,493,496,499,502,505,508],{"name":482,"summary":483},"sentryApi","Call any Sentry REST endpoint that lacks a dedicated tool",{"name":485,"summary":486},"sentryProjects","Read Sentry projects (list, get, stats)",{"name":488,"summary":489},"sentryIssues","Read or update Sentry issues, events, tags, and hashes",{"name":491,"summary":492},"sentryAlertRules","Read or create Sentry alerts (issue alert rules)",{"name":494,"summary":495},"sentryMetricAlerts","Read or create Sentry metric monitors (metric alert rules)",{"name":497,"summary":498},"sentryIncidents","Read Sentry metric alert firings",{"name":500,"summary":501},"sentryReplays","Read Sentry session replays",{"name":503,"summary":504},"sentryDashboards","Read, create, or edit Sentry dashboards",{"name":506,"summary":507},"sentryQueryDiscover","Run a Discover query in Sentry",{"name":509,"summary":510},"sentryQueryTimeseries","Run a Sentry events timeseries query",[],{"whatPolylaneDoes":513,"howItWorks":525},[514,517,519,522],{"title":515,"body":516},"Errors arrive with the exception attached","Sentry issues land in Polylane with the actual exception before triage starts: type, message, top stack frames, and tags.",{"title":283,"body":518},"Every Sentry alert lands as an issue and an agent triages it the moment it fires: real signal or noise, and what changed right before.",{"title":520,"body":521},"Error data mid-investigation","Agents search issues and events while they work an issue, correlating error patterns with deploys and the resources in the blast radius.",{"title":523,"body":524},"From stack trace to fix","When the investigation reaches a line of code, the fix arrives as a pull request on the repo behind the service, with the evidence trail attached.",[526,528,530],{"title":221,"body":527},"Install the Polylane integration on your Sentry organisation and approve it. No keys to create or paste.",{"title":298,"body":529},"Projects and alert rules join the context graph next to the services that raise the errors.",{"title":301,"body":531},"Alerts get triaged as they fire, and investigations pull the exceptions, events, and tags they need directly.",{"type":533,"category":161,"subcategory":231,"name":534,"description":535,"longDescription":536,"icon":537,"lifecycle":538,"comingSoon":170,"tools":541,"supportedResources":542},"honeybadger","Honeybadger","Fix the errors, failed uptime checks and missed check-ins in Honeybadger","Polylane will pick up Honeybadger errors, uptime failures and missed cron check-ins, and line them up with recent changes to find the cause.","i-simple-icons-honeybadger",{"connect":539,"reconnect":539,"browser":15,"headlessConnect":15,"teardown":539,"residue":540},"none",[],[],[],{"type":544,"category":161,"subcategory":231,"name":545,"description":546,"longDescription":547,"icon":548,"lifecycle":549,"comingSoon":15,"tools":551,"supportedResources":573,"marketing":574},"betterstack","Better Stack","Find out why your Better Stack monitors go down","Polylane checks your uptime monitors, heartbeats and response times, investigates every Better Stack incident, and finds what changed right before.","BetterstackLogo",{"connect":237,"reconnect":238,"browser":15,"headlessConnect":170,"teardown":310,"residue":550},[],[552,555,558,561,564,567,570],{"name":553,"summary":554},"betterstackApi","Call any Better Stack REST endpoint that lacks a dedicated tool",{"name":556,"summary":557},"betterstackMonitors","Read or create Better Stack uptime monitors",{"name":559,"summary":560},"betterstackIncidents","Read Better Stack incidents and their timelines, or acknowledge\u002Fresolve one",{"name":562,"summary":563},"betterstackHeartbeats","List Better Stack heartbeats (cron\u002Fjob check-ins)",{"name":565,"summary":566},"betterstackStatusPages","List Better Stack status pages",{"name":568,"summary":569},"betterstackStatusReports","Read and publish Better Stack status page reports (public incident communication)",{"name":571,"summary":572},"betterstackSources","List Better Stack telemetry sources",[],{"whatPolylaneDoes":575,"howItWorks":587},[576,579,582,585],{"title":577,"body":578},"Incidents triaged on arrival","Every Better Stack incident lands in Polylane as an alert, and an agent triages it the moment it does, correlated with recent changes across the graph.",{"title":580,"body":581},"Uptime mid-investigation","Agents check monitor status, availability, response times, and heartbeats while they work an issue, and every finding is cited back to the monitor behind it.",{"title":583,"body":584},"Availability becomes checks","Monitors, incident volume, and probe latency run as checks on a cadence; agents flag results that stray from the service's normal.",{"title":292,"body":586},"Better Stack joins the context graph as a source, so a failing monitor lands next to the deploy and the resources behind it.",[588,590,592],{"title":17,"body":589},"Paste your Better Stack API tokens. Credentials are encrypted before they're stored.",{"title":298,"body":591},"Monitors, heartbeats, and telemetry sources join the context graph next to the services they watch.",{"title":301,"body":593},"Incidents get triaged as they fire, availability runs as checks, and investigations query Better Stack directly.",{"type":595,"category":161,"subcategory":231,"name":596,"description":597,"longDescription":598,"icon":599,"lifecycle":600,"comingSoon":15,"tools":602,"supportedResources":621,"marketing":622,"credentialSetup":641},"openstatus","OpenStatus","Find why your endpoints fail or slow down, and post status page updates","Polylane checks your OpenStatus monitors, reads response logs and latency to find why one failed, and can post updates to your status page when you ask.","OpenstatusLogo",{"connect":237,"reconnect":238,"browser":15,"headlessConnect":170,"teardown":310,"residue":601},[],[603,606,609,612,615,618],{"name":604,"summary":605},"openstatusApi","Call any OpenStatus API endpoint that lacks a dedicated tool",{"name":607,"summary":608},"openstatusMonitors","Read, create, update, or trigger OpenStatus uptime monitors",{"name":610,"summary":611},"openstatusResponseLogs","Read OpenStatus per-check HTTP response logs",{"name":613,"summary":614},"openstatusStatusPages","Read OpenStatus status pages, their components, and their public status",{"name":616,"summary":617},"openstatusStatusReports","Read and publish OpenStatus status reports (public incident communication)",{"name":619,"summary":620},"openstatusMaintenances","Read or schedule OpenStatus maintenance windows",[],{"whatPolylaneDoes":623,"howItWorks":634},[624,627,629,632],{"title":625,"body":626},"Failures triaged on arrival","Every OpenStatus monitor failure, degradation, and recovery lands in Polylane as an alert, and an agent triages it the moment it does, correlated with recent changes across the graph.",{"title":580,"body":628},"Agents check monitor status, uptime, latency percentiles, and per-check response logs while they work an issue, and every finding is cited back to the monitor behind it.",{"title":630,"body":631},"Status pages as issue comms","Agents publish status reports, post progress updates, and resolve them on your status page; notifying subscribers stays off unless you explicitly ask for it.",{"title":292,"body":633},"Monitors and status pages join the context graph as resources, so a failing monitor lands next to the deploy and the services behind it.",[635,637,639],{"title":17,"body":636},"Paste your OpenStatus API key. Credentials are encrypted before they're stored.",{"title":298,"body":638},"Monitors and status pages join the context graph next to the services they watch.",{"title":301,"body":640},"Failures get triaged as they fire, uptime runs as checks, and investigations query OpenStatus directly.",{"url":642,"steps":643,"secrets":655,"source":659},"https:\u002F\u002Fapp.openstatus.dev",[644,647,650,653],{"say":645,"target":646,"action":453},"Open the workspace settings.","Settings",{"say":648,"target":649,"action":453},"The API Keys card is on the General page.","General",{"say":651,"target":652,"action":453},"Start a new key on the API Keys card.","Create",{"say":654},"Give the key write access so Polylane can manage monitors and publish status reports.",[656],{"field":464,"label":657,"pattern":658},"API key","^os_[A-Za-z0-9]{16,}$","https:\u002F\u002Fwww.openstatus.dev\u002Fdocs\u002Fsdk\u002Fnodejs\u002Fgetting-started",{"type":661,"category":161,"subcategory":231,"name":662,"description":663,"longDescription":664,"icon":665,"lifecycle":666,"comingSoon":15,"tools":668,"supportedResources":687,"marketing":688},"grafana","Grafana","Query Prometheus, Loki and Tempo through Grafana to find what broke","Polylane runs PromQL, LogQL and TraceQL through your Grafana datasources, reads the dashboards you trust, and flags alert rules that fire or break.","i-logos-grafana",{"connect":237,"reconnect":238,"browser":15,"headlessConnect":170,"teardown":310,"residue":667},[],[669,672,675,678,681,684],{"name":670,"summary":671},"grafanaApi","Call any Grafana HTTP API endpoint that lacks a dedicated tool",{"name":673,"summary":674},"grafanaDashboards","Search Grafana dashboards, read their panel definitions, and list folders",{"name":676,"summary":677},"grafanaDatasources","List Grafana datasources and check their health",{"name":679,"summary":680},"grafanaQuery","Run a datasource query (PromQL, LogQL, and more) through Grafana",{"name":682,"summary":683},"grafanaAlertRules","Read Grafana alert rules, their live state, and firing alerts",{"name":685,"summary":686},"grafanaAnnotations","Read or create Grafana annotations to mark events on charts",[],{"whatPolylaneDoes":689,"howItWorks":702},[690,693,696,699],{"title":691,"body":692},"Alerting state at a glance","Agents check which Grafana-managed alerts are firing and which rules sit in error or NoData, so a silently broken rule surfaces before it hides a real issue.",{"title":694,"body":695},"Your datasources mid-investigation","Agents run PromQL, LogQL, and TraceQL through Grafana's query proxy against the same datasources your dashboards use, and every finding is cited back to the query behind it.",{"title":697,"body":698},"Dashboards as institutional knowledge","Agents read the panels your team already trusts, reuse their queries, and interpret what the numbers mean for the issue at hand.",{"title":700,"body":701},"Context left on the charts","Agents annotate deploys, issue windows, and fixes onto your Grafana charts, so the next person looking at a spike sees what happened.",[703,705,708],{"title":17,"body":704},"Paste your stack URL and a service account token. Credentials are encrypted before they're stored.",{"title":706,"body":707},"Checks take the watch","Firing alerts and unhealthy rules run as checks on a cadence; agents flag results that stray from normal.",{"title":709,"body":710},"Agents investigate","Investigations query your datasources through Grafana, read your dashboards, and annotate what they find.",{"type":712,"category":161,"subcategory":231,"name":713,"description":714,"longDescription":715,"icon":716,"lifecycle":717,"comingSoon":15,"tools":719,"supportedResources":735,"marketing":736},"logfire","Logfire","Find the route and the span that broke in your Logfire traces","Polylane ranks your Logfire routes by errors and latency, follows a bad route down to the span that threw and its exception, and writes the fix.","LogfireLogo",{"connect":237,"reconnect":238,"browser":15,"headlessConnect":170,"teardown":310,"residue":718},[],[720,723,726,729,732],{"name":721,"summary":722},"logfireListServices","List the services that sent spans or logs to Logfire in a time window",{"name":724,"summary":725},"logfireSearchSpans","Search Logfire spans and logs by service, name, route, level, exception, or HTTP status",{"name":727,"summary":728},"logfireGetTrace","Read one Logfire trace as a parent\u002Fchild span tree with durations",{"name":730,"summary":731},"logfireRouteSummary","Per-route request counts, error rates, and p50\u002Fp95 latency from Logfire",{"name":733,"summary":734},"logfireQuery","Run a read-only SQL query against a Logfire project's records and metrics tables",[],{"whatPolylaneDoes":737,"howItWorks":750},[738,741,744,747],{"title":739,"body":740},"Route health in one question","Agents rank your routes by request count, error rate, and p95 latency straight from the spans your services already send to Logfire, so \"what is failing\" gets a numbered answer.",{"title":742,"body":743},"From an error rate to the failing span","Agents pull the requests behind a bad route and open one trace as a parent\u002Fchild tree, naming the child span that threw and what its exception said.",{"title":745,"body":746},"Your traces mid-investigation","Agents search spans and logs by service, route, level, and status while they work an issue, and every finding is cited back to the query behind it.",{"title":748,"body":749},"SQL when the question is unusual","For anything the curated tools do not cover, agents run bounded read-only SQL over your Logfire records and metrics, with the engine's own error messages guiding the next attempt.",[751,753,755,758],{"title":17,"body":752},"Paste a project API key and an organization API key, each created with Read-only access and Manage project and org. Credentials are encrypted before they're stored, and agents only ever query with the project key.",{"title":706,"body":754},"Request error rate, volume, and p95 latency run as checks on a cadence, project-wide and per service; agents flag results that stray from normal.",{"title":756,"body":757},"Agents map your services","Every thread can discover which services report to the project and how each route is behaving right now.",{"title":709,"body":759},"Investigations move from route summaries to individual spans to full trace trees, inside a bounded time window.",{"type":761,"category":161,"subcategory":762,"name":763,"description":764,"longDescription":765,"icon":766,"lifecycle":767,"comingSoon":15,"tools":772,"supportedResources":773,"marketing":774},"slack","communication","Slack","Ask Polylane about production and get issue updates in your channels","Mention Polylane in any Slack channel or DM to ask about production or start an investigation, and get issues and fix updates in the channels you choose.","i-logos-slack-icon",{"connect":476,"reconnect":477,"browser":170,"headlessConnect":15,"teardown":171,"residue":768},[769,770,771],"Slack app installation (its bot token is revoked)","#polylane-notifications and #*-polylane channels","bot channel memberships and DMs",[],[],{"whatPolylaneDoes":775,"howItWorks":785},[776,779,782],{"title":777,"body":778},"The agent in your channels","Mention Polylane in any channel or DM to ask about production, and spin an investigation off any message.",{"title":780,"body":781},"Notifications where the team lives","Issues, autofix results, and digests land in the channels you choose, with links back to the full thread and its evidence.",{"title":783,"body":784},"Incidents worked in the open","Investigation updates post as they happen, so the channel follows the same transcript the console shows.",[786,788,791],{"title":221,"body":787},"Add Polylane to your Slack workspace from the console. One approval, no keys to manage.",{"title":789,"body":790},"Choose channels","Pick where issues, autofix results, and digests should land.",{"title":792,"body":793},"Work with it","Mention the agent to ask questions or start investigations without leaving Slack.",{"type":795,"category":161,"subcategory":796,"name":797,"description":798,"longDescription":799,"icon":800,"lifecycle":801,"comingSoon":170,"tools":803,"supportedResources":804},"jira","issue-tracking","Jira","Turn investigation findings into Jira issues with the evidence attached","Polylane will file Jira issues when an investigation finds something your team has to fix, with the evidence attached, and keep their status up to date.","i-logos-jira",{"connect":539,"reconnect":539,"browser":15,"headlessConnect":15,"teardown":539,"residue":802},[],[],[],{"type":806,"category":161,"subcategory":807,"name":808,"description":809,"longDescription":810,"icon":811,"lifecycle":812,"comingSoon":170,"tools":814,"supportedResources":815},"pagerduty","incident-management","PagerDuty","Work every PagerDuty incident and escalate to whoever is on call","Polylane will investigate PagerDuty incidents as they trigger, read your on-call schedules, and escalate to a person when a problem needs one.","i-logos-pagerduty-icon",{"connect":539,"reconnect":539,"browser":15,"headlessConnect":15,"teardown":539,"residue":813},[],[],[],{"type":817,"category":818,"subcategory":818,"name":819,"description":820,"longDescription":821,"icon":822,"lifecycle":823,"comingSoon":15,"tools":830,"supportedResources":864,"marketing":1133},"aws","cloud","AWS","Find and fix issues across your AWS account with CloudWatch and X-Ray","Polylane maps your AWS account, reads CloudWatch metrics, logs and X-Ray traces to spot issues, investigates your alarms as they fire, and writes the fix.","i-skill-icons:aws-dark",{"connect":824,"reconnect":169,"browser":170,"headlessConnect":15,"teardown":171,"residue":825},"cloudformation",[826,827,828,829],"PolylaneEnvironmentRole (DeletionPolicy Retain)","PolylaneEnvironmentPolicies (Retain)","PolylaneS3Bucket (Retain)","EKS access entries",[831,834,837,840,843,846,849,852,855,858,861],{"name":832,"summary":833},"awsApi","Read any AWS API via a SigV4-signed request (read-only escape hatch)",{"name":835,"summary":836},"awsCloudWatchAlarms","Read or manage CloudWatch alarms (list, get, getHistory, create, acknowledge, enableActions)",{"name":838,"summary":839},"awsCloudWatchDashboards","Read or manage CloudWatch dashboards (list, get, create)",{"name":841,"summary":842},"awsCloudWatchLogs","Read CloudWatch logs (listGroups, describeStreams, getEvents, filter, query)",{"name":844,"summary":845},"awsGetCloudWatchQueryResults","Get results of a CloudWatch Insights query",{"name":847,"summary":848},"awsCloudWatchMetrics","Read CloudWatch metrics (list available metrics, get data points)",{"name":850,"summary":851},"awsXRayTraces","Read X-Ray traces (list summaries, get full trace)",{"name":853,"summary":854},"awsXRayInsights","Read X-Ray insights (list, get, getEvents)",{"name":856,"summary":857},"awsXRayServices","Read X-Ray service topology and time-series statistics (graph, timeseries)",{"name":859,"summary":860},"awsGetXRayGroups","List X-Ray groups",{"name":862,"summary":863},"awsEksKubectl","Read and operate on Kubernetes resources on an EKS cluster (get\u002Flist\u002Fdescribe\u002Flogs\u002Fevents\u002Ftop\u002Frollout, plus scale, restart, patch, delete, apply)",[865,869,872,876,880,883,886,889,892,895,898,901,904,907,910,914,918,922,926,930,933,936,940,944,948,951,954,958,962,965,969,973,977,980,983,986,990,994,998,1001,1005,1009,1013,1017,1021,1024,1028,1032,1035,1038,1042,1045,1049,1053,1057,1060,1064,1067,1071,1075,1079,1082,1085,1088,1091,1094,1097,1101,1104,1107,1111,1115,1118,1121,1124,1127,1130],{"type":866,"name":867,"icon":868},"aws.lambda.function","Lambda Function","AwsLambdaLogo",{"type":870,"name":871,"icon":868},"aws.lambda.layer","Lambda Layer",{"type":873,"name":874,"icon":875},"aws.ec2.instance","EC2 Instance","AwsEc2Logo",{"type":877,"name":878,"icon":879},"aws.ec2.vpc","VPC","AwsVpcLogo",{"type":881,"name":882,"icon":879},"aws.ec2.subnet","Subnet",{"type":884,"name":885,"icon":879},"aws.ec2.security_group","Security Group",{"type":887,"name":888,"icon":879},"aws.ec2.internet_gateway","Internet Gateway",{"type":890,"name":891,"icon":879},"aws.ec2.nat_gateway","NAT Gateway",{"type":893,"name":894,"icon":879},"aws.ec2.vpc_endpoint_service","VPC Endpoint Service",{"type":896,"name":897,"icon":879},"aws.ec2.vpc_peering_connection","VPC Peering Connection",{"type":899,"name":900,"icon":879},"aws.ec2.route_table","Route Table",{"type":902,"name":903,"icon":879},"aws.ec2.network_acl","Network ACL",{"type":905,"name":906,"icon":875},"aws.ec2.volume","EBS Volume",{"type":908,"name":909,"icon":879},"aws.ec2.eip","Elastic IP",{"type":911,"name":912,"icon":913},"aws.s3.bucket","S3 Bucket","AwsS3Logo",{"type":915,"name":916,"icon":917},"aws.dynamodb.table","DynamoDB Table","AwsDynamodbLogo",{"type":919,"name":920,"icon":921},"aws.rds.instance","RDS Instance","AwsAuroraLogo",{"type":923,"name":924,"icon":925},"aws.cloudfront.distribution","CloudFront Distribution","AwsCloudfrontLogo",{"type":927,"name":928,"icon":929},"aws.apigateway.restapi","API Gateway REST API","AwsApigatewayLogo",{"type":931,"name":932,"icon":929},"aws.apigatewayv2.api","API Gateway v2 API",{"type":934,"name":935,"icon":929},"aws.apigateway.domain","API Gateway Custom Domain",{"type":937,"name":938,"icon":939},"aws.sqs.queue","SQS Queue","AwsSqsLogo",{"type":941,"name":942,"icon":943},"aws.sns.topic","SNS Topic","AwsSnsLogo",{"type":945,"name":946,"icon":947},"aws.ecs.cluster","ECS Cluster","AwsEcsLogo",{"type":949,"name":950,"icon":947},"aws.ecs.service","ECS Service",{"type":952,"name":953,"icon":947},"aws.ecs.task_definition","ECS Task Definition",{"type":955,"name":956,"icon":957},"aws.elasticache.cluster","ElastiCache Cluster","AwsElasticacheLogo",{"type":959,"name":960,"icon":961},"aws.apprunner.service","App Runner Service","AwsApprunnerLogo",{"type":963,"name":964,"icon":961},"aws.apprunner.connection","App Runner Connection",{"type":966,"name":967,"icon":968},"aws.iam.role","IAM Role","AwsIamLogo",{"type":970,"name":971,"icon":972},"aws.kms.key","KMS Key","AwsKmsLogo",{"type":974,"name":975,"icon":976},"aws.kinesis.stream","Kinesis Stream","AwsKinesisLogo",{"type":978,"name":979,"icon":957},"aws.elasticache.replication_group","ElastiCache Replication Group",{"type":981,"name":982,"icon":921},"aws.rds.cluster","RDS Cluster",{"type":984,"name":985,"icon":921},"aws.rds.proxy","RDS Proxy",{"type":987,"name":988,"icon":989},"aws.servicediscovery.service","Service Discovery Service","AwsLogo",{"type":991,"name":992,"icon":993},"aws.secretsmanager.secret","Secrets Manager Secret","AwsSecretsManagerLogo",{"type":995,"name":996,"icon":997},"aws.eventbridge.rule","EventBridge Rule","AwsEventbridgeLogo",{"type":999,"name":1000,"icon":997},"aws.eventbridge.bus","EventBridge Bus",{"type":1002,"name":1003,"icon":1004},"aws.states.state_machine","Step Functions State Machine","AwsStepfunctionsLogo",{"type":1006,"name":1007,"icon":1008},"aws.redshift.cluster","Redshift Cluster","AwsRedshiftLogo",{"type":1010,"name":1011,"icon":1012},"aws.kinesis.firehose","Kinesis Firehose","AwsFirehoseLogo",{"type":1014,"name":1015,"icon":1016},"aws.neptune.cluster","Neptune Cluster","AwsNeptuneLogo",{"type":1018,"name":1019,"icon":1020},"aws.cognito.user_pool","Cognito User Pool","AwsCognitoLogo",{"type":1022,"name":1023,"icon":1020},"aws.cognito.identity_pool","Cognito Identity Pool",{"type":1025,"name":1026,"icon":1027},"aws.athena.workgroup","Athena Workgroup","AwsAthenaLogo",{"type":1029,"name":1030,"icon":1031},"aws.glue.database","Glue Database","AwsGlueLogo",{"type":1033,"name":1034,"icon":1031},"aws.glue.crawler","Glue Crawler",{"type":1036,"name":1037,"icon":1031},"aws.glue.job","Glue Job",{"type":1039,"name":1040,"icon":1041},"aws.batch.job_queue","Batch Job Queue","AwsBatchLogo",{"type":1043,"name":1044,"icon":1041},"aws.batch.compute_environment","Batch Compute Environment",{"type":1046,"name":1047,"icon":1048},"aws.mq.broker","Amazon MQ Broker","AwsMqLogo",{"type":1050,"name":1051,"icon":1052},"aws.msk.cluster","MSK Cluster","AwsMskLogo",{"type":1054,"name":1055,"icon":1056},"aws.documentdb.cluster","DocumentDB Cluster","AwsDocumentdbLogo",{"type":1058,"name":1059,"icon":957},"aws.memorydb.cluster","MemoryDB Cluster",{"type":1061,"name":1062,"icon":1063},"aws.cloudtrail.trail","CloudTrail Trail","AwsCloudtrailLogo",{"type":1065,"name":1066,"icon":989},"aws.guardduty.detector","GuardDuty Detector",{"type":1068,"name":1069,"icon":1070},"aws.waf.web_acl","WAF Web ACL","AwsWafLogo",{"type":1072,"name":1073,"icon":1074},"aws.acm.certificate","ACM Certificate","AwsCertificateManagerLogo",{"type":1076,"name":1077,"icon":1078},"aws.eks.cluster","EKS Cluster","KubernetesLogo",{"type":1080,"name":1081,"icon":1078},"aws.eks.nodegroup","EKS Node Group",{"type":1083,"name":1084,"icon":1078},"aws.eks.fargate_profile","EKS Fargate Profile",{"type":1086,"name":1087,"icon":1078},"aws.eks.addon","EKS Addon",{"type":1089,"name":1090,"icon":1078},"aws.eks.access_entry","EKS Access Entry",{"type":1092,"name":1093,"icon":1078},"aws.eks.identity_provider_config","EKS Identity Provider",{"type":1095,"name":1096,"icon":1078},"aws.eks.oidc_provider","EKS OIDC Provider",{"type":1098,"name":1099,"icon":1100},"aws.elasticsearch.domain","Elasticsearch Domain","AwsOpenSearchLogo",{"type":1102,"name":1103,"icon":1100},"aws.opensearch.domain","OpenSearch Domain",{"type":1105,"name":1106,"icon":997},"aws.eventbridge.pipe","EventBridge Pipe",{"type":1108,"name":1109,"icon":1110},"aws.amplify.app","Amplify App","AwsAmplifyLogo",{"type":1112,"name":1113,"icon":1114},"aws.elbv2.alb","Application Load Balancer","AwsElbLogo",{"type":1116,"name":1117,"icon":1114},"aws.elbv2.nlb","Network Load Balancer",{"type":1119,"name":1120,"icon":1114},"aws.elbv2.gwlb","Gateway Load Balancer",{"type":1122,"name":1123,"icon":1114},"aws.elbv2.target_group","Target Group",{"type":1125,"name":1126,"icon":1114},"aws.elbv2.listener","Load Balancer Listener",{"type":1128,"name":1129,"icon":1114},"aws.elbv2.listener_rule","Listener Rule",{"type":1131,"name":1132,"icon":1031},"aws.glue.table","Glue Table",{"whatPolylaneDoes":1134,"howItWorks":1147},[1135,1138,1141,1144],{"title":1136,"body":1137},"74 resource types in one graph","Lambda, ECS, RDS, DynamoDB, SQS, EventBridge, EKS, VPCs and everything wired into them, with their edges, config, and history.",{"title":1139,"body":1140},"CloudWatch read for you","Agents comb metrics, logs, and X-Ray traces on a cadence and judge them against how each resource normally behaves. No thresholds to tune.",{"title":1142,"body":1143},"Alarms that investigate themselves","Point your CloudWatch Alarms at Polylane and an agent picks each one up as it fires, so the alarm arrives with an explanation attached.",{"title":1145,"body":1146},"Change intelligence","Each sync records what appeared, changed, or disappeared across the account. When something breaks minutes after a change, the investigation starts there.",[1148,1151,1153],{"title":1149,"body":1150},"One CloudFormation stack","Review the open template and create the stack. The cross-account role can read resources and manage alarms and tags so your account can be monitored.",{"title":298,"body":1152},"Your resources land in the graph within minutes, with edges, config, and history.",{"title":301,"body":1154},"Telemetry is combed on a cadence, alarms get investigated as they fire, and code fixes arrive as pull requests for your review.",{"type":1156,"category":818,"subcategory":818,"name":1157,"description":1158,"longDescription":1159,"icon":1160,"lifecycle":1161,"comingSoon":15,"tools":1166,"supportedResources":1176},"azure","Azure","Map your Azure subscription and see what changes in it","Polylane maps your Azure App Service, Functions, Container Apps, AKS, databases, storage and networking, links them to your code and other clouds, and records each change as it happens.","AzureLogo",{"connect":1162,"reconnect":169,"browser":170,"headlessConnect":15,"teardown":171,"residue":1163},"arm-template",[1164,1165],"Azure Lighthouse delegation (Service providers)","polylane-events resource group",[1167,1170,1173],{"name":1168,"summary":1169},"azureResourceGraphQuery","Query the connected Azure subscription's resources with Resource Graph KQL",{"name":1171,"summary":1172},"azureLogsQuery","Run a KQL query over Azure Monitor logs (Log Analytics, Application Insights, resource logs)",{"name":1174,"summary":1175},"azureApi","Call any Azure Resource Manager endpoint in the connected subscription",[1177,1181,1185,1189,1193,1197,1201,1205,1209,1213,1217,1221,1225,1229,1233,1237,1241,1245,1249,1253,1257,1261,1265,1269,1273,1277,1281,1285,1289,1293,1297,1301,1305,1309,1312,1316,1319,1323,1326,1330,1334,1338,1342,1346,1350,1353,1357,1361,1365,1369,1373,1376,1380,1384,1388,1392,1396,1400,1404,1408,1412,1416,1420,1424,1428,1431,1435,1439,1443,1447,1451,1455,1459],{"type":1178,"name":1179,"icon":1180},"azure.app_service","App Service","AzureAppServiceLogo",{"type":1182,"name":1183,"icon":1184},"azure.function_app","Function App","AzureFunctionAppLogo",{"type":1186,"name":1187,"icon":1188},"azure.app_service_plan","App Service Plan","AzureAppServicePlanLogo",{"type":1190,"name":1191,"icon":1192},"azure.static_web_app","Static Web App","AzureStaticWebAppLogo",{"type":1194,"name":1195,"icon":1196},"azure.container_app","Container App","AzureContainerAppLogo",{"type":1198,"name":1199,"icon":1200},"azure.container_app_environment","Container Apps Environment","AzureContainerAppEnvironmentLogo",{"type":1202,"name":1203,"icon":1204},"azure.vm","Virtual Machine","AzureVirtualMachineLogo",{"type":1206,"name":1207,"icon":1208},"azure.vmss","VM Scale Set","AzureVmScaleSetLogo",{"type":1210,"name":1211,"icon":1212},"azure.aks_cluster","AKS Cluster","AzureKubernetesServiceLogo",{"type":1214,"name":1215,"icon":1216},"azure.container_registry","Container Registry","AzureContainerRegistryLogo",{"type":1218,"name":1219,"icon":1220},"azure.sql_server","SQL Server","AzureSqlServerLogo",{"type":1222,"name":1223,"icon":1224},"azure.sql_database","SQL Database","AzureSqlDatabaseLogo",{"type":1226,"name":1227,"icon":1228},"azure.postgres","PostgreSQL Flexible Server","AzurePostgresqlLogo",{"type":1230,"name":1231,"icon":1232},"azure.mysql","MySQL Flexible Server","AzureMysqlLogo",{"type":1234,"name":1235,"icon":1236},"azure.cosmosdb","Cosmos DB Account","AzureCosmosDbLogo",{"type":1238,"name":1239,"icon":1240},"azure.redis","Azure Cache for Redis","AzureCacheRedisLogo",{"type":1242,"name":1243,"icon":1244},"azure.storage_account","Storage Account","AzureStorageAccountLogo",{"type":1246,"name":1247,"icon":1248},"azure.service_bus","Service Bus Namespace","AzureServiceBusLogo",{"type":1250,"name":1251,"icon":1252},"azure.event_hubs","Event Hubs Namespace","AzureEventHubsLogo",{"type":1254,"name":1255,"icon":1256},"azure.event_grid_topic","Event Grid Topic","AzureEventGridTopicLogo",{"type":1258,"name":1259,"icon":1260},"azure.key_vault","Key Vault","AzureKeyVaultLogo",{"type":1262,"name":1263,"icon":1264},"azure.front_door","Front Door Profile","AzureFrontDoorLogo",{"type":1266,"name":1267,"icon":1268},"azure.application_gateway","Application Gateway","AzureApplicationGatewayLogo",{"type":1270,"name":1271,"icon":1272},"azure.load_balancer","Load Balancer","AzureLoadBalancerLogo",{"type":1274,"name":1275,"icon":1276},"azure.vnet","Virtual Network","AzureVirtualNetworkLogo",{"type":1278,"name":1279,"icon":1280},"azure.dns_zone","DNS Zone","AzureDnsZoneLogo",{"type":1282,"name":1283,"icon":1284},"azure.api_management","API Management","AzureApiManagementLogo",{"type":1286,"name":1287,"icon":1288},"azure.log_analytics_workspace","Log Analytics Workspace","AzureLogAnalyticsLogo",{"type":1290,"name":1291,"icon":1292},"azure.application_insights","Application Insights","AzureApplicationInsightsLogo",{"type":1294,"name":1295,"icon":1296},"azure.openai","Azure OpenAI","AzureOpenaiLogo",{"type":1298,"name":1299,"icon":1300},"azure.ai_services","Azure AI Services","AzureCognitiveServicesLogo",{"type":1302,"name":1303,"icon":1304},"azure.network_interface","Network Interface","AzureNetworkInterfaceLogo",{"type":1306,"name":1307,"icon":1308},"azure.public_ip","Public IP Address","AzurePublicIpLogo",{"type":1310,"name":891,"icon":1311},"azure.nat_gateway","AzureNatGatewayLogo",{"type":1313,"name":1314,"icon":1315},"azure.network_security_group","Network Security Group","AzureNetworkSecurityGroupLogo",{"type":1317,"name":882,"icon":1318},"azure.subnet","AzureSubnetLogo",{"type":1320,"name":1321,"icon":1322},"azure.private_endpoint","Private Endpoint","AzurePrivateEndpointLogo",{"type":1324,"name":1325,"icon":1280},"azure.private_dns_zone","Private DNS Zone",{"type":1327,"name":1328,"icon":1329},"azure.virtual_network_gateway","Virtual Network Gateway","AzureVirtualNetworkGatewayLogo",{"type":1331,"name":1332,"icon":1333},"azure.firewall","Azure Firewall","AzureFirewallLogo",{"type":1335,"name":1336,"icon":1337},"azure.firewall_policy","Firewall Policy","AzureFirewallPolicyLogo",{"type":1339,"name":1340,"icon":1341},"azure.waf_policy","WAF Policy","AzureWafPolicyLogo",{"type":1343,"name":1344,"icon":1345},"azure.bastion","Bastion","AzureBastionLogo",{"type":1347,"name":1348,"icon":1349},"azure.traffic_manager","Traffic Manager Profile","AzureTrafficManagerLogo",{"type":1351,"name":1352,"icon":1264},"azure.front_door_endpoint","Front Door Endpoint",{"type":1354,"name":1355,"icon":1356},"azure.expressroute_circuit","ExpressRoute Circuit","AzureExpressrouteCircuitLogo",{"type":1358,"name":1359,"icon":1360},"azure.ddos_protection_plan","DDoS Protection Plan","AzureDdosProtectionPlanLogo",{"type":1362,"name":1363,"icon":1364},"azure.disk","Managed Disk","AzureDiskLogo",{"type":1366,"name":1367,"icon":1368},"azure.availability_set","Availability Set","AzureAvailabilitySetLogo",{"type":1370,"name":1371,"icon":1372},"azure.container_instance","Container Instance","AzureContainerInstancesLogo",{"type":1374,"name":1375,"icon":1196},"azure.container_app_job","Container Apps Job",{"type":1377,"name":1378,"icon":1379},"azure.batch_account","Batch Account","AzureBatchAccountLogo",{"type":1381,"name":1382,"icon":1383},"azure.logic_app","Logic App","AzureLogicAppsLogo",{"type":1385,"name":1386,"icon":1387},"azure.app_service_environment","App Service Environment","AzureAppServiceEnvironmentLogo",{"type":1389,"name":1390,"icon":1391},"azure.sql_managed_instance","SQL Managed Instance","AzureSqlManagedInstanceLogo",{"type":1393,"name":1394,"icon":1395},"azure.sql_elastic_pool","SQL Elastic Pool","AzureSqlElasticPoolLogo",{"type":1397,"name":1398,"icon":1399},"azure.managed_redis","Azure Managed Redis","AzureManagedRedisLogo",{"type":1401,"name":1402,"icon":1403},"azure.cosmosdb_postgres","Cosmos DB for PostgreSQL Cluster","AzurePostgresqlServerGroupLogo",{"type":1405,"name":1406,"icon":1407},"azure.data_factory","Data Factory","AzureDataFactoryLogo",{"type":1409,"name":1410,"icon":1411},"azure.synapse_workspace","Synapse Workspace","AzureSynapseAnalyticsLogo",{"type":1413,"name":1414,"icon":1415},"azure.databricks_workspace","Databricks Workspace","AzureDatabricksLogo",{"type":1417,"name":1418,"icon":1419},"azure.data_explorer","Data Explorer Cluster","AzureDataExplorerLogo",{"type":1421,"name":1422,"icon":1423},"azure.stream_analytics_job","Stream Analytics Job","AzureStreamAnalyticsLogo",{"type":1425,"name":1426,"icon":1427},"azure.event_grid_domain","Event Grid Domain","AzureEventGridDomainLogo",{"type":1429,"name":1430,"icon":1256},"azure.event_grid_namespace","Event Grid Namespace",{"type":1432,"name":1433,"icon":1434},"azure.notification_hub","Notification Hubs Namespace","AzureNotificationHubLogo",{"type":1436,"name":1437,"icon":1438},"azure.signalr","SignalR Service","AzureSignalrLogo",{"type":1440,"name":1441,"icon":1442},"azure.web_pubsub","Web PubSub","AzureWebPubsubLogo",{"type":1444,"name":1445,"icon":1446},"azure.search","Azure AI Search","AzureAiSearchLogo",{"type":1448,"name":1449,"icon":1450},"azure.machine_learning_workspace","Machine Learning Workspace","AzureMachineLearningLogo",{"type":1452,"name":1453,"icon":1454},"azure.iot_hub","IoT Hub","AzureIotHubLogo",{"type":1456,"name":1457,"icon":1458},"azure.app_configuration","App Configuration","AzureAppConfigurationLogo",{"type":1460,"name":1461,"icon":1462},"azure.managed_identity","Managed Identity","AzureManagedIdentityLogo",{"type":1464,"category":818,"subcategory":818,"name":1465,"description":1466,"longDescription":1467,"icon":1468,"lifecycle":1469,"comingSoon":15,"tools":1471,"supportedResources":1523,"marketing":1715,"credentialSetup":1736},"cloudflare","Cloudflare","Find errors in your Workers from their logs and traces","Polylane maps your Cloudflare account, reads Workers analytics, logs and traces to spot errors and slowdowns, finds the cause, and fixes it in your code.","i-logos-cloudflare-icon",{"connect":237,"reconnect":238,"browser":15,"headlessConnect":170,"teardown":310,"residue":1470},[],[1472,1475,1478,1481,1484,1487,1490,1493,1496,1499,1502,1505,1508,1511,1514,1517,1520],{"name":1473,"summary":1474},"cloudflareListTelemetryKeys","List available Cloudflare telemetry data keys",{"name":1476,"summary":1477},"cloudflareListTelemetryValues","List values for a Cloudflare telemetry key",{"name":1479,"summary":1480},"cloudflareRunTelemetryQuery","Query Cloudflare Workers \u002F container logs, traces, and AI Gateway request logs",{"name":1482,"summary":1483},"cloudflareTraces","Read Cloudflare traces (list summaries, get full span tree)",{"name":1485,"summary":1486},"cloudflareRunGraphqlQuery","Execute a GraphQL query against the Cloudflare Analytics API",{"name":1488,"summary":1489},"cloudflareGraphqlSchemaSearch","Search the Cloudflare GraphQL schema for matching types, fields, args, and enum values",{"name":1491,"summary":1492},"cloudflareGraphqlSchemaOverview","Fetch a paginated overview of all Cloudflare GraphQL types",{"name":1494,"summary":1495},"cloudflareGraphqlTypeDetails","Fetch fields, args, and enum values for one Cloudflare GraphQL type",{"name":1497,"summary":1498},"cloudflareGraphqlCompleteSchema","Fetch the Cloudflare GraphQL schema with optional root-type details",{"name":1500,"summary":1501},"cloudflareSqlDatasets","List the datasets and columns of the Cloudflare SQL API",{"name":1503,"summary":1504},"cloudflareRunSqlQuery","Query Cloudflare analytics and logs with the SQL API",{"name":1506,"summary":1507},"cloudflareAiGatewayLogs","List Cloudflare AI Gateway logs, or fetch one log's full detail",{"name":1509,"summary":1510},"cloudflareAccessApplicationLogs","List Cloudflare Access authentication events for an Access application",{"name":1512,"summary":1513},"cloudflareWorkflowInstances","List or get Cloudflare Workflows instances",{"name":1515,"summary":1516},"cloudflareWorkersIssues","List or get Cloudflare Workers Issues",{"name":1518,"summary":1519},"cloudflareApi","Call any Cloudflare REST API endpoint that lacks a dedicated tool",{"name":1521,"summary":1522},"cloudflareDeployments","List Cloudflare Worker\u002FPages deployments or Worker versions",[1524,1528,1532,1536,1540,1544,1548,1552,1556,1559,1562,1566,1570,1574,1578,1581,1585,1588,1592,1596,1600,1604,1608,1611,1614,1617,1621,1624,1628,1632,1636,1640,1644,1648,1652,1656,1659,1662,1665,1669,1672,1676,1680,1684,1688,1692,1696,1700,1704,1708,1711],{"type":1525,"name":1526,"icon":1527},"cf.workers.script","Cloudflare Worker","CloudflareWorkersLogo",{"type":1529,"name":1530,"icon":1531},"cf.ai_gateway.gateway","AI Gateway","CloudflareAiGatewayLogo",{"type":1533,"name":1534,"icon":1535},"cf.containers.application","Cloudflare Container","CloudflareContainerLogo",{"type":1537,"name":1538,"icon":1539},"cf.do.namespace","Durable Object","CloudflareDurableObjectsLogo",{"type":1541,"name":1542,"icon":1543},"cf.d1.database","D1 Database","CloudflareD1Logo",{"type":1545,"name":1546,"icon":1547},"cf.hyperdrive.config","Hyperdrive","CloudflareHyperdriveLogo",{"type":1549,"name":1550,"icon":1551},"cf.kv.namespace","Cloudflare KV","CloudflareKvLogo",{"type":1553,"name":1554,"icon":1555},"cf.pipelines.pipeline","Basin Pipeline","CloudflarePipelinesLogo",{"type":1557,"name":1558,"icon":1555},"cf.pipelines.stream","Basin Stream",{"type":1560,"name":1561,"icon":1555},"cf.pipelines.sink","Basin Sink",{"type":1563,"name":1564,"icon":1565},"cf.r2.bucket","R2 Bucket","CloudflareR2Logo",{"type":1567,"name":1568,"icon":1569},"cf.r2.custom_domain","R2 Domain","CloudflareDnsLogo",{"type":1571,"name":1572,"icon":1573},"cf.queues.queue","Cloudflare Queue","CloudflareQueuesLogo",{"type":1575,"name":1576,"icon":1577},"cf.secrets.store","Secret Store","CloudflareSecretStoreLogo",{"type":1579,"name":1580,"icon":1577},"cf.secrets.secret","Cloudflare Secret",{"type":1582,"name":1583,"icon":1584},"cf.pages.project","Cloudflare Pages","CloudflarePagesLogo",{"type":1586,"name":1587,"icon":1569},"cf.pages.domain","Domain",{"type":1589,"name":1590,"icon":1591},"cf.ai.ai","AI","CloudflareAiLogo",{"type":1593,"name":1594,"icon":1595},"cf.analytics_engine.dataset","Analytics Engine","CloudflareAnalyticsEngineLogo",{"type":1597,"name":1598,"icon":1599},"cf.browsers.browser","Browser Run","CloudflareBrowserRunLogo",{"type":1601,"name":1602,"icon":1603},"cf.vectorize.index","Vectorize","CloudflareVectorizeLogo",{"type":1605,"name":1606,"icon":1607},"cf.workflows.workflow","Cloudflare Workflow","CloudflareWorkflowsLogo",{"type":1609,"name":1610,"icon":1569},"cf.zone","Cloudflare Zone",{"type":1612,"name":1613,"icon":1527},"cf.workers.route","Worker Route",{"type":1615,"name":1616,"icon":1569},"cf.workers.custom_domain","Worker Domain",{"type":1618,"name":1619,"icon":1620},"cf.workers.dispatch_namespace","Dispatch Namespace","CloudflareForPlatformsLogo",{"type":1622,"name":1623,"icon":1620},"cf.workers.tenant_script","Tenant Worker",{"type":1625,"name":1626,"icon":1627},"cf.snippet","Snippet","i-lucide-scissors",{"type":1629,"name":1630,"icon":1631},"cf.mtls_certificate","mTLS Certificate","CloudflareSslLogo",{"type":1633,"name":1634,"icon":1635},"cf.tunnel","Cloudflare Tunnel","CloudflareTunnelLogo",{"type":1637,"name":1638,"icon":1639},"cf.access.application","Access Application","CloudflareAccessLogo",{"type":1641,"name":1642,"icon":1643},"cf.spectrum.app","Spectrum App","CloudflareSpectrumLogo",{"type":1645,"name":1646,"icon":1647},"cf.turnstile.widget","Turnstile Widget","CloudflareTurnstileLogo",{"type":1649,"name":1650,"icon":1651},"cf.waiting_room","Waiting Room","CloudflareWaitingRoomLogo",{"type":1653,"name":1654,"icon":1655},"cf.healthcheck","Health Check","CloudflareHealthChecksLogo",{"type":1657,"name":1271,"icon":1658},"cf.load_balancing.load_balancer","CloudflareLoadBalancingLogo",{"type":1660,"name":1661,"icon":1658},"cf.load_balancing.pool","Load Balancer Pool",{"type":1663,"name":1664,"icon":1658},"cf.load_balancing.monitor","Load Balancer Monitor",{"type":1666,"name":1667,"icon":1668},"cf.logpush.job","Logpush Job","CloudflareLogsLogo",{"type":1670,"name":1671,"icon":1631},"cf.ssl.certificate_pack","SSL Certificate",{"type":1673,"name":1674,"icon":1675},"cf.email_routing.address","Email Address","CloudflareEmailRoutingLogo",{"type":1677,"name":1678,"icon":1679},"cf.stream.live_input","Stream Live Input","CloudflareStreamLogo",{"type":1681,"name":1682,"icon":1683},"cf.images.images","Cloudflare Images","CloudflareImagesLogo",{"type":1685,"name":1686,"icon":1687},"cf.calls.app","Calls App","CloudflareCallsLogo",{"type":1689,"name":1690,"icon":1691},"cf.autorag.rag","AI Search","CloudflareAutoragLogo",{"type":1693,"name":1694,"icon":1695},"cf.r2.data_catalog","Basin Catalog","CloudflareR2DataCatalogLogo",{"type":1697,"name":1698,"icon":1699},"cf.artifacts.namespace","Artifacts Namespace","CloudflareArtifactsLogo",{"type":1701,"name":1702,"icon":1703},"cf.k2.stream","K2 Stream","CloudflareK2Logo",{"type":1705,"name":1706,"icon":1707},"cf.workers_vpc.service","Workers VPC Service","CloudflareWorkersVpcLogo",{"type":1709,"name":1710,"icon":1675},"cf.email_sending.subdomain","Email Sending Subdomain",{"type":1712,"name":1713,"icon":1714},"cf.flagship.app","Flagship App","CloudflareFlagshipLogo",{"whatPolylaneDoes":1716,"howItWorks":1729},[1717,1720,1723,1726],{"title":1718,"body":1719},"The whole account in one graph","Workers, Durable Objects, D1, R2, KV, Queues, Workflows, zones, and DNS land in one graph with their bindings, config, and history.",{"title":1721,"body":1722},"Analytics read on a cadence","Requests, errors, CPU time, and Durable Object compute, judged against how each resource normally behaves. No thresholds to tune.",{"title":1724,"body":1725},"Rollbacks where you allow them","Off by default. Enabled, agents restore the last known-good Worker version on their own, rate-limited and on the record, and the permanent fix follows.",{"title":1727,"body":1728},"Advisories on every resource","Workers without observability, D1 databases without backups, queues stuck retrying: each one marked fixable in place or with guidance.",[1730,1732,1734],{"title":17,"body":1731},"A guided flow pre-fills the exact API token permissions Polylane needs. You choose read-only or full access when you create it.",{"title":298,"body":1733},"The account lands in the graph with its bindings and history, and every sync after records what changed.",{"title":301,"body":1735},"Analytics are read on a cadence, and issues get investigated as they surface.",{"url":1737,"steps":1738,"secrets":1747,"source":1751},"https:\u002F\u002Fdash.cloudflare.com\u002F?to=%2F%3Aaccount%2Fapi-tokens&permissionGroupKeys=%5B%7B%22key%22%3A%22access%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22access_acct%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22access_app%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22access_audit_log%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22access_certificate%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22access_custom_page%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22access_device_posture%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22access_group%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22access_idp%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22access_key%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22access_org%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22access_policy%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22access_policy_test%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22access_population%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22access_saml_certificate%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22access_scim_log%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22access_service_token%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22access_ssh_auditing%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22access_tag%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22access_users%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22account_abuse_protection_pii%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22account_analytics%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22account_api_gateway%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22account_api_tokens%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22account_custom_asset%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22account_custom_error_rules%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22account_custom_pages%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22account_disable_esc%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22account_dns_settings%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22account_firewall_access_rules%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22account_logs%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22account_rule_lists%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22account_rule_policies%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22account_rulesets%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22account_security_center_insights%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22account_settings%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22account_ssl_and_certificates%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22account_waf%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22account_waiting_rooms%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22address_maps%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22agw%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22agw%22%2C%22type%22%3A%22run%22%7D%2C%7B%22key%22%3A%22ai%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22ai_search%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22ai_search%22%2C%22type%22%3A%22run%22%7D%2C%7B%22key%22%3A%22ai_search_metadata%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22aiaudit%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22aig%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22aig%22%2C%22type%22%3A%22run%22%7D%2C%7B%22key%22%3A%22analytics%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22api_gateway%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22argotunnel%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22artifacts%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22billing%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22bot_management%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22bot_management_feedback%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22browser_rendering%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22cache%22%2C%22type%22%3A%22purge%22%7D%2C%7B%22key%22%3A%22cache_settings%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22calls%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22casb%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22cf_agents%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22challenge_widgets%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22chinanetwork_steering%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22cloud_connector%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22cloud_email_security%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22cloudchamber%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22cloudforce_one%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22config_settings%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22connectivity_directory%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22constellation%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22containers%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22custom_errors%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22custom_pages%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22d1%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22d1_metadata%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22ddos_botnet_feed%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22ddos_protection%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22dls%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22dns%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22dns_firewall%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22dns_view%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22domain_page_shield%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22dynamic_redirect%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22email_routing_address%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22email_routing_rule%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22email_routing_suppression%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22email_security_dmarcreports%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22email_sending%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22fbm%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22firewall_for_ai%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22firewall_services%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22flagship%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22flagship%22%2C%22type%22%3A%22run%22%7D%2C%7B%22key%22%3A%22fraud_detection%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22healthcheck%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22http_applications%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22http_ddos_managed_ruleset%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22images%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22images_metadata%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22intel%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22iot%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22ip_prefix%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22ip_prefix_bgp_on_demand%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22k2%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22l4_ddos_managed_ruleset%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22load_balancers%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22load_balancers_account%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22load_balancing_monitors_and_pools%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22logs%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22magic_firewall%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22magic_transit%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22magic_wan%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22managed_headers%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22mass_url_redirects%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22mcp_portals%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22moq%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22notifications%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22oauth_client%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22origin%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22page%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22page_rules%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22page_shield%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22pcaps_api%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22pipelines%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22pipelines%22%2C%22type%22%3A%22send%22%7D%2C%7B%22key%22%3A%22pubsub%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22query_cache%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22queues%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22queues_metadata%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22r2_catalog%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22r2_catalog_sql%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22radar%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22rag%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22rag%22%2C%22type%22%3A%22run%22%7D%2C%7B%22key%22%3A%22realtime%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22registrar_domains%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22reports_application_security_report%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22request_tracer%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22resource_library%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22resource_sharing%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22response_compression%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22sanitize%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22secrets_store%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22select_configuration%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22snippets%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22ssl_and_certificates%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22sso_connector%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22stream%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22stream_metadata%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22tag%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22teams%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22teams_cds_compute_account%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22teams_connector_cloudflared%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22teams_connector_warp%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22teams_connectors%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22teams_dex%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22teams_networks%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22teams_pii%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22teams_resilience%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22transform_rules%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22trust_and_safety%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22url_scanner%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22vectorize%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22waiting_rooms%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22web3_hostnames%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22websearch%22%2C%22type%22%3A%22run%22%7D%2C%7B%22key%22%3A%22workers_ci%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22workers_content_read%22%2C%22type%22%3A%22only%22%7D%2C%7B%22key%22%3A%22workers_kv_storage%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22workers_kv_storage_metadata%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22workers_metadata_read%22%2C%22type%22%3A%22only%22%7D%2C%7B%22key%22%3A%22workers_observability%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22workers_r2%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22workers_r2_metadata%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22workers_routes%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22workers_scripts%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22workers_tail%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22zaraz%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22zone%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22zone_access%22%2C%22type%22%3A%22read%22%7D%2C%7B%22key%22%3A%22zone_custom_asset%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22zone_disable_esc%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22zone_dns_settings%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22zone_security_center_insights%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22zone_settings%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22zone_transform_rules%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22zone_versioning%22%2C%22type%22%3A%22edit%22%7D%2C%7B%22key%22%3A%22zone_waf%22%2C%22type%22%3A%22edit%22%7D%5D&name=Polylane",[1739,1741,1744],{"say":1740},"If Cloudflare asks, pick the account to connect.",{"say":1742,"target":1743,"action":453},"Review the permissions Polylane uses to read and fix your Cloudflare resources.","Review token",{"say":1745,"target":1746,"action":453},"Create the token. Cloudflare shows it one time.","Create token",[1748],{"field":1749,"label":1750},"token","API token","https:\u002F\u002Fdevelopers.cloudflare.com\u002Ffundamentals\u002Fapi\u002Fhow-to\u002Faccount-owned-token-template\u002F",{"type":1753,"category":818,"subcategory":818,"name":1754,"description":1755,"longDescription":1756,"icon":1757,"lifecycle":1758,"comingSoon":15,"tools":1762,"supportedResources":1772,"marketing":1861},"vercel","Vercel","Fix the errors and failed deploys in your Vercel projects","Polylane watches your Vercel projects, reads request logs and function metrics to find errors and failed deploys, and writes the fix in your code.","VercelLogo",{"connect":476,"reconnect":477,"browser":170,"headlessConnect":15,"teardown":539,"residue":1759},[1760,1761],"Vercel integration configuration","polylane-* log, analytics and speed-insights drains",[1763,1766,1769],{"name":1764,"summary":1765},"vercelApi","Call Vercel REST endpoints",{"name":1767,"summary":1768},"vercelGetLogs","Get logs from a Vercel deployment",{"name":1770,"summary":1771},"vercelQueryMetrics","Query Vercel observability metrics (requests, errors, function duration)",[1773,1776,1779,1781,1784,1787,1790,1793,1796,1799,1802,1805,1808,1811,1814,1817,1820,1823,1826,1829,1832,1835,1838,1841,1844,1847,1849,1852,1855,1858],{"type":1774,"name":1775,"icon":1757},"vercel.project","Project",{"type":1777,"name":1778,"icon":1757},"vercel.deployment","Deployment",{"type":1780,"name":1587,"icon":1757},"vercel.domain",{"type":1782,"name":1783,"icon":1757},"vercel.edge_config","Edge Config",{"type":1785,"name":1786,"icon":1757},"vercel.postgres","Postgres",{"type":1788,"name":1789,"icon":1757},"vercel.kv","KV Store",{"type":1791,"name":1792,"icon":1757},"vercel.blob","Blob Store",{"type":1794,"name":1795,"icon":1757},"vercel.log_drain","Log Drain",{"type":1797,"name":1798,"icon":1757},"vercel.custom_environment","Custom Environment",{"type":1800,"name":1801,"icon":1757},"vercel.firewall_config","Firewall",{"type":1803,"name":1804,"icon":1757},"vercel.webhook","Webhook",{"type":1806,"name":1807,"icon":1757},"vercel.integration_config","Integration",{"type":1809,"name":1810,"icon":1757},"vercel.sandbox","Sandbox",{"type":1812,"name":1813,"icon":1757},"vercel.workflow","Workflow",{"type":1815,"name":1816,"icon":1757},"vercel.cron_job","Cron Job",{"type":1818,"name":1819,"icon":1757},"vercel.service","Service",{"type":1821,"name":1822,"icon":1757},"vercel.daemon","Daemon",{"type":1824,"name":1825,"icon":1757},"vercel.shared_env_var","Shared Environment Variable",{"type":1827,"name":1828,"icon":1757},"vercel.sandbox_drive","Sandbox Drive",{"type":1830,"name":1831,"icon":1757},"vercel.kms_issuer","KMS Issuer",{"type":1833,"name":1834,"icon":1757},"vercel.connect_connector","Connect Connector",{"type":1836,"name":1837,"icon":1757},"vercel.privatelink_endpoint","PrivateLink Endpoint",{"type":1839,"name":1840,"icon":1757},"vercel.secure_compute_network","Secure Compute Network",{"type":1842,"name":1843,"icon":1757},"vercel.ci_pipeline","CI Pipeline",{"type":1845,"name":1846,"icon":1757},"vercel.flag","Feature Flag",{"type":1848,"name":1530,"icon":1757},"vercel.ai_gateway",{"type":1850,"name":1851,"icon":1757},"vercel.microfrontends_group","Microfrontends Group",{"type":1853,"name":1854,"icon":1757},"vercel.access_group","Access Group",{"type":1856,"name":1857,"icon":1757},"vercel.drain","Drain",{"type":1859,"name":1860,"icon":1757},"vercel.container_repository","Container Repository",{"whatPolylaneDoes":1862,"howItWorks":1874},[1863,1866,1869,1871],{"title":1864,"body":1865},"Every deploy, watched","Webhooks keep the graph current the moment you ship, and an agent triages every deployment failure and alert as it lands.",{"title":1867,"body":1868},"Everything you ship, in one graph","Projects, deployments, domains, Edge Config, Postgres, KV, and Blob, with the DNS records on other providers that point at them.",{"title":1724,"body":1870},"Off by default. Enabled, agents restore the last known-good deployment on their own, rate-limited and on the record, and the permanent fix follows.",{"title":1872,"body":1873},"Misconfigurations surfaced early","Domains pointed at the wrong project, certificates about to expire, environments drifting apart: every resource carries its advisories.",[1875,1878,1881],{"title":1876,"body":1877},"Install from the Marketplace","Vercel's OAuth flow, so there are no API keys to create or rotate. Pick the team and the projects Polylane can see.",{"title":1879,"body":1880},"Webhooks keep it current","What deployed, which domain moved, what config changed: the graph knows the moment it happens.",{"title":301,"body":1882},"Failures get triaged on arrival, regressions are judged against each project's normal, and fixes arrive for your review.",{"type":1884,"category":818,"subcategory":818,"name":1885,"description":1886,"longDescription":1887,"icon":1888,"lifecycle":1889,"comingSoon":15,"tools":1893,"supportedResources":1918},"gcp","Google Cloud","Find and fix issues across your Cloud Run, GKE and Cloud SQL services","Polylane maps Cloud Run, GKE and Cloud SQL, reads logs, metrics and traces to spot issues, investigates Cloud Monitoring alerts as they fire, and writes the fix.","i-logos-google-cloud",{"connect":1890,"reconnect":169,"browser":170,"headlessConnect":170,"teardown":171,"residue":1891},"infrastructure-manager",[1892],"Customer-managed Infrastructure Manager deployment or Terraform module: IAM, federation, Pub\u002FSub, asset feed and log sink",[1894,1897,1900,1903,1906,1909,1912,1915],{"name":1895,"summary":1896},"gcpLogs","Read Google Cloud logs (list log names, query entries)",{"name":1898,"summary":1899},"gcpMetrics","Discover and query Google Cloud Monitoring metrics (list, query)",{"name":1901,"summary":1902},"gcpDashboards","Read Google Cloud Monitoring dashboards (list, get)",{"name":1904,"summary":1905},"gcpAlertPolicies","Read Google Cloud alert policies (list, get)",{"name":1907,"summary":1908},"gcpTraces","Search and read Google Cloud traces (list, get)",{"name":1910,"summary":1911},"gcpApi","Read Google Cloud APIs using the connected project's reader identity",{"name":1913,"summary":1914},"gcpListApiOperations","Discover Google Cloud API read operations and their input fields",{"name":1916,"summary":1917},"gcpGkeKubectl","Read and operate on Kubernetes resources on a GKE cluster, including pod logs, events, metrics, rollouts, scale, restart, patch, apply and delete",[1919,1922,1926,1930,1934,1937,1941,1945,1949,1952,1956,1960,1964,1968,1972,1976,1980,1984,1988,1992,1996,2000,2004,2007,2010,2013,2016,2019,2022,2024,2028,2031,2035,2039,2042,2045,2048,2052,2055,2059,2062,2066,2070,2073,2077,2080,2084,2087,2091,2095,2099,2103,2106,2110,2113,2116,2119,2123,2126,2130,2134,2137,2141,2144,2147,2151,2154,2157,2161,2164,2168,2171,2175,2178],{"type":1920,"name":1921,"icon":1888},"gcp.project","Google Cloud Project",{"type":1923,"name":1924,"icon":1925},"gcp.iam.service_account","Google Service Account","i-lucide-key-round",{"type":1927,"name":1928,"icon":1929},"gcp.iam.role","Google IAM Role","i-lucide-shield-check",{"type":1931,"name":1932,"icon":1933},"gcp.pubsub.topic","Pub\u002FSub Topic","GcpPubsubLogo",{"type":1935,"name":1936,"icon":1933},"gcp.pubsub.subscription","Pub\u002FSub Subscription",{"type":1938,"name":1939,"icon":1940},"gcp.storage.bucket","Storage Bucket","GcpCloudStorageLogo",{"type":1942,"name":1943,"icon":1944},"gcp.compute.instance","Compute Engine Instance","GcpComputeEngineLogo",{"type":1946,"name":1947,"icon":1948},"gcp.compute.network","VPC Network","GcpVpcLogo",{"type":1950,"name":1951,"icon":1948},"gcp.compute.subnetwork","VPC Subnet",{"type":1953,"name":1954,"icon":1955},"gcp.compute.disk","Persistent Disk","GcpPersistentDiskLogo",{"type":1957,"name":1958,"icon":1959},"gcp.compute.firewall","Firewall Rule","GcpFirewallLogo",{"type":1961,"name":1962,"icon":1963},"gcp.run.service","Cloud Run Service","GcpCloudRunLogo",{"type":1965,"name":1966,"icon":1967},"gcp.container.cluster","GKE Cluster","GcpGkeLogo",{"type":1969,"name":1970,"icon":1971},"gcp.sql.instance","Cloud SQL Instance","GcpCloudSqlLogo",{"type":1973,"name":1974,"icon":1975},"gcp.functions.function","Cloud Function","GcpCloudFunctionsLogo",{"type":1977,"name":1978,"icon":1979},"gcp.redis.instance","Memorystore for Redis Instance","GcpMemorystoreLogo",{"type":1981,"name":1982,"icon":1983},"gcp.firestore.database","Firestore Database","GcpFirestoreLogo",{"type":1985,"name":1986,"icon":1987},"gcp.tasks.queue","Cloud Tasks Queue","GcpCloudTasksLogo",{"type":1989,"name":1990,"icon":1991},"gcp.scheduler.job","Cloud Scheduler Job","GcpCloudSchedulerLogo",{"type":1993,"name":1994,"icon":1995},"gcp.secretmanager.secret","Secret Manager Secret","GcpSecretManagerLogo",{"type":1997,"name":1998,"icon":1999},"gcp.artifactregistry.repository","Artifact Registry Repository","GcpArtifactRegistryLogo",{"type":2001,"name":2002,"icon":2003},"gcp.compute.forwarding_rule","Forwarding Rule","GcpCloudLoadBalancingLogo",{"type":2005,"name":2006,"icon":2003},"gcp.compute.target_http_proxy","Target HTTP Proxy",{"type":2008,"name":2009,"icon":2003},"gcp.compute.target_https_proxy","Target HTTPS Proxy",{"type":2011,"name":2012,"icon":2003},"gcp.compute.url_map","URL Map",{"type":2014,"name":2015,"icon":2003},"gcp.compute.backend_service","Backend Service",{"type":2017,"name":2018,"icon":2003},"gcp.compute.backend_bucket","Backend Bucket",{"type":2020,"name":2021,"icon":2003},"gcp.compute.network_endpoint_group","Network Endpoint Group",{"type":2023,"name":1654,"icon":2003},"gcp.compute.health_check",{"type":2025,"name":2026,"icon":2027},"gcp.compute.security_policy","Cloud Armor Policy","GcpCloudArmorLogo",{"type":2029,"name":1671,"icon":2030},"gcp.compute.ssl_certificate","GcpCertificateManagerLogo",{"type":2032,"name":2033,"icon":2034},"gcp.compute.router","Cloud Router","GcpCloudRouterLogo",{"type":2036,"name":2037,"icon":2038},"gcp.compute.address","IP Address","GcpCloudExternalIpAddressesLogo",{"type":2040,"name":2041,"icon":1944},"gcp.compute.instance_group_manager","Managed Instance Group",{"type":2043,"name":2044,"icon":1944},"gcp.compute.instance_group","Instance Group",{"type":2046,"name":2047,"icon":1944},"gcp.compute.instance_template","Instance Template",{"type":2049,"name":2050,"icon":2051},"gcp.dns.managed_zone","Cloud DNS Zone","GcpCloudDnsLogo",{"type":2053,"name":2054,"icon":1948},"gcp.vpcaccess.connector","Serverless VPC Access Connector",{"type":2056,"name":2057,"icon":2058},"gcp.apigateway.gateway","API Gateway","GcpCloudApiGatewayLogo",{"type":2060,"name":2061,"icon":2058},"gcp.apigateway.api","API Gateway API",{"type":2063,"name":2064,"icon":2065},"gcp.bigquery.dataset","BigQuery Dataset","GcpBigqueryLogo",{"type":2067,"name":2068,"icon":2069},"gcp.spanner.instance","Spanner Instance","GcpCloudSpannerLogo",{"type":2071,"name":2072,"icon":2069},"gcp.spanner.database","Spanner Database",{"type":2074,"name":2075,"icon":2076},"gcp.alloydb.cluster","AlloyDB Cluster","GcpAlloydbLogo",{"type":2078,"name":2079,"icon":2076},"gcp.alloydb.instance","AlloyDB Instance",{"type":2081,"name":2082,"icon":2083},"gcp.bigtable.instance","Bigtable Instance","GcpBigtableLogo",{"type":2085,"name":2086,"icon":2083},"gcp.bigtable.cluster","Bigtable Cluster",{"type":2088,"name":2089,"icon":2090},"gcp.dataflow.job","Dataflow Job","GcpDataflowLogo",{"type":2092,"name":2093,"icon":2094},"gcp.dataproc.cluster","Dataproc Cluster","GcpDataprocLogo",{"type":2096,"name":2097,"icon":2098},"gcp.composer.environment","Composer Environment","GcpCloudComposerLogo",{"type":2100,"name":2101,"icon":2102},"gcp.eventarc.trigger","Eventarc Trigger","GcpEventarcLogo",{"type":2104,"name":1813,"icon":2105},"gcp.workflows.workflow","GcpWorkflowsLogo",{"type":2107,"name":2108,"icon":2109},"gcp.filestore.instance","Filestore Instance","GcpFilestoreLogo",{"type":2111,"name":2112,"icon":1979},"gcp.memcache.instance","Memorystore for Memcached Instance",{"type":2114,"name":2115,"icon":1979},"gcp.redis.cluster","Memorystore for Redis Cluster",{"type":2117,"name":2118,"icon":1979},"gcp.memorystore.instance","Memorystore Instance",{"type":2120,"name":2121,"icon":2122},"gcp.workbench.instance","Vertex AI Workbench Instance","GcpVertexaiLogo",{"type":2124,"name":2125,"icon":2122},"gcp.aiplatform.endpoint","Vertex AI Endpoint",{"type":2127,"name":2128,"icon":2129},"gcp.cloudbuild.trigger","Cloud Build Trigger","GcpCloudBuildLogo",{"type":2131,"name":2132,"icon":2133},"gcp.clouddeploy.pipeline","Cloud Deploy Pipeline","GcpCloudDeployLogo",{"type":2135,"name":2136,"icon":2133},"gcp.clouddeploy.target","Cloud Deploy Target",{"type":2138,"name":2139,"icon":2140},"gcp.kms.key_ring","Cloud KMS Key Ring","GcpKeyManagementServiceLogo",{"type":2142,"name":2143,"icon":2140},"gcp.kms.crypto_key","Cloud KMS Key",{"type":2145,"name":2146,"icon":1963},"gcp.run.job","Cloud Run Job",{"type":2148,"name":2149,"icon":2150},"gcp.iam.workload_identity_pool","Workload Identity Pool","GcpWorkloadIdentityPoolLogo",{"type":2152,"name":2153,"icon":2122},"gcp.aiplatform.deployment_resource_pool","Vertex AI Deployment Resource Pool",{"type":2155,"name":2156,"icon":2129},"gcp.cloudbuild.repository","Cloud Build Repository",{"type":2158,"name":2159,"icon":2160},"gcp.compute.route","VPC Route","GcpCloudRoutesLogo",{"type":2162,"name":2163,"icon":1967},"gcp.container.node_pool","GKE Node Pool",{"type":2165,"name":2166,"icon":2167},"gcp.developerconnect.git_repository_link","Developer Connect Repository Link","GcpCloudGenericLogo",{"type":2169,"name":2170,"icon":2150},"gcp.iam.workload_identity_pool_provider","Workload Identity Pool Provider",{"type":2172,"name":2173,"icon":2174},"gcp.logging.log_bucket","Cloud Logging Bucket","GcpCloudLoggingLogo",{"type":2176,"name":2177,"icon":2174},"gcp.logging.log_sink","Cloud Logging Sink",{"type":2179,"name":2180,"icon":1948},"gcp.servicenetworking.connection","Private Service Access Connection",{"type":2182,"category":818,"subcategory":818,"name":2183,"description":2184,"longDescription":2185,"icon":2186,"lifecycle":2187,"comingSoon":15,"tools":2189,"supportedResources":2205,"marketing":2241,"credentialSetup":2262},"render","Render","Catch failing Render services and silent cron jobs","Polylane watches your Render services, workers and cron jobs, investigates failed deploys, reads logs and metrics to find the cause, and writes the fix.","RenderLogo",{"connect":237,"reconnect":238,"browser":15,"headlessConnect":170,"teardown":310,"residue":2188},[],[2190,2193,2196,2199,2202],{"name":2191,"summary":2192},"renderApi","Call any Render REST API endpoint that lacks a dedicated tool",{"name":2194,"summary":2195},"renderGetLogs","Get logs for a Render service",{"name":2197,"summary":2198},"renderDeploys","List a Render service's deploys, or get one deploy's full detail",{"name":2200,"summary":2201},"renderGetServiceEvents","Get audit events for a Render service",{"name":2203,"summary":2204},"renderGetMetrics","Get metrics for a Render service",[2206,2208,2211,2214,2217,2220,2223,2225,2227,2230,2233,2236,2238],{"type":2207,"name":1775,"icon":2186},"render.project",{"type":2209,"name":2210,"icon":2186},"render.environment","Environment",{"type":2212,"name":2213,"icon":2186},"render.service.web_service","Web Service",{"type":2215,"name":2216,"icon":2186},"render.service.static_site","Static Site",{"type":2218,"name":2219,"icon":2186},"render.service.private_service","Private Service",{"type":2221,"name":2222,"icon":2186},"render.service.background_worker","Background Worker",{"type":2224,"name":1816,"icon":2186},"render.service.cron_job",{"type":2226,"name":1813,"icon":2186},"render.workflow",{"type":2228,"name":2229,"icon":2186},"render.domain","Custom Domain",{"type":2231,"name":2232,"icon":2186},"render.postgres","Postgres Database",{"type":2234,"name":2235,"icon":2186},"render.key_value","Key-Value Store",{"type":2237,"name":1954,"icon":2186},"render.disk",{"type":2239,"name":2240,"icon":2186},"render.env_group","Environment Group",{"whatPolylaneDoes":2242,"howItWorks":2255},[2243,2246,2249,2252],{"title":2244,"body":2245},"Every service in one graph","Web services, private services, background workers, cron jobs, Postgres, and key-value stores, with their environments, edges, and history.",{"title":2247,"body":2248},"The jobs that fail quietly","Background workers and cron jobs don't page anyone when they break; they just stop. Polylane notices, investigates, and tells you before the backlog does.",{"title":2250,"body":2251},"Metrics and logs read on a cadence","Agents comb each service's telemetry and judge it against how that service normally behaves. No thresholds to tune.",{"title":2253,"body":2254},"Rollback, then the permanent fix","Off by default. Enabled, agents restore the last known-good deploy on their own, rate-limited and on the record, and the permanent fix follows.",[2256,2258,2260],{"title":17,"body":2257},"Paste an API key from your Render account settings. It's encrypted before it's stored, and the agent never sees it.",{"title":298,"body":2259},"Services, databases, and domains land in the graph, and every sync after records what changed.",{"title":301,"body":2261},"Telemetry is combed on a cadence, deploy failures get investigated as they land, and fixes arrive for your review.",{"url":2263,"steps":2264,"secrets":2268,"accountField":2270,"source":2271},"https:\u002F\u002Fdashboard.render.com\u002Fu\u002Fsettings?add-api-key",[2265,2266],{"say":458},{"say":2267},"Create the key. Render shows it one time.",[2269],{"field":464,"label":657},"ownerId","https:\u002F\u002Frender.com\u002Fdocs\u002Fapi",{"type":2273,"category":818,"subcategory":818,"name":2274,"description":2275,"longDescription":2276,"icon":2277,"lifecycle":2278,"comingSoon":15,"tools":2281,"supportedResources":2288,"marketing":2295},"planetscale","PlanetScale","Find the slow or failing query behind a slow endpoint","Polylane links PlanetScale branches to the services that query them, pulls Query Insights to find slow and failing queries, and writes the fix in your code.","PlanetscaleLogo",{"connect":476,"reconnect":238,"browser":170,"headlessConnect":170,"teardown":171,"residue":2279},[2280],"OAuth grant",[2282,2285],{"name":2283,"summary":2284},"planetscaleApi","Call any PlanetScale REST API endpoint that lacks a dedicated tool",{"name":2286,"summary":2287},"planetscaleGetQueryInsights","Get PlanetScale Query Insights for a database branch: top queries, query errors, or latency anomalies",[2289,2292],{"type":2290,"name":2291,"icon":2277},"planetscale.database","Database",{"type":2293,"name":2294,"icon":2277},"planetscale.branch","Database Branch",{"whatPolylaneDoes":2296,"howItWorks":2309},[2297,2300,2303,2306],{"title":2298,"body":2299},"Databases and branches in the graph","Every database and branch with its plan, region, schema state, and history. MySQL and Postgres, next to everything else you run.",{"title":2301,"body":2302},"Linked to the services that query them","Polylane matches connection hosts and usernames, so when checkout latency spikes, the graph already knows the database behind it.",{"title":2304,"body":2305},"Query Insights as evidence","Mid-investigation, agents pull the slow queries, the erroring queries, and the latency windows PlanetScale itself flagged.",{"title":2307,"body":2308},"Your rows stay yours","Polylane reads the PlanetScale API and nothing else: it never connects to your databases, never sees your rows, and never holds database credentials.",[2310,2312,2315],{"title":17,"body":2311},"OAuth with read scopes only. Click connect, approve in PlanetScale, and syncing starts.",{"title":2313,"body":2314},"Link","Databases and branches join the graph, matched to the services that query them.",{"title":2316,"body":2317},"Investigations reach the query","A regression traces from the service, to the branch, to the exact query, and the fix arrives for your review.",{"type":2319,"category":818,"subcategory":818,"name":2320,"description":2321,"longDescription":2322,"icon":2323,"lifecycle":2324,"comingSoon":15,"tools":2326,"supportedResources":2339,"marketing":2359},"railway","Railway","Find out why your Railway services crash or spike","Polylane watches your Railway services, reads logs and CPU, memory and disk metrics to find why a deploy crashed or a service spiked, and writes the fix.","RailwayLogo",{"connect":476,"reconnect":238,"browser":170,"headlessConnect":15,"teardown":171,"residue":2325},[2280],[2327,2330,2333,2336],{"name":2328,"summary":2329},"railwayApi","Run a curated Railway GraphQL operation (reads, restarts, redeploys, scaling)",{"name":2331,"summary":2332},"railwayGetLogs","Get runtime logs for a Railway service or deployment",{"name":2334,"summary":2335},"railwayListDeployments","List recent Railway deployments for a project",{"name":2337,"summary":2338},"railwayQueryMetrics","Query CPU, memory, network, and disk metrics for Railway services",[2340,2342,2344,2346,2348,2351,2353,2356],{"type":2341,"name":1775,"icon":2323},"railway.project",{"type":2343,"name":2210,"icon":2323},"railway.environment",{"type":2345,"name":1819,"icon":2323},"railway.service",{"type":2347,"name":1778,"icon":2323},"railway.deployment",{"type":2349,"name":2350,"icon":2323},"railway.volume","Volume",{"type":2352,"name":1587,"icon":2323},"railway.domain",{"type":2354,"name":2355,"icon":2323},"railway.tcp_proxy","TCP Proxy",{"type":2357,"name":2358,"icon":2323},"railway.notification_rule","Notification Rule",{"whatPolylaneDoes":2360,"howItWorks":2372},[2361,2364,2367,2369],{"title":2362,"body":2363},"Your whole workspace in one graph","Projects, environments, services, deployments, volumes, domains, and TCP proxies, with their edges and history. Template databases next to the services that use them.",{"title":2365,"body":2366},"Deploys watched as they land","Railway webhooks alert on failed and crashed deployments the moment they happen, resolve the alert on the next success, and can trigger an agent to investigate every deploy.",{"title":2250,"body":2368},"Agents comb each service's CPU, memory, and disk against how that service normally behaves, and pull deploy and runtime logs mid-investigation. No thresholds to tune.",{"title":2370,"body":2371},"Your secrets stay yours","Polylane syncs variable names for cross-cloud linking and never reads variable values. Tokens are encrypted before they're stored, and the agent never sees them.",[2373,2375,2377],{"title":17,"body":2374},"OAuth with read scopes only. Click connect, approve in Railway, and syncing starts.",{"title":298,"body":2376},"Projects, services, deployments, and volumes land in the graph, and every sync after records what changed.",{"title":301,"body":2378},"Deploy failures get investigated as they land, resource usage is judged against each service's normal, and fixes arrive for your review.",{"type":2380,"category":818,"subcategory":818,"name":2381,"description":2382,"longDescription":2383,"icon":2384,"lifecycle":2385,"comingSoon":15,"tools":2387,"supportedResources":2400,"marketing":2415},"fly","Fly.io","Find the app or region misbehaving across your Fly.io fleet","Polylane maps your Fly.io apps and machines, reads metrics and logs in every region to spot issues, finds the cause, and writes the fix in your code.","FlyLogo",{"connect":237,"reconnect":238,"browser":15,"headlessConnect":170,"teardown":310,"residue":2386},[],[2388,2391,2394,2397],{"name":2389,"summary":2390},"flyApi","Call any Fly.io Machines REST endpoint that lacks a dedicated tool",{"name":2392,"summary":2393},"flyListReleases","List release history for a Fly.io app",{"name":2395,"summary":2396},"flyQueryMetrics","Query Fly.io Prometheus metrics for an app",{"name":2398,"summary":2399},"flyGetLogs","Get logs for a Fly.io app via Prometheus metrics",[2401,2404,2407,2409,2412],{"type":2402,"name":2403,"icon":2384},"fly.app","Fly App",{"type":2405,"name":2406,"icon":2384},"fly.machine","Machine",{"type":2408,"name":2350,"icon":2384},"fly.volume",{"type":2410,"name":2411,"icon":2384},"fly.certificate","Certificate",{"type":2413,"name":2414,"icon":2384},"fly.secret","Secret",{"whatPolylaneDoes":2416,"howItWorks":2429},[2417,2420,2423,2426],{"title":2418,"body":2419},"The whole fleet in one graph","Every app with its machines, volumes, certificates, and secrets, next to whatever else you run on other clouds.",{"title":2421,"body":2422},"Every region at once","Your machines run wherever your users are; your attention can't. Agents see the whole fleet, so one bad region stands out against the ones that are fine.",{"title":2424,"body":2425},"Detection without alert rules","Agents comb app and machine metrics and logs on a cadence and judge them against how each app normally behaves.",{"title":2427,"body":2428},"History for a fleet that churns","Machines deploy, stop, start, and move. Each sync records what appeared, changed, or disappeared, so investigations start from the change.",[2430,2432,2434],{"title":17,"body":2431},"Paste a read-only API token, the most restrictive type Fly offers. It's encrypted before it's stored, and the agent never sees it.",{"title":298,"body":2433},"Apps, machines, and volumes land in the graph with their regions and history.",{"title":301,"body":2435},"The fleet is watched in every region at once, and investigations don't wait for your timezone.",{"type":2437,"category":818,"subcategory":818,"name":2438,"description":2439,"longDescription":2440,"icon":2441,"lifecycle":2442,"comingSoon":15,"tools":2446,"supportedResources":2450,"marketing":2542},"kubernetes","Kubernetes","Find out why pods crash, get OOM-killed or never become ready","Polylane maps your cluster with a read-only agent, investigates crashloops, OOM kills and stuck rollouts from logs and events, and fixes code or manifests.","i-logos-kubernetes",{"connect":2443,"reconnect":169,"browser":15,"headlessConnect":15,"teardown":171,"residue":2444},"helm",[2445],"Helm release and agent pods in the cluster",[2447],{"name":2448,"summary":2449},"kubectl","Read and operate on Kubernetes resources on a connected cluster (get\u002Flist\u002Fdescribe\u002Flogs\u002Fevents\u002Ftop\u002Frollout, plus scale, restart, patch, delete, apply)",[2451,2455,2459,2462,2466,2470,2474,2478,2481,2485,2488,2492,2496,2499,2503,2507,2511,2515,2519,2523,2527,2531,2535,2539],{"type":2452,"name":2453,"icon":2454},"k8s.namespace","Namespace","KubernetesNamespaceLogo",{"type":2456,"name":2457,"icon":2458},"k8s.node","Node","KubernetesNodeLogo",{"type":2460,"name":1778,"icon":2461},"k8s.deployment","KubernetesDeploymentLogo",{"type":2463,"name":2464,"icon":2465},"k8s.statefulset","Stateful Set","KubernetesStatefulsetLogo",{"type":2467,"name":2468,"icon":2469},"k8s.daemonset","Daemon Set","KubernetesDaemonsetLogo",{"type":2471,"name":2472,"icon":2473},"k8s.replicaset","Replica Set","KubernetesReplicasetLogo",{"type":2475,"name":2476,"icon":2477},"k8s.job","Job","KubernetesJobLogo",{"type":2479,"name":1816,"icon":2480},"k8s.cronjob","KubernetesCronjobLogo",{"type":2482,"name":2483,"icon":2484},"k8s.pod","Pod","KubernetesPodLogo",{"type":2486,"name":1819,"icon":2487},"k8s.service","KubernetesServiceLogo",{"type":2489,"name":2490,"icon":2491},"k8s.ingress","Ingress","KubernetesIngressLogo",{"type":2493,"name":2494,"icon":2495},"k8s.configmap","Config Map","KubernetesConfigmapLogo",{"type":2497,"name":2414,"icon":2498},"k8s.secret","KubernetesSecretLogo",{"type":2500,"name":2501,"icon":2502},"k8s.service_account","Service Account","KubernetesServiceAccountLogo",{"type":2504,"name":2505,"icon":2506},"k8s.role","Role","KubernetesRoleLogo",{"type":2508,"name":2509,"icon":2510},"k8s.role_binding","Role Binding","KubernetesRoleBindingLogo",{"type":2512,"name":2513,"icon":2514},"k8s.cluster_role","Cluster Role","KubernetesClusterRoleLogo",{"type":2516,"name":2517,"icon":2518},"k8s.cluster_role_binding","Cluster Role Binding","KubernetesClusterRoleBindingLogo",{"type":2520,"name":2521,"icon":2522},"k8s.persistent_volume","Persistent Volume","KubernetesPersistentVolumeLogo",{"type":2524,"name":2525,"icon":2526},"k8s.persistent_volume_claim","Persistent Volume Claim","KubernetesPersistentVolumeClaimLogo",{"type":2528,"name":2529,"icon":2530},"k8s.storage_class","Storage Class","KubernetesStorageClassLogo",{"type":2532,"name":2533,"icon":2534},"k8s.network_policy","Network Policy","KubernetesNetworkPolicyLogo",{"type":2536,"name":2537,"icon":2538},"k8s.hpa","Horizontal Pod Autoscaler","KubernetesHpaLogo",{"type":2540,"name":2541,"icon":1929},"k8s.pdb","Pod Disruption Budget",{"whatPolylaneDoes":2543,"howItWorks":2556},[2544,2547,2550,2553],{"title":2545,"body":2546},"The full cluster topology","Deployments, StatefulSets, pods, services, ingresses, CronJobs, and 24 resource types in all, alongside the clouds the cluster runs on.",{"title":2548,"body":2549},"The failures Kubernetes hides well","Crashloops, OOM kills, pods stuck pending, rollouts that never converge. The cluster knows; Polylane investigates and writes up what happened.",{"title":2551,"body":2552},"Direct inspection","Agents inspect pods, read logs and events, and map the topology on a cadence. No dashboards in the loop.",{"title":2554,"body":2555},"get, list, watch, and nothing else","The in-cluster agent runs with read-only RBAC, and Polylane only makes read-only Kubernetes API calls.",[2557,2559,2562],{"title":17,"body":2558},"Install the Polylane agent in your cluster with one Helm command. It registers itself over an outbound tunnel, and your cluster credentials never leave the cluster.",{"title":2560,"body":2561},"Map","The cluster topology lands in the graph, and every sync after records what changed.",{"title":301,"body":2563},"Workloads are watched as they churn, failures get investigated as they happen, and manifest fixes arrive for your review.",{"type":2565,"category":818,"subcategory":818,"name":2566,"description":2567,"longDescription":2568,"icon":2569,"lifecycle":2570,"comingSoon":15,"tools":2572,"supportedResources":2585,"marketing":2619},"supabase","Supabase","Find what broke across your Supabase database, auth, storage and functions","Polylane reads your Supabase logs, health and advisor findings, traces a failure to the layer that broke, and writes the fix. It never touches your rows.","SupabaseLogo",{"connect":476,"reconnect":238,"browser":170,"headlessConnect":170,"teardown":171,"residue":2571},[2280],[2573,2576,2579,2582],{"name":2574,"summary":2575},"supabaseApi","Call any Supabase Management API endpoint that lacks a dedicated tool",{"name":2577,"summary":2578},"supabaseGetLogs","Get Supabase service logs for a project: API gateway, edge functions, Postgres, Auth, Storage, or Realtime",{"name":2580,"summary":2581},"supabaseGetAdvisors","Get Supabase security and performance advisor findings for a project",{"name":2583,"summary":2584},"supabaseGetProjectHealth","Get the live health of a Supabase project's bundled services (database, REST, Auth, Storage, Realtime)",[2586,2588,2590,2593,2596,2598,2600,2603,2606,2609,2612,2614,2616],{"type":2587,"name":1775,"icon":2569},"supabase.project",{"type":2589,"name":2232,"icon":2569},"supabase.database",{"type":2591,"name":2592,"icon":2569},"supabase.pooler","Connection Pooler",{"type":2594,"name":2595,"icon":2569},"supabase.function","Edge Function",{"type":2597,"name":2294,"icon":2569},"supabase.branch",{"type":2599,"name":1939,"icon":2569},"supabase.bucket",{"type":2601,"name":2602,"icon":2569},"supabase.auth","Auth Service",{"type":2604,"name":2605,"icon":2569},"supabase.storage","Storage Service",{"type":2607,"name":2608,"icon":2569},"supabase.realtime","Realtime Service",{"type":2610,"name":2611,"icon":2569},"supabase.rest","REST API",{"type":2613,"name":2229,"icon":2569},"supabase.custom_domain",{"type":2615,"name":2414,"icon":2569},"supabase.secret",{"type":2617,"name":2618,"icon":2569},"supabase.network_restrictions","Network Restrictions",{"whatPolylaneDoes":2620,"howItWorks":2632},[2621,2624,2627,2630],{"title":2622,"body":2623},"Projects and their pieces in the graph","Every project with its edge functions, database branches, and storage buckets, next to everything else you run.",{"title":2625,"body":2626},"Linked to the services that use them","Polylane matches Supabase hosts in env vars across your other clouds, so the graph already knows which service talks to which project.",{"title":2628,"body":2629},"Change history per sync","Functions redeploy, branches come and go, buckets appear. Each sync records what changed, so investigations start from the change.",{"title":2307,"body":2631},"Polylane reads the Supabase Management API and nothing else: it never connects to your databases, never sees your rows, and never stores project API keys.",[2633,2635,2637],{"title":17,"body":2634},"OAuth with read scopes, or paste a personal access token. Either way it's encrypted before it's stored, and the agent never sees it.",{"title":298,"body":2636},"Projects, edge functions, branches, and buckets land in the graph with their history.",{"title":709,"body":2638},"A failing function or an unhealthy project traces to the services around it, and the fix arrives for your review.",{"type":2640,"category":818,"subcategory":818,"name":2641,"description":2642,"longDescription":2643,"icon":2644,"lifecycle":2645,"comingSoon":15,"tools":2647,"supportedResources":2663},"modal","Modal","Find the Modal functions that fail or cost too much","Polylane maps your Modal apps and functions, reads their logs, deployments and spend to find what broke or got expensive, and writes the fix in your code.","ModalLogo",{"connect":237,"reconnect":238,"browser":15,"headlessConnect":170,"teardown":310,"residue":2646},[],[2648,2651,2654,2657,2660],{"name":2649,"summary":2650},"modalGetLogs","Get Modal app logs: per-bucket volume by stream plus sampled lines",{"name":2652,"summary":2653},"modalListSandboxes","List Modal sandboxes in an environment, with their state and resource shape",{"name":2655,"summary":2656},"modalListDeployments","List Modal app deployments: version, who deployed, and when",{"name":2658,"summary":2659},"modalDescribeApp","Describe one Modal app: state, deploy provenance, and the functions inside it",{"name":2661,"summary":2662},"modalGetCost","Get metered Modal spend, for one app or broken down across the workspace",[2664,2666,2669,2672,2675,2677,2680,2682,2684,2687],{"type":2665,"name":2210,"icon":2644},"modal.environment",{"type":2667,"name":2668,"icon":2644},"modal.app","App",{"type":2670,"name":2671,"icon":2644},"modal.function","Function",{"type":2673,"name":2674,"icon":2644},"modal.class","Class",{"type":2676,"name":1810,"icon":2644},"modal.sandbox",{"type":2678,"name":2679,"icon":2644},"modal.image","Image",{"type":2681,"name":2350,"icon":2644},"modal.volume",{"type":2683,"name":2414,"icon":2644},"modal.secret",{"type":2685,"name":2686,"icon":2644},"modal.queue","Queue",{"type":2688,"name":2689,"icon":2644},"modal.dict","Dict",{"type":2691,"category":818,"subcategory":818,"name":2692,"description":2693,"longDescription":2694,"icon":2695,"lifecycle":2696,"comingSoon":15,"tools":2698,"supportedResources":2717,"marketing":2722},"convex","Convex","Fix the Convex function that broke, from its logs and metrics","Polylane maps your Convex projects and deployments, reads function logs and metrics to find the function that broke, and writes the fix in your code.","ConvexLogo",{"connect":237,"reconnect":238,"browser":15,"headlessConnect":170,"teardown":310,"residue":2697},[],[2699,2702,2705,2708,2711,2714],{"name":2700,"summary":2701},"convexApi","Call any Convex Management API endpoint that lacks a dedicated tool",{"name":2703,"summary":2704},"convexGetLogs","Get function execution logs for a Convex deployment",{"name":2706,"summary":2707},"convexListTables","List the tables of a Convex deployment with their inferred document shapes",{"name":2709,"summary":2710},"convexReadTable","Read documents from a Convex table, newest or oldest first",{"name":2712,"summary":2713},"convexRunQuery","Run a one-off read-only query against a Convex deployment",{"name":2715,"summary":2716},"convexQueryMetrics","Query function metrics for a Convex deployment",[2718,2720],{"type":2719,"name":1775,"icon":2695},"convex.project",{"type":2721,"name":1778,"icon":2695},"convex.deployment",{"whatPolylaneDoes":2723,"howItWorks":2736},[2724,2727,2730,2733],{"title":2725,"body":2726},"Projects and deployments in the graph","Every project with its production, preview, and development deployments, their regions and URLs, next to everything else you run.",{"title":2728,"body":2729},"Production separated from the noise","Dev and preview deployments stay visible on the map, but only production changes reach change intelligence and issues.",{"title":2731,"body":2732},"Change history on every sync","New deployments, deleted projects, and re-pointed production deployments land in the change feed with the sync that found them.",{"title":2734,"body":2735},"Your data stays yours","Polylane reads the Convex Management API and nothing else: it never queries your tables and never holds deploy keys.",[2737,2739,2741],{"title":17,"body":2738},"Paste a team access token from your Convex team settings. It's encrypted before it's stored, and the agent never sees it.",{"title":298,"body":2740},"Projects and deployments land in the graph, and every sync after records what changed.",{"title":2742,"body":2743},"Agents use the map","Investigations reach from a service to the Convex deployment behind it, with its region, class, and deploy history in hand.",{"type":2745,"category":818,"subcategory":818,"name":2746,"description":2747,"longDescription":2748,"icon":2749,"lifecycle":2750,"comingSoon":15,"tools":2753,"supportedResources":2769,"credentialSetup":2782},"triggerdev","Trigger.dev","Find out why your Trigger.dev runs fail","Polylane maps your Trigger.dev tasks, schedules and queues, reads failed runs with their traces and logs to find the cause, and writes the fix in your code.","TriggerdevLogo",{"connect":237,"reconnect":238,"browser":15,"headlessConnect":170,"teardown":171,"residue":2751},[2752],"Trigger.dev webhook alert",[2754,2757,2760,2763,2766],{"name":2755,"summary":2756},"triggerdevRuns","List Trigger.dev runs with filters, retrieve one run with its attempts, or read the error groups failed runs fold into",{"name":2758,"summary":2759},"triggerdevRunTelemetry","Read a Trigger.dev run's trace tree or its log events",{"name":2761,"summary":2762},"triggerdevQuery","Query Trigger.dev run history with TRQL, or read its schema and dashboard queries",{"name":2764,"summary":2765},"triggerdevInventory","Read what a Trigger.dev environment is made of: deployments and the current one, bulk actions, schedules, queues and a queue's wait time and depth metrics",{"name":2767,"summary":2768},"triggerdevApi","Call the connected Trigger.dev REST API",[2770,2772,2775,2778,2780],{"type":2771,"name":2210,"icon":2749},"triggerdev.environment",{"type":2773,"name":2774,"icon":2749},"triggerdev.task","Task",{"type":2776,"name":2777,"icon":2749},"triggerdev.schedule","Schedule",{"type":2779,"name":2686,"icon":2749},"triggerdev.queue",{"type":2781,"name":1778,"icon":2749},"triggerdev.deployment",{"url":2783,"steps":2784,"secrets":2795,"source":2799},"https:\u002F\u002Fcloud.trigger.dev\u002F_\u002Fapikeys",[2785,2787,2789,2790,2793],{"say":2786},"Pick the project and environment to connect. Each key belongs to one environment.",{"say":451,"target":2788,"action":453},"New API key",{"say":458},{"say":2791,"target":2792,"action":453},"Polylane checks the key with a call that only an unrestricted key can make.","No restrictions",{"say":2794},"Create the key. Trigger.dev shows it one time.",[2796],{"field":464,"label":2797,"pattern":2798},"Secret key","^tr_[a-z]+_sk_\\S+$","https:\u002F\u002Ftrigger.dev\u002Fdocs\u002Fapikeys",{"type":2801,"category":818,"subcategory":818,"name":2802,"description":2803,"longDescription":2804,"icon":2805,"lifecycle":2806,"comingSoon":15,"tools":2808,"supportedResources":2818,"credentialSetup":2821},"clickhouse","ClickHouse","Find out why ClickHouse Cloud services stop or degrade","Polylane maps your ClickHouse Cloud services, reads their CPU, memory, connection and query metrics, and investigates stopped or degraded services.","ClickhouseLogo",{"connect":237,"reconnect":238,"browser":15,"headlessConnect":170,"teardown":310,"residue":2807},[],[2809,2812,2815],{"name":2810,"summary":2811},"clickhouseApi","Call any ClickHouse Cloud API endpoint that lacks a dedicated tool",{"name":2813,"summary":2814},"clickhouseListServices","List ClickHouse Cloud services with state, sizing, version, and endpoints",{"name":2816,"summary":2817},"clickhouseGetMetrics","Read live ClickHouse Cloud service metrics (CPU, memory, connections, queries) from the Prometheus endpoint",[2819],{"type":2820,"name":1819,"icon":2805},"clickhouse.service",{"url":2822,"steps":2823,"secrets":2836,"source":2843},"https:\u002F\u002Fconsole.clickhouse.cloud",[2824,2827,2829,2830,2833],{"say":2825,"target":2826,"action":453},"Open the API keys of the organization.","API Keys",{"say":451,"target":2828,"action":453},"New API Key",{"say":458},{"say":2831,"target":2832,"action":453},"Give the key the Developer role. Polylane only reads.","Developer",{"say":2834,"target":2835,"action":453},"Create the key. ClickHouse shows the Key ID and Key secret one time.","Generate API Key",[2837,2840],{"field":2838,"label":2839},"keyId","Key ID",{"field":2841,"label":2842},"keySecret","Key secret","https:\u002F\u002Fclickhouse.com\u002Fdocs\u002Fcloud\u002Fmanage\u002Fopenapi",{"type":2845,"category":818,"subcategory":818,"name":2846,"description":2847,"longDescription":2848,"icon":2849,"lifecycle":2850,"comingSoon":15,"tools":2852,"supportedResources":2853,"marketing":2859},"turso","Turso","Link Turso databases to your services and track what changes","Polylane maps your Turso groups and databases, links them to the services that query them, and records every change. It never connects to your databases.","TursoLogo",{"connect":237,"reconnect":238,"browser":15,"headlessConnect":170,"teardown":310,"residue":2851},[],[],[2854,2857],{"type":2855,"name":2856,"icon":2849},"turso.group","Database Group",{"type":2858,"name":2291,"icon":2849},"turso.database",{"whatPolylaneDoes":2860,"howItWorks":2871},[2861,2864,2866,2869],{"title":2862,"body":2863},"Groups and databases in the graph","Every database group and libSQL database with its locations, placement, and branching parentage, next to everything else you run.",{"title":2301,"body":2865},"Polylane matches database hostnames, so when a service slows down, the graph already knows the database behind it.",{"title":2867,"body":2868},"Change intelligence on your data layer","New databases, moved groups, and blocked reads or writes show up as changes agents can reason about mid-investigation.",{"title":2307,"body":2870},"Polylane reads the Turso Platform API and nothing else: it never connects to your databases, never sees your rows, and never holds database credentials.",[2872,2874,2876],{"title":17,"body":2873},"Paste a platform API token, pick the organization, and syncing starts.",{"title":2313,"body":2875},"Groups and databases join the graph, matched to the services that query them.",{"title":301,"body":2877},"Every sync records what changed, and investigations trace from the service to the exact database.",{"type":2879,"category":818,"subcategory":818,"name":2880,"description":2881,"longDescription":2882,"icon":2883,"lifecycle":2884,"comingSoon":15,"tools":2886,"supportedResources":2899},"neon","Neon","Find slow queries and compute problems in your Neon databases","Polylane maps your Neon projects, branches and computes, runs read-only queries and query stats to find slow queries and compute problems, and writes the fix.","NeonLogo",{"connect":237,"reconnect":238,"browser":15,"headlessConnect":170,"teardown":310,"residue":2885},[],[2887,2890,2893,2896],{"name":2888,"summary":2889},"neonRunQuery","Run a read-only SQL query on a Neon branch database",{"name":2891,"summary":2892},"neonGetQueryStats","Get top queries, connections and cache hit ratio for a Neon database",{"name":2894,"summary":2895},"neonListOperations","List recent Neon control-plane operations, such as compute starts and branch creations, with failures",{"name":2897,"summary":2898},"neonApi","Call any Neon API endpoint that lacks a dedicated tool",[2900,2902,2905,2908],{"type":2901,"name":1775,"icon":2883},"neon.project",{"type":2903,"name":2904,"icon":2883},"neon.branch","Branch",{"type":2906,"name":2907,"icon":2883},"neon.endpoint","Compute",{"type":2909,"name":2291,"icon":2883},"neon.database",{"type":2911,"category":818,"subcategory":818,"name":2912,"description":2913,"longDescription":2914,"icon":2915,"lifecycle":2916,"comingSoon":15,"tools":2919,"supportedResources":2947,"marketing":2970},"upstash","Upstash","Find slow commands and failed messages in your Upstash Redis, Vector, Search and QStash","Polylane maps your Upstash Redis databases, Vector and Search indexes and QStash schedules, queues and URL groups, links them to the services that use them, and finds the cause when latency, traffic or failed messages jump.","UpstashLogo",{"connect":237,"reconnect":238,"browser":15,"headlessConnect":170,"teardown":171,"residue":2917},[2918],"Upstash Developer API key",[2920,2923,2926,2929,2932,2935,2938,2941,2944],{"name":2921,"summary":2922},"upstashRedisCommand","Run one read-only command on an Upstash Redis database",{"name":2924,"summary":2925},"upstashVectorIndex","Read an Upstash Vector index: info, namespaces, vectors and nearest-neighbor queries",{"name":2927,"summary":2928},"upstashSearchIndex","Read an Upstash Search database: info, indexes, documents and search queries",{"name":2930,"summary":2931},"upstashQStashLogs","Read QStash delivery logs: every state change of the messages in one region",{"name":2933,"summary":2934},"upstashQStashDeadLetters","Read the QStash dead-letter queue: messages that ran out of retries",{"name":2936,"summary":2937},"upstashQStashResources","Read QStash schedules, queues, URL groups and flow control keys in one region",{"name":2939,"summary":2940},"upstashWorkflowRuns","Read Upstash Workflow runs, their steps and failed runs (logs) in one QStash region",{"name":2942,"summary":2943},"upstashQStashApi","Read QStash schedules, queues, URL groups, dead letters and logs",{"name":2945,"summary":2946},"upstashApi","Read any Upstash Developer API endpoint that lacks a dedicated tool",[2948,2952,2956,2959,2963,2965,2967],{"type":2949,"name":2950,"icon":2951},"upstash.redis_database","Redis Database","UpstashRedisLogo",{"type":2953,"name":2954,"icon":2955},"upstash.vector_index","Vector Index","UpstashVectorLogo",{"type":2957,"name":2958,"icon":2915},"upstash.search_index","Search Index",{"type":2960,"name":2961,"icon":2962},"upstash.qstash","QStash","UpstashQstashLogo",{"type":2964,"name":2777,"icon":2962},"upstash.qstash_schedule",{"type":2966,"name":2686,"icon":2962},"upstash.qstash_queue",{"type":2968,"name":2969,"icon":2962},"upstash.qstash_url_group","URL Group",{"whatPolylaneDoes":2971,"howItWorks":2984},[2972,2975,2978,2981],{"title":2973,"body":2974},"Redis, Vector, Search and QStash in one graph","Redis databases, Vector and Search indexes, and the schedules, queues and URL groups of each QStash region, with their regions, plans and history.",{"title":2976,"body":2977},"Traced from UPSTASH_REDIS_REST_URL to the database","Services elsewhere in your stack that point at an Upstash endpoint are linked to that database or index. A QStash schedule is linked to the queue, URL group or host it publishes to.",{"title":2979,"body":2980},"Failed messages read from the source","Mid-investigation, agents read QStash delivery logs, the dead-letter queue, and Upstash Workflow runs with their failed steps.",{"title":2982,"body":2983},"Checks on latency, traffic and storage","Redis p99 latency, throughput, storage headroom and dead-letter growth run as checks on a cadence, and agents flag results that stray from normal.",[2985,2987,2990],{"title":17,"body":2986},"Create a Developer API key in the Upstash Console and paste it with the email you sign in with. It's encrypted before it's stored.",{"title":2988,"body":2989},"Discover","Databases, indexes and QStash resources land in the graph, linked to the services that use them.",{"title":2991,"body":2992},"Investigate read-only","Agents run allowlisted read commands with each database's read-only token, and query Vector and Search indexes against the resource behind an issue.",{"type":2994,"category":818,"subcategory":818,"name":2995,"description":2996,"longDescription":2997,"icon":2998,"lifecycle":2999,"comingSoon":170,"tools":3001,"supportedResources":3002},"mongodb","MongoDB Atlas","Watch Atlas clusters and find the slow queries behind issues","Polylane will map your MongoDB Atlas clusters and databases, read their performance metrics to check cluster health, and find the slow queries behind issues.","MongodbLogo",{"connect":539,"reconnect":539,"browser":15,"headlessConnect":15,"teardown":539,"residue":3000},[],[],[],{"type":3004,"category":818,"subcategory":818,"name":3005,"description":3006,"longDescription":3007,"icon":3008,"lifecycle":3009,"comingSoon":170,"tools":3011,"supportedResources":3012},"runpod","Runpod","Watch GPU pods and serverless endpoints, and investigate failed jobs","Polylane will map your Runpod pods, serverless endpoints and clusters, investigate failed jobs and unhealthy workers, and show where your GPU spend goes.","RunpodLogo",{"connect":539,"reconnect":539,"browser":15,"headlessConnect":15,"teardown":539,"residue":3010},[],[],[],{"type":3014,"category":818,"subcategory":818,"name":3015,"description":3016,"longDescription":3017,"icon":3018,"lifecycle":3019,"comingSoon":170,"tools":3021,"supportedResources":3022},"parasail","Parasail","Watch inference endpoint latency and investigate serving errors","Polylane will watch your Parasail inference endpoints and batch jobs, track request latency and errors, and find the cause when serving breaks down.","ParasailLogo",{"connect":539,"reconnect":539,"browser":15,"headlessConnect":15,"teardown":539,"residue":3020},[],[],[],{"type":3024,"category":818,"subcategory":818,"name":3025,"description":3026,"longDescription":3027,"icon":3028,"lifecycle":3029,"comingSoon":170,"tools":3031,"supportedResources":3032},"baseten","Baseten","Find the cause of failed predictions, cold starts and scaling problems","Polylane will watch your Baseten model deployments and inference endpoints, investigate failed predictions, cold starts and autoscaling, and find the cause.","BasetenLogo",{"connect":539,"reconnect":539,"browser":15,"headlessConnect":15,"teardown":539,"residue":3030},[],[],[],{"type":3034,"category":818,"subcategory":818,"name":3035,"description":3036,"longDescription":3037,"icon":3038,"lifecycle":3039,"comingSoon":170,"tools":3041,"supportedResources":3042},"digitalocean","Digital Ocean","Spot issues across your droplets, apps and databases","Polylane will map your DigitalOcean droplets, apps and databases, read their metrics and logs to spot issues, find the cause, and write the fix in your code.","i-logos:digital-ocean-icon",{"connect":539,"reconnect":539,"browser":15,"headlessConnect":15,"teardown":539,"residue":3040},[],[],[],{"type":3044,"category":818,"subcategory":818,"name":3045,"description":3046,"longDescription":3047,"icon":3048,"lifecycle":3049,"comingSoon":170,"tools":3051,"supportedResources":3052},"firebase","Firebase","Fix failing Cloud Functions, Firestore queries and auth in Firebase","Polylane will map your Firebase project, read Cloud Functions logs and Firestore and auth activity to spot issues, find the cause, and write the fix.","i-logos-firebase-icon",{"connect":539,"reconnect":539,"browser":15,"headlessConnect":15,"teardown":539,"residue":3050},[],[],[],{"type":3054,"category":818,"subcategory":818,"name":3055,"description":3056,"longDescription":3057,"icon":3058,"lifecycle":3059,"comingSoon":170,"tools":3061,"supportedResources":3062},"clerk","Clerk","Find what's behind spikes in Clerk sign-in failures","Polylane will watch sign-up and sign-in activity in your Clerk application, investigate authentication failures, and find what caused them to start.","i-simple-icons-clerk",{"connect":539,"reconnect":539,"browser":15,"headlessConnect":15,"teardown":539,"residue":3060},[],[],[],{"type":3064,"category":818,"subcategory":818,"name":3065,"description":3066,"longDescription":3067,"icon":3068,"lifecycle":3069,"comingSoon":170,"tools":3071,"supportedResources":3072},"workos","WorkOS","Find out why SSO logins or directory sync start failing","Polylane will watch your WorkOS SSO connections and directory sync, investigate login and provisioning failures, and find what caused them to start.","i-logos-workos-icon",{"connect":539,"reconnect":539,"browser":15,"headlessConnect":15,"teardown":539,"residue":3070},[],[],[],{"type":3074,"category":818,"subcategory":818,"name":3075,"description":3076,"longDescription":3077,"icon":3078,"lifecycle":3079,"comingSoon":170,"tools":3081,"supportedResources":3082},"unkey","Unkey","Catch rate-limit spikes and failed key verifications in Unkey","Polylane will watch key verifications and rate limits in your Unkey workspace, catch spikes and failures as they start, and find what caused them.","UnkeyLogo",{"connect":539,"reconnect":539,"browser":15,"headlessConnect":15,"teardown":539,"residue":3080},[],[],[],{"type":3084,"category":818,"subcategory":818,"name":3085,"description":3086,"longDescription":3087,"icon":3088,"lifecycle":3089,"comingSoon":170,"tools":3091,"supportedResources":3092},"hatchet","Hatchet","Find out why Hatchet runs fail or get stuck","Polylane will watch your Hatchet task queues and workflow runs, investigate failed and stuck runs, and find the worker and concurrency problems behind them.","HatchetLogo",{"connect":539,"reconnect":539,"browser":15,"headlessConnect":15,"teardown":539,"residue":3090},[],[],[],{"type":3094,"category":818,"subcategory":818,"name":3095,"description":3096,"longDescription":3097,"icon":3098,"lifecycle":3099,"comingSoon":170,"tools":3101,"supportedResources":3102},"inngest","Inngest","Find out why your Inngest functions fail or stall","Polylane will map your Inngest apps, functions and events, read failed and stalled runs to find the cause, and write the fix in your code.","InngestLogo",{"connect":539,"reconnect":539,"browser":15,"headlessConnect":15,"teardown":539,"residue":3100},[],[],[],{"type":3104,"category":818,"subcategory":818,"name":3105,"description":3106,"longDescription":3107,"icon":3108,"lifecycle":3109,"comingSoon":170,"tools":3111,"supportedResources":3112},"temporal","Temporal","Find out why your Temporal workflows fail or get stuck","Polylane will watch your Temporal namespaces and workflow executions, investigate failed and stuck workflows, and find the activity and worker problems behind them.","i-logos-temporal-icon",{"connect":539,"reconnect":539,"browser":15,"headlessConnect":15,"teardown":539,"residue":3110},[],[],[],{"type":3114,"category":818,"subcategory":818,"name":3115,"description":3116,"longDescription":3117,"icon":3118,"lifecycle":3119,"comingSoon":170,"tools":3121,"supportedResources":3122},"snowflake","Snowflake","Find out why Snowflake queries and tasks fail or slow down","Polylane will map your Snowflake warehouses, databases and tasks, read failed and slow queries, and find the cause in your code or data pipelines.","i-logos-snowflake-icon",{"connect":539,"reconnect":539,"browser":15,"headlessConnect":15,"teardown":539,"residue":3120},[],[],[],{"type":3124,"category":818,"subcategory":818,"name":3125,"description":3126,"longDescription":3127,"icon":3128,"lifecycle":3129,"comingSoon":170,"tools":3131,"supportedResources":3132},"databricks","Databricks","Find out why your Databricks jobs and pipelines fail","Polylane will map your Databricks workspaces, jobs and clusters, read failed runs and their logs, and find the cause in your code or cluster setup.","i-logos-databricks-icon",{"connect":539,"reconnect":539,"browser":15,"headlessConnect":15,"teardown":539,"residue":3130},[],[],[],{"type":3134,"category":818,"subcategory":818,"name":3135,"description":3136,"longDescription":3137,"icon":3138,"lifecycle":3139,"comingSoon":170,"tools":3141,"supportedResources":3142},"confluent","Confluent","Catch consumer lag and failed connectors in Confluent Cloud","Polylane will map your Confluent Cloud clusters, topics and connectors, watch consumer lag and throughput, and find what caused a change.","ConfluentLogo",{"connect":539,"reconnect":539,"browser":15,"headlessConnect":15,"teardown":539,"residue":3140},[],[],[],{"type":3144,"category":818,"subcategory":818,"name":3145,"description":3146,"longDescription":3147,"icon":3148,"lifecycle":3149,"comingSoon":170,"tools":3151,"supportedResources":3152},"redis_cloud","Redis Cloud","Find the cause of latency and memory problems in Redis Cloud","Polylane will map your Redis Cloud subscriptions and databases, watch latency, memory and connection metrics, and find what caused a change.","RedisLogo",{"connect":539,"reconnect":539,"browser":15,"headlessConnect":15,"teardown":539,"residue":3150},[],[],[],{"type":3154,"category":161,"subcategory":231,"name":3155,"description":3156,"longDescription":3157,"icon":3158,"lifecycle":3159,"comingSoon":170,"tools":3161,"supportedResources":3162},"elastic","Elastic","Query Elastic logs, traces and metrics to find the cause","Polylane will query your Elasticsearch logs and Elastic APM traces and metrics during investigations to find the cause of errors and slow services, and write the fix.","i-simple-icons-elastic",{"connect":539,"reconnect":539,"browser":15,"headlessConnect":15,"teardown":539,"residue":3160},[],[],[],{"type":3164,"category":161,"subcategory":807,"name":3165,"description":3166,"longDescription":3167,"icon":3168,"lifecycle":3169,"comingSoon":170,"tools":3171,"supportedResources":3172},"opsgenie","Opsgenie","Investigate Opsgenie alerts as soon as they open","Polylane will pick up your Opsgenie alerts, investigate each one against your code and infrastructure, and add what it finds to the alert.","i-logos-opsgenie",{"connect":539,"reconnect":539,"browser":15,"headlessConnect":15,"teardown":539,"residue":3170},[],[],[],{"type":3174,"category":161,"subcategory":3175,"name":3176,"description":3177,"longDescription":3178,"icon":3179,"lifecycle":3180,"comingSoon":170,"tools":3182,"supportedResources":3183},"buildkite","ci-cd","Buildkite","Find out why your Buildkite builds fail","Polylane will read failed Buildkite builds and their job logs, find the cause, and write the fix in your code.","i-logos-buildkite-icon",{"connect":539,"reconnect":539,"browser":15,"headlessConnect":15,"teardown":539,"residue":3181},[],[],[],{"type":3185,"category":161,"subcategory":3175,"name":3186,"description":3187,"longDescription":3188,"icon":3189,"lifecycle":3190,"comingSoon":170,"tools":3192,"supportedResources":3193},"launchdarkly","LaunchDarkly","Find which LaunchDarkly flag change caused a problem","Polylane will watch flag changes in your LaunchDarkly projects, link each one to the errors and latency that follow, and find which change caused a problem.","i-logos-launchdarkly-icon",{"connect":539,"reconnect":539,"browser":15,"headlessConnect":15,"teardown":539,"residue":3191},[],[],[],{"type":3195,"category":161,"subcategory":162,"name":3196,"description":3197,"longDescription":3198,"icon":3199,"lifecycle":3200,"comingSoon":170,"tools":3202,"supportedResources":3203},"bitbucket","Bitbucket","Read your Bitbucket repositories and open fixes as pull requests","Polylane will read your Bitbucket repositories during investigations, link changes to the problems they cause, and open fixes as pull requests.","i-logos-bitbucket",{"connect":539,"reconnect":539,"browser":15,"headlessConnect":15,"teardown":539,"residue":3201},[],[],[],{"type":3205,"category":161,"subcategory":231,"name":3206,"description":3207,"longDescription":3208,"icon":3209,"lifecycle":3210,"comingSoon":170,"tools":3212,"supportedResources":3213},"signoz","SigNoz","Query SigNoz traces, metrics and logs to find the cause","Polylane will query your SigNoz traces, metrics and logs during investigations to find the cause of latency, errors and unhealthy services, and write the fix.","SignozLogo",{"connect":539,"reconnect":539,"browser":15,"headlessConnect":15,"teardown":539,"residue":3211},[],[],[],{"type":3215,"category":161,"subcategory":231,"name":3216,"description":3217,"longDescription":3218,"icon":3219,"lifecycle":3220,"comingSoon":15,"tools":3223,"supportedResources":3248},"langsmith","LangSmith","Catch error, latency and cost changes in your LLM apps on LangSmith","Polylane watches your LangSmith projects for changes in errors, latency and cost, picks up your alert rules, and opens failing traces to find the cause.","LangchainLogo",{"connect":237,"reconnect":238,"browser":15,"headlessConnect":170,"teardown":171,"residue":3221},[3222],"LangSmith API key",[3224,3227,3230,3233,3236,3239,3242,3245],{"name":3225,"summary":3226},"langsmithListProjects","List LangSmith tracing projects with run counts, error rates, latency, tokens and cost",{"name":3228,"summary":3229},"langsmithQueryRuns","Search LangSmith runs and traces by project, time window, status, run type and filter",{"name":3231,"summary":3232},"langsmithGetTrace","Read one LangSmith trace as a run tree with latency, tokens, cost and errors",{"name":3234,"summary":3235},"langsmithGetProjectMetrics","Read LangSmith project metrics over time: traces, errors, latency, LLM calls, tokens and cost",{"name":3237,"summary":3238},"langsmithListFeedback","List LangSmith feedback scores and comments on runs",{"name":3240,"summary":3241},"langsmithListDatasets","List LangSmith datasets and read dataset examples",{"name":3243,"summary":3244},"langsmithListAlertRules","List LangSmith alert rules and where each rule sends its alerts",{"name":3246,"summary":3247},"langsmithApi","Call the connected LangSmith REST API",[],{"type":3250,"category":161,"subcategory":231,"name":3251,"description":3252,"longDescription":3253,"icon":3254,"lifecycle":3255,"comingSoon":15,"tools":3258,"supportedResources":3280,"credentialSetup":3281},"braintrust","Braintrust","Find the cause of regressions in Braintrust logs and experiments","Polylane watches your Braintrust projects for changes in errors, latency and cost, picks up your alerts, and queries logs and experiments to find the cause.","BraintrustLogo",{"connect":237,"reconnect":238,"browser":15,"headlessConnect":170,"teardown":171,"residue":3256},[3257],"Braintrust service token",[3259,3262,3265,3268,3271,3274,3277],{"name":3260,"summary":3261},"braintrustListProjects","List Braintrust projects with their IDs and links",{"name":3263,"summary":3264},"braintrustSearchTraces","Search Braintrust log traces by project, time window, errors and SQL filter",{"name":3266,"summary":3267},"braintrustGetTrace","Read one Braintrust trace as a span tree with latency, tokens, cost and errors",{"name":3269,"summary":3270},"braintrustSql","Query Braintrust logs, experiments and datasets with SQL",{"name":3272,"summary":3273},"braintrustListExperiments","List Braintrust experiments (eval runs) of a project with commit and dataset",{"name":3275,"summary":3276},"braintrustSummarizeExperiment","Summarize one Braintrust experiment's scores against a baseline experiment",{"name":3278,"summary":3279},"braintrustApi","Call the connected Braintrust REST API",[],{"url":3282,"steps":3283,"secrets":3293,"source":3297},"https:\u002F\u002Fwww.braintrust.dev\u002Fapp\u002F~\u002Fconfiguration\u002Fservice-tokens",[3284,3287,3289,3291],{"say":3285,"target":3286,"action":453},"Start a service token, so the connection does not depend on one person.","+ Service token",{"say":3288},"Name the service account Polylane.",{"say":3290},"Assign a permission group that can read and update all projects in the organization.",{"say":3292,"target":652,"action":453},"Create the token. Braintrust shows it one time.",[3294],{"field":464,"label":3295,"pattern":3296},"Service token","^bt-st-\\S+$","https:\u002F\u002Fdocs.braintrust.dev\u002Fadmin\u002Faccess-control\u002Fmanage-permissions",{"type":3299,"category":161,"subcategory":231,"name":3300,"description":3301,"longDescription":3302,"icon":3303,"lifecycle":3304,"comingSoon":170,"tools":3306,"supportedResources":3307},"arize","Arize","Investigate drift, latency and quality drops in your models","Polylane will query your Arize traces, model performance and eval results to investigate drift, latency and quality drops, and find what caused them.","ArizeLogo",{"connect":539,"reconnect":539,"browser":15,"headlessConnect":15,"teardown":539,"residue":3305},[],[],[],{"type":3309,"category":161,"subcategory":796,"name":3310,"description":3311,"longDescription":3312,"icon":3313,"lifecycle":3314,"comingSoon":15,"tools":3316,"supportedResources":3329,"marketing":3330},"linear","Linear","File Linear issues from investigations and keep them up to date","Polylane files Linear issues when an investigation finds work for your team, with the evidence attached, and updates status and comments as things change.","i-simple-icons-linear",{"connect":237,"reconnect":238,"browser":15,"headlessConnect":170,"teardown":310,"residue":3315},[],[3317,3320,3323,3326],{"name":3318,"summary":3319},"linearApi","Run any Linear GraphQL query or mutation that lacks a dedicated tool",{"name":3321,"summary":3322},"linearTeams","List Linear teams, workflow states, and members",{"name":3324,"summary":3325},"linearProjects","List Linear projects and their delivery state",{"name":3327,"summary":3328},"linearIssues","Read, search, create, update, and comment on Linear issues",[],{"whatPolylaneDoes":3331,"howItWorks":3341},[3332,3335,3338],{"title":3333,"body":3334},"Findings become issues","When an investigation ends at something your team has to fix, the agent files it in Linear with the evidence trail in the description, on the right team with the right priority.",{"title":3336,"body":3337},"Issues move with the work","Agents update state, priority, and assignee as the situation changes, and leave comments with what they found, so Linear reflects reality without anyone retyping it.",{"title":3339,"body":3340},"Queried mid-conversation","Ask what is open, in progress, or assigned to someone and the agent reads it straight from Linear, teams, projects, and issues alike.",[3342,3344,3347],{"title":17,"body":3343},"Paste a Linear API key. It's encrypted before it's stored.",{"title":3345,"body":3346},"Agents see your workspace","Teams, projects, workflow states, and issues become queryable in every thread.",{"title":3348,"body":3349},"Issues get filed","When agents create or change an issue, you confirm the action first, and the result links back to the thread.",{"type":3351,"category":161,"subcategory":796,"name":3352,"description":3353,"longDescription":3354,"icon":3355,"lifecycle":3356,"comingSoon":170,"tools":3358,"supportedResources":3359},"zendesk","Zendesk","Link support tickets to the issues behind them","Polylane will read Zendesk tickets, link customer reports to the issues behind them, show which customers are affected, and update support when a fix ships.","i-logos-zendesk-icon",{"connect":539,"reconnect":539,"browser":15,"headlessConnect":15,"teardown":539,"residue":3357},[],[],[],{"type":3361,"category":161,"subcategory":796,"name":3362,"description":3363,"longDescription":3364,"icon":3365,"lifecycle":3366,"comingSoon":170,"tools":3368,"supportedResources":3369},"fin","Fin","Link Fin and Intercom conversations to the issues behind them","Polylane will read Fin and Intercom conversations, link what customers report to issues, show who is affected, and keep support updated when a fix ships.","i-logos-intercom-icon",{"connect":539,"reconnect":539,"browser":15,"headlessConnect":15,"teardown":539,"residue":3367},[],[],[],{"type":3371,"category":161,"subcategory":762,"name":3372,"description":3373,"longDescription":3374,"icon":3375,"lifecycle":3376,"comingSoon":170,"tools":3378,"supportedResources":3379},"microsoft-teams","Microsoft Teams","Ask Polylane about production and get issue updates in Teams","Polylane will join your Microsoft Teams channels so you can ask about production, start investigations and get issue updates without leaving Teams.","i-logos-microsoft-teams",{"connect":539,"reconnect":539,"browser":15,"headlessConnect":15,"teardown":539,"residue":3377},[],[],[],{"type":3381,"category":161,"subcategory":3382,"name":3383,"description":3384,"longDescription":3385,"icon":3386,"lifecycle":3387,"comingSoon":170,"tools":3389,"supportedResources":3390},"confluence","knowledge-base","Confluence","Ground investigations in your runbooks and write up postmortems","Polylane will search your Confluence pages for runbooks and context during investigations, and draft postmortems and runbooks from what it finds.","i-logos-confluence",{"connect":539,"reconnect":539,"browser":15,"headlessConnect":15,"teardown":539,"residue":3388},[],[],[],{"type":3392,"category":161,"subcategory":3382,"name":3393,"description":3394,"longDescription":3395,"icon":3396,"lifecycle":3397,"comingSoon":170,"tools":3399,"supportedResources":3400},"notion","Notion","Pull context from your Notion runbooks and record what investigations find","Polylane will search your Notion pages and databases for runbooks and context during investigations, and record what it finds in your workspace.","i-logos-notion-icon",{"connect":539,"reconnect":539,"browser":15,"headlessConnect":15,"teardown":539,"residue":3398},[],[],[],{"type":3402,"category":161,"subcategory":162,"name":3403,"description":3404,"longDescription":3405,"icon":3406,"lifecycle":3407,"comingSoon":15,"tools":3411,"supportedResources":3439},"gitlab","GitLab","Read your code, link projects to what they deploy, and catch failed pipelines","Polylane reads the code in your GitLab group, links each project to the resources it deploys, and raises an issue when a pipeline fails on the default branch. Works with GitLab.com and self-managed instances.","i-logos-gitlab-icon",{"connect":476,"reconnect":477,"browser":170,"headlessConnect":15,"teardown":171,"residue":3408},[3409,3410],"Polylane service account in the group (its token is revoked)","Polylane group webhook",[3412,3415,3418,3421,3424,3427,3430,3433,3436],{"name":3413,"summary":3414},"gitlabApi","Read code, commits, merge requests and pipelines in the connected GitLab group",{"name":3416,"summary":3417},"gitlabFetchFiles","Fetch file contents from a GitLab project",{"name":3419,"summary":3420},"gitlabSearch","Search code, merge requests, issues, commits and projects in the connected GitLab group",{"name":3422,"summary":3423},"gitlabCommits","Read commits in a GitLab project (list\u002FgetDiff)",{"name":3425,"summary":3426},"gitlabMergeRequests","Read merge requests in a GitLab project (list\u002Fget)",{"name":3428,"summary":3429},"gitlabGetMergeRequestDiff","Get the diff of a GitLab merge request",{"name":3431,"summary":3432},"gitlabPipelines","Read GitLab CI\u002FCD pipelines, jobs and job logs (list\u002Fget\u002Fjobs\u002FjobLog)",{"name":3434,"summary":3435},"gitlabCloseMergeRequest","Close a GitLab merge request Polylane opened",{"name":3437,"summary":3438},"gitlabCreateBranch","Create a new branch in a GitLab project",[],{"type":3441,"category":161,"subcategory":807,"name":3442,"description":3443,"longDescription":3444,"icon":3445,"lifecycle":3446,"comingSoon":15,"tools":3449,"supportedResources":3462,"credentialSetup":3463},"incident_io","incident.io","Investigate every new incident and post findings in its Slack channel","Polylane investigates every new incident.io incident, posts findings in its Slack channel, and pages your on-call through incident.io when a person is needed.","IncidentIoLogo",{"connect":237,"reconnect":238,"browser":15,"headlessConnect":170,"teardown":171,"residue":3447},[3448],"incident.io API key",[3450,3453,3456,3459],{"name":3451,"summary":3452},"incidentIoIncidents","List incident.io incidents or read one with its updates, timeline and follow-ups",{"name":3454,"summary":3455},"incidentIoOnCall","Show incident.io on-call schedules and who is on call now",{"name":3457,"summary":3458},"incidentIoCatalog","Read the incident.io catalog: catalog types and their entries",{"name":3460,"summary":3461},"incidentIoApi","Call the connected incident.io REST API",[],{"url":3464,"steps":3465,"secrets":3498,"source":3500},"https:\u002F\u002Fapp.incident.io\u002F~\u002Fsettings\u002Fapi-keys",[3466,3468,3472,3475,3478,3481,3484,3487,3490,3493,3496],{"say":3467},"Create a new API key and name it Polylane.",{"say":3469,"target":3470,"action":3471},"Polylane reads incidents and follow-ups.","View data","check",{"say":3473,"target":3474,"action":3471},"Polylane reads the catalog.","View catalog",{"say":3476,"target":3477,"action":3471},"Polylane reads who is on call.","Read schedules",{"say":3479,"target":3480,"action":3471},"Polylane adds the workflow that starts an investigation for each incident.","Manage workflows",{"say":3482,"target":3483,"action":3471},"The workflow keeps its secret in incident.io.","Manage secrets",{"say":3485,"target":3486,"action":3471},"Polylane adds its alert source for escalations.","Manage on-call resources",{"say":3488,"target":3489,"action":3471},"Polylane posts updates to incidents after you approve them.","Edit incidents",{"say":3491,"target":3492,"action":3471},"Polylane opens incidents after you approve them.","Create incidents",{"say":3494,"target":3495,"action":3471},"Polylane pages an escalation path after you approve it.","Create escalations",{"say":3497},"Create the key. incident.io shows it one time.",[3499],{"field":464,"label":657},"https:\u002F\u002Fdocs.incident.io\u002Fadmin\u002Fapi-keys",{"type":3502,"category":818,"subcategory":818,"name":3503,"description":3504,"longDescription":3505,"icon":3506,"lifecycle":3507,"comingSoon":170,"tools":3509,"supportedResources":3510},"northflank","Northflank","Find out why Northflank builds and releases fail","Polylane will map your Northflank services, jobs, addons and deployments, follow builds and releases, and read logs to find why a deployment failed.","NorthflankLogo",{"connect":539,"reconnect":539,"browser":15,"headlessConnect":15,"teardown":539,"residue":3508},[],[],[],{"type":3512,"category":818,"subcategory":818,"name":3513,"description":3514,"longDescription":3515,"icon":3516,"lifecycle":3517,"comingSoon":170,"tools":3519,"supportedResources":3520},"netlify","Netlify","Find errors and slow pages across your Netlify sites","Polylane will triage failed Netlify deploys, read function and edge logs to find the cause of errors and slow pages, and write the fix in your code.","i-logos-netlify-icon",{"connect":539,"reconnect":539,"browser":15,"headlessConnect":15,"teardown":539,"residue":3518},[],[],[],{"type":3522,"category":161,"subcategory":3175,"name":3523,"description":3524,"longDescription":3525,"icon":3526,"lifecycle":3527,"comingSoon":15,"tools":3530,"supportedResources":3549},"depot","Depot","Find out why CI jobs on Depot runners fail or slow down","Polylane watches failure rates and durations of your GitHub Actions jobs on Depot runners, searches their logs and build steps, and finds why a job broke.","DepotLogo",{"connect":237,"reconnect":238,"browser":15,"headlessConnect":170,"teardown":171,"residue":3528},[3529],"Depot organization API token",[3531,3534,3537,3540,3543,3546],{"name":3532,"summary":3533},"depotBuilds","List Depot container build projects and builds, and read build steps and step logs",{"name":3535,"summary":3536},"depotGithubActionsJobs","List or get GitHub Actions jobs that run on Depot runners",{"name":3538,"summary":3539},"depotGithubActionsAnalytics","Read Depot GitHub Actions analytics: failure rates, durations, runner utilization and sizing recommendations",{"name":3541,"summary":3542},"depotGithubActionsLogs","Search the logs of GitHub Actions jobs on Depot runners and read the lines around a match",{"name":3544,"summary":3545},"depotCiRuns","List Depot CI runs, read a run's jobs and logs, and get Depot's failure diagnosis",{"name":3547,"summary":3548},"depotApi","Call any Depot API method with the connected organization token",[],{"type":3551,"category":161,"subcategory":3175,"name":3552,"description":3553,"longDescription":3554,"icon":3555,"lifecycle":3556,"comingSoon":15,"tools":3559,"supportedResources":3572},"blacksmith","Blacksmith","Find out why CI jobs on Blacksmith runners fail or slow down","Polylane watches failure rates and durations of your GitHub Actions jobs on Blacksmith runners, searches their logs, steps and tests, and finds why a job broke.","BlacksmithLogo",{"connect":237,"reconnect":238,"browser":15,"headlessConnect":170,"teardown":171,"residue":3557},[3558],"Blacksmith organization token",[3560,3563,3566,3569],{"name":3561,"summary":3562},"blacksmithJobs","List GitHub Actions jobs on Blacksmith runners and read the steps, tests, metrics and containers of one job",{"name":3564,"summary":3565},"blacksmithJobLogs","Read the log lines of one GitHub Actions job on a Blacksmith runner",{"name":3567,"summary":3568},"blacksmithLogs","Search the logs of all GitHub Actions jobs on Blacksmith runners and count matches over time",{"name":3570,"summary":3571},"blacksmithAnalytics","Read duration, CPU and memory analytics and billable usage of GitHub Actions jobs on Blacksmith runners",[],{"type":3574,"category":161,"subcategory":3175,"name":3575,"description":3576,"longDescription":3577,"icon":3578,"lifecycle":3579,"comingSoon":15,"tools":3582,"supportedResources":3595,"credentialSetup":3596},"circleci","CircleCI","Find why CircleCI pipelines fail, down to the step and the flaky test","Polylane will read your CircleCI pipelines, job logs and test results, find why a build failed or a test is flaky, and line it up with recent commits.","i-material-icon-theme-circleci",{"connect":237,"reconnect":238,"browser":15,"headlessConnect":170,"teardown":171,"residue":3580},[3581],"CircleCI personal API token",[3583,3586,3589,3592],{"name":3584,"summary":3585},"circleciPipelines","List CircleCI pipelines of a project and read the workflows and jobs of one pipeline",{"name":3587,"summary":3588},"circleciJobLogs","Read the step logs of one CircleCI job, failed steps first",{"name":3590,"summary":3591},"circleciTests","Read the test results of a CircleCI job and list the flaky tests of a project",{"name":3593,"summary":3594},"circleciApi","Call any CircleCI API v2 endpoint with the connected organization token",[],{"url":3597,"steps":3598,"secrets":3612,"accountField":3614,"source":3615},"https:\u002F\u002Fapp.circleci.com\u002Fsettings\u002Fuser\u002Ftokens",[3599,3602,3607,3609],{"say":3600,"target":3601,"action":453},"Start a new personal API token.","Create New Token",{"say":3603,"target":3604,"action":3605,"value":3606},"Name the token so you can find it later.","Token name","fill","Polylane",{"say":3608},"Choose an expiry date within one year. Replace the token before that date to keep Polylane connected.",{"say":3610,"target":3611,"action":453},"Create the token. CircleCI shows it one time.","Add API Token",[3613],{"field":464,"label":1750},"organizationId","https:\u002F\u002Fcircleci.com\u002Fdocs\u002Fguides\u002Ftoolkit\u002Fmanaging-api-tokens\u002F",{"type":3617,"category":161,"subcategory":3618,"name":3619,"description":3620,"longDescription":3621,"icon":3622,"lifecycle":3623,"comingSoon":15,"tools":3625,"supportedResources":3653},"mixpanel","product-analytics","Mixpanel","Check how an issue affects your Mixpanel events and funnels","Polylane queries Mixpanel events, funnels and retention during investigations to see when a drop started, which users it hits, and what changed around it.","i-simple-icons-mixpanel",{"connect":237,"reconnect":238,"browser":15,"headlessConnect":170,"teardown":310,"residue":3624},[],[3626,3629,3632,3635,3638,3641,3644,3647,3650],{"name":3627,"summary":3628},"mixpanelApi","Call any Mixpanel REST endpoint that lacks a dedicated tool",{"name":3630,"summary":3631},"mixpanelSegmentation","Query Mixpanel event volume over time, segmented by a property",{"name":3633,"summary":3634},"mixpanelEvents","Discover Mixpanel event names, properties, and property values",{"name":3636,"summary":3637},"mixpanelFunnels","List Mixpanel funnels or compute a funnel's conversion",{"name":3639,"summary":3640},"mixpanelRetention","Query Mixpanel cohort retention",{"name":3642,"summary":3643},"mixpanelInsights","List Mixpanel saved reports or fetch an Insights report's data",{"name":3645,"summary":3646},"mixpanelAnnotations","List or create Mixpanel chart annotations",{"name":3648,"summary":3649},"mixpanelExportEvents","Sample raw events from Mixpanel",{"name":3651,"summary":3652},"mixpanelLexicon","Read Mixpanel Lexicon schemas (event and property definitions)",[],{"type":3655,"category":161,"subcategory":3618,"name":3656,"description":3657,"longDescription":3658,"icon":3659,"lifecycle":3660,"comingSoon":15,"tools":3662,"supportedResources":3681},"amplitude","Amplitude","Measure how many users an issue hits with your Amplitude data","Polylane queries Amplitude event volume, funnels and retention during investigations to measure how many users an issue hits and when it started.","i-logos-amplitude-icon",{"connect":237,"reconnect":238,"browser":15,"headlessConnect":170,"teardown":310,"residue":3661},[],[3663,3666,3669,3672,3675,3678],{"name":3664,"summary":3665},"amplitudeApi","Call the connected Amplitude REST API",{"name":3667,"summary":3668},"amplitudeEvents","List the event types tracked in an Amplitude project with this week's volume",{"name":3670,"summary":3671},"amplitudeSegmentation","Query Amplitude event volume or unique users over time, optionally filtered and grouped",{"name":3673,"summary":3674},"amplitudeFunnels","Compute an Amplitude conversion funnel across ordered events",{"name":3676,"summary":3677},"amplitudeRetention","Measure Amplitude retention: how many users come back after a starting event",{"name":3679,"summary":3680},"amplitudeAnnotations","List or create Amplitude chart annotations",[],{"type":3683,"category":161,"subcategory":3618,"name":3684,"description":3685,"longDescription":3686,"icon":3687,"lifecycle":3688,"comingSoon":15,"tools":3691,"supportedResources":3713},"posthog","PostHog","Use errors, replays and flag changes in PostHog to find the cause","Polylane reads PostHog error tracking, session replays and feature flag changes during investigations to find what changed and which users it affects.","i-logos-posthog-icon",{"connect":476,"reconnect":477,"browser":170,"headlessConnect":15,"teardown":171,"residue":3689},[3690],"PostHog authorized application",[3692,3695,3698,3701,3704,3707,3710],{"name":3693,"summary":3694},"posthogQuery","Query PostHog analytics or discover the event and property vocabulary for a bounded date range",{"name":3696,"summary":3697},"posthogInsights","Read the PostHog insights, dashboards, alerts and notebooks the team watches",{"name":3699,"summary":3700},"posthogChanges","Read PostHog feature flags, experiments, releases and activity that explain what changed",{"name":3702,"summary":3703},"posthogAnnotations","List PostHog project annotations before recording a new event",{"name":3705,"summary":3706},"posthogErrors","Read PostHog error-tracking issues, their events, stack frames and spike history",{"name":3708,"summary":3709},"posthogReplays","Read PostHog session recordings and playlists to understand what users saw",{"name":3711,"summary":3712},"posthogApi","Call the connected PostHog REST API",[],{"type":3715,"category":161,"subcategory":3716,"name":3717,"description":3718,"longDescription":3719,"icon":3720,"lifecycle":3721,"comingSoon":15,"tools":3723,"supportedResources":3724,"marketing":3725,"credentialSetup":3745},"devin","code-agent","Devin","Hand fixes to Devin, which opens the pull request on your GitHub","Polylane investigates the issue and hands the fix to Devin, which implements it and opens the pull request on your GitHub. Bring your own Devin API key.","DevinLogo",{"connect":237,"reconnect":238,"browser":15,"headlessConnect":170,"teardown":310,"residue":3722},[],[],[],{"whatPolylaneDoes":3726,"howItWorks":3736},[3727,3730,3733],{"title":3728,"body":3729},"Polylane investigates, Devin implements","The investigation ends with a root cause and an evidence trail; Devin takes the handoff and opens the pull request on your GitHub.",{"title":3731,"body":3732},"PRs that link back","Every pull request links back to the investigation that produced it, so the reviewer sees the evidence, not just the diff.",{"title":3734,"body":3735},"Your key, your account","Bring your own Devin API key. Polylane routes the fix through the agent your team already trusts.",[3737,3739,3742],{"title":17,"body":3738},"Paste your Devin API key. It's encrypted before it's stored.",{"title":3740,"body":3741},"Pick your executor","Choose Devin as the autofix executor for the workspace.",{"title":3743,"body":3744},"Review the PR","Devin implements the fix and opens the pull request; your review and CI gate the merge.",{"url":3746,"steps":3747,"secrets":3758,"source":3762},"https:\u002F\u002Fapp.devin.ai\u002Fsettings\u002Fdevin-api?tab=service-users",[3748,3751,3753,3756],{"say":3749,"target":3750,"action":453},"Create a service user, so autofix runs do not depend on one person.","Provision service user",{"say":3752},"Name it Polylane.",{"say":3754,"target":3755,"action":453},"The Member role can start and manage Devin sessions.","Member",{"say":3757},"Create the service user. Devin shows its token one time.",[3759],{"field":464,"label":3760,"pattern":3761},"Service user token","^cog_\\S+$","https:\u002F\u002Fdocs.devin.ai\u002Fapi-reference\u002Fgetting-started\u002Fteams-quickstart",{"type":3764,"category":161,"subcategory":3716,"name":3765,"description":3766,"longDescription":3767,"icon":3768,"lifecycle":3769,"comingSoon":15,"tools":3771,"supportedResources":3772,"marketing":3773,"credentialSetup":3788},"cursor","Cursor","Hand fixes to Cursor cloud agents, which open the pull request or merge request","Polylane investigates the issue and hands the fix to Cursor cloud agents, which implement it and open the pull request on GitHub or the merge request on GitLab. Bring your own API key.","CursorLogo",{"connect":237,"reconnect":238,"browser":15,"headlessConnect":170,"teardown":310,"residue":3770},[],[],[],{"whatPolylaneDoes":3774,"howItWorks":3781},[3775,3778,3779],{"title":3776,"body":3777},"Polylane investigates, Cursor implements","The investigation ends with a root cause and an evidence trail; Cursor's cloud agents take the handoff and open the pull request on GitHub or the merge request on GitLab.",{"title":3731,"body":3732},{"title":3734,"body":3780},"Bring your own Cursor API key. Polylane routes the fix through the agent your team already trusts.",[3782,3784,3786],{"title":17,"body":3783},"Paste your Cursor API key. It's encrypted before it's stored.",{"title":3740,"body":3785},"Choose Cursor as the autofix executor for the workspace.",{"title":3743,"body":3787},"Cursor implements the fix and opens the pull request; your review and CI gate the merge.",{"url":3789,"steps":3790,"secrets":3795,"source":3797},"https:\u002F\u002Fcursor.com\u002Fdashboard\u002Fapi",[3791,3793],{"say":3792,"target":2828,"action":453},"Start a new user API key, so Polylane can start Cloud Agents for you.",{"say":3794},"Name the key Polylane and create it. Cursor shows it one time.",[3796],{"field":464,"label":657},"https:\u002F\u002Fcursor.com\u002Fdocs\u002Fapi",{"type":3799,"category":161,"subcategory":3716,"name":3800,"description":3801,"longDescription":3802,"icon":3803,"lifecycle":3804,"comingSoon":15,"tools":3806,"supportedResources":3807,"marketing":3808,"credentialSetup":3824},"factory","Factory","Hand fixes to Factory droids, which push the pull request","Polylane investigates the issue and hands the fix to Factory droids on managed computers, which implement it and push the pull request. Bring your own API key.","FactoryLogo",{"connect":237,"reconnect":238,"browser":15,"headlessConnect":170,"teardown":310,"residue":3805},[],[],[],{"whatPolylaneDoes":3809,"howItWorks":3817},[3810,3813,3815],{"title":3811,"body":3812},"Polylane investigates, Factory implements","The investigation ends with a root cause and an evidence trail; Factory droids take the handoff on managed computers and push the pull request.",{"title":3731,"body":3814},"Every pull request links back to the investigation that produced it, and a PR closed without merging is a tracked outcome, not a mystery.",{"title":3734,"body":3816},"Bring your own Factory API key. Polylane routes the fix through the agent your team already trusts.",[3818,3820,3822],{"title":17,"body":3819},"Paste your Factory API key. It's encrypted before it's stored.",{"title":3740,"body":3821},"Choose Factory as the autofix executor for the workspace.",{"title":3743,"body":3823},"Factory implements the fix and pushes the pull request; your review and CI gate the merge.",{"url":3825,"steps":3826,"secrets":3829,"source":3831},"https:\u002F\u002Fapp.factory.ai\u002Fsettings\u002Fapi-keys",[3827],{"say":3828},"Create a new API key named Polylane. Factory shows it one time.",[3830],{"field":464,"label":657},"https:\u002F\u002Fdocs.factory.com\u002Fapi-reference",{"type":3833,"category":161,"subcategory":3716,"name":3834,"description":3835,"longDescription":3836,"icon":3837,"lifecycle":3838,"comingSoon":15,"tools":3840,"supportedResources":3841,"marketing":3842,"credentialSetup":3857},"capy","Capy","Hand fixes to Capy cloud agents, which open the pull request","Polylane investigates the issue and hands the fix to Capy cloud agents, which implement it and open the pull request on your GitHub. Bring your own API key.","CapyLogo",{"connect":237,"reconnect":238,"browser":15,"headlessConnect":170,"teardown":310,"residue":3839},[],[],[],{"whatPolylaneDoes":3843,"howItWorks":3850},[3844,3847,3848],{"title":3845,"body":3846},"Polylane investigates, Capy implements","The investigation ends with a root cause and an evidence trail; Capy's cloud agents take the handoff and open the pull request on your GitHub.",{"title":3731,"body":3814},{"title":3734,"body":3849},"Bring your own Capy API key. Polylane routes the fix through the agent your team already trusts.",[3851,3853,3855],{"title":17,"body":3852},"Paste your Capy API key. It's encrypted before it's stored.",{"title":3740,"body":3854},"Choose Capy as the autofix executor for the workspace.",{"title":3743,"body":3856},"Capy implements the fix and opens the pull request; your review and CI gate the merge.",{"url":3858,"steps":3859,"secrets":3862,"source":3865},"https:\u002F\u002Fcapy.ai\u002Fsettings\u002Fapi",[3860],{"say":3861},"Create a key for a service user with read and write access. Capy shows it one time.",[3863],{"field":464,"label":657,"pattern":3864},"^capy_[A-Za-z0-9_-]{43}$","https:\u002F\u002Fdocs.capy.ai\u002Fapi-reference\u002Fauthentication",{"type":3867,"category":161,"subcategory":3716,"name":3868,"description":3869,"longDescription":3870,"icon":3871,"lifecycle":3872,"comingSoon":170,"tools":3874,"supportedResources":3875},"coding_agent","Local coding agent","Add what your local coding agent learns about your code to the graph","Polylane will take findings from the coding agent on your machine, like Claude Code or Cursor, and add what it learns about your code to the context graph.","i-lucide-terminal",{"connect":539,"reconnect":539,"browser":15,"headlessConnect":15,"teardown":539,"residue":3873},[],[],[],{"type":3877,"category":161,"subcategory":3716,"name":3878,"description":3879,"longDescription":3880,"icon":3881,"lifecycle":3882,"comingSoon":15,"tools":3884,"supportedResources":3885,"marketing":3886,"credentialSetup":3903},"amp","Amp","Hand fixes to Amp agents, which open the pull request on your GitHub","Polylane investigates the issue and hands the fix to Amp, the coding agent by Sourcegraph, which opens the pull request on your GitHub using your Amp token.","AmpLogo",{"connect":237,"reconnect":238,"browser":15,"headlessConnect":170,"teardown":310,"residue":3883},[],[],[],{"whatPolylaneDoes":3887,"howItWorks":3895},[3888,3891,3892],{"title":3889,"body":3890},"Polylane investigates, Amp implements","The investigation ends with a root cause and an evidence trail; an Amp agent takes the handoff in a hosted orb and opens the pull request on your GitHub.",{"title":3731,"body":3814},{"title":3893,"body":3894},"Your token, your account","Bring your own Amp access token. The run uses your Amp credits and your Amp project for the repository.",[3896,3898,3901],{"title":17,"body":3897},"Paste your Amp access token. It's encrypted before it's stored.",{"title":3899,"body":3900},"Add your repositories","Each repository Polylane fixes needs an Amp project, with GitHub connected in Amp.",{"title":3743,"body":3902},"Amp implements the fix and opens the pull request; your review and CI gate the merge.",{"url":3904,"steps":3905,"secrets":3908,"source":3912},"https:\u002F\u002Fampcode.com\u002Fsettings\u002Fsecurity#access-token",[3906],{"say":3907},"Copy your access token. The short-lived token from amp login does not work here.",[3909],{"field":464,"label":3910,"pattern":3911},"Access token","^sgamp_\\S+$","https:\u002F\u002Fampcode.com\u002Fdocs\u002Fsdk",{"type":3914,"category":161,"subcategory":3915,"name":3916,"description":3917,"longDescription":3918,"icon":3919,"lifecycle":3920,"comingSoon":15,"tools":3922,"supportedResources":3923,"marketing":3924},"mcp","protocol","MCP Server","Give Polylane's agents the tools from any MCP server you run","Connect any MCP server over OAuth or an API key, and Polylane's agents can call its tools during investigations, with every call recorded in the thread.","i-hugeicons:mcp-server",{"connect":237,"reconnect":238,"browser":15,"headlessConnect":170,"teardown":310,"residue":3921},[],[],[],{"whatPolylaneDoes":3925,"howItWorks":3935},[3926,3929,3932],{"title":3927,"body":3928},"Your tools in the agent's hands","Connect any MCP-compatible server and its tools show up mid-investigation, next to the built-in observability, graph, and code tools.",{"title":3930,"body":3931},"Anything that speaks the protocol","GitHub MCP, Linear MCP, an internal server you wrote last week: if it follows the Model Context Protocol, agents can use it.",{"title":3933,"body":3934},"On the record like everything else","Calls to your MCP tools land in the thread transcript with their results, cited like every other piece of evidence.",[3936,3938,3941],{"title":17,"body":3937},"Point Polylane at your server's URL. OAuth and API-key servers both work.",{"title":3939,"body":3940},"Tools are discovered","The server's tools are enumerated and become available to the thread agent automatically.",{"title":3942,"body":3943},"Agents reach for them","Mid-investigation, your tools sit alongside the built-in ones, and every call is on the record.",{"data":3945,"body":3946},{},{"type":3947,"children":3948},"root",[3949],{"type":3950,"tag":3951,"props":3952,"children":3953},"element","p",{},[3954],{"type":3955,"value":3956},"text","Azure connects one subscription at a time through Azure Lighthouse. Choose Deploy on Azure in Polylane, then open the Azure portal, select the subscription and create the deployment. You need the Owner role on the subscription. The template delegates the subscription to a Polylane service principal that exists for this connection only, so Azure keeps each connection separate. It gives that principal Reader, Monitoring Contributor when you allow alert rules, and the role that lets Polylane remove its own delegation. It also creates a polylane-events resource group with an Event Grid topic and an event subscription for this connection that sends resource changes to Polylane. When you allow alert rules, Polylane adds an action group whose name starts with polylane-alerts- and metric alert rules for your production resources to that resource group, and investigates the alerts they send. Add that action group to your own rules to have Polylane investigate them too. Polylane stores no Azure credential. When you disconnect, Polylane removes its alert objects, its delegation and the identity of the connection. Then delete the event subscription of the connection, and the polylane-events resource group when no other Polylane connection uses the subscription.",1794594423574]