[{"data":1,"prerenderedAt":482},["ShallowReactive",2],{"page-\u002Fdatasets":3,"all-pages":154},{"id":4,"title":5,"body":6,"description":144,"extension":145,"meta":146,"navigation":147,"path":148,"robots":149,"seo":150,"sitemap":151,"stem":152,"__hash__":153},"content\u002F04.datasets\u002Findex.md","Datasets",{"type":7,"value":8,"toc":139},"minimark",[9,13,22,25],[10,11,5],"h1",{"id":12},"datasets",[14,15,16,17,21],"p",{},"Project datasets accumulate knowledge across runs: scan observations are\nreconciled into tables you can query, filter, and reuse. Every project can have\nup to 100 datasets, and workflows push into them with ",[18,19,20],"code",{},"step.update_dataset",".",[14,23,24],{},"Use this section as a reference for the whole feature:",[26,27,28,41],"table",{},[29,30,31],"thead",{},[32,33,34,38],"tr",{},[35,36,37],"th",{},"Page",[35,39,40],{},"What it covers",[42,43,44,57,68,85,96,107,118],"tbody",{},[32,45,46,54],{},[47,48,49],"td",{},[50,51,53],"a",{"href":52},"\u002Fdatasets\u002Foverview","Overview",[47,55,56],{},"Current state vs history, identity, the reserved columns, query surfaces, and limits.",[32,58,59,65],{},[47,60,61],{},[50,62,64],{"href":63},"\u002Fdatasets\u002Fschema","Schemas and identity",[47,66,67],{},"Column kinds, naming rules, identity columns, reconciliation, and schema changes.",[32,69,70,76],{},[47,71,72],{},[50,73,75],{"href":74},"\u002Fdatasets\u002Fworkflows","Pushing and reading dataset rows",[47,77,78,80,81,84],{},[18,79,20],{}," (mapping, upsert\u002Fsync modes) and ",[18,82,83],{},"step.download_dataset",", with a complete asset-tracking workflow.",[32,86,87,93],{},[47,88,89],{},[50,90,92],{"href":91},"\u002Fdatasets\u002Fsql","SQL reference",[47,94,95],{},"DuckDB dialect, query scope, pagination and ordering, allowed statements, result types, and examples.",[32,97,98,104],{},[47,99,100],{},[50,101,103],{"href":102},"\u002Fdatasets\u002Ffilters","Structured filters",[47,105,106],{},"The filter AST and operators, time ranges, where filters run, and the UI filter builder.",[32,108,109,115],{},[47,110,111],{},[50,112,114],{"href":113},"\u002Fdatasets\u002Fviews","Saved views",[47,116,117],{},"Reusable read-only queries, nesting, cycles, validity, and execution.",[32,119,120,126],{},[47,121,122],{},[50,123,125],{"href":124},"\u002Fdatasets\u002Fapi-cli","API and CLI",[47,127,128,131,132,131,135,138],{},[18,129,130],{},"DatasetService",", ",[18,133,134],{},"DatasetViewService",[18,136,137],{},"bh dataset",", exports, and scopes.",{"title":140,"searchDepth":141,"depth":142,"links":143},"",5,4,[],"Project dataset tables: schemas and identity, DuckDB SQL, structured filters, saved views, exports, and the Datasets API and CLI.","md",{},true,"\u002Fdatasets",null,{"title":5,"description":144},{"loc":148},"04.datasets\u002Findex","GsaNg9xEypjVEUIO2Bhumkjo7jFVp4hIJv9_q4Sglmc",[155,218,234,253,278,294,306,317,328,339,363,382,402,413,424],{"title":156,"path":157,"stem":158,"children":159},"Workflows","\u002Fworkflows","01.workflows",[160,162,166,170,174,178,182,186,190,194,198,202,206,210,214],{"title":156,"path":157,"stem":161},"01.workflows\u002Findex",{"title":163,"path":164,"stem":165},"Workflow Quick Reference","\u002Fworkflows\u002Fquick-reference","01.workflows\u002F00.quick-reference",{"title":167,"path":168,"stem":169},"Workflows Overview","\u002Fworkflows\u002Foverview","01.workflows\u002F01.overview",{"title":171,"path":172,"stem":173},"Workflow Syntax Reference","\u002Fworkflows\u002Fsyntax-reference","01.workflows\u002F02.syntax-reference",{"title":175,"path":176,"stem":177},"Steps","\u002Fworkflows\u002Fsteps","01.workflows\u002F03.steps",{"title":179,"path":180,"stem":181},"Step Outputs","\u002Fworkflows\u002Fstep-outputs","01.workflows\u002F04.step-outputs",{"title":183,"path":184,"stem":185},"Concurrency","\u002Fworkflows\u002Fconcurrency","01.workflows\u002F05.concurrency",{"title":187,"path":188,"stem":189},"Transforms","\u002Fworkflows\u002Ftransforms","01.workflows\u002F06.transforms",{"title":191,"path":192,"stem":193},"For Each","\u002Fworkflows\u002Ffor-each","01.workflows\u002F07.for-each",{"title":195,"path":196,"stem":197},"Modules","\u002Fworkflows\u002Fmodules","01.workflows\u002F08.modules",{"title":199,"path":200,"stem":201},"Agents","\u002Fworkflows\u002Fagents","01.workflows\u002F09.agents",{"title":203,"path":204,"stem":205},"Decisions","\u002Fworkflows\u002Fdecisions","01.workflows\u002F10.decisions",{"title":207,"path":208,"stem":209},"Configuration References","\u002Fworkflows\u002Fconfig","01.workflows\u002F11.config",{"title":211,"path":212,"stem":213},"Comparison With Other Automation Systems","\u002Fworkflows\u002Fcomparison","01.workflows\u002F12.comparison",{"title":215,"path":216,"stem":217},"Generate with AI","\u002Fworkflows\u002Fai-generation","01.workflows\u002F13.ai-generation",{"title":219,"path":220,"stem":221,"children":222},"Projects","\u002Fprojects","02.projects",[223,226,230],{"title":224,"path":220,"stem":225},"Projects & Runs","02.projects\u002Findex",{"title":227,"path":228,"stem":229},"Projects Overview","\u002Fprojects\u002Foverview","02.projects\u002F1.overview",{"title":231,"path":232,"stem":233},"Runs & Artifacts","\u002Fprojects\u002Fruns-artifacts","02.projects\u002F2.runs-artifacts",{"title":235,"path":236,"stem":237,"children":238},"Runners","\u002Frunners","03.runners",[239,241,245,249],{"title":235,"path":236,"stem":240},"03.runners\u002Findex",{"title":242,"path":243,"stem":244},"Runner Overview","\u002Frunners\u002Foverview","03.runners\u002F1.overview",{"title":246,"path":247,"stem":248},"Getting Started with Runners","\u002Frunners\u002Fgetting-started","03.runners\u002F2.getting-started",{"title":250,"path":251,"stem":252},"Custom Runner Images","\u002Frunners\u002Fcustom-image","03.runners\u002F3.custom-image",{"title":5,"path":148,"stem":254,"children":255},"04.datasets",[256,257,260,263,266,269,272,275],{"title":5,"path":148,"stem":152},{"title":258,"path":52,"stem":259},"Datasets Overview","04.datasets\u002F1.overview",{"title":261,"path":63,"stem":262},"Dataset Schemas and Identity","04.datasets\u002F2.schema",{"title":264,"path":74,"stem":265},"Pushing and Reading Dataset Rows","04.datasets\u002F3.workflows",{"title":267,"path":91,"stem":268},"Dataset SQL Reference","04.datasets\u002F4.sql",{"title":270,"path":102,"stem":271},"Dataset Structured Filters","04.datasets\u002F5.filters",{"title":273,"path":113,"stem":274},"Dataset Saved Views","04.datasets\u002F6.views",{"title":276,"path":124,"stem":277},"Datasets API and CLI","04.datasets\u002F7.api-cli",{"title":279,"path":280,"stem":281,"children":282},"Agent","\u002Fagent","05.agent",[283,286,290],{"title":284,"path":280,"stem":285},"BH Agent","05.agent\u002Findex",{"title":287,"path":288,"stem":289},"BH Agent Overview","\u002Fagent\u002Foverview","05.agent\u002F1.overview",{"title":291,"path":292,"stem":293},"MCP servers","\u002Fagent\u002Fmcp-servers","05.agent\u002F2.mcp-servers",{"title":295,"path":296,"stem":297,"children":298},"Bhlast","\u002Fbhlast","06.bhlast",[299,302],{"title":300,"path":296,"stem":301},"Bhlast Servers","06.bhlast\u002Findex",{"title":303,"path":304,"stem":305},"Bhlast servers overview","\u002Fbhlast\u002Foverview","06.bhlast\u002F1.overview",{"title":307,"path":308,"stem":309,"children":310},"Notifications","\u002Fnotifications","07.notifications",[311,313],{"title":307,"path":308,"stem":312},"07.notifications\u002Findex",{"title":314,"path":315,"stem":316},"Notifications Overview","\u002Fnotifications\u002Foverview","07.notifications\u002F1.overview",{"title":318,"path":319,"stem":320,"children":321},"Blob Storage","\u002Fblob-storage","08.blob-storage",[322,324],{"title":318,"path":319,"stem":323},"08.blob-storage\u002Findex",{"title":325,"path":326,"stem":327},"Blob Storage Overview","\u002Fblob-storage\u002Foverview","08.blob-storage\u002F1.overview",{"title":329,"path":330,"stem":331,"children":332},"Payloads","\u002Fpayloads","09.payloads",[333,335],{"title":329,"path":330,"stem":334},"09.payloads\u002Findex",{"title":336,"path":337,"stem":338},"Payloads overview","\u002Fpayloads\u002Foverview","09.payloads\u002F1.overview",{"title":340,"path":341,"stem":342,"children":343},"Cve Watcher","\u002Fcve-watcher","10.cve-watcher",[344,347,351,355,359],{"title":345,"path":341,"stem":346},"CVE Watcher","10.cve-watcher\u002Findex",{"title":348,"path":349,"stem":350},"CVE Watcher Overview","\u002Fcve-watcher\u002Foverview","10.cve-watcher\u002F1.overview",{"title":352,"path":353,"stem":354},"CVE Watcher Search and Filters","\u002Fcve-watcher\u002Fsearch","10.cve-watcher\u002F2.search",{"title":356,"path":357,"stem":358},"CVE Watcher Push Notifications","\u002Fcve-watcher\u002Fnotifications","10.cve-watcher\u002F3.notifications",{"title":360,"path":361,"stem":362},"CVE Watcher API and Scopes","\u002Fcve-watcher\u002Fapi","10.cve-watcher\u002F4.api",{"title":364,"path":365,"stem":366,"children":367},"Developer","\u002Fdeveloper","11.developer",[368,370,374,378],{"title":364,"path":365,"stem":369},"11.developer\u002Findex",{"title":371,"path":372,"stem":373},"Developer Overview","\u002Fdeveloper\u002Foverview","11.developer\u002F1.overview",{"title":375,"path":376,"stem":377},"Personal Access Token Scopes","\u002Fdeveloper\u002Fscopes","11.developer\u002F2.scopes",{"title":379,"path":380,"stem":381},"Personal Access Tokens","\u002Fdeveloper\u002Fpersonal-access-tokens","11.developer\u002F3.personal-access-tokens",{"title":383,"path":384,"stem":385,"children":386},"Bh","\u002Fbh","12.bh",[387,390,394,398],{"title":388,"path":384,"stem":389},"BH CLI","12.bh\u002Findex",{"title":391,"path":392,"stem":393},"BH CLI Overview","\u002Fbh\u002Foverview","12.bh\u002F1.overview",{"title":395,"path":396,"stem":397},"BH CLI Commands","\u002Fbh\u002Fcommands","12.bh\u002F2.commands",{"title":399,"path":400,"stem":401},"BH CLI Examples","\u002Fbh\u002Fexamples","12.bh\u002F3.examples",{"title":403,"path":404,"stem":405,"children":406},"Billing","\u002Fbilling","13.billing",[407,409],{"title":403,"path":404,"stem":408},"13.billing\u002Findex",{"title":410,"path":411,"stem":412},"Billing Overview","\u002Fbilling\u002Foverview","13.billing\u002F1.overview",{"title":414,"path":415,"stem":416,"children":417},"Tools","\u002Ftools","14.tools",[418,420],{"title":414,"path":415,"stem":419},"14.tools\u002Findex",{"title":421,"path":422,"stem":423},"Cookie Lab","\u002Ftools\u002Fcookie-lab","14.tools\u002F1.cookie-lab",{"title":425,"path":426,"stem":427,"children":428},"Site Policies","\u002Fsite-policies","99.site-policies",[429,431,444,448,452,456,460,464,468],{"title":425,"path":426,"stem":430},"99.site-policies\u002Findex",{"title":432,"path":433,"stem":434,"children":435},"Privacy Policy","\u002Fsite-policies\u002Fprivacy-policy","99.site-policies\u002F1.privacy-policy",[436,440],{"title":437,"path":438,"stem":439},"Company Processors","\u002Fsite-policies\u002Fprivacy-policy\u002Fcompany-processors","99.site-policies\u002Fprivacy-policy\u002F1.company-processors",{"title":441,"path":442,"stem":443},"Data Export Instructions","\u002Fsite-policies\u002Fprivacy-policy\u002Fdata-export-instructions","99.site-policies\u002Fprivacy-policy\u002F2.data-export-instructions",{"title":445,"path":446,"stem":447},"Terms of Service","\u002Fsite-policies\u002Fterms-of-service","99.site-policies\u002F2.terms-of-service",{"title":449,"path":450,"stem":451},"California Resident Notice at Collection","\u002Fsite-policies\u002Fccpa","99.site-policies\u002F3.ccpa",{"title":453,"path":454,"stem":455},"Cancellation Policy","\u002Fsite-policies\u002Fcancellation-policy","99.site-policies\u002F4.cancellation-policy",{"title":457,"path":458,"stem":459},"Refund Policy","\u002Fsite-policies\u002Frefund-policy","99.site-policies\u002F5.refund-policy",{"title":461,"path":462,"stem":463},"Taxes on Services","\u002Fsite-policies\u002Ftaxes-on-services","99.site-policies\u002F6.taxes-on-services",{"title":465,"path":466,"stem":467},"Disclaimer","\u002Fsite-policies\u002Fdisclaimer","99.site-policies\u002F7.disclaimer",{"title":469,"path":470,"stem":471,"children":472},"Security","\u002Fsite-policies\u002Fsecurity","99.site-policies\u002Fsecurity\u002Findex",[473,474,478],{"title":469,"path":470,"stem":471},{"title":475,"path":476,"stem":477},"Security Overview","\u002Fsite-policies\u002Fsecurity\u002Fsecurity-overview","99.site-policies\u002Fsecurity\u002F1.security-overview",{"title":479,"path":480,"stem":481},"Security Response","\u002Fsite-policies\u002Fsecurity\u002Fsecurity-response","99.site-policies\u002Fsecurity\u002F2.security-response",1794410312376]