PageSourceSearch

https://stoker-website.web.app/assets/js/8e33b65d.09b43794.js

js stoker-website.web.app collected 2026-10-03 12:37:02 UTC 11,965 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([["388"],{1558(e,n,i){i.r(n),i.d(n,{metadata:()=>r,default:()=>h,frontMatter:()=>a,contentTitle:()=>s,toc:()=>c,assets:()=>l});var r=JSON.parse('{"type":"mdx","permalink":"/privacy","source":"@site/src/pages/privacy.md","title":"Privacy Policy","description":"Last updated: 2026-08-24","frontMatter":{},"unlisted":false}'),t=i(1085),o=i(1184);let a={},s="Privacy Policy",l={},c=[{value:"1. Alpha Mode",id:"1-alpha-mode",level:2},{value:"2. Who We Are",id:"2-who-we-are",level:2},{value:"3. What Data We Collect",id:"3-what-data-we-collect",level:2},{value:"3.1. App Data",id:"31-app-data",level:3},{value:"3.2. Schema Data and Project IDs You Send During Deployments",id:"32-schema-data-and-project-ids-you-send-during-deployments",level:3},{value:"3.3. Technical Metadata",id:"33-technical-metadata",level:3},{value:"3.4. Account / Billing Information",id:"34-account--billing-information",level:3},{value:"4. How We Use Information",id:"4-how-we-use-information",level:2},{value:"5. Lawful Bases (GDPR)",id:"5-lawful-bases-gdpr",level:2},{value:"6. Data Retention",id:"6-data-retention",level:2},{value:"7. Data Residency",id:"7-data-residency",level:2},{value:"8. Third-Party Service Providers",id:"8-third-party-service-providers",level:2},{value:"9. Your Rights",id:"9-your-rights",level:2},{value:"10. Security",id:"10-security",level:2},{value:"11. Children\u2019s Privacy",id:"11-childrens-privacy",level:2},{value:"12. Changes to This Policy",id:"12-changes-to-this-policy",level:2},{value:"13. Contact Us",id:"13-contact-us",level:2}];function d(e){let n={a:"a",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",ul:"ul",...(0,o.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"privacy-policy",children:"Privacy Policy"})}),"\n",(0,t.jsx)(n.p,{children:"Last updated: 2026-08-24"}),"\n",(0,t.jsx)(n.p,{children:"This Privacy Policy explains how Shopfront International Pty Ltd (\u201Cwe\u201D, \u201Cour\u201D, \u201Cus\u201D) collects, uses, and protects information when you use the Stoker framework, CLI tools, website, and related services (collectively, the \u201CServices\u201D)."}),"\n",(0,t.jsx)(n.p,{children:"We are committed to minimising the data we collect and ensuring transparency in how any information is processed."}),"\n",(0,t.jsx)(n.h2,{id:"1-alpha-mode",children:"1. Alpha Mode"}),"\n",(0,t.jsx)(n.p,{children:"Stoker is currently in alpha development. Features, functionality, and data handling practices may change as we continue to improve the framework. While we make every effort to protect your information, the Services are still under active development and may contain bugs or limitations. By using Stoker in its alpha stage, you acknowledge that the Services are experimental and subject to updates."}),"\n",(0,t.jsx)(n.h2,{id:"2-who-we-are",children:"2. Who We Are"}),"\n",(0,t.jsx)(n.p,{children:"Shopfront International Pty Ltd"}),"\n",(0,t.jsx)(n.p,{children:"4/8 Rocklea Dr, Port Melbourne, VIC, 3207, Australia"}),"\n",(0,t.jsxs)(n.p,{children:["Contact: ",(0,t.jsx)(n.a,{href:"mailto:[email protected]",children:"[email protected]"})]}),"\n",(0,t.jsx)(n.p,{children:"For personal data related to your account and billing, we act as the Data Controller."}),"\n",(0,t.jsx)(n.p,{children:"For schema data and Google Cloud project IDs transmitted during deployments, we act as a Data Processor, processing them solely on your instruction."}),"\n",(0,t.jsx)(n.h2,{id:"3-what-data-we-collect",children:"3. What Data We Collect"}),"\n",(0,t.jsx)(n.h3,{id:"31-app-data",children:"3.1. App Data"}),"\n",(0,t.jsx)(n.p,{children:"Stoker does NOT store, access, or manage your application's data."}),"\n",(0,t.jsx)(n.p,{children:"All app data is stored in your own Google Cloud projects, using your own Google Cloud credentials."}),"\n",(0,t.jsx)(n.p,{children:"We do NOT have access to your Google Cloud projects or your app data."}),"\n",(0,t.jsx)(n.h3,{id:"32-schema-data-and-project-ids-you-send-during-deployments",children:"3.2. Schema Data and Project IDs You Send During Deployments"}),"\n",(0,t.jsx)(n.p,{children:"When you use commands such as:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"stoker deploy"}),"\n",(0,t.jsx)(n.li,{children:"stoker add-tenant"}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"your Stoker schema (JSON) is transmitted to our server along with your project's Google Cloud project ID only for the purpose of generating:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Firestore index definitions"}),"\n",(0,t.jsx)(n.li,{children:"Firestore Security Rules"}),"\n",(0,t.jsx)(n.li,{children:"Firebase Storage Security Rules"}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"We do not store, log, cache or retain your schema, project ID, generated rules, or index definitions after the request is completed. They are processed in-memory solely for the purpose of generating the required Firebase configuration files."}),"\n",(0,t.jsx)(n.p,{children:"No AI is used for rule or index generation."}),"\n",(0,t.jsx)(n.h3,{id:"33-technical-metadata",children:"3.3. Technical Metadata"}),"\n",(0,t.jsx)(n.p,{children:"Like most online services, we may automatically receive limited metadata, such as:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"IP addresses"}),"\n",(0,t.jsx)(n.li,{children:"Request timestamps"}),"\n",(0,t.jsx)(n.li,{children:"User-agent and CLI version"}),"\n",(0,t.jsx)(n.li,{children:"Error logs (if errors occur during requests)"}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"This metadata is used only for operational, debugging, security, and abuse-prevention purposes."}
1),"\n",(0,t.jsx)(n.p,{children:"No analytics or tracking data are collected from the Stoker CLI."}),"\n",(0,t.jsx)(n.h3,{id:"34-account--billing-information",children:"3.4. Account / Billing Information"}),"\n",(0,t.jsx)(n.p,{children:"If you purchase a plan, we may collect:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Name"}),"\n",(0,t.jsx)(n.li,{children:"Email address"}),"\n",(0,t.jsx)(n.li,{children:"Billing information (processed by third-party payment processors)"}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"We do not store payment card numbers."}),"\n",(0,t.jsx)(n.h2,{id:"4-how-we-use-information",children:"4. How We Use Information"}),"\n",(0,t.jsx)(n.p,{children:"We process data strictly for the following purposes:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Generating Firestore index definitions and Security Rules for your project"}),"\n",(0,t.jsx)(n.li,{children:"Operating, maintaining, and improving the Services"}),"\n",(0,t.jsx)(n.li,{children:"Security, debugging, and preventing misuse"}),"\n",(0,t.jsx)(n.li,{children:"Account management and billing"}),"\n",(0,t.jsx)(n.li,{children:"Compliance with legal obligations"}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"We never sell or share your data for advertising."}),"\n",(0,t.jsx)(n.h2,{id:"5-lawful-bases-gdpr",children:"5. Lawful Bases (GDPR)"}),"\n",(0,t.jsx)(n.p,{children:"If you are in the EEA, UK, or similar regions, we process your data under the following legal grounds:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Contractual necessity \u2013 to provide the core functionality of Stoker"}),"\n",(0,t.jsx)(n.li,{children:"Legitimate interests \u2013 security, debugging, preventing fraud"}),"\n",(0,t.jsx)(n.li,{children:"Legal obligation \u2013 where required by law"}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"6-data-retention",children:"6. Data Retention"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"We do not store your Stoker schema, project ID, or generated rules/index definitions."}),"\n",(0,t.jsx)(n.li,{children:"Temporary technical logs may be retained for up to 30 days for operational and security purposes (see section 3.3 for the types of logs retained)."}),"\n",(0,t.jsx)(n.li,{children:"Account and billing information is retained as legally required."}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"7-data-residency",children:"7. Data Residency"}),"\n",(0,t.jsx)(n.p,{children:"Our services are hosted in Australia and the US. If you are located in the European Economic Area (EEA) or the UK, any data we process may be transferred outside your region, including to Australia or the US. We ensure that such transfers comply with applicable data protection laws (e.g., using Standard Contractual Clauses under GDPR) to protect your information."}),"\n",(0,t.jsx)(n.h2,{id:"8-third-party-service-providers",children:"8. Third-Party Service Providers"}),"\n",(0,t.jsx)(n.p,{children:"We may use third-party processors for:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Hosting and infrastructure"}),"\n",(0,t.jsx)(n.li,{children:"Error monitoring"}),"\n",(0,t.jsx)(n.li,{children:"Payment processing"}),"\n",(0,t.jsx)(n.li,{children:"Analytics on our website (Google Analytics)"}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"Examples include:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Google Cloud Platform"}),"\n",(0,t.jsx)(n.li,{children:"Stripe"}),"\n",(0,t.jsx)(n.li,{children:"Sentry"}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"These providers process data only on our behalf and according to our instructions."}),"\n",(0,t.jsx)(n.h2,{id:"9-your-rights",children:"9. Your Rights"}),"\n",(0,t.jsx)(n.p,{children:"Depending on your region (GDPR, UK GDPR, CCPA/CPRA), you may have the right to:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Access your personal data"}),"\n",(0,t.jsx)(n.li,{children:"Correct inaccurate data"}),"\n",(0,t.jsx)(n.li,{children:"Request deletion"}),"\n",(0,t.jsx)(n.li,{children:"Object to processing"}),"\n",(0,t.jsx)(n.li,{children:"Request data portability"}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["To exercise these rights, contact: ",(0,t.jsx)(n.a,{href:"mailto:[email protected]",children:"[email protected]"})]}),"\n",(0,t.jsx)(n.h2,{id:"10-security",children:"10. Security"}),"\n",(0,t.jsx)(n.p,{children:"We use industry-standard security measures to protect your information."}),"\n",(0,t.jsx)(n.p,{children:"However, no method of transmission or storage is completely secure."}),"\n",(0,t.jsx)(n.h2,{id:"11-childrens-privacy",children:"11. Children\u2019s Privacy"}),"\n",(0,t.jsxs)(n.p,{children:["We do not knowingly collect or process personal data from children under 16 years of age. If we discover that a child under 16 has submitted personal information to us, we will delete it as soon as reasonably possible. If you are a parent or guardian and believe a child has provided us with personal information, please contact us at ",(0,t.jsx)(n.a,{href:"mailto:[email protected]",children:"[email protected]"})]}),"\n",(0,t.jsx)(n.h2,{id:"12-changes-to-this-policy",children:"12. Changes to This Policy"}),"\n",(0,t.jsx)(n.p,{children:"We may update this Privacy Policy from time to time."}),"\n",(0,t.jsx)(n.p,{children:"The \u201CLast updated\u201D date indicates when changes were made."}),"\n",(0,t.jsx)(n.h2,{id:"13-contact-us",children:"13. Contact Us"}),"\n",(0,t.jsx)(n.p,{children:"If you have questions about this Privacy Policy or data practices, contact:"}),"\n",(0,t.jsx)(n.p,{children:"Shopfront International Pty Ltd"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.a,{href:"mailto:[email protected]",children:"[email protected]"})})]})}function h(e={}){let{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},1184(e,n,i){i.d(n,{R:()=>a,x:()=>s});var r=i(4041);let t={},o=r.createContext(t);function a(e){let n=r.useContext(o);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:a(e.components),r.createElement(o.Provider,{value:n},e.children)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.