[{"data":1,"prerenderedAt":599},["ShallowReactive",2],{"docs-\u002Fdocs\u002Fcontribute\u002Fteam-broker\u002F":3,"docs-nav":143},{"id":4,"title":5,"body":6,"description":16,"extension":131,"layout":132,"meta":133,"navGroup":132,"navGroupOrder":132,"navOrder":132,"navTitle":134,"navigation":135,"originalPath":136,"path":137,"redirect":132,"seo":138,"stem":139,"updated":140,"version":141,"__hash__":142},"docs\u002Fdocs\u002Fcontribute\u002Fteam-broker.md","Team Broker configuration",{"type":7,"value":8,"toc":122},"minimark",[9,13,17,22,29,33,36,39,50,53,59,62,68,72,75,81,85,96,102,106,112],[10,11,5],"h1",{"id":12},"team-broker-configuration",[14,15,16],"p",{},"The FlowFuse Team Broker makes use of an EMQX instance.",[18,19,21],"h2",{"id":20},"requirement","Requirement",[23,24,25],"ul",{},[26,27,28],"li",{},"Docker",[18,30,32],{"id":31},"configuration-files","Configuration files",[14,34,35],{},"Create a directory where the configuration for your broker will live. Create the following three files, with their respective content, in that directory:",[14,37,38],{},"cluster.hocon",[40,41,46],"pre",{"className":42,"code":44,"language":45},[43],"language-text","authentication = [\n  {\n    backend = http\n    body {\n      clientId = \"${clientid}\"\n      password = \"${password}\"\n      username = \"${username}\"\n    }\n    connect_timeout = \"15s\"\n    enable = true\n    enable_pipelining = 100\n    headers {\n      content-type = \"application\u002Fjson\"\n    }\n    mechanism = password_based\n    method = post\n    pool_size = 8\n    request_timeout = \"5s\"\n    ssl {\n      ciphers = []\n      depth = 10\n      enable = false\n      hibernate_after = \"5s\"\n      log_level = notice\n      reuse_sessions = true\n      secure_renegotiate = true\n      verify = verify_peer\n      versions = [\n        \"tlsv1.3\",\n        \"tlsv1.2\"\n      ]\n    }\n    url = \"http:\u002F\u002Fhost.docker.internal:3000\u002Fapi\u002Fcomms\u002Fv2\u002Fauth\"\n  },\n  {\n    backend = built_in_database\n    bootstrap_file = \"${EMQX_ETC_DIR}\u002Fauth-built-in-db-bootstrap.csv\"\n    bootstrap_type = plain\n    enable = true\n    mechanism = password_based\n    password_hash_algorithm {name = plain, salt_position = disable}\n    user_id_type = username\n  }\n]\nauthorization {\n  cache {\n    enable = true\n    excludes = []\n    max_size = 32\n    ttl = \"1m\"\n  }\n  deny_action = ignore\n  no_match = allow\n  sources = [\n    {\n      body {\n        action = \"${action}\"\n        topic = \"${topic}\"\n        username = \"${username}\"\n      }\n      connect_timeout = \"15s\"\n      enable = true\n      enable_pipelining = 100\n      headers {\n        content-type = \"application\u002Fjson\"\n      }\n      method = post\n      pool_size = 8\n      request_timeout = \"30s\"\n      ssl {\n        ciphers = []\n        depth = 10\n        enable = false\n        hibernate_after = \"5s\"\n        log_level = notice\n        reuse_sessions = true\n        secure_renegotiate = true\n        verify = verify_peer\n        versions = [\n          \"tlsv1.3\",\n          \"tlsv1.2\"\n        ]\n      }\n      type = http\n      url = \"http:\u002F\u002Fhost.docker.internal:3000\u002Fapi\u002Fcomms\u002Fv2\u002Facls\"\n    },\n    {   \n      enable = false\n      path = \"data\u002Fauthz\u002Facl.conf\"\n      type = file\n    }\n  ]\n}\nlisteners {\n  tcp {\n    default {\n      acceptors = 16\n      access_rules = [\n        \"allow all\"\n      ]\n      bind = \"0.0.0.0:1883\"\n      enable = true\n      enable_authn = true\n      max_conn_rate = infinity\n      max_connections = infinity\n      mountpoint = \"${client_attrs.team}\"\n      proxy_protocol = false\n      proxy_protocol_timeout = \"3s\"\n      tcp_options {\n        active_n = 100\n        backlog = 1024\n        buffer = \"4KB\"\n        high_watermark = \"1MB\"\n        keepalive = none\n        nodelay = true\n        reuseaddr = true\n        send_timeout = \"15s\"\n        send_timeout_close = true\n      }\n      zone = default\n    }\n  }\n  ws {\n    default {\n      acceptors = 16\n      access_rules = [\n        \"allow all\"\n      ]\n      bind = \"0.0.0.0:8083\"\n      enable = true\n      enable_authn = true\n      max_conn_rate = infinity\n      max_connections = infinity\n      mountpoint = \"${client_attrs.team}\"\n      proxy_protocol = false\n      proxy_protocol_timeout = \"3s\"\n      tcp_options {\n        active_n = 100\n        backlog = 1024\n        buffer = \"4KB\"\n        high_watermark = \"1MB\"\n        keepalive = none\n        nodelay = true\n        reuseaddr = true\n        send_timeout = \"15s\"\n        send_timeout_close = true\n      }\n      websocket {\n        allow_origin_absence = true\n        check_origin_enable = false\n        check_origins = \"http:\u002F\u002Flocalhost:18083, http:\u002F\u002F127.0.0.1:18083\"\n        compress = false\n        deflate_opts {\n          client_context_takeover = takeover\n          client_max_window_bits = 15\n          mem_level = 8\n          server_context_takeover = takeover\n          server_max_window_bits = 15\n          strategy = default\n        }\n        fail_if_no_subprotocol = true\n        idle_timeout = \"7200s\"\n        max_frame_size = infinity\n        mqtt_path = \"\u002F\"\n        mqtt_piggyback = multiple\n        proxy_address_header = \"x-forwarded-for\"\n        proxy_port_header = \"x-forwarded-port\"\n        supported_subprotocols = \"mqtt, mqtt-v3, mqtt-v3.1.1, mqtt-v5\"\n        validate_utf8 = true\n      }\n      zone = default\n    }\n  }\n}\ndashboard {\n  default_password = topSecret\n}\napi_key {\n  bootstrap_file = \"\u002Fmounted\u002Fconfig\u002Fapi-keys\"\n}\n","text",[47,48,44],"code",{"__ignoreMap":49},"",[14,51,52],{},"acl.conf",[40,54,57],{"className":55,"code":56,"language":45},[43],"{allow, {username, {re, \"^dashboard$\"}}, subscribe, [\"$SYS\u002F#\"]}.\n\n{allow, {ipaddr, \"127.0.0.1\"}, all, [\"$SYS\u002F#\", \"#\"]}.\n\n{deny, all, subscribe, [\"$SYS\u002F#\"]}.\n\n{allow, all}.\n",[47,58,56],{"__ignoreMap":49},[14,60,61],{},"api-keys",[40,63,66],{"className":64,"code":65,"language":45},[43],"flowforge:verySecret:administrator\n",[47,67,65],{"__ignoreMap":49},[18,69,71],{"id":70},"starting","Starting",[14,73,74],{},"The following docker command should be run in the directory the configuration files were stored.",[40,76,79],{"className":77,"code":78,"language":45},[43],"docker run -d --rm \\\n  -v $(pwd)\u002Fcluster.hocon:\u002Fopt\u002Femqx\u002Fdata\u002Fconfigs\u002Fcluster.hocon \\\n  -v $(pwd)\u002Fapi-keys:\u002Fmounted\u002Fconfig\u002Fapi-keys \\\n  -v $(pwd)\u002Facl.conf:\u002Fopt\u002Femqx\u002Fdata\u002Fauthz\u002Facl.conf \\\n  --add-host=host.docker.internal:host-gateway \\\n  -p 1883:1883 -p 8083:8083 -p 18083:18083 --name emqx emqx\u002Femqx:5.8.0\n",[47,80,78],{"__ignoreMap":49},[18,82,84],{"id":83},"configuring-flowfuse","Configuring FlowFuse",[14,86,87,88,91,92,95],{},"Make sure the ",[47,89,90],{},"broker"," section of the ",[47,93,94],{},"flowfuse.yml"," is updated as follows",[40,97,100],{"className":98,"code":99,"language":45},[43],"broker:\n  url: mqtt:\u002F\u002F[::1]:1883\n  public_url: ws:\u002F\u002F\u003Cip-of-dev-computer>:8083\n  teamBroker:\n    enabled: true\n",[47,101,99],{"__ignoreMap":49},[18,103,105],{"id":104},"access-to-the-eqmx-dashboard","Access to the EQMX Dashboard",[14,107,108,109],{},"You can log into the EMQX Dashboard at ",[47,110,111],{},"http:\u002F\u002Flocahost:18083",[14,113,114,115,118,119],{},"Username: ",[47,116,117],{},"admin","\nPassword: ",[47,120,121],{},"topSecret",{"title":49,"searchDepth":123,"depth":123,"links":124},4,[125,127,128,129,130],{"id":20,"depth":126,"text":21},2,{"id":31,"depth":126,"text":32},{"id":70,"depth":126,"text":71},{"id":83,"depth":126,"text":84},{"id":104,"depth":126,"text":105},"md",null,{},"Team Broker",true,"contribute\u002Fteam-broker.md","\u002Fdocs\u002Fcontribute\u002Fteam-broker",{"title":5,"description":16},"docs\u002Fcontribute\u002Fteam-broker","2024-12-06 20:30:32 +0000","2.33.2","YSlvbYVtKNJ2M3WpzD0_xJy1qqAJ2law1bVbsL1fgjQ",[144,152,172,184],{"name":145,"order":146,"children":147},"FlowFuse User Manuals",1,[148],{"title":149,"path":150,"group":145,"groupOrder":146,"order":126,"children":151},"FlowFuse API","\u002Fdocs\u002Fapi",[],{"name":153,"order":123,"children":154},"FlowFuse Self-Hosted",[155,159],{"title":156,"path":157,"group":153,"groupOrder":123,"order":146,"children":158},"Quick Start","\u002Fdocs\u002Fquick-start",[],{"title":160,"path":161,"group":153,"groupOrder":123,"order":162,"children":163},"Upgrading FlowFuse","\u002Fdocs\u002Fupgrade",3,[164,168],{"title":165,"path":166,"order":132,"children":167},"Installing a license","\u002Fdocs\u002Fupgrade\u002Fopen-source-to-premium",[],{"title":169,"path":170,"order":132,"children":171},"Upgrading the Node-RED version","\u002Fdocs\u002Fupgrade\u002Fnodered-version",[],{"name":173,"order":174,"children":175},"Support",5,[176,180],{"title":177,"path":178,"group":173,"groupOrder":174,"order":162,"children":179},"Premium Support","\u002Fdocs\u002Fpremium-support",[],{"title":181,"path":182,"group":173,"groupOrder":174,"order":132,"children":183},"Debugging Node-RED issues","\u002Fdocs\u002Fdebugging",[],{"name":185,"order":132,"children":186},"Other",[187,234,246,323,372,391,464,475],{"title":117,"path":188,"order":132,"children":189},"\u002Fdocs\u002Fadmin",[190,194,206,214,218,222,226,230],{"title":191,"path":192,"order":146,"children":193},"Administering FlowFuse","\u002Fdocs\u002Fadmin\u002Fintroduction",[],{"title":195,"path":196,"order":132,"children":197},"Configuring Single Sign-On (SSO)","\u002Fdocs\u002Fadmin\u002Fsso",[198,202],{"title":199,"path":200,"order":132,"children":201},"LDAP SSO","\u002Fdocs\u002Fadmin\u002Fsso\u002Fldap",[],{"title":203,"path":204,"order":132,"children":205},"SAML SSO","\u002Fdocs\u002Fadmin\u002Fsso\u002Fsaml",[],{"title":207,"path":208,"order":132,"children":209},"hardening","\u002Fdocs\u002Fadmin\u002Fhardening",[210],{"title":211,"path":212,"order":132,"children":213},"Kubernetes Hardening","\u002Fdocs\u002Fadmin\u002Fhardening\u002Fkubernetes",[],{"title":215,"path":216,"order":132,"children":217},"Monitoring","\u002Fdocs\u002Fadmin\u002Fmonitoring",[],{"title":219,"path":220,"order":132,"children":221},"Observability","\u002Fdocs\u002Fadmin\u002Fobservability",[],{"title":223,"path":224,"order":132,"children":225},"Soft Launch Enablement","\u002Fdocs\u002Fadmin\u002Ffeature-flags",[],{"title":227,"path":228,"order":132,"children":229},"Telemetry","\u002Fdocs\u002Fadmin\u002Ftelemetry",[],{"title":231,"path":232,"order":132,"children":233},"User Management","\u002Fdocs\u002Fadmin\u002Fuser-management",[],{"title":235,"path":236,"order":132,"children":237},"cloud","\u002Fdocs\u002Fcloud",[238,242],{"title":239,"path":240,"order":146,"children":241},"Introduction","\u002Fdocs\u002Fcloud\u002Fintroduction",[],{"title":243,"path":244,"order":132,"children":245},"FlowFuse Cloud Billing","\u002Fdocs\u002Fcloud\u002Fbilling",[],{"title":247,"path":248,"order":132,"children":249},"contribute","\u002Fdocs\u002Fcontribute",[250,253,257,261,265,269,273,281,317,319],{"title":239,"path":251,"order":146,"children":252},"\u002Fdocs\u002Fcontribute\u002Fintroduction",[],{"title":254,"path":255,"order":132,"children":256},"Adding Template Settings","\u002Fdocs\u002Fcontribute\u002Fadding-template-settings",[],{"title":258,"path":259,"order":132,"children":260},"API Design","\u002Fdocs\u002Fcontribute\u002Fapi-design",[],{"title":262,"path":263,"order":132,"children":264},"Creating debug stack containers","\u002Fdocs\u002Fcontribute\u002Fcreating-debug-stack-containers",[],{"title":266,"path":267,"order":132,"children":268},"Database migrations","\u002Fdocs\u002Fcontribute\u002Fdb-migrations",[],{"title":270,"path":271,"order":132,"children":272},"FlowFuse Architecture","\u002Fdocs\u002Fcontribute\u002Farchitecture",[],{"title":274,"path":275,"order":132,"children":276},"Local Install","\u002Fdocs\u002Fcontribute\u002Flocal",[277],{"title":278,"path":279,"order":132,"children":280},"Local Stacks","\u002Fdocs\u002Fcontribute\u002Flocal\u002Fstacks",[],{"title":282,"path":283,"order":132,"children":284},"State Flows","\u002Fdocs\u002Fcontribute\u002Fworkflows",[285,289,293,297,301,305,309,313],{"title":286,"path":287,"order":132,"children":288},"Device Editor","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fdevice-editor",[],{"title":290,"path":291,"order":132,"children":292},"Instance states","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fproject-states",[],{"title":294,"path":295,"order":132,"children":296},"Invite External Users","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Finvite-external-user",[],{"title":298,"path":299,"order":132,"children":300},"Project Creation","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fproject-create",[],{"title":302,"path":303,"order":132,"children":304},"Reset Password Flow","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fpassword-reset",[],{"title":306,"path":307,"order":132,"children":308},"Team creation Flow","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fteam-create",[],{"title":310,"path":311,"order":132,"children":312},"User Login Flows","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Flogin",[],{"title":314,"path":315,"order":132,"children":316},"User Sign up Flow","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fsignup",[],{"title":134,"path":137,"order":132,"children":318},[],{"title":320,"path":321,"order":132,"children":322},"Working with Feature Flags","\u002Fdocs\u002Fcontribute\u002Ffeature-flags",[],{"title":324,"path":325,"order":132,"children":326},"device-agent","\u002Fdocs\u002Fdevice-agent",[327,331,334,338,342,347],{"title":328,"path":329,"order":146,"children":330},"FlowFuse Device Agent Introduction","\u002Fdocs\u002Fdevice-agent\u002Fintroduction",[],{"title":156,"path":332,"order":126,"children":333},"\u002Fdocs\u002Fdevice-agent\u002Fquickstart",[],{"title":335,"path":336,"order":123,"children":337},"Register your Remote Instance","\u002Fdocs\u002Fdevice-agent\u002Fregister",[],{"title":339,"path":340,"order":174,"children":341},"Running the Agent","\u002Fdocs\u002Fdevice-agent\u002Frunning",[],{"title":343,"path":344,"order":345,"children":346},"Deploying your Flows","\u002Fdocs\u002Fdevice-agent\u002Fdeploy",6,[],{"title":348,"path":349,"order":132,"children":350},"install","\u002Fdocs\u002Fdevice-agent\u002Finstall",[351,356,360,364,368],{"title":352,"path":353,"group":354,"order":146,"children":355},"Overview","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Foverview","DeviceAgentInstallation",[],{"title":357,"path":358,"group":354,"order":126,"children":359},"Device Agent Installer","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Fdevice-agent-installer",[],{"title":361,"path":362,"group":354,"order":162,"children":363},"Docker Install","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Fdocker",[],{"title":365,"path":366,"group":354,"order":123,"children":367},"Kubernetes Install","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Fkubernetes",[],{"title":369,"path":370,"group":354,"order":174,"children":371},"Manual Install with NPM","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Fmanual",[],{"title":373,"path":374,"order":132,"children":375},"hardware","\u002Fdocs\u002Fhardware",[376,379,383,387],{"title":352,"path":377,"order":146,"children":378},"\u002Fdocs\u002Fhardware\u002Fintroduction",[],{"title":380,"path":381,"order":126,"children":382},"ctrlX - Node-RED","\u002Fdocs\u002Fhardware\u002Fctrlx-node-red",[],{"title":384,"path":385,"order":162,"children":386},"ctrlX - Device Agent","\u002Fdocs\u002Fhardware\u002Fctrlx-device-agent",[],{"title":388,"path":389,"order":162,"children":390},"Raspberry Pi with Raspbian","\u002Fdocs\u002Fhardware\u002Fraspbian",[],{"title":348,"path":392,"order":132,"children":393},"\u002Fdocs\u002Finstall",[394,397,400,404,424,428,432,436],{"title":352,"path":395,"order":146,"children":396},"\u002Fdocs\u002Finstall\u002Fintroduction",[],{"title":84,"path":398,"order":132,"children":399},"\u002Fdocs\u002Finstall\u002Fconfiguration",[],{"title":401,"path":402,"order":132,"children":403},"DNS Setup","\u002Fdocs\u002Finstall\u002Fdns-setup",[],{"title":405,"path":406,"order":132,"children":407},"Docker install","\u002Fdocs\u002Finstall\u002Fdocker",[408,412,416,420],{"title":409,"path":410,"order":132,"children":411},"Add Project Stacks on Docker","\u002Fdocs\u002Finstall\u002Fdocker\u002Fstacks",[],{"title":413,"path":414,"order":132,"children":415},"Docker Engine on Windows","\u002Fdocs\u002Finstall\u002Fdocker\u002Fwindows-docker-ce",[],{"title":417,"path":418,"order":132,"children":419},"Docker from AWS Market Place","\u002Fdocs\u002Finstall\u002Fdocker\u002Faws-marketplace",[],{"title":421,"path":422,"order":132,"children":423},"Docker on Digital Ocean","\u002Fdocs\u002Finstall\u002Fdocker\u002Fdigital-ocean",[],{"title":425,"path":426,"order":132,"children":427},"Email configuration","\u002Fdocs\u002Finstall\u002Femail-providers",[],{"title":429,"path":430,"order":132,"children":431},"First Run Setup","\u002Fdocs\u002Finstall\u002Ffirst-run",[],{"title":433,"path":434,"order":132,"children":435},"FlowFuse File Storage","\u002Fdocs\u002Finstall\u002Ffile-storage",[],{"title":437,"path":438,"order":132,"children":439},"Install FlowFuse on Kubernetes","\u002Fdocs\u002Finstall\u002Fkubernetes",[440,444,448,452,456,460],{"title":441,"path":442,"order":132,"children":443},"AWS EKS Installation","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Faws",[],{"title":445,"path":446,"order":132,"children":447},"AWS EKS Installation with Terraform and Helm","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Faws-terraform",[],{"title":449,"path":450,"order":132,"children":451},"Digital Ocean Kubernetes Installation","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Fdigital-ocean",[],{"title":453,"path":454,"order":132,"children":455},"Ingress Controller Migration","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Fingress-controller-migration",[],{"title":457,"path":458,"order":132,"children":459},"Kubernetes Project Stacks","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Fstacks",[],{"title":461,"path":462,"order":132,"children":463},"OpenShift Installation","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Fopenshift",[],{"title":465,"path":466,"order":132,"children":467},"migration","\u002Fdocs\u002Fmigration",[468,471],{"title":239,"path":469,"order":146,"children":470},"\u002Fdocs\u002Fmigration\u002Fintroduction",[],{"title":472,"path":473,"order":132,"children":474},"Node-RED Tools plugin","\u002Fdocs\u002Fmigration\u002Fnode-red-tools",[],{"title":476,"path":477,"order":132,"children":478},"user","\u002Fdocs\u002Fuser",[479,483,487,491,495,500,504,508,512,516,520,524,536,540,544,548,552,556,560,564,568,572,576,580,584,588,591,595],{"title":480,"path":481,"order":146,"children":482},"Getting Started","\u002Fdocs\u002Fuser\u002Fintroduction",[],{"title":484,"path":485,"order":146,"children":486},"Static asset service","\u002Fdocs\u002Fuser\u002Fstatic-asset-service",[],{"title":488,"path":489,"order":126,"children":490},"Bill of Materials","\u002Fdocs\u002Fuser\u002Fbill-of-materials",[],{"title":492,"path":493,"order":126,"children":494},"FlowFuse Concepts","\u002Fdocs\u002Fuser\u002Fconcepts",[],{"title":496,"path":497,"order":498,"children":499},"Instance States","\u002Fdocs\u002Fuser\u002Finstance-states",10,[],{"title":501,"path":502,"order":132,"children":503},"Changing the Stack","\u002Fdocs\u002Fuser\u002Fchangestack",[],{"title":505,"path":506,"order":132,"children":507},"Custom Hostnames","\u002Fdocs\u002Fuser\u002Fcustom-hostnames",[],{"title":509,"path":510,"order":132,"children":511},"Custom Node Packages","\u002Fdocs\u002Fuser\u002Fcustom-npm-packages",[],{"title":513,"path":514,"order":132,"children":515},"Dashboards","\u002Fdocs\u002Fuser\u002Fdashboards",[],{"title":517,"path":518,"order":132,"children":519},"DevOps Pipelines","\u002Fdocs\u002Fuser\u002Fdevops-pipelines",[],{"title":521,"path":522,"order":132,"children":523},"Environment Variables","\u002Fdocs\u002Fuser\u002Fenvvar",[],{"title":525,"path":526,"order":132,"children":527},"FlowFuse Expert","\u002Fdocs\u002Fuser\u002Fexpert",[528,532],{"title":529,"path":530,"order":132,"children":531},"AI in Node-RED","\u002Fdocs\u002Fuser\u002Fexpert\u002Fnode-red-embedded-ai",[],{"title":533,"path":534,"order":132,"children":535},"Chat Interface","\u002Fdocs\u002Fuser\u002Fexpert\u002Fchat",[],{"title":537,"path":538,"order":132,"children":539},"FlowFuse File Nodes","\u002Fdocs\u002Fuser\u002Ffilenodes",[],{"title":541,"path":542,"order":132,"children":543},"FlowFuse MQTT Nodes","\u002Fdocs\u002Fuser\u002Fmqtt-nodes",[],{"title":545,"path":546,"order":132,"children":547},"FlowFuse Persistent Context","\u002Fdocs\u002Fuser\u002Fpersistent-context",[],{"title":549,"path":550,"order":132,"children":551},"FlowFuse Project Nodes","\u002Fdocs\u002Fuser\u002Fprojectnodes",[],{"title":553,"path":554,"order":132,"children":555},"FlowFuse Tables","\u002Fdocs\u002Fuser\u002Fff-tables",[],{"title":557,"path":558,"order":132,"children":559},"Groups","\u002Fdocs\u002Fuser\u002Fdevice-groups",[],{"title":561,"path":562,"order":132,"children":563},"High Availability mode","\u002Fdocs\u002Fuser\u002Fhigh-availability",[],{"title":565,"path":566,"order":132,"children":567},"HTTP Access Tokens","\u002Fdocs\u002Fuser\u002Fhttp-access-tokens",[],{"title":569,"path":570,"order":132,"children":571},"Instance Settings","\u002Fdocs\u002Fuser\u002Finstance-settings",[],{"title":573,"path":574,"order":132,"children":575},"Logging","\u002Fdocs\u002Fuser\u002Flogs",[],{"title":577,"path":578,"order":132,"children":579},"Role-Based Access Control","\u002Fdocs\u002Fuser\u002Frole-based-access-control",[],{"title":581,"path":582,"order":132,"children":583},"Shared Team Library","\u002Fdocs\u002Fuser\u002Fshared-library",[],{"title":585,"path":586,"order":132,"children":587},"Snapshots","\u002Fdocs\u002Fuser\u002Fsnapshots",[],{"title":134,"path":589,"order":132,"children":590},"\u002Fdocs\u002Fuser\u002Fteambroker",[],{"title":592,"path":593,"order":132,"children":594},"Teams","\u002Fdocs\u002Fuser\u002Fteam",[],{"title":596,"path":597,"order":132,"children":598},"User Settings","\u002Fdocs\u002Fuser\u002Fuser-settings",[],1786546037938]