[{"data":1,"prerenderedAt":980},["ShallowReactive",2],{"page-\u002Fdatasets\u002Foverview":3,"all-pages":654},{"id":4,"title":5,"body":6,"description":644,"extension":645,"meta":646,"navigation":647,"path":648,"robots":649,"seo":650,"sitemap":651,"stem":652,"__hash__":653},"content\u002F04.datasets\u002F1.overview.md","Datasets Overview",{"type":7,"value":8,"toc":632},"minimark",[9,14,18,26,31,111,116,126,141,145,148,193,196,200,210,244,250,254,257,328,344,353,357,452,464,468,480,484,569,586,590,628],[10,11,13],"h1",{"id":12},"datasets-overview","Datasets overview",[15,16,17],"p",{},"A dataset is a project-owned table of observations — subdomains, live hosts,\nfindings, or anything else your workflows collect. Observations are append-only:\neach push records a new snapshot with an ingest timestamp, and the service derives\nthe current state from the history.",[15,19,20,21,25],{},"Open a project's ",[22,23,24],"strong",{},"Datasets"," tab to browse the Query, Table, Views, and\nNotifications surfaces. This page explains the model; the rest of the section\ncovers each surface in depth.",[27,28,30],"h2",{"id":29},"the-model","The model",[32,33,34,47],"table",{},[35,36,37],"thead",{},[38,39,40,44],"tr",{},[41,42,43],"th",{},"Concept",[41,45,46],{},"Meaning",[48,49,50,68,79,87,95,103],"tbody",{},[38,51,52,56],{},[53,54,55],"td",{},"Observation",[53,57,58,59,63,64,67],{},"One row pushed with ",[60,61,62],"code",{},"step.update_dataset"," or ",[60,65,66],{},"IngestDatasetRows",".",[38,69,70,73],{},[53,71,72],{},"Ingest timestamp",[53,74,75,78],{},[60,76,77],{},"__ingested_at",", recorded for every observation.",[38,80,81,84],{},[53,82,83],{},"Identity",[53,85,86],{},"The column(s) that make two observations the same logical record.",[38,88,89,92],{},[53,90,91],{},"Current state",[53,93,94],{},"The latest observation per identity, with stale rows removed.",[38,96,97,100],{},[53,98,99],{},"History",[53,101,102],{},"Every observation ever pushed, including superseded ones.",[38,104,105,108],{},[53,106,107],{},"View",[53,109,110],{},"A saved read-only SQL query over project datasets and other views.",[112,113,115],"h3",{"id":114},"current-state-and-history","Current state and history",[15,117,118,119,122,123,125],{},"By default, queries run over the ",[22,120,121],{},"current state",": for each identity, only the\nlatest observation (by ",[60,124,77],{},") is returned, and rows marked stale are\nexcluded. A dataset without identity columns has no reconciliation key, so every\npushed row is its own record.",[15,127,128,129,132,133,136,137,140],{},"Set ",[60,130,131],{},"includeHistory = true"," (UI: ",[22,134,135],{},"Include history","; CLI: ",[60,138,139],{},"--include-history",")\nto run over the raw append-only stream instead. History keeps every observation,\nincluding duplicate identities and older versions.",[112,142,144],{"id":143},"reserved-columns","Reserved columns",[15,146,147],{},"Every dataset relation exposes two internal columns in addition to your schema:",[32,149,150,162],{},[35,151,152],{},[38,153,154,157,160],{},[41,155,156],{},"Column",[41,158,159],{},"Type",[41,161,46],{},[48,163,164,176],{},[38,165,166,170,173],{},[53,167,168],{},[60,169,77],{},[53,171,172],{},"timestamp",[53,174,175],{},"When the observation was pushed.",[38,177,178,183,186],{},[53,179,180],{},[60,181,182],{},"__deleted",[53,184,185],{},"boolean",[53,187,188,189,192],{},"Whether the record is marked stale. Current-state queries exclude ",[60,190,191],{},"true"," rows.",[15,194,195],{},"Both are reserved names and cannot be added to a dataset schema.",[27,197,199],{"id":198},"removing-rows","Removing rows",[15,201,202,205,206,209],{},[60,203,204],{},"DeleteDatasetRows"," removes records selected by a structured filter. ",[60,207,208],{},"mode","\nchooses what happens to the stored observations:",[32,211,212,222],{},[35,213,214],{},[38,215,216,219],{},[41,217,218],{},"Mode",[41,220,221],{},"Effect",[48,223,224,234],{},[38,225,226,231],{},[53,227,228],{},[60,229,230],{},"DATASET_DELETE_MODE_SOFT",[53,232,233],{},"Appends tombstones for the matching identities. Current-state queries hide the records; history keeps the tombstones and the observations they supersede. Requires identity columns.",[38,235,236,241],{},[53,237,238],{},[60,239,240],{},"DATASET_DELETE_MODE_HARD",[53,242,243],{},"Rewrites stored files to remove every observation belonging to the matching records. History no longer contains them.",[15,245,246,249],{},[60,247,248],{},"ClearDataset"," removes every record and stored file in the table. Deleting a\ndataset, clearing it, or hard-deleting rows releases the parquet storage from\nthe account's storage usage; soft deletes and new observations record the bytes\nthey add.",[27,251,253],{"id":252},"pushing-observations","Pushing observations",[15,255,256],{},"Workflows push transform output into an existing dataset. The dataset service\nowns identity matching, reconciliation, and storage; the workflow supplies only\nthe rows and the mode.",[258,259,264],"pre",{"className":260,"code":261,"language":262,"meta":263,"style":263},"language-bhw shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","step.update_dataset(\n    table = \"subdomains\",\n    source = path.file(\"subs-clean.txt\").lines(),\n    pipeline = transform.trim().lower().unique(),\n    mapping = {\n        \"host\": row.value,\n        \"source\": \"subfinder\",\n    },\n    mode = \"upsert\",\n)\n","bhw","",[60,265,266,274,280,286,292,298,304,310,316,322],{"__ignoreMap":263},[267,268,271],"span",{"class":269,"line":270},"line",1,[267,272,273],{},"step.update_dataset(\n",[267,275,277],{"class":269,"line":276},2,[267,278,279],{},"    table = \"subdomains\",\n",[267,281,283],{"class":269,"line":282},3,[267,284,285],{},"    source = path.file(\"subs-clean.txt\").lines(),\n",[267,287,289],{"class":269,"line":288},4,[267,290,291],{},"    pipeline = transform.trim().lower().unique(),\n",[267,293,295],{"class":269,"line":294},5,[267,296,297],{},"    mapping = {\n",[267,299,301],{"class":269,"line":300},6,[267,302,303],{},"        \"host\": row.value,\n",[267,305,307],{"class":269,"line":306},7,[267,308,309],{},"        \"source\": \"subfinder\",\n",[267,311,313],{"class":269,"line":312},8,[267,314,315],{},"    },\n",[267,317,319],{"class":269,"line":318},9,[267,320,321],{},"    mode = \"upsert\",\n",[267,323,325],{"class":269,"line":324},10,[267,326,327],{},")\n",[329,330,331,338],"ul",{},[332,333,334,337],"li",{},[60,335,336],{},"mode = \"upsert\""," updates or creates records matching known identities;\nidentities absent from the push are untouched.",[332,339,340,343],{},[60,341,342],{},"mode = \"sync\""," declares the push authoritative: identities absent from the\npush are marked stale.",[15,345,346,347,352],{},"See ",[348,349,351],"a",{"href":350},"\u002Fdatasets\u002Fworkflows","Pushing dataset rows"," for mapping, transform sources,\nand a complete asset-tracking workflow.",[27,354,356],{"id":355},"query-surfaces","Query surfaces",[32,358,359,372],{},[35,360,361],{},[38,362,363,366,369],{},[41,364,365],{},"Surface",[41,367,368],{},"Runs over",[41,370,371],{},"Where",[48,373,374,388,401,412,426,441],{},[38,375,376,379,382],{},[53,377,378],{},"Single-dataset SQL",[53,380,381],{},"One dataset, current state or history",[53,383,384,385],{},"Datasets → Query → ",[22,386,387],{},"Advanced SQL",[38,389,390,393,396],{},[53,391,392],{},"Structured filters",[53,394,395],{},"The result of the single-dataset query",[53,397,384,398],{},[22,399,400],{},"Filters",[38,402,403,406,409],{},[53,404,405],{},"Saved views",[53,407,408],{},"Project datasets and other views, current state only",[53,410,411],{},"Datasets → Views",[38,413,414,417,420],{},[53,415,416],{},"Project-wide SQL",[53,418,419],{},"Every dataset in a project, current state only",[53,421,422,423],{},"API ",[60,424,425],{},"QueryDatasets",[38,427,428,431,434],{},[53,429,430],{},"Describe",[53,432,433],{},"Column null counts, distinct counts, top values",[53,435,436,437,440],{},"CLI ",[60,438,439],{},"bh dataset describe"," or API",[38,442,443,446,449],{},[53,444,445],{},"Export",[53,447,448],{},"A full single-dataset query result",[53,450,451],{},"Datasets query download or API",[15,453,454,455,458,459,463],{},"The only relations a query may reference are the ones registered for its scope:\n",[60,456,457],{},"dataset"," for a single-dataset query, or the project's dataset names for a\nproject-wide query. File scans, catalog tables, table functions, and other\ndatasets are rejected. See ",[348,460,462],{"href":461},"\u002Fdatasets\u002Fsql","SQL reference"," for the full policy.",[27,465,467],{"id":466},"dataset-notifications","Dataset notifications",[15,469,470,471,474,475,479],{},"Each dataset can route row changes to email, Discord, or Slack channels from the\ndataset's ",[22,472,473],{},"Notifications"," tab. Create the integration and notification channel\nfirst, then assign it to the dataset and choose the routes: rows added, removed,\nor changed. See ",[348,476,478],{"href":477},"\u002Fnotifications\u002Foverview","Notifications overview"," for channel\nsetup.",[27,481,483],{"id":482},"limits","Limits",[32,485,486,496],{},[35,487,488],{},[38,489,490,493],{},[41,491,492],{},"Limit",[41,494,495],{},"Value",[48,497,498,506,513,521,529,537,545,553,561],{},[38,499,500,503],{},[53,501,502],{},"Datasets per project",[53,504,505],{},"100",[38,507,508,511],{},[53,509,510],{},"Views per project",[53,512,505],{},[38,514,515,518],{},[53,516,517],{},"Single-dataset and project-wide page size",[53,519,520],{},"Default 100, maximum 1,000",[38,522,523,526],{},[53,524,525],{},"Saved-view page size",[53,527,528],{},"Default 100, maximum 10,000",[38,530,531,534],{},[53,532,533],{},"Row materialization guard (engine)",[53,535,536],{},"100,000",[38,538,539,542],{},[53,540,541],{},"Query memory",[53,543,544],{},"2 GB by default",[38,546,547,550],{},[53,548,549],{},"Concurrent interactive queries per user",[53,551,552],{},"2",[38,554,555,558],{},[53,556,557],{},"Interactive queries per user per minute",[53,559,560],{},"60",[38,562,563,566],{},[53,564,565],{},"Export download URL lifetime",[53,567,568],{},"15 minutes",[15,570,571,572,575,576,575,579,582,583,67],{},"Workflow runners are exempt from the interactive fairness limits; they are\nbounded by runner capacity instead. Operators can tune the defaults with\n",[60,573,574],{},"BOUNTYHUB_HUB_DATASET_QUERY_MAX_ROWS",",\n",[60,577,578],{},"BOUNTYHUB_HUB_DATASET_QUERY_MEMORY_LIMIT",[60,580,581],{},"BOUNTYHUB_HUB_DATASET_QUERY_MAX_CONCURRENT_PER_USER",", and\n",[60,584,585],{},"BOUNTYHUB_HUB_DATASET_QUERY_PER_MINUTE",[27,587,589],{"id":588},"next-steps","Next steps",[329,591,592,599,604,609,615,621],{},[332,593,594,598],{},[348,595,597],{"href":596},"\u002Fdatasets\u002Fschema","Schemas and identity",": design a dataset before you push.",[332,600,601,603],{},[348,602,351],{"href":350},": push from a workflow.",[332,605,606,608],{},[348,607,462],{"href":461},": query the data with DuckDB.",[332,610,611,614],{},[348,612,392],{"href":613},"\u002Fdatasets\u002Ffilters",": filter without writing SQL.",[332,616,617,620],{},[348,618,405],{"href":619},"\u002Fdatasets\u002Fviews",": keep reusable queries in the project.",[332,622,623,627],{},[348,624,626],{"href":625},"\u002Fdatasets\u002Fapi-cli","API and CLI",": automate datasets outside the Hub UI.",[629,630,631],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":263,"searchDepth":294,"depth":288,"links":633},[634,638,639,640,641,642,643],{"id":29,"depth":276,"text":30,"children":635},[636,637],{"id":114,"depth":282,"text":115},{"id":143,"depth":282,"text":144},{"id":198,"depth":276,"text":199},{"id":252,"depth":276,"text":253},{"id":355,"depth":276,"text":356},{"id":466,"depth":276,"text":467},{"id":482,"depth":276,"text":483},{"id":588,"depth":276,"text":589},"How project datasets store observations, reconcile identity, expose current state and history, and where to query, filter, view, export, and push them.","md",{},true,"\u002Fdatasets\u002Foverview",null,{"title":5,"description":644},{"loc":648},"04.datasets\u002F1.overview","fhX4Fu4Tc4Ja8VnFeOMmDJi1ZUjF6vjVithV0B0P2Fg",[655,718,734,753,778,794,806,815,826,837,861,880,900,911,922],{"title":656,"path":657,"stem":658,"children":659,"page":-1},"Workflows","\u002Fworkflows","01.workflows",[660,662,666,670,674,678,682,686,690,694,698,702,706,710,714],{"title":656,"path":657,"stem":661},"01.workflows\u002Findex",{"title":663,"path":664,"stem":665},"Workflow Quick Reference","\u002Fworkflows\u002Fquick-reference","01.workflows\u002F00.quick-reference",{"title":667,"path":668,"stem":669},"Workflows Overview","\u002Fworkflows\u002Foverview","01.workflows\u002F01.overview",{"title":671,"path":672,"stem":673},"Workflow Syntax Reference","\u002Fworkflows\u002Fsyntax-reference","01.workflows\u002F02.syntax-reference",{"title":675,"path":676,"stem":677},"Steps","\u002Fworkflows\u002Fsteps","01.workflows\u002F03.steps",{"title":679,"path":680,"stem":681},"Step Outputs","\u002Fworkflows\u002Fstep-outputs","01.workflows\u002F04.step-outputs",{"title":683,"path":684,"stem":685},"Concurrency","\u002Fworkflows\u002Fconcurrency","01.workflows\u002F05.concurrency",{"title":687,"path":688,"stem":689},"Transforms","\u002Fworkflows\u002Ftransforms","01.workflows\u002F06.transforms",{"title":691,"path":692,"stem":693},"For Each","\u002Fworkflows\u002Ffor-each","01.workflows\u002F07.for-each",{"title":695,"path":696,"stem":697},"Modules","\u002Fworkflows\u002Fmodules","01.workflows\u002F08.modules",{"title":699,"path":700,"stem":701},"Agents","\u002Fworkflows\u002Fagents","01.workflows\u002F09.agents",{"title":703,"path":704,"stem":705},"Decisions","\u002Fworkflows\u002Fdecisions","01.workflows\u002F10.decisions",{"title":707,"path":708,"stem":709},"Configuration References","\u002Fworkflows\u002Fconfig","01.workflows\u002F11.config",{"title":711,"path":712,"stem":713},"Comparison With Other Automation Systems","\u002Fworkflows\u002Fcomparison","01.workflows\u002F12.comparison",{"title":715,"path":716,"stem":717},"Generate with AI","\u002Fworkflows\u002Fai-generation","01.workflows\u002F13.ai-generation",{"title":719,"path":720,"stem":721,"children":722,"page":-1},"Projects","\u002Fprojects","02.projects",[723,726,730],{"title":724,"path":720,"stem":725},"Projects & Runs","02.projects\u002Findex",{"title":727,"path":728,"stem":729},"Projects Overview","\u002Fprojects\u002Foverview","02.projects\u002F1.overview",{"title":731,"path":732,"stem":733},"Runs & Artifacts","\u002Fprojects\u002Fruns-artifacts","02.projects\u002F2.runs-artifacts",{"title":735,"path":736,"stem":737,"children":738,"page":-1},"Runners","\u002Frunners","03.runners",[739,741,745,749],{"title":735,"path":736,"stem":740},"03.runners\u002Findex",{"title":742,"path":743,"stem":744},"Runner Overview","\u002Frunners\u002Foverview","03.runners\u002F1.overview",{"title":746,"path":747,"stem":748},"Getting Started with Runners","\u002Frunners\u002Fgetting-started","03.runners\u002F2.getting-started",{"title":750,"path":751,"stem":752},"Custom Runner Images","\u002Frunners\u002Fcustom-image","03.runners\u002F3.custom-image",{"title":24,"path":754,"stem":755,"children":756,"page":-1},"\u002Fdatasets","04.datasets",[757,759,760,763,766,769,772,775],{"title":24,"path":754,"stem":758},"04.datasets\u002Findex",{"title":5,"path":648,"stem":652},{"title":761,"path":596,"stem":762},"Dataset Schemas and Identity","04.datasets\u002F2.schema",{"title":764,"path":350,"stem":765},"Pushing and Reading Dataset Rows","04.datasets\u002F3.workflows",{"title":767,"path":461,"stem":768},"Dataset SQL Reference","04.datasets\u002F4.sql",{"title":770,"path":613,"stem":771},"Dataset Structured Filters","04.datasets\u002F5.filters",{"title":773,"path":619,"stem":774},"Dataset Saved Views","04.datasets\u002F6.views",{"title":776,"path":625,"stem":777},"Datasets API and CLI","04.datasets\u002F7.api-cli",{"title":779,"path":780,"stem":781,"children":782,"page":-1},"Agent","\u002Fagent","05.agent",[783,786,790],{"title":784,"path":780,"stem":785},"BH Agent","05.agent\u002Findex",{"title":787,"path":788,"stem":789},"BH Agent Overview","\u002Fagent\u002Foverview","05.agent\u002F1.overview",{"title":791,"path":792,"stem":793},"MCP servers","\u002Fagent\u002Fmcp-servers","05.agent\u002F2.mcp-servers",{"title":795,"path":796,"stem":797,"children":798,"page":-1},"Bhlast","\u002Fbhlast","06.bhlast",[799,802],{"title":800,"path":796,"stem":801},"Bhlast Servers","06.bhlast\u002Findex",{"title":803,"path":804,"stem":805},"Bhlast servers overview","\u002Fbhlast\u002Foverview","06.bhlast\u002F1.overview",{"title":473,"path":807,"stem":808,"children":809,"page":-1},"\u002Fnotifications","07.notifications",[810,812],{"title":473,"path":807,"stem":811},"07.notifications\u002Findex",{"title":813,"path":477,"stem":814},"Notifications Overview","07.notifications\u002F1.overview",{"title":816,"path":817,"stem":818,"children":819,"page":-1},"Blob Storage","\u002Fblob-storage","08.blob-storage",[820,822],{"title":816,"path":817,"stem":821},"08.blob-storage\u002Findex",{"title":823,"path":824,"stem":825},"Blob Storage Overview","\u002Fblob-storage\u002Foverview","08.blob-storage\u002F1.overview",{"title":827,"path":828,"stem":829,"children":830,"page":-1},"Payloads","\u002Fpayloads","09.payloads",[831,833],{"title":827,"path":828,"stem":832},"09.payloads\u002Findex",{"title":834,"path":835,"stem":836},"Payloads overview","\u002Fpayloads\u002Foverview","09.payloads\u002F1.overview",{"title":838,"path":839,"stem":840,"children":841,"page":-1},"Cve Watcher","\u002Fcve-watcher","10.cve-watcher",[842,845,849,853,857],{"title":843,"path":839,"stem":844},"CVE Watcher","10.cve-watcher\u002Findex",{"title":846,"path":847,"stem":848},"CVE Watcher Overview","\u002Fcve-watcher\u002Foverview","10.cve-watcher\u002F1.overview",{"title":850,"path":851,"stem":852},"CVE Watcher Search and Filters","\u002Fcve-watcher\u002Fsearch","10.cve-watcher\u002F2.search",{"title":854,"path":855,"stem":856},"CVE Watcher Push Notifications","\u002Fcve-watcher\u002Fnotifications","10.cve-watcher\u002F3.notifications",{"title":858,"path":859,"stem":860},"CVE Watcher API and Scopes","\u002Fcve-watcher\u002Fapi","10.cve-watcher\u002F4.api",{"title":862,"path":863,"stem":864,"children":865,"page":-1},"Developer","\u002Fdeveloper","11.developer",[866,868,872,876],{"title":862,"path":863,"stem":867},"11.developer\u002Findex",{"title":869,"path":870,"stem":871},"Developer Overview","\u002Fdeveloper\u002Foverview","11.developer\u002F1.overview",{"title":873,"path":874,"stem":875},"Personal Access Token Scopes","\u002Fdeveloper\u002Fscopes","11.developer\u002F2.scopes",{"title":877,"path":878,"stem":879},"Personal Access Tokens","\u002Fdeveloper\u002Fpersonal-access-tokens","11.developer\u002F3.personal-access-tokens",{"title":881,"path":882,"stem":883,"children":884,"page":-1},"Bh","\u002Fbh","12.bh",[885,888,892,896],{"title":886,"path":882,"stem":887},"BH CLI","12.bh\u002Findex",{"title":889,"path":890,"stem":891},"BH CLI Overview","\u002Fbh\u002Foverview","12.bh\u002F1.overview",{"title":893,"path":894,"stem":895},"BH CLI Commands","\u002Fbh\u002Fcommands","12.bh\u002F2.commands",{"title":897,"path":898,"stem":899},"BH CLI Examples","\u002Fbh\u002Fexamples","12.bh\u002F3.examples",{"title":901,"path":902,"stem":903,"children":904,"page":-1},"Billing","\u002Fbilling","13.billing",[905,907],{"title":901,"path":902,"stem":906},"13.billing\u002Findex",{"title":908,"path":909,"stem":910},"Billing Overview","\u002Fbilling\u002Foverview","13.billing\u002F1.overview",{"title":912,"path":913,"stem":914,"children":915,"page":-1},"Tools","\u002Ftools","14.tools",[916,918],{"title":912,"path":913,"stem":917},"14.tools\u002Findex",{"title":919,"path":920,"stem":921},"Cookie Lab","\u002Ftools\u002Fcookie-lab","14.tools\u002F1.cookie-lab",{"title":923,"path":924,"stem":925,"children":926,"page":-1},"Site Policies","\u002Fsite-policies","99.site-policies",[927,929,942,946,950,954,958,962,966],{"title":923,"path":924,"stem":928},"99.site-policies\u002Findex",{"title":930,"path":931,"stem":932,"children":933},"Privacy Policy","\u002Fsite-policies\u002Fprivacy-policy","99.site-policies\u002F1.privacy-policy",[934,938],{"title":935,"path":936,"stem":937},"Company Processors","\u002Fsite-policies\u002Fprivacy-policy\u002Fcompany-processors","99.site-policies\u002Fprivacy-policy\u002F1.company-processors",{"title":939,"path":940,"stem":941},"Data Export Instructions","\u002Fsite-policies\u002Fprivacy-policy\u002Fdata-export-instructions","99.site-policies\u002Fprivacy-policy\u002F2.data-export-instructions",{"title":943,"path":944,"stem":945},"Terms of Service","\u002Fsite-policies\u002Fterms-of-service","99.site-policies\u002F2.terms-of-service",{"title":947,"path":948,"stem":949},"California Resident Notice at Collection","\u002Fsite-policies\u002Fccpa","99.site-policies\u002F3.ccpa",{"title":951,"path":952,"stem":953},"Cancellation Policy","\u002Fsite-policies\u002Fcancellation-policy","99.site-policies\u002F4.cancellation-policy",{"title":955,"path":956,"stem":957},"Refund Policy","\u002Fsite-policies\u002Frefund-policy","99.site-policies\u002F5.refund-policy",{"title":959,"path":960,"stem":961},"Taxes on Services","\u002Fsite-policies\u002Ftaxes-on-services","99.site-policies\u002F6.taxes-on-services",{"title":963,"path":964,"stem":965},"Disclaimer","\u002Fsite-policies\u002Fdisclaimer","99.site-policies\u002F7.disclaimer",{"title":967,"path":968,"stem":969,"children":970,"page":-1},"Security","\u002Fsite-policies\u002Fsecurity","99.site-policies\u002Fsecurity\u002Findex",[971,972,976],{"title":967,"path":968,"stem":969},{"title":973,"path":974,"stem":975},"Security Overview","\u002Fsite-policies\u002Fsecurity\u002Fsecurity-overview","99.site-policies\u002Fsecurity\u002F1.security-overview",{"title":977,"path":978,"stem":979},"Security Response","\u002Fsite-policies\u002Fsecurity\u002Fsecurity-response","99.site-policies\u002Fsecurity\u002F2.security-response",1794410311266]