[{"data":1,"prerenderedAt":533},["ShallowReactive",2],{"navigation":3,"\u002Fdocs\u002Fengineering":180,"\u002Fdocs\u002Fengineering-surround":528},[4,8,20,24,59,65,69,73,77,100,104,108,112,116,120,124,128,160,164,168,172,176],{"title":5,"path":6,"stem":7},"","\u002Fdocs","1.docs\u002Findex",{"title":9,"path":10,"stem":11,"children":12,"icon":19},"Getting Started","\u002Fdocs\u002Fgetting-started","1.docs\u002F01.getting-started\u002F1.index",[13,15],{"title":14,"path":10,"stem":11},"Bosca",{"title":16,"path":17,"stem":18},"Quickstart","\u002Fdocs\u002Fgetting-started\u002Fquickstart","1.docs\u002F01.getting-started\u002F2.quickstart",false,{"title":21,"path":22,"stem":23},"Kit","\u002Fdocs\u002Fkit","1.docs\u002F01.kit",{"title":25,"path":26,"stem":27,"children":28},"Content","\u002Fdocs\u002Fcontent","1.docs\u002F02.content\u002F1.index",[29,31,53],{"title":30,"path":26,"stem":27},"Content Strategy",{"title":32,"path":33,"stem":34,"children":35},"Metadata","\u002Fdocs\u002Fcontent\u002Fmetadata","1.docs\u002F02.content\u002F1.metadata\u002F1.index",[36,37,41,45,49],{"title":32,"path":33,"stem":34},{"title":38,"path":39,"stem":40},"Supplementary","\u002Fdocs\u002Fcontent\u002Fmetadata\u002Fsupplementary","1.docs\u002F02.content\u002F1.metadata\u002F2.supplementary",{"title":42,"path":43,"stem":44},"Documents","\u002Fdocs\u002Fcontent\u002Fmetadata\u002Fdocuments","1.docs\u002F02.content\u002F1.metadata\u002F3.documents",{"title":46,"path":47,"stem":48},"Guides","\u002Fdocs\u002Fcontent\u002Fmetadata\u002Fguides","1.docs\u002F02.content\u002F1.metadata\u002F4.guides",{"title":50,"path":51,"stem":52},"Bible","\u002Fdocs\u002Fcontent\u002Fmetadata\u002Fbible","1.docs\u002F02.content\u002F1.metadata\u002F5.bible",{"title":54,"path":55,"stem":56,"children":57},"Collections","\u002Fdocs\u002Fcontent\u002Fcollections","1.docs\u002F02.content\u002F2.collections\u002F1.index",[58],{"title":54,"path":55,"stem":56},{"title":60,"path":61,"stem":62,"children":63},"Workflows","\u002Fdocs\u002Fworkflows","1.docs\u002F03.workflows\u002F1.index",[64],{"title":60,"path":61,"stem":62},{"title":66,"path":67,"stem":68},"Search","\u002Fdocs\u002Fsearch","1.docs\u002F04.search",{"title":70,"path":71,"stem":72},"Profiles","\u002Fdocs\u002Fprofiles","1.docs\u002F05.profiles",{"title":74,"path":75,"stem":76},"Organizations","\u002Fdocs\u002Forganizations","1.docs\u002F06.organizations",{"title":78,"path":79,"stem":80,"children":81,"icon":99},"Engineering","\u002Fdocs\u002Fengineering","1.docs\u002F07.engineering\u002F1.index",[82,83,87,91,95],{"title":78,"path":79,"stem":80},{"title":84,"path":85,"stem":86},"Infrastructure","\u002Fdocs\u002Fengineering\u002Finfrastructure","1.docs\u002F07.engineering\u002F2.infrastructure",{"title":88,"path":89,"stem":90},"Backend Services","\u002Fdocs\u002Fengineering\u002Fservices","1.docs\u002F07.engineering\u002F3.services",{"title":92,"path":93,"stem":94},"Deployment","\u002Fdocs\u002Fengineering\u002Fdeployment","1.docs\u002F07.engineering\u002F4.deployment",{"title":96,"path":97,"stem":98},"Framework Modules","\u002Fdocs\u002Fengineering\u002Fframework","1.docs\u002F07.engineering\u002F5.framework","i-heroicons-wrench-screwdriver",{"title":101,"path":102,"stem":103},"Identity Management","\u002Fdocs\u002Fidentity","1.docs\u002F07.identity",{"title":105,"path":106,"stem":107},"Localization","\u002Fdocs\u002Flocalization","1.docs\u002F08.localization",{"title":109,"path":110,"stem":111},"Analytics","\u002Fdocs\u002Fanalytics","1.docs\u002F09.analytics",{"title":113,"path":114,"stem":115},"AI & Agents","\u002Fdocs\u002Fai","1.docs\u002F10.ai",{"title":117,"path":118,"stem":119},"Messaging & Email","\u002Fdocs\u002Fmessages","1.docs\u002F11.messages",{"title":121,"path":122,"stem":123},"Scheduler","\u002Fdocs\u002Fscheduler","1.docs\u002F12.scheduler",{"title":125,"path":126,"stem":127},"Backup & Restore","\u002Fdocs\u002Fbackup","1.docs\u002F13.backup",{"title":129,"path":130,"stem":131,"children":132},"Architecture","\u002Fdocs\u002Farchitecture","1.docs\u002F14.architecture\u002F1.index",[133,134,137,141,145,149,153,157],{"title":129,"path":130,"stem":131},{"title":92,"path":135,"stem":136},"\u002Fdocs\u002Farchitecture\u002Fdeployment","1.docs\u002F14.architecture\u002F2.deployment",{"title":138,"path":139,"stem":140},"Security","\u002Fdocs\u002Farchitecture\u002Fsecurity","1.docs\u002F14.architecture\u002F3.security",{"title":142,"path":143,"stem":144},"Telemetry","\u002Fdocs\u002Farchitecture\u002Ftelemetry","1.docs\u002F14.architecture\u002F4.telemetry",{"title":146,"path":147,"stem":148},"Administration","\u002Fdocs\u002Farchitecture\u002Fadministration","1.docs\u002F14.architecture\u002F5.administration",{"title":150,"path":151,"stem":152},"GraphQL Schema","\u002Fdocs\u002Farchitecture\u002Fgraphql","1.docs\u002F14.architecture\u002F6.graphql",{"title":154,"path":155,"stem":156},"Storage","\u002Fdocs\u002Farchitecture\u002Fstorage","1.docs\u002F14.architecture\u002F7.storage",{"title":105,"path":158,"stem":159},"\u002Fdocs\u002Farchitecture\u002Flocalization","1.docs\u002F14.architecture\u002F8.localization",{"title":161,"path":162,"stem":163},"Scripting","\u002Fdocs\u002Fscripting","1.docs\u002F15.scripting",{"title":165,"path":166,"stem":167},"Configuration","\u002Fdocs\u002Fconfiguration","1.docs\u002F16.configuration",{"title":169,"path":170,"stem":171},"Forms","\u002Fdocs\u002Fforms","1.docs\u002F17.forms",{"title":173,"path":174,"stem":175},"Segmentation & Campaigns","\u002Fdocs\u002Fsegmentation","1.docs\u002F18.segmentation",{"title":177,"path":178,"stem":179},"Devices & Push","\u002Fdocs\u002Fdevices","1.docs\u002F19.devices",{"id":181,"title":78,"body":182,"description":192,"extension":524,"meta":525,"navigation":247,"path":79,"seo":526,"stem":80,"__hash__":527},"docs\u002F1.docs\u002F07.engineering\u002F1.index.md",{"type":183,"value":184,"toc":517},"minimark",[185,189,193,198,201,364,368,390,394,434,438,449,453,513],[186,187,78],"h1",{"id":188},"engineering",[190,191,192],"p",{},"Welcome to the engineering documentation for the Bosca Framework. This section is designed to provide software engineers with a detailed understanding of the system's architecture, components, and data flow.",[194,195,197],"h2",{"id":196},"system-architecture","System Architecture",[190,199,200],{},"The Bosca Framework is built on a modular architecture that separates concerns into reusable framework components, executable servers, and client applications. It leverages modern technologies like Kotlin Multiplatform, Nuxt 3, and Cloud-Native infrastructure.",[202,203,207],"pre",{"className":204,"code":205,"language":206,"meta":5,"style":5},"language-mermaid shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","graph TD\n    subgraph Clients\n        Admin[Administration Web App]\n        App[Mobile\u002FDesktop Apps]\n    end\n\n    subgraph \"Backend Services\"\n        Server[Bosca Server]\n        Analytics[Analytics Collector]\n    end\n\n    subgraph \"Infrastructure\"\n        DB[(PostgreSQL)]\n        Search[(Meilisearch)]\n        Storage[(S3 Compatible Storage)]\n        Cache[(Redis \u002F NATS)]\n    end\n\n    Admin --> Server\n    App --> Server\n\n    Server --> DB\n    Server --> Search\n    Server --> Storage\n    Server --> Cache\n    Analytics --> Storage\n","mermaid",[208,209,210,218,224,230,236,242,249,255,261,267,272,277,283,289,295,301,307,312,317,323,329,334,340,346,352,358],"code",{"__ignoreMap":5},[211,212,215],"span",{"class":213,"line":214},"line",1,[211,216,217],{},"graph TD\n",[211,219,221],{"class":213,"line":220},2,[211,222,223],{},"    subgraph Clients\n",[211,225,227],{"class":213,"line":226},3,[211,228,229],{},"        Admin[Administration Web App]\n",[211,231,233],{"class":213,"line":232},4,[211,234,235],{},"        App[Mobile\u002FDesktop Apps]\n",[211,237,239],{"class":213,"line":238},5,[211,240,241],{},"    end\n",[211,243,245],{"class":213,"line":244},6,[211,246,248],{"emptyLinePlaceholder":247},true,"\n",[211,250,252],{"class":213,"line":251},7,[211,253,254],{},"    subgraph \"Backend Services\"\n",[211,256,258],{"class":213,"line":257},8,[211,259,260],{},"        Server[Bosca Server]\n",[211,262,264],{"class":213,"line":263},9,[211,265,266],{},"        Analytics[Analytics Collector]\n",[211,268,270],{"class":213,"line":269},10,[211,271,241],{},[211,273,275],{"class":213,"line":274},11,[211,276,248],{"emptyLinePlaceholder":247},[211,278,280],{"class":213,"line":279},12,[211,281,282],{},"    subgraph \"Infrastructure\"\n",[211,284,286],{"class":213,"line":285},13,[211,287,288],{},"        DB[(PostgreSQL)]\n",[211,290,292],{"class":213,"line":291},14,[211,293,294],{},"        Search[(Meilisearch)]\n",[211,296,298],{"class":213,"line":297},15,[211,299,300],{},"        Storage[(S3 Compatible Storage)]\n",[211,302,304],{"class":213,"line":303},16,[211,305,306],{},"        Cache[(Redis \u002F NATS)]\n",[211,308,310],{"class":213,"line":309},17,[211,311,241],{},[211,313,315],{"class":213,"line":314},18,[211,316,248],{"emptyLinePlaceholder":247},[211,318,320],{"class":213,"line":319},19,[211,321,322],{},"    Admin --> Server\n",[211,324,326],{"class":213,"line":325},20,[211,327,328],{},"    App --> Server\n",[211,330,332],{"class":213,"line":331},21,[211,333,248],{"emptyLinePlaceholder":247},[211,335,337],{"class":213,"line":336},22,[211,338,339],{},"    Server --> DB\n",[211,341,343],{"class":213,"line":342},23,[211,344,345],{},"    Server --> Search\n",[211,347,349],{"class":213,"line":348},24,[211,350,351],{},"    Server --> Storage\n",[211,353,355],{"class":213,"line":354},25,[211,356,357],{},"    Server --> Cache\n",[211,359,361],{"class":213,"line":360},26,[211,362,363],{},"    Analytics --> Storage\n",[194,365,367],{"id":366},"key-components","Key Components",[369,370,371,379,385],"ul",{},[372,373,374,378],"li",{},[375,376,377],"strong",{},"Bosca Server",": The primary API gateway and logic handler for the platform. It handles authentication, content management, workflow execution, AI agents, and more.",[372,380,381,384],{},[375,382,383],{},"Analytics Collector",": Specialized service for ingesting high-volume telemetry and usage data, persisting events via Apache Iceberg.",[372,386,387,389],{},[375,388,96],{},": A collection of reusable Kotlin libraries that power the backend services.",[194,391,393],{"id":392},"client-applications","Client Applications",[369,395,396,406,419,425],{},[372,397,398,401,402,405],{},[375,399,400],{},"Administration UI",": Nuxt-based admin dashboard with rich text editing (Tiptap), real-time collaborative editing, Monaco code editor, dashboards, and GraphQL integration. Located in ",[208,403,404],{},"web\u002Fadministration",".",[372,407,408,411,412,415,416,405],{},[375,409,410],{},"Analytics SDK",": Browser-based analytics client distributed via npm (",[208,413,414],{},"@sowers-io\u002Fanalytics-client-browser","). Located in ",[208,417,418],{},"web\u002Fanalytics",[372,420,421,424],{},[375,422,423],{},"Mobile\u002FDesktop App",": Compose Multiplatform client for Android, iOS, and Desktop.",[372,426,427,430,431,405],{},[375,428,429],{},"Image Processor",": Node.js service (Fastify + Sharp) for image resizing, format conversion, and blurhash generation. Located in ",[208,432,433],{},"web\u002Fimageprocessor",[194,435,437],{"id":436},"integrations","Integrations",[369,439,440],{},[372,441,442,445,446,405],{},[375,443,444],{},"HubSpot",": CRM synchronization with contact management, list membership, and bidirectional sync. Uses JSONata for expression-based field mapping. Located in ",[208,447,448],{},"backend\u002Fintegrations\u002Fhubspot",[194,450,452],{"id":451},"technology-stack","Technology Stack",[369,454,455,461,467,473,479,484,490,496,501,507],{},[372,456,457,460],{},[375,458,459],{},"Backend",": Kotlin, Java 25, Gradle",[372,462,463,466],{},[375,464,465],{},"Frontend",": Nuxt 3, Vue.js, Tailwind CSS",[372,468,469,472],{},[375,470,471],{},"Mobile\u002FDesktop",": Kotlin Multiplatform (Compose)",[372,474,475,478],{},[375,476,477],{},"Database",": PostgreSQL",[372,480,481,483],{},[375,482,66],{},": Meilisearch",[372,485,486,489],{},[375,487,488],{},"Cache \u002F PubSub \u002F Job Queue",": Redis or NATS",[372,491,492,495],{},[375,493,494],{},"Tracing",": OpenTelemetry (Jaeger for local development)",[372,497,498,500],{},[375,499,109],{},": Trino, Apache Iceberg",[372,502,503,506],{},[375,504,505],{},"AI",": Google ADK, OpenAI, Gemini",[372,508,509,512],{},[375,510,511],{},"Collaboration",": Yjs CRDT with Rust FFI bindings",[514,515,516],"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":5,"searchDepth":220,"depth":220,"links":518},[519,520,521,522,523],{"id":196,"depth":220,"text":197},{"id":366,"depth":220,"text":367},{"id":392,"depth":220,"text":393},{"id":436,"depth":220,"text":437},{"id":451,"depth":220,"text":452},"md",{},{"title":78,"description":192},"EVvNLH6r7aSpW04bHAk_MfxOEB8CfpHsinmyuEQG6-4",[529,531],{"title":74,"path":75,"stem":76,"description":530,"children":-1},"Organizations model teams, companies, and communities in Bosca—bringing membership, permissions, and signup policies together.",{"title":84,"path":85,"stem":86,"description":532,"children":-1},"The Bosca Framework relies on a set of robust infrastructure services to ensure scalability, reliability, and performance.",1775372112856]