[{"data":1,"prerenderedAt":289},["ShallowReactive",2],{"navigation_docs_en":3,"-en-developers-glossary":93,"-en-developers-glossary-surround":112,"glossary":117},[4,16,40,72],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":15},"Getting Started","i-lucide-play","\u002Fen\u002Fgetting-started","en\u002F1.getting-started",[10],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","\u002Fen\u002Fgetting-started\u002Fintroduction","en\u002F1.getting-started\u002F1.introduction","i-lucide-house",false,{"title":17,"icon":18,"path":19,"stem":20,"children":21,"page":15},"Nodes","i-lucide-workflow","\u002Fen\u002Fnodes","en\u002F2.nodes",[22,27],{"title":23,"path":24,"stem":25,"icon":26},"Overview","\u002Fen\u002Fnodes\u002Foverview","en\u002F2.nodes\u002F1.overview","i-lucide-grid-3x3",{"title":28,"path":29,"stem":30,"children":31,"page":15},"Built-In","\u002Fen\u002Fnodes\u002Fbuiltin","en\u002F2.nodes\u002F2.builtin",[32,36],{"title":33,"path":34,"stem":35},"Mapper","\u002Fen\u002Fnodes\u002Fbuiltin\u002Fmapper","en\u002F2.nodes\u002F2.builtin\u002F1.mapper",{"title":37,"path":38,"stem":39},"Http","\u002Fen\u002Fnodes\u002Fbuiltin\u002Fhttp","en\u002F2.nodes\u002F2.builtin\u002F2.http",{"title":41,"icon":42,"path":43,"stem":44,"children":45,"page":15},"Administration","i-lucide-settings-2","\u002Fen\u002Fadministration","en\u002F3.administration",[46,50,63],{"title":47,"path":48,"stem":49},"Configuration","\u002Fen\u002Fadministration\u002Fconfiguration","en\u002F3.administration\u002F1.configuration",{"title":51,"path":52,"stem":53,"children":54,"page":15},"Deployment","\u002Fen\u002Fadministration\u002Fdeployment","en\u002F3.administration\u002F2.deployment",[55,59],{"title":56,"path":57,"stem":58},"Docker","\u002Fen\u002Fadministration\u002Fdeployment\u002Fdocker","en\u002F3.administration\u002F2.deployment\u002F1.docker",{"title":60,"path":61,"stem":62},"Helm","\u002Fen\u002Fadministration\u002Fdeployment\u002Fhelm","en\u002F3.administration\u002F2.deployment\u002F2.helm",{"title":64,"path":65,"stem":66,"children":67,"page":15},"Node Setup","\u002Fen\u002Fadministration\u002Fnode-setup","en\u002F3.administration\u002F3.node-setup",[68],{"title":69,"path":70,"stem":71},"GlobalMail","\u002Fen\u002Fadministration\u002Fnode-setup\u002Fglobalmail","en\u002F3.administration\u002F3.node-setup\u002F1.globalMail",{"title":73,"icon":74,"path":75,"stem":76,"children":77,"page":15},"Developers","i-lucide-laptop","\u002Fen\u002Fdevelopers","en\u002F4.developers",[78,83,88],{"title":79,"path":80,"stem":81,"icon":82},"Glossary","\u002Fen\u002Fdevelopers\u002Fglossary","en\u002F4.developers\u002F1.glossary","i-lucide-book-open",{"title":84,"path":85,"stem":86,"icon":87},"Hooks","\u002Fen\u002Fdevelopers\u002Fhooks","en\u002F4.developers\u002F2.hooks","i-lucide-fishing-hook",{"title":89,"path":90,"stem":91,"icon":92},"Persistence","\u002Fen\u002Fdevelopers\u002Fpersistence","en\u002F4.developers\u002F3.persistence","i-lucide-database",{"id":94,"title":79,"body":95,"description":105,"extension":106,"links":107,"meta":108,"navigation":109,"path":80,"seo":110,"stem":81,"__hash__":111},"docs_en\u002Fen\u002F4.developers\u002F1.glossary.md",{"type":96,"value":97,"toc":101},"minimark",[98],[99,100],"glossary",{},{"title":102,"searchDepth":103,"depth":103,"links":104},"",2,[],"Understand Snoty's Terminology","md",null,{},{"icon":82},{"title":79,"description":105},"jt8EsdqnPAln8X5wfH1TiCEOc-vH-XwvArOGsZsYLbI",[113,115],{"title":69,"path":70,"stem":71,"description":114,"children":-1},"Sends mails using an Administrator configured Mailserver.",{"title":84,"path":85,"stem":86,"description":116,"icon":87,"children":-1},"Explanation and a list of Hooks",[118,143,164,193,216,264],{"id":119,"title":120,"body":121,"description":126,"extension":106,"meta":137,"navigation":138,"path":139,"seo":140,"stem":141,"__hash__":142},"glossary\u002Fglossary\u002F1.node.md","Node",{"type":96,"value":122,"toc":135},[123,127],[124,125,126],"p",{},"The basic building block of Snoty.",[124,128,129,130,134],{},"Encapsulates one specific action, and is therefore supposed to be connected to other Nodes in order to form a ",[131,132],"glossary-term",{"name":133},"flow",".",{"title":102,"searchDepth":103,"depth":103,"links":136},[],{},true,"\u002Fglossary\u002Fnode",{"description":126},"glossary\u002F1.node","04p16y_YsqD-A9PKSSdHCyMq0qn71Hydimd0gjSHoXs",{"id":144,"title":145,"body":146,"description":158,"extension":106,"meta":159,"navigation":138,"path":160,"seo":161,"stem":162,"__hash__":163},"glossary\u002Fglossary\u002F2.flow.md","Flow",{"type":96,"value":147,"toc":156},[148],[124,149,150,151,155],{},"Container consisting of ",[131,152],{":plural":153,"name":154},"true","node"," to model your intended behavior.",{"title":102,"searchDepth":103,"depth":103,"links":157},[],"Container consisting of  to model your intended behavior.",{},"\u002Fglossary\u002Fflow",{"description":158},"glossary\u002F2.flow","BsPCLQmKUDsBcoOYdElDUo-bx2GwuNg6teTDfmcSSeU",{"id":165,"title":166,"body":167,"description":187,"extension":106,"meta":188,"navigation":138,"path":189,"seo":190,"stem":191,"__hash__":192},"glossary\u002Fglossary\u002F3.extension.md","Extension",{"type":96,"value":168,"toc":185},[169],[124,170,171,172,174,175,174,178,174,181,184],{},"Self-contained JAR files that can provide ",[131,173],{":plural":153,"name":154},", ",[131,176],{":plural":153,"name":177},"hook",[131,179],{":plural":153,"name":180},"service",[131,182],{":plural":153,"name":183},"adapter",", etc.",{"title":102,"searchDepth":103,"depth":103,"links":186},[],"Self-contained JAR files that can provide , , , , etc.",{},"\u002Fglossary\u002Fextension",{"description":187},"glossary\u002F3.extension","CgZ5-W1PyG2NumSL7ueqi1QMDF1G8IFfkooMdRm7kfU",{"id":194,"title":195,"body":196,"description":200,"extension":106,"meta":211,"navigation":138,"path":212,"seo":213,"stem":214,"__hash__":215},"glossary\u002Fglossary\u002F4.hook.md","Hook",{"type":96,"value":197,"toc":209},[198,201],[124,199,200],{},"Used to hook into the Snoty system at pre-defined lifecycle states. Whilst relatively scarce at the moment,\nthe ones available already cover all things needed by the modular application design.",[124,202,203,204,208],{},"You can learn more about them on the ",[205,206,84],"a",{"href":207},"hooks"," page.",{"title":102,"searchDepth":103,"depth":103,"links":210},[],{},"\u002Fglossary\u002Fhook",{"description":200},"glossary\u002F4.hook","JLQhQxTd9KMwL2S98oliOI77lpcIyOu2WoD7uDug6tk",{"id":217,"title":218,"body":219,"description":258,"extension":106,"meta":259,"navigation":138,"path":260,"seo":261,"stem":262,"__hash__":263},"glossary\u002Fglossary\u002F5.service.md","Service",{"type":96,"value":220,"toc":256},[221,233],[124,222,223,224,228,229,232],{},"Snoty follows the IaC Service - Implementation pattern.\nMost Services can be divided into generic business logic (",[225,226,227],"code",{},"Impl"," suffix) and technology-specific implementations (",[225,230,231],{},"\u003CTechnology>"," prefix).",[124,234,235,236,239,240,243,244,247,248,251,252,255],{},"For example, the ",[225,237,238],{},"FlowRunner"," is an interface implemented by only ",[225,241,242],{},"FlowRunnerImpl",".\nOn the other hand, the ",[225,245,246],{},"FlowService"," is implemented by both ",[225,249,250],{},"SqlFlowService"," & ",[225,253,254],{},"MongoFlowService"," - two distinct implementations\nthat both follow the same specifications, but use two totally different backing technologies.",{"title":102,"searchDepth":103,"depth":103,"links":257},[],"Snoty follows the IaC Service - Implementation pattern.\nMost Services can be divided into generic business logic (Impl suffix) and technology-specific implementations (\u003CTechnology> prefix).",{},"\u002Fglossary\u002Fservice",{"description":258},"glossary\u002F5.service","s6euWYYZcrOA1tQbAnRkT14XcBIp-PzKa17k3sDulR4",{"id":265,"title":266,"body":267,"description":283,"extension":106,"meta":284,"navigation":138,"path":285,"seo":286,"stem":287,"__hash__":288},"glossary\u002Fglossary\u002F6.adapter.md","Adapter",{"type":96,"value":268,"toc":281},[269,275,278],[124,270,271,272,274],{},"Bundles ",[131,273],{"name":180}," implementations using a specific Technology or Strategy.\nThis can be as major as providing a database implementation (e.g. SQL & MongoDB Adapters), or just a singular\nservice implementation, such as a Message Bus for the Flow Event Streaming system.",[124,276,277],{},"Some Adapters may share a common configuration or connection. For example, the Redis Message Bus may use the same\ncentralized Redis connection as another Redis-backed Adapter, but you can opt to only use one of them.",[124,279,280],{},"Most services are mainly business logic that isn't supposed to be overwritten. Therefore, Adapters only exist\nfor services that make sense to be replaceable in a modular way.\nShould you want to replace those services anyway, \u002F\u002F TODO",{"title":102,"searchDepth":103,"depth":103,"links":282},[],"Bundles  implementations using a specific Technology or Strategy.\nThis can be as major as providing a database implementation (e.g. SQL & MongoDB Adapters), or just a singular\nservice implementation, such as a Message Bus for the Flow Event Streaming system.",{},"\u002Fglossary\u002Fadapter",{"description":283},"glossary\u002F6.adapter","qTggnrKJc6ovclUtI2L-iHZPp5KuZXI3o3iFn297gLQ",1791926061754]