[{"data":1,"prerenderedAt":776},["ShallowReactive",2],{"navigation_docs":3,"-dashboard":57,"-dashboard-surround":771},[4,8,12,16,20,24,28],{"title":5,"path":6,"stem":7},"Introduction","\u002Fintroduction","1.introduction",{"title":9,"path":10,"stem":11},"Installation","\u002Finstallation","2.installation",{"title":13,"path":14,"stem":15},"SDKs","\u002Fsdk","3.sdk",{"title":17,"path":18,"stem":19},"Dashboard","\u002Fdashboard","4.dashboard",{"title":21,"path":22,"stem":23},"HTTP API","\u002Fhttp-api","5.http-api",{"title":25,"path":26,"stem":27},"Image Transformations","\u002Ftransformations","6.transformations",{"title":29,"path":30,"stem":31,"children":32},"Framework Components","\u002Fframeworks","frameworks",[33,37,41,45,49,53],{"title":34,"path":35,"stem":36},"Dart","\u002Fframeworks\u002Fdart","frameworks\u002Fdart",{"title":38,"path":39,"stem":40},"Flutter","\u002Fframeworks\u002Fflutter","frameworks\u002Fflutter",{"title":42,"path":43,"stem":44},"Qwik","\u002Fframeworks\u002Fqwik","frameworks\u002Fqwik",{"title":46,"path":47,"stem":48},"React","\u002Fframeworks\u002Freact","frameworks\u002Freact",{"title":50,"path":51,"stem":52},"Svelte","\u002Fframeworks\u002Fsvelte","frameworks\u002Fsvelte",{"title":54,"path":55,"stem":56},"Vue","\u002Fframeworks\u002Fvue","frameworks\u002Fvue",{"id":58,"title":17,"body":59,"description":764,"extension":765,"links":766,"meta":767,"navigation":768,"path":18,"seo":769,"stem":19,"__hash__":770},"docs\u002F4.dashboard.md",{"type":60,"value":61,"toc":737},"minimark",[62,71,76,82,87,98,102,109,137,142,145,162,165,169,172,176,192,196,208,212,219,223,236,240,247,259,263,348,352,355,357,361,364,368,378,412,416,426,428,432,438,455,459,481,484,510,514,521,525,541,547,566,568,572,586,589,603,617,619,623,630,632,636,639,659,663,670,726],[63,64,65,66,70],"p",{},"The PichaFlow Dashboard is your central command center for managing ",[67,68,69],"strong",{},"Projects",", assets, API keys, and edge-native image processing pipelines.",[72,73,75],"h2",{"id":74},"projects-teams","Projects & Teams",[63,77,78,79,81],{},"PichaFlow organizes resources into ",[67,80,69],{},". A Project is an isolated container with its own dedicated database and unique namespace. All projects share a single global storage bucket, with each project's assets namespaced by its unique identifier.",[83,84,86],"h3",{"id":85},"managing-projects","Managing Projects",[63,88,89,90,93,94,97],{},"You can switch between projects using the ",[67,91,92],{},"Project Switcher"," in the top navigation. All projects under your account share your ",[67,95,96],{},"account-level billing plan"," (e.g., a Pro subscription covers all your projects). Each project tracks its own usage quota independently, and usage is pooled across all projects against your account's total limit.",[83,99,101],{"id":100},"team-collaboration","Team Collaboration",[63,103,104,105,108],{},"Invite teammates to your project via the ",[67,106,107],{},"Team"," tab.",[110,111,112,119,125,131],"ul",{},[113,114,115,118],"li",{},[67,116,117],{},"Owner",": Full control and billing responsibility.",[113,120,121,124],{},[67,122,123],{},"Admin",": Can manage assets, pipelines, and keys.",[113,126,127,130],{},[67,128,129],{},"Member",": Can upload and manage assets.",[113,132,133,136],{},[67,134,135],{},"Viewer",": Read-only access to analytics and media.",[138,139,141],"h4",{"id":140},"sending-invitations","Sending Invitations",[63,143,144],{},"When you invite a new member, they will receive an email with a secure link.",[146,147,148],"blockquote",{},[63,149,150,154,157,158,161],{},[151,152,153],"span",{},"!IMPORTANT",[67,155,156],{},"Invitations are time-limited",". For security purposes, all invitations expire ",[67,159,160],{},"48 hours"," after being sent. If a link expires, you will need to revoke the old invitation and send a new one.",[163,164],"hr",{},[72,166,168],{"id":167},"media-management","Media Management",[63,170,171],{},"The Media tab allows you to upload, organize, and inspect your assets for the active project.",[83,173,175],{"id":174},"uploading-assets","Uploading Assets",[63,177,178,179,183,184,187,188,191],{},"You can upload images directly via the web interface or using our ",[180,181,182],"a",{"href":14},"SDK"," and ",[180,185,186],{"href":22},"API",". Every uploaded asset is stored in ",[67,189,190],{},"Cloudflare R2"," within your project's isolated storage bucket.",[83,193,195],{"id":194},"organizing-with-directories","Organizing with Directories",[63,197,198,199,203,204,207],{},"PichaFlow supports directory-based organization for your media assets. You can create folders (e.g., ",[200,201,202],"code",{},"products\u002Fhero\u002F",", ",[200,205,206],{},"blog\u002Fthumbnails\u002F",") to keep your library structured as it grows.",[138,209,211],{"id":210},"creating-directories","Creating Directories",[63,213,214,215,218],{},"Click the ",[67,216,217],{},"\"New Folder\""," button in the Media Gallery to create a directory at your current location. Directories can be nested to any depth.",[138,220,222],{"id":221},"uploading-into-directories","Uploading Into Directories",[63,224,225,226,229,230,232,233,235],{},"When you navigate into a directory, clicking ",[67,227,228],{},"\"Upload New Asset\""," will automatically place the new image into that folder. You can also specify a directory when uploading via the ",[180,231,182],{"href":14}," or ",[180,234,21],{"href":22},".",[138,237,239],{"id":238},"browsing","Browsing",[63,241,242,243,246],{},"Use the ",[67,244,245],{},"breadcrumb navigation"," at the top of the gallery to move between folders. Folders appear before images in both Grid and List views.",[248,249,251,254,255,258],"alert",{"type":250},"warning",[67,252,253],{},"URL Permanence",": Once an asset is uploaded, its directory path becomes part of its permanent delivery URL. You ",[67,256,257],{},"cannot move or rename"," assets between directories after upload — doing so would break any live links. Choose your directory structure carefully before uploading.",[138,260,262],{"id":261},"supported-operations","Supported Operations",[264,265,266,283],"table",{},[267,268,269],"thead",{},[270,271,272,277,280],"tr",{},[273,274,276],"th",{"align":275},"left","Action",[273,278,279],{"align":275},"Supported",[273,281,282],{"align":275},"Notes",[284,285,286,298,308,318,328,339],"tbody",{},[270,287,288,292,295],{},[289,290,291],"td",{"align":275},"Upload into a directory",[289,293,294],{"align":275},"✅",[289,296,297],{"align":275},"Set at upload time via Dashboard, SDK, or API",[270,299,300,303,305],{},[289,301,302],{"align":275},"Browse & navigate folders",[289,304,294],{"align":275},[289,306,307],{"align":275},"Breadcrumb UI with Grid\u002FList views",[270,309,310,313,315],{},[289,311,312],{"align":275},"Create empty directory",[289,314,294],{"align":275},[289,316,317],{"align":275},"Via \"New Folder\" button",[270,319,320,323,325],{},[289,321,322],{"align":275},"Delete empty directory",[289,324,294],{"align":275},[289,326,327],{"align":275},"Directory must be empty first",[270,329,330,333,336],{},[289,331,332],{"align":275},"Move assets between directories",[289,334,335],{"align":275},"❌",[289,337,338],{"align":275},"Would break live delivery URLs",[270,340,341,344,346],{},[289,342,343],{"align":275},"Rename directories",[289,345,335],{"align":275},[289,347,338],{"align":275},[83,349,351],{"id":350},"ai-alt-text","AI Alt-Text",[63,353,354],{},"When an image is uploaded, PichaFlow automatically generates descriptive alt-text for SEO and accessibility. You can manually override these descriptions in the asset details view.",[163,356],{},[72,358,360],{"id":359},"wasm-pipelines-architect","WASM Pipelines (Architect)",[63,362,363],{},"Pipelines are the core of PichaFlow's performance advantage. They allow you to define a sequence of image transformations that run at the Edge using WebAssembly.",[83,365,367],{"id":366},"creating-a-pipeline","Creating a Pipeline",[63,369,370,371,374,375,235],{},"Navigate to the ",[67,372,373],{},"Pipelines"," tab and click ",[67,376,377],{},"\"Build New Pipeline\"",[379,380,381,400,406],"ol",{},[113,382,383,386,387,203,390,203,393,396,397,235],{},[67,384,385],{},"Define Steps",": Add transformations like ",[200,388,389],{},"resize",[200,391,392],{},"grayscale",[200,394,395],{},"blur",", or ",[200,398,399],{},"brightness",[113,401,402,405],{},[67,403,404],{},"Stacking",": Operations are executed in the order you define them.",[113,407,408,411],{},[67,409,410],{},"Presets",": Once saved, your pipeline is deployed to the global edge network as a \"preset\" for your specific project.",[83,413,415],{"id":414},"using-a-preset","Using a Preset",[63,417,418,419,422,423],{},"To apply a pipeline to an image, append the ",[200,420,421],{},"preset"," parameter to its delivery URL:\n",[200,424,425],{},"https:\u002F\u002Fcdn.pichaflow.com\u002Fasset-id.jpg?preset=hero-banner",[163,427],{},[72,429,431],{"id":430},"api-keys-security","API Keys & Security",[63,433,434,435,108],{},"Manage your project access tokens in the ",[67,436,437],{},"API Keys",[110,439,440,446],{},[113,441,442,445],{},[67,443,444],{},"Public Keys",": Used for client-side uploads (restricted by domain).",[113,447,448,451,452],{},[67,449,450],{},"Secret Keys",": Used for server-side management and deletions. ",[67,453,454],{},"Never expose these in client-side code.",[83,456,458],{"id":457},"api-key-quotas","API Key Quotas",[63,460,461,462,465,466,203,469,472,473,476,477,480],{},"Each individual project is allowed up to ",[67,463,464],{},"3 API key pairs"," to cleanly isolate ",[200,467,468],{},"Development",[200,470,471],{},"Staging",", and ",[200,474,475],{},"Production"," environments (Hobby tier is capped at ",[67,478,479],{},"2 keys\u002Fproject"," for a 1 Dev + 1 Prod setup).",[63,482,483],{},"Across your entire account tier, key limits scale as follows:",[110,485,486,492,498,504],{},[113,487,488,491],{},[67,489,490],{},"Hobby Plan",": 2 API key pairs (1 Project max).",[113,493,494,497],{},[67,495,496],{},"Pro Plan",": Up to 15 total API key pairs across projects (Max 3 keys per project across 5 Projects).",[113,499,500,503],{},[67,501,502],{},"Scale Plan",": Up to 60 total API key pairs across projects (Max 3 keys per project across 20 Projects).",[113,505,506,509],{},[67,507,508],{},"Business Plan",": Up to 300 total API key pairs across projects (Max 3 keys per project across 100 Projects).",[83,511,513],{"id":512},"hotlink-protection-domain-allowlisting","Hotlink Protection & Domain Allowlisting",[63,515,516,517,520],{},"To prevent other websites from embedding your images and draining your bandwidth\u002Ftransformation limits, PichaFlow allows you to specify ",[67,518,519],{},"Allowed Domains",". Only domains in this list will be permitted to fetch your assets.",[138,522,524],{"id":523},"strict-referer-blocking","Strict Referer Blocking",[63,526,527,528,532,533,536,537,540],{},"By default, PichaFlow allows requests that have ",[529,530,531],"em",{},"no"," Referer header (e.g., ",[200,534,535],{},"\u003Cimg>"," tags on sites with strict privacy settings, or direct programmatic downloads via ",[200,538,539],{},"cURL",").",[63,542,543,544,546],{},"If you want absolute certainty that no automated scrapers can fetch your images by spoofing an empty Referer, you can enable ",[67,545,524],{}," in your General Settings.",[146,548,549],{},[63,550,551,554,557,558,561,562,565],{},[151,552,553],{},"!WARNING",[67,555,556],{},"Headless Breakage",": Enabling Strict Referer Blocking drops ",[67,559,560],{},"all"," requests without a Referer header. This breaks direct cURL scripts, programmatic API downloads, privacy-conscious browsers (e.g. Brave in strict mode), and sites using ",[200,563,564],{},"\u003Cmeta name=\"referrer\" content=\"no-referrer\">",". Only enable this if your images are exclusively loaded by modern browsers on your specific allowed domains.",[163,567],{},[72,569,571],{"id":570},"security-audit-logs","Security & Audit Logs",[63,573,574,575,183,578,581,582,585],{},"For ",[67,576,577],{},"Business",[67,579,580],{},"Enterprise"," accounts, PichaFlow maintains a comprehensive, tamper-proof ",[67,583,584],{},"Audit Log"," of all mutations made within your project.",[63,587,588],{},"This includes:",[110,590,591,594,597,600],{},[113,592,593],{},"API Key generation and revocation.",[113,595,596],{},"Project setting modifications (e.g., AI Shield sensitivity).",[113,598,599],{},"Media and directory deletions.",[113,601,602],{},"Team member invitations and role changes.",[146,604,605],{},[63,606,607,609,612,613,616],{},[151,608,153],{},[67,610,611],{},"Data Retention Policy",": To balance security visibility with data privacy, all audit logs are retained for ",[67,614,615],{},"exactly 90 days",". PichaFlow employs a daily automated cleanup process that permanently deletes any audit log entries older than 90 days. This cannot be overridden.",[163,618],{},[72,620,622],{"id":621},"custom-domains","Custom Domains",[63,624,625,626,629],{},"Whitelabel your project's delivery network by connecting your own domain (e.g., ",[200,627,628],{},"images.yourbrand.com","). PichaFlow handles SSL certificate generation and global routing automatically.",[163,631],{},[72,633,635],{"id":634},"usage-billing","Usage & Billing",[63,637,638],{},"Track your bandwidth consumption, transformation counts, and storage usage for each project in real-time.",[110,640,641,647,653],{},[113,642,643,646],{},[67,644,645],{},"Bandwidth",": Total data delivered via the PichaFlow CDN for this project.",[113,648,649,652],{},[67,650,651],{},"Transformations",": Number of unique image processing requests.",[113,654,655,658],{},[67,656,657],{},"Plan Limits",": Usage is measured against your project's specific tier (Hobby, Pro, or Scale).",[83,660,662],{"id":661},"overage-strategies","Overage Strategies",[63,664,665,666,669],{},"PichaFlow offers flexible management for when your project exceeds its monthly transformation quota. You can configure these settings in the ",[67,667,668],{},"Billing"," section of your Project Settings.",[264,671,672,685],{},[267,673,674],{},[270,675,676,679,682],{},[273,677,678],{"align":275},"Strategy",[273,680,681],{"align":275},"Behavior",[273,683,684],{"align":275},"Best For",[284,686,687,700,713],{},[270,688,689,694,697],{},[289,690,691],{"align":275},[67,692,693],{},"Soft Cap",[289,695,696],{"align":275},"Service stops once you hit your limit + a tiered grace buffer (10-20%).",[289,698,699],{"align":275},"Fixed budgets.",[270,701,702,707,710],{},[289,703,704],{"align":275},[67,705,706],{},"Metered Top-up",[289,708,709],{"align":275},"Seamlessly keep scaling for $1.00 per 1,000 additional transforms.",[289,711,712],{"align":275},"High-growth apps.",[270,714,715,720,723],{},[289,716,717],{"align":275},[67,718,719],{},"Auto-Scale",[289,721,722],{"align":275},"Automatically upgrade to the next tier for the best unit economics.",[289,724,725],{"align":275},"Professional workflows.",[146,727,728],{},[63,729,730,733,736],{},[151,731,732],{},"!TIP",[67,734,735],{},"Grace Capacity",": Every project includes a built-in safety buffer above its hard limit: 10% for Hobby, 15% for Pro, and 20% for Scale accounts. This ensures unexpected spikes don't immediately disrupt your service.",{"title":738,"searchDepth":739,"depth":739,"links":740},"",2,[741,746,751,755,759,760,761],{"id":74,"depth":739,"text":75,"children":742},[743,745],{"id":85,"depth":744,"text":86},3,{"id":100,"depth":744,"text":101},{"id":167,"depth":739,"text":168,"children":747},[748,749,750],{"id":174,"depth":744,"text":175},{"id":194,"depth":744,"text":195},{"id":350,"depth":744,"text":351},{"id":359,"depth":739,"text":360,"children":752},[753,754],{"id":366,"depth":744,"text":367},{"id":414,"depth":744,"text":415},{"id":430,"depth":739,"text":431,"children":756},[757,758],{"id":457,"depth":744,"text":458},{"id":512,"depth":744,"text":513},{"id":570,"depth":739,"text":571},{"id":621,"depth":739,"text":622},{"id":634,"depth":739,"text":635,"children":762},[763],{"id":661,"depth":744,"text":662},"Manage projects, assets, pipelines, and team members in the PichaFlow Dashboard.","md",null,{},true,{"title":17,"description":764},"j9qjOhpRPKiBPAaAsR3SIb4cwEylK3L5qUAd8SJXAb8",[772,774],{"title":13,"path":14,"stem":15,"description":773,"children":-1},"Programmatic interaction with the PichaFlow API via our SDK.",{"title":21,"path":22,"stem":23,"description":775,"children":-1},"REST API reference for custom PichaFlow integrations.",1789565439840]