[{"data":1,"prerenderedAt":374},["ShallowReactive",2],{"navigation_docs":3,"-platform-architecture":196,"-platform-architecture-surround":369},[4,127,166],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":36},"Kinotic Apps","i-lucide-rocket","\u002Fapps","1.apps",[10,14,18,37,58,91,106,122],{"title":11,"path":12,"stem":13},"Introduction","\u002Fapps\u002Fintroduction","1.apps\u002F1.introduction",{"title":15,"path":16,"stem":17},"Quick Start","\u002Fapps\u002Fquick-start","1.apps\u002F2.quick-start",{"title":19,"icon":20,"path":21,"stem":22,"children":23,"page":36},"Application Structure","i-lucide-folder-tree","\u002Fapps\u002Fapplication-structure","1.apps\u002F3.application-structure",[24,28,32],{"title":25,"path":26,"stem":27},"Overview","\u002Fapps\u002Fapplication-structure\u002Foverview","1.apps\u002F3.application-structure\u002F1.overview",{"title":29,"path":30,"stem":31},"Applications and Projects","\u002Fapps\u002Fapplication-structure\u002Fapplications-and-projects","1.apps\u002F3.application-structure\u002F2.applications-and-projects",{"title":33,"path":34,"stem":35},"Artifact Types","\u002Fapps\u002Fapplication-structure\u002Fartifact-types","1.apps\u002F3.application-structure\u002F3.artifact-types",false,{"title":38,"icon":39,"path":40,"stem":41,"children":42,"page":36},"Services","i-lucide-network","\u002Fapps\u002Fservices","1.apps\u002F4.services",[43,46,50,54],{"title":25,"path":44,"stem":45},"\u002Fapps\u002Fservices\u002Foverview","1.apps\u002F4.services\u002F1.overview",{"title":47,"path":48,"stem":49},"Publishing Services","\u002Fapps\u002Fservices\u002Fpublishing-services","1.apps\u002F4.services\u002F2.publishing-services",{"title":51,"path":52,"stem":53},"Service Proxies","\u002Fapps\u002Fservices\u002Fservice-proxies","1.apps\u002F4.services\u002F3.service-proxies",{"title":55,"path":56,"stem":57},"Streaming","\u002Fapps\u002Fservices\u002Fstreaming","1.apps\u002F4.services\u002F4.streaming",{"title":59,"icon":60,"path":61,"stem":62,"children":63,"page":36},"Persistence","i-lucide-database","\u002Fapps\u002Fpersistence","1.apps\u002F5.persistence",[64,67,71,75,79,83,87],{"title":25,"path":65,"stem":66},"\u002Fapps\u002Fpersistence\u002Foverview","1.apps\u002F5.persistence\u002F1.overview",{"title":68,"path":69,"stem":70},"Defining Entities","\u002Fapps\u002Fpersistence\u002Fdefining-entities","1.apps\u002F5.persistence\u002F2.defining-entities",{"title":72,"path":73,"stem":74},"Entity Decorators","\u002Fapps\u002Fpersistence\u002Fentity-decorators","1.apps\u002F5.persistence\u002F3.entity-decorators",{"title":76,"path":77,"stem":78},"CRUD Operations","\u002Fapps\u002Fpersistence\u002Fcrud-operations","1.apps\u002F5.persistence\u002F4.crud-operations",{"title":80,"path":81,"stem":82},"Named Queries","\u002Fapps\u002Fpersistence\u002Fnamed-queries","1.apps\u002F5.persistence\u002F5.named-queries",{"title":84,"path":85,"stem":86},"Multi-Tenancy","\u002Fapps\u002Fpersistence\u002Fmulti-tenancy","1.apps\u002F5.persistence\u002F6.multi-tenancy",{"title":88,"path":89,"stem":90},"Migrations","\u002Fapps\u002Fpersistence\u002Fmigrations","1.apps\u002F5.persistence\u002F7.migrations",{"title":92,"icon":93,"path":94,"stem":95,"children":96,"page":36},"Security","i-lucide-shield-check","\u002Fapps\u002Fsecurity","1.apps\u002F6.security",[97,101],{"title":98,"path":99,"stem":100,"icon":93},"Access Control","\u002Fapps\u002Fsecurity\u002Faccess-control","1.apps\u002F6.security\u002F1.access-control",{"title":102,"path":103,"stem":104,"icon":105},"Authentication","\u002Fapps\u002Fsecurity\u002Fauthentication","1.apps\u002F6.security\u002F2.authentication","i-lucide-key-round",{"title":107,"icon":108,"path":109,"stem":110,"children":111,"page":36},"Deployment","i-lucide-cloud-upload","\u002Fapps\u002Fdeployment","1.apps\u002F7.deployment",[112,117],{"title":113,"path":114,"stem":115,"icon":116},"Deployment Workflow","\u002Fapps\u002Fdeployment\u002Fworkflow","1.apps\u002F7.deployment\u002F1.workflow","i-lucide-git-branch",{"title":118,"path":119,"stem":120,"icon":121},"Environments","\u002Fapps\u002Fdeployment\u002Fenvironments","1.apps\u002F7.deployment\u002F2.environments","i-lucide-server",{"title":123,"path":124,"stem":125,"icon":126},"CLI Reference","\u002Fapps\u002Fcli-reference","1.apps\u002F8.cli-reference","i-lucide-terminal",{"title":128,"icon":121,"path":129,"stem":130,"children":131,"page":36},"Kinotic OS","\u002Fplatform","2.platform",[132,137,141,146,151,156,161],{"title":133,"path":134,"stem":135,"icon":136},"System Architecture","\u002Fplatform\u002Farchitecture","2.platform\u002F1.architecture","i-lucide-boxes",{"title":138,"path":139,"stem":140,"icon":6},"Deployment Guide","\u002Fplatform\u002Fdeployment-guide","2.platform\u002F2.deployment-guide",{"title":142,"path":143,"stem":144,"icon":145},"Configuration","\u002Fplatform\u002Fconfiguration","2.platform\u002F3.configuration","i-lucide-settings",{"title":147,"path":148,"stem":149,"icon":150},"Organization Management","\u002Fplatform\u002Forganization-management","2.platform\u002F4.organization-management","i-lucide-building-2",{"title":152,"path":153,"stem":154,"icon":155},"System Security","\u002Fplatform\u002Fsystem-security","2.platform\u002F5.system-security","i-lucide-shield",{"title":157,"path":158,"stem":159,"icon":160},"Observability","\u002Fplatform\u002Fobservability","2.platform\u002F6.observability","i-lucide-activity",{"title":162,"path":163,"stem":164,"icon":165},"Contributing","\u002Fplatform\u002Fcontributing","2.platform\u002F7.contributing","i-lucide-git-pull-request",{"title":167,"icon":168,"path":169,"stem":170,"children":171,"page":36},"Reference","i-lucide-book-open","\u002Freference","3.reference",[172,177,181,186,191],{"title":173,"path":174,"stem":175,"icon":176},"Decorators Reference","\u002Freference\u002Fdecorators","3.reference\u002F1.decorators","i-lucide-at-sign",{"title":178,"path":179,"stem":180,"icon":60},"Migration SQL Grammar","\u002Freference\u002Fmigration-sql-grammar","3.reference\u002F2.migration-sql-grammar",{"title":182,"path":183,"stem":184,"icon":185},"ABAC Expression Language","\u002Freference\u002Fabac-expression-language","3.reference\u002F3.abac-expression-language","i-lucide-file-code",{"title":187,"path":188,"stem":189,"icon":190},"CRI Format","\u002Freference\u002Fcri-format","3.reference\u002F4.cri-format","i-lucide-link",{"title":192,"path":193,"stem":194,"icon":195},"SDK Packages","\u002Freference\u002Fsdk-packages","3.reference\u002F5.sdk-packages","i-lucide-package",{"id":197,"title":133,"body":198,"description":362,"extension":363,"links":364,"meta":365,"navigation":366,"path":134,"seo":367,"stem":135,"__hash__":368},"docs\u002F2.platform\u002F1.architecture.md",{"type":199,"value":200,"toc":355},"minimark",[201,205,209,213,242,246,330,334,337,348],[202,203,25],"h2",{"id":204},"overview",[206,207,208],"p",{},"Kinotic OS is a full-stack application platform that handles service communication, persistence, authentication, authorization, deployment, and observability. The system is composed of several core components that work together to provide a seamless development and runtime experience.",[202,210,212],{"id":211},"core-components","Core Components",[214,215,216,224,230,236],"ul",{},[217,218,219,223],"li",{},[220,221,222],"strong",{},"Kinotic Server"," — The central platform server built on Spring Boot. Manages service registration, authentication, session management, and coordinates all platform operations.",[217,225,226,229],{},[220,227,228],{},"RPC Gateway"," — Routes remote procedure calls between clients and published services over STOMP\u002FWebSocket. Enforces ABAC policies at the gateway layer before calls reach service implementations.",[217,231,232,235],{},[220,233,234],{},"Persistence Layer"," — Provides automatic CRUD operations for entities backed by Elasticsearch. Compiles ABAC policies into query filters so unauthorized data is never returned.",[217,237,238,241],{},[220,239,240],{},"Auth System"," — Handles authentication (email\u002Fpassword and OIDC) and authorization (Cedar policy engine). Supports three authorization hierarchies: System, Organization, and Application.",[202,243,245],{"id":244},"tech-stack","Tech Stack",[247,248,249,262],"table",{},[250,251,252],"thead",{},[253,254,255,259],"tr",{},[256,257,258],"th",{},"Component",[256,260,261],{},"Technology",[263,264,265,274,282,290,298,306,314,322],"tbody",{},[253,266,267,271],{},[268,269,270],"td",{},"Orchestration",[268,272,273],{},"Kubernetes",[253,275,276,279],{},[268,277,278],{},"Policy Engine",[268,280,281],{},"Cedar",[253,283,284,287],{},[268,285,286],{},"Build Isolation",[268,288,289],{},"Firecracker VMs",[253,291,292,295],{},[268,293,294],{},"Runtime",[268,296,297],{},"Bun",[253,299,300,303],{},[268,301,302],{},"Database",[268,304,305],{},"Postgres (Hibernate Reactive)",[253,307,308,311],{},[268,309,310],{},"Search\u002FPersistence",[268,312,313],{},"Elasticsearch",[253,315,316,319],{},[268,317,318],{},"Logging",[268,320,321],{},"Grafana Loki",[253,323,324,327],{},[268,325,326],{},"Payments",[268,328,329],{},"Stripe Connect",[202,331,333],{"id":332},"communication","Communication",[206,335,336],{},"Services communicate via STOMP over WebSocket, with messages routed by CRI (Kinotic Resource Identifier). Each service, method, and event stream is addressable through a CRI, which follows the format:",[338,339,344],"pre",{"className":340,"code":342,"language":343},[341],"language-text","scheme:\u002F\u002F[scope@]resourceName[\u002Fpath][#version]\n","text",[345,346,342],"code",{"__ignoreMap":347},"",[206,349,350,351,354],{},"The RPC gateway uses CRIs to route requests to the correct service instance, apply versioning, and enforce scope-based multi-tenancy. See the ",[352,353,187],"a",{"href":188}," reference for details.",{"title":347,"searchDepth":356,"depth":356,"links":357},2,[358,359,360,361],{"id":204,"depth":356,"text":25},{"id":211,"depth":356,"text":212},{"id":244,"depth":356,"text":245},{"id":332,"depth":356,"text":333},"High-level architecture of the Kinotic OS platform.","md",null,{},{"icon":136},{"title":133,"description":362},"zxMQS6sQUYl54jbF4X-w9CkSr8xo4E0LuQFwJmWS_oM",[370,372],{"title":123,"path":124,"stem":125,"description":371,"icon":126,"children":-1},"Command reference for the Kinotic CLI.",{"title":138,"path":139,"stem":140,"description":373,"icon":6,"children":-1},"Deploying and operating Kinotic OS in various environments.",1775187762910]