[{"data":1,"prerenderedAt":906},["ShallowReactive",2],{"docs-\u002Fdocs\u002Fadmin\u002Fsso\u002Fldap\u002F":3,"docs-nav":449},{"id":4,"title":5,"body":6,"description":19,"extension":437,"layout":438,"meta":439,"navGroup":438,"navGroupOrder":438,"navOrder":438,"navTitle":440,"navigation":441,"originalPath":442,"path":443,"redirect":438,"seo":444,"stem":445,"updated":446,"version":447,"__hash__":448},"docs\u002Fdocs\u002Fadmin\u002Fsso\u002Fldap.md","Configuring LDAP based Single Sign-On",{"type":7,"value":8,"toc":420},"minimark",[9,13,20,28,31,36,60,64,67,72,119,130,134,137,140,148,152,159,170,175,178,185,188,192,195,202,205,237,241,259,273,276,297,303,306,323,327,330,333,352,374,377,380,384,391,402,406,409],[10,11,5],"h1",{"id":12},"configuring-ldap-based-single-sign-on",[14,15,16],"p",{},[17,18,19],"em",{},"This feature is only available on self-hosted Enterprise licensed instances of FlowFuse.",[14,21,22,23,27],{},"The SSO Configurations are managed by the platform Administrator under the\n",[24,25,26],"code",{},"Admin Settings > Settings > SSO"," section.",[14,29,30],{},"The user must already exist on the FlowFuse platform before they can sign in via SSO.",[32,33,35],"h3",{"id":34},"create-a-sso-configuration","Create a SSO Configuration",[37,38,39,51,54],"ol",{},[40,41,42,43,46],"li",{},"Click 'Create SSO Configuration' to create a new config",[44,45],"br",{},[47,48],"img",{"alt":49,"src":50},"","\u002Fdocs\u002Fadmin\u002Fsso\u002Fimages\u002Fcreate-sso-config-ldap.png",[40,52,53],{},"Give the configuration a name to help identify it, and provide the email domain\nname this configuration should apply to. Ensure the LDAP option is selected - this\ncannot be changed after the configuration is created.",[40,55,56,57,59],{},"Click 'Create configuration'",[44,58],{},"At this point, the configuration has been created and metadata generated for the\nconfiguration, but it is not active.",[32,61,63],{"id":62},"configuration-ldap","Configuration LDAP",[14,65,66],{},"The following fields are provided for configuring LDAP. You will need to refer to\nyour LDAP service provider details for the correct values to enter:",[14,68,69],{},[47,70],{"alt":49,"src":71},"\u002Fdocs\u002Fadmin\u002Fsso\u002Fimages\u002Fedit-sso-config-ldap.png",[73,74,75,81,87,93,99,105],"ul",{},[40,76,77,80],{},[24,78,79],{},"Server"," - the address of the LDAP server, including port number.",[40,82,83,86],{},[24,84,85],{},"Username"," - the bind DN to use to connect to the server. The user must have\npermission to lookup users in the directory.",[40,88,89,92],{},[24,90,91],{},"Password"," - the password to connect to the server with.",[40,94,95,98],{},[24,96,97],{},"Base DN"," - the base object under which user searches are performed.",[40,100,101,104],{},[24,102,103],{},"User Search Filter"," - the filter used to search for a user. See below for more details.",[40,106,107,110,111],{},[24,108,109],{},"Enable TLS"," - whether to use TLS for the LDAP connection\n",[73,112,113],{},[40,114,115,118],{},[24,116,117],{},"Verify Server Certificate"," - when TLS is enabled, whether to perform strict certification\nvalidation.",[14,120,121,122,125,126,129],{},"You can save the configuration at any time by clicking the ",[24,123,124],{},"Update configuration","\nbutton. The configuration will only be enabled when you tick the ",[24,127,128],{},"active"," checkbox\nand save the changes.",[32,131,133],{"id":132},"session-length-overrides","Session Length Overrides",[14,135,136],{},"Each SSO configuration can override the platform default Max Session life an Max Session Idle time.",[14,138,139],{},"These are Controlled by the \"Custom Session Expiry (hours)\" and \"Custom Session Idle Time (hours)\" respectively.",[14,141,142,146],{},[47,143],{"alt":144,"src":145},"Settings for Custom Session lifetime","\u002Fdocs\u002Fadmin\u002Fsso\u002Fimages\u002Fedit-sso-custom-session.png",[17,147,144],{},[149,150,103],"h4",{"id":151},"user-search-filter",[14,153,154,155,158],{},"The search filter is used when checking if a user exists within the directory, using\nthe standard LDAP query notation. The default search filter is ",[24,156,157],{},"(uid=${username})",".",[14,160,161,162,165,166,169],{},"The platform will replace ",[24,163,164],{},"${username}"," and ",[24,167,168],{},"${email}"," with the user's details when\nthey attempt to login.",[171,172,174],"h2",{"id":173},"creating-new-users","Creating new users",[14,176,177],{},"With FlowFuse 2.7, the SSO Configuration now includes an option to automatically\nregister users who sign in via the configuration.",[14,179,180,181,184],{},"This option is not enabled by default, but can be enabled but selecting the ",[24,182,183],{},"Allow Provisioning of New Users on first login","\noption in the SOO configuration.",[14,186,187],{},"When creating the user, the platform will use information provided by the LDAP provider\nto create the username. The user will be directed to their settings page where they\ncan modify their user details to their preferred values.",[171,189,191],{"id":190},"managing-team-membership-with-ldap-groups","Managing Team Membership with LDAP Groups",[14,193,194],{},"LDAP implementations can also be used to group users",[14,196,197,198,201],{},"To enable this option, select the ",[24,199,200],{},"Manage roles using group assertions"," in the SSO configuration.",[14,203,204],{},"The following configuration options should then be set:",[73,206,207,213],{},[40,208,209,212],{},[24,210,211],{},"Group DN"," - this is the base DN to be used to search for group membership.",[40,214,215,218,219],{},[24,216,217],{},"Team Scope"," - this determines what teams can be managed using this configuration. There are two options:\n",[73,220,221,227],{},[40,222,223,226],{},[24,224,225],{},"Apply to all teams"," - this will allow the SAML groups to manage all teams on the platform. This is\nsuitable for a self-hosted installation of FlowFuse with a single SSO configuration for all users on\nthe platform.",[40,228,229,232,233,236],{},[24,230,231],{},"Apply to selected teams"," - this will restrict what teams can be managed to the provided list. This\nis suitable for shared-tenancy platforms with multiple SSO configurations for different groups of users,\nsuch as FlowFuse Cloud.\nWhen this option is selected, an additional option is available - ",[24,234,235],{},"Allow users to be in other teams",". This\nwill allow users who sign-in via this SSO configuration to be members of teams not in the list above.\nTheir membership of those teams will not be managed by the SSO groups.\nIf that option is disabled, then the user will be removed from any teams not in the list above.",[32,238,240],{"id":239},"ldap-groups-configuration","LDAP Groups configuration",[14,242,243,244,247,248,251,252,247,255,258],{},"A user's team membership is managed by what groups they are in. When the user logs in, the LDAP provider\nwill be queried for a list of groups they are a member of. This can be either as a ",[24,245,246],{},"member"," or ",[24,249,250],{},"uniqueMember"," of a ",[24,253,254],{},"groupOfNames",[24,256,257],{},"groupOfUniqueNames"," respectively.",[14,260,261,262,265,266,269,270,158],{},"The group name is used to identify a team, using its slug property, and the user's role in the team.\nThe name must take the form ",[24,263,264],{},"ff-\u003Cteam>-\u003Crole>",". For example, the group ",[24,267,268],{},"ff-development-owner"," will\ncontainer the owners of the team ",[24,271,272],{},"development",[14,274,275],{},"The valid roles for a user in a team are:",[73,277,278,283,287,292],{},[40,279,280],{},[24,281,282],{},"owner",[40,284,285],{},[24,286,246],{},[40,288,289],{},[24,290,291],{},"viewer",[40,293,294],{},[24,295,296],{},"dashboard",[14,298,299,302],{},[17,300,301],{},"Note",": this uses the team slug property to identify the team. This has been chosen to simplify managing\nthe groups in the LDAP Provider - rather than using the team's id. However, a team's slug can be changed\nby a team owner. Doing so will break the link between the group and the team membership - so should only\nbe done with care.",[14,304,305],{},"An optional prefix and suffix can be include in the group name to support LDAP providers that have existing naming policies. The SSO configuration can be configured with the lengths of these values so they will be stripped off before the group name is validated.",[14,307,308,309,312,313,316,317,320,321,158],{},"For example, if an organisation requires all groups to begin with ",[24,310,311],{},"acme-org-",", a prefix length of ",[24,314,315],{},"9"," can be set and the group ",[24,318,319],{},"acme-org-ff-development-owner"," will be handled as ",[24,322,268],{},[32,324,326],{"id":325},"application-level-groups","Application Level Groups",[14,328,329],{},"In addition to being able to add Users to Teams using groups, Role overrides for specific Applications within those groups can also be controlled.",[14,331,332],{},"The User must have a membership of the Team the Application belongs to for an Application override to take effect. If the User is not a member of that Team, the override is ignored.",[14,334,335,336,339,340,343,344,347,348,351],{},"Groups for Application overrides use a similar pattern to Team Groups and use the same prefix and suffix length modifiers. They take the form ",[24,337,338],{},"ff-\u003Cteam>[\u003Capplication>]-\u003Crole>",", where ",[24,341,342],{},"\u003Capplication>"," can be the Application name or id and ",[24,345,346],{},"\u003Crole>"," must be one of the valid roles listed above, but can also be ",[24,349,350],{},"none"," to remove access from an Application within the Team. Any unrecognised role is ignored.",[14,353,354,355,357,358,361,362,364,365,367,368,370,371,158],{},"For example, given a Team called ",[24,356,272],{}," and an Application called ",[24,359,360],{},"test",", owner-level access to the Team would be granted by membership of a group named ",[24,363,268],{},", and an override to ",[24,366,291],{}," for the Application ",[24,369,360],{}," would be granted by ",[24,372,373],{},"ff-development[test]-viewer",[14,375,376],{},"If multiple groups grant different roles for the same Application, the highest role is applied.",[14,378,379],{},"Application overrides applied this way are managed by the SSO provider: they cannot be edited in the FlowFuse UI, and if the corresponding group is removed the override is cleared the next time the User logs in.",[171,381,383],{"id":382},"managing-admin-users","Managing Admin users",[14,385,386,387,390],{},"The SSO Configuration can be configured to manage the admin users of the platform by enabling the\n",[24,388,389],{},"Manage Admin roles using group assertions"," option. Once enabled, the name of a group can be provided\nthat will be used to identify whether a user is an admin or not.",[14,392,393,394,397,398,401],{},"*",[17,395,396],{},"Note:"," the platform will refuse to remove the admin flag from a user if they are the only admin\non the platform. It is ",[17,399,400],{},"strongly"," recommended to have an admin user on the system that is not\nmanaged via SSO to ensure continued access in case of any issues with the SSO provider.",[171,403,405],{"id":404},"providers","Providers",[14,407,408],{},"The following is the node-exhaustive list of the providers that are known to work with FlowFuse LDAP SSO.",[73,410,411],{},[40,412,413],{},[414,415,419],"a",{"href":416,"rel":417},"https:\u002F\u002Fwww.openldap.org\u002F",[418],"nofollow","OpenLDAP",{"title":49,"searchDepth":421,"depth":421,"links":422},4,[423,425,426,429,431,435,436],{"id":34,"depth":424,"text":35},3,{"id":62,"depth":424,"text":63},{"id":132,"depth":424,"text":133,"children":427},[428],{"id":151,"depth":421,"text":103},{"id":173,"depth":430,"text":174},2,{"id":190,"depth":430,"text":191,"children":432},[433,434],{"id":239,"depth":424,"text":240},{"id":325,"depth":424,"text":326},{"id":382,"depth":430,"text":383},{"id":404,"depth":430,"text":405},"md",null,{},"LDAP SSO",true,"admin\u002Fsso\u002Fldap.md","\u002Fdocs\u002Fadmin\u002Fsso\u002Fldap",{"title":5,"description":19},"docs\u002Fadmin\u002Fsso\u002Fldap","2026-07-17 13:36:25 +0000","2.33.2","K2-Y-C3dQb3N_RjmE6CV8qUdvszeFY2teT5ImJqUu7g",[450,458,477,489],{"name":451,"order":452,"children":453},"FlowFuse User Manuals",1,[454],{"title":455,"path":456,"group":451,"groupOrder":452,"order":430,"children":457},"FlowFuse API","\u002Fdocs\u002Fapi",[],{"name":459,"order":421,"children":460},"FlowFuse Self-Hosted",[461,465],{"title":462,"path":463,"group":459,"groupOrder":421,"order":452,"children":464},"Quick Start","\u002Fdocs\u002Fquick-start",[],{"title":466,"path":467,"group":459,"groupOrder":421,"order":424,"children":468},"Upgrading FlowFuse","\u002Fdocs\u002Fupgrade",[469,473],{"title":470,"path":471,"group":-1,"groupOrder":-1,"order":-4,"children":472},"Installing a license","\u002Fdocs\u002Fupgrade\u002Fopen-source-to-premium",[],{"title":474,"path":475,"group":-1,"groupOrder":-1,"order":-4,"children":476},"Upgrading the Node-RED version","\u002Fdocs\u002Fupgrade\u002Fnodered-version",[],{"name":478,"order":479,"children":480},"Support",5,[481,485],{"title":482,"path":483,"group":478,"groupOrder":479,"order":424,"children":484},"Premium Support","\u002Fdocs\u002Fpremium-support",[],{"title":486,"path":487,"group":478,"groupOrder":479,"order":-4,"children":488},"Debugging Node-RED issues","\u002Fdocs\u002Fdebugging",[],{"name":490,"order":-4,"children":491},"Other",[492,538,550,629,678,697,771,782],{"title":493,"path":494,"group":-1,"groupOrder":-1,"order":-4,"children":495},"admin","\u002Fdocs\u002Fadmin",[496,500,510,518,522,526,530,534],{"title":497,"path":498,"group":-1,"groupOrder":-1,"order":452,"children":499},"Administering FlowFuse","\u002Fdocs\u002Fadmin\u002Fintroduction",[],{"title":501,"path":502,"group":-1,"groupOrder":-1,"order":-4,"children":503},"Configuring Single Sign-On (SSO)","\u002Fdocs\u002Fadmin\u002Fsso",[504,506],{"title":440,"path":443,"group":-1,"groupOrder":-1,"order":-4,"children":505},[],{"title":507,"path":508,"group":-1,"groupOrder":-1,"order":-4,"children":509},"SAML SSO","\u002Fdocs\u002Fadmin\u002Fsso\u002Fsaml",[],{"title":511,"path":512,"group":-1,"groupOrder":-1,"order":-4,"children":513},"hardening","\u002Fdocs\u002Fadmin\u002Fhardening",[514],{"title":515,"path":516,"group":-1,"groupOrder":-1,"order":-4,"children":517},"Kubernetes Hardening","\u002Fdocs\u002Fadmin\u002Fhardening\u002Fkubernetes",[],{"title":519,"path":520,"group":-1,"groupOrder":-1,"order":-4,"children":521},"Monitoring","\u002Fdocs\u002Fadmin\u002Fmonitoring",[],{"title":523,"path":524,"group":-1,"groupOrder":-1,"order":-4,"children":525},"Observability","\u002Fdocs\u002Fadmin\u002Fobservability",[],{"title":527,"path":528,"group":-1,"groupOrder":-1,"order":-4,"children":529},"Soft Launch Enablement","\u002Fdocs\u002Fadmin\u002Ffeature-flags",[],{"title":531,"path":532,"group":-1,"groupOrder":-1,"order":-4,"children":533},"Telemetry","\u002Fdocs\u002Fadmin\u002Ftelemetry",[],{"title":535,"path":536,"group":-1,"groupOrder":-1,"order":-4,"children":537},"User Management","\u002Fdocs\u002Fadmin\u002Fuser-management",[],{"title":539,"path":540,"group":-1,"groupOrder":-1,"order":-4,"children":541},"cloud","\u002Fdocs\u002Fcloud",[542,546],{"title":543,"path":544,"group":-1,"groupOrder":-1,"order":452,"children":545},"Introduction","\u002Fdocs\u002Fcloud\u002Fintroduction",[],{"title":547,"path":548,"group":-1,"groupOrder":-1,"order":-4,"children":549},"FlowFuse Cloud Billing","\u002Fdocs\u002Fcloud\u002Fbilling",[],{"title":551,"path":552,"group":-1,"groupOrder":-1,"order":-4,"children":553},"contribute","\u002Fdocs\u002Fcontribute",[554,557,561,565,569,573,577,585,621,625],{"title":543,"path":555,"group":-1,"groupOrder":-1,"order":452,"children":556},"\u002Fdocs\u002Fcontribute\u002Fintroduction",[],{"title":558,"path":559,"group":-1,"groupOrder":-1,"order":-4,"children":560},"Adding Template Settings","\u002Fdocs\u002Fcontribute\u002Fadding-template-settings",[],{"title":562,"path":563,"group":-1,"groupOrder":-1,"order":-4,"children":564},"API Design","\u002Fdocs\u002Fcontribute\u002Fapi-design",[],{"title":566,"path":567,"group":-1,"groupOrder":-1,"order":-4,"children":568},"Creating debug stack containers","\u002Fdocs\u002Fcontribute\u002Fcreating-debug-stack-containers",[],{"title":570,"path":571,"group":-1,"groupOrder":-1,"order":-4,"children":572},"Database migrations","\u002Fdocs\u002Fcontribute\u002Fdb-migrations",[],{"title":574,"path":575,"group":-1,"groupOrder":-1,"order":-4,"children":576},"FlowFuse Architecture","\u002Fdocs\u002Fcontribute\u002Farchitecture",[],{"title":578,"path":579,"group":-1,"groupOrder":-1,"order":-4,"children":580},"Local Install","\u002Fdocs\u002Fcontribute\u002Flocal",[581],{"title":582,"path":583,"group":-1,"groupOrder":-1,"order":-4,"children":584},"Local Stacks","\u002Fdocs\u002Fcontribute\u002Flocal\u002Fstacks",[],{"title":586,"path":587,"group":-1,"groupOrder":-1,"order":-4,"children":588},"State Flows","\u002Fdocs\u002Fcontribute\u002Fworkflows",[589,593,597,601,605,609,613,617],{"title":590,"path":591,"group":-1,"groupOrder":-1,"order":-4,"children":592},"Device Editor","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fdevice-editor",[],{"title":594,"path":595,"group":-1,"groupOrder":-1,"order":-4,"children":596},"Instance states","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fproject-states",[],{"title":598,"path":599,"group":-1,"groupOrder":-1,"order":-4,"children":600},"Invite External Users","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Finvite-external-user",[],{"title":602,"path":603,"group":-1,"groupOrder":-1,"order":-4,"children":604},"Project Creation","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fproject-create",[],{"title":606,"path":607,"group":-1,"groupOrder":-1,"order":-4,"children":608},"Reset Password Flow","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fpassword-reset",[],{"title":610,"path":611,"group":-1,"groupOrder":-1,"order":-4,"children":612},"Team creation Flow","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fteam-create",[],{"title":614,"path":615,"group":-1,"groupOrder":-1,"order":-4,"children":616},"User Login Flows","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Flogin",[],{"title":618,"path":619,"group":-1,"groupOrder":-1,"order":-4,"children":620},"User Sign up Flow","\u002Fdocs\u002Fcontribute\u002Fworkflows\u002Fsignup",[],{"title":622,"path":623,"group":-1,"groupOrder":-1,"order":-4,"children":624},"Team Broker","\u002Fdocs\u002Fcontribute\u002Fteam-broker",[],{"title":626,"path":627,"group":-1,"groupOrder":-1,"order":-4,"children":628},"Working with Feature Flags","\u002Fdocs\u002Fcontribute\u002Ffeature-flags",[],{"title":630,"path":631,"group":-1,"groupOrder":-1,"order":-4,"children":632},"device-agent","\u002Fdocs\u002Fdevice-agent",[633,637,640,644,648,653],{"title":634,"path":635,"group":-1,"groupOrder":-1,"order":452,"children":636},"FlowFuse Device Agent Introduction","\u002Fdocs\u002Fdevice-agent\u002Fintroduction",[],{"title":462,"path":638,"group":-1,"groupOrder":-1,"order":430,"children":639},"\u002Fdocs\u002Fdevice-agent\u002Fquickstart",[],{"title":641,"path":642,"group":-1,"groupOrder":-1,"order":421,"children":643},"Register your Remote Instance","\u002Fdocs\u002Fdevice-agent\u002Fregister",[],{"title":645,"path":646,"group":-1,"groupOrder":-1,"order":479,"children":647},"Running the Agent","\u002Fdocs\u002Fdevice-agent\u002Frunning",[],{"title":649,"path":650,"group":-1,"groupOrder":-1,"order":651,"children":652},"Deploying your Flows","\u002Fdocs\u002Fdevice-agent\u002Fdeploy",6,[],{"title":654,"path":655,"group":-1,"groupOrder":-1,"order":-4,"children":656},"install","\u002Fdocs\u002Fdevice-agent\u002Finstall",[657,662,666,670,674],{"title":658,"path":659,"group":660,"groupOrder":-1,"order":452,"children":661},"Overview","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Foverview","DeviceAgentInstallation",[],{"title":663,"path":664,"group":660,"groupOrder":-1,"order":430,"children":665},"Device Agent Installer","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Fdevice-agent-installer",[],{"title":667,"path":668,"group":660,"groupOrder":-1,"order":424,"children":669},"Docker Install","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Fdocker",[],{"title":671,"path":672,"group":660,"groupOrder":-1,"order":421,"children":673},"Kubernetes Install","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Fkubernetes",[],{"title":675,"path":676,"group":660,"groupOrder":-1,"order":479,"children":677},"Manual Install with NPM","\u002Fdocs\u002Fdevice-agent\u002Finstall\u002Fmanual",[],{"title":679,"path":680,"group":-1,"groupOrder":-1,"order":-4,"children":681},"hardware","\u002Fdocs\u002Fhardware",[682,685,689,693],{"title":658,"path":683,"group":-1,"groupOrder":-1,"order":452,"children":684},"\u002Fdocs\u002Fhardware\u002Fintroduction",[],{"title":686,"path":687,"group":-1,"groupOrder":-1,"order":430,"children":688},"ctrlX - Node-RED","\u002Fdocs\u002Fhardware\u002Fctrlx-node-red",[],{"title":690,"path":691,"group":-1,"groupOrder":-1,"order":424,"children":692},"ctrlX - Device Agent","\u002Fdocs\u002Fhardware\u002Fctrlx-device-agent",[],{"title":694,"path":695,"group":-1,"groupOrder":-1,"order":424,"children":696},"Raspberry Pi with Raspbian","\u002Fdocs\u002Fhardware\u002Fraspbian",[],{"title":654,"path":698,"group":-1,"groupOrder":-1,"order":-4,"children":699},"\u002Fdocs\u002Finstall",[700,703,707,711,731,735,739,743],{"title":658,"path":701,"group":-1,"groupOrder":-1,"order":452,"children":702},"\u002Fdocs\u002Finstall\u002Fintroduction",[],{"title":704,"path":705,"group":-1,"groupOrder":-1,"order":-4,"children":706},"Configuring FlowFuse","\u002Fdocs\u002Finstall\u002Fconfiguration",[],{"title":708,"path":709,"group":-1,"groupOrder":-1,"order":-4,"children":710},"DNS Setup","\u002Fdocs\u002Finstall\u002Fdns-setup",[],{"title":712,"path":713,"group":-1,"groupOrder":-1,"order":-4,"children":714},"Docker install","\u002Fdocs\u002Finstall\u002Fdocker",[715,719,723,727],{"title":716,"path":717,"group":-1,"groupOrder":-1,"order":-4,"children":718},"Add Project Stacks on Docker","\u002Fdocs\u002Finstall\u002Fdocker\u002Fstacks",[],{"title":720,"path":721,"group":-1,"groupOrder":-1,"order":-4,"children":722},"Docker Engine on Windows","\u002Fdocs\u002Finstall\u002Fdocker\u002Fwindows-docker-ce",[],{"title":724,"path":725,"group":-1,"groupOrder":-1,"order":-4,"children":726},"Docker from AWS Market Place","\u002Fdocs\u002Finstall\u002Fdocker\u002Faws-marketplace",[],{"title":728,"path":729,"group":-1,"groupOrder":-1,"order":-4,"children":730},"Docker on Digital Ocean","\u002Fdocs\u002Finstall\u002Fdocker\u002Fdigital-ocean",[],{"title":732,"path":733,"group":-1,"groupOrder":-1,"order":-4,"children":734},"Email configuration","\u002Fdocs\u002Finstall\u002Femail-providers",[],{"title":736,"path":737,"group":-1,"groupOrder":-1,"order":-4,"children":738},"First Run Setup","\u002Fdocs\u002Finstall\u002Ffirst-run",[],{"title":740,"path":741,"group":-1,"groupOrder":-1,"order":-4,"children":742},"FlowFuse File Storage","\u002Fdocs\u002Finstall\u002Ffile-storage",[],{"title":744,"path":745,"group":-1,"groupOrder":-1,"order":-4,"children":746},"Install FlowFuse on Kubernetes","\u002Fdocs\u002Finstall\u002Fkubernetes",[747,751,755,759,763,767],{"title":748,"path":749,"group":-1,"groupOrder":-1,"order":-4,"children":750},"AWS EKS Installation","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Faws",[],{"title":752,"path":753,"group":-1,"groupOrder":-1,"order":-4,"children":754},"AWS EKS Installation with Terraform and Helm","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Faws-terraform",[],{"title":756,"path":757,"group":-1,"groupOrder":-1,"order":-4,"children":758},"Digital Ocean Kubernetes Installation","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Fdigital-ocean",[],{"title":760,"path":761,"group":-1,"groupOrder":-1,"order":-4,"children":762},"Ingress Controller Migration","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Fingress-controller-migration",[],{"title":764,"path":765,"group":-1,"groupOrder":-1,"order":-4,"children":766},"Kubernetes Project Stacks","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Fstacks",[],{"title":768,"path":769,"group":-1,"groupOrder":-1,"order":-4,"children":770},"OpenShift Installation","\u002Fdocs\u002Finstall\u002Fkubernetes\u002Fopenshift",[],{"title":772,"path":773,"group":-1,"groupOrder":-1,"order":-4,"children":774},"migration","\u002Fdocs\u002Fmigration",[775,778],{"title":543,"path":776,"group":-1,"groupOrder":-1,"order":452,"children":777},"\u002Fdocs\u002Fmigration\u002Fintroduction",[],{"title":779,"path":780,"group":-1,"groupOrder":-1,"order":-4,"children":781},"Node-RED Tools plugin","\u002Fdocs\u002Fmigration\u002Fnode-red-tools",[],{"title":783,"path":784,"group":-1,"groupOrder":-1,"order":-4,"children":785},"user","\u002Fdocs\u002Fuser",[786,790,794,798,802,807,811,815,819,823,827,831,843,847,851,855,859,863,867,871,875,879,883,887,891,895,898,902],{"title":787,"path":788,"group":-1,"groupOrder":-1,"order":452,"children":789},"Getting Started","\u002Fdocs\u002Fuser\u002Fintroduction",[],{"title":791,"path":792,"group":-1,"groupOrder":-1,"order":452,"children":793},"Static asset service","\u002Fdocs\u002Fuser\u002Fstatic-asset-service",[],{"title":795,"path":796,"group":-1,"groupOrder":-1,"order":430,"children":797},"Bill of Materials","\u002Fdocs\u002Fuser\u002Fbill-of-materials",[],{"title":799,"path":800,"group":-1,"groupOrder":-1,"order":430,"children":801},"FlowFuse Concepts","\u002Fdocs\u002Fuser\u002Fconcepts",[],{"title":803,"path":804,"group":-1,"groupOrder":-1,"order":805,"children":806},"Instance States","\u002Fdocs\u002Fuser\u002Finstance-states",10,[],{"title":808,"path":809,"group":-1,"groupOrder":-1,"order":-4,"children":810},"Changing the Stack","\u002Fdocs\u002Fuser\u002Fchangestack",[],{"title":812,"path":813,"group":-1,"groupOrder":-1,"order":-4,"children":814},"Custom Hostnames","\u002Fdocs\u002Fuser\u002Fcustom-hostnames",[],{"title":816,"path":817,"group":-1,"groupOrder":-1,"order":-4,"children":818},"Custom Node Packages","\u002Fdocs\u002Fuser\u002Fcustom-npm-packages",[],{"title":820,"path":821,"group":-1,"groupOrder":-1,"order":-4,"children":822},"Dashboards","\u002Fdocs\u002Fuser\u002Fdashboards",[],{"title":824,"path":825,"group":-1,"groupOrder":-1,"order":-4,"children":826},"DevOps Pipelines","\u002Fdocs\u002Fuser\u002Fdevops-pipelines",[],{"title":828,"path":829,"group":-1,"groupOrder":-1,"order":-4,"children":830},"Environment Variables","\u002Fdocs\u002Fuser\u002Fenvvar",[],{"title":832,"path":833,"group":-1,"groupOrder":-1,"order":-4,"children":834},"FlowFuse Expert","\u002Fdocs\u002Fuser\u002Fexpert",[835,839],{"title":836,"path":837,"group":-1,"groupOrder":-1,"order":-4,"children":838},"AI in Node-RED","\u002Fdocs\u002Fuser\u002Fexpert\u002Fnode-red-embedded-ai",[],{"title":840,"path":841,"group":-1,"groupOrder":-1,"order":-4,"children":842},"Chat Interface","\u002Fdocs\u002Fuser\u002Fexpert\u002Fchat",[],{"title":844,"path":845,"group":-1,"groupOrder":-1,"order":-4,"children":846},"FlowFuse File Nodes","\u002Fdocs\u002Fuser\u002Ffilenodes",[],{"title":848,"path":849,"group":-1,"groupOrder":-1,"order":-4,"children":850},"FlowFuse MQTT Nodes","\u002Fdocs\u002Fuser\u002Fmqtt-nodes",[],{"title":852,"path":853,"group":-1,"groupOrder":-1,"order":-4,"children":854},"FlowFuse Persistent Context","\u002Fdocs\u002Fuser\u002Fpersistent-context",[],{"title":856,"path":857,"group":-1,"groupOrder":-1,"order":-4,"children":858},"FlowFuse Project Nodes","\u002Fdocs\u002Fuser\u002Fprojectnodes",[],{"title":860,"path":861,"group":-1,"groupOrder":-1,"order":-4,"children":862},"FlowFuse Tables","\u002Fdocs\u002Fuser\u002Fff-tables",[],{"title":864,"path":865,"group":-1,"groupOrder":-1,"order":-4,"children":866},"Groups","\u002Fdocs\u002Fuser\u002Fdevice-groups",[],{"title":868,"path":869,"group":-1,"groupOrder":-1,"order":-4,"children":870},"High Availability mode","\u002Fdocs\u002Fuser\u002Fhigh-availability",[],{"title":872,"path":873,"group":-1,"groupOrder":-1,"order":-4,"children":874},"HTTP Access Tokens","\u002Fdocs\u002Fuser\u002Fhttp-access-tokens",[],{"title":876,"path":877,"group":-1,"groupOrder":-1,"order":-4,"children":878},"Instance Settings","\u002Fdocs\u002Fuser\u002Finstance-settings",[],{"title":880,"path":881,"group":-1,"groupOrder":-1,"order":-4,"children":882},"Logging","\u002Fdocs\u002Fuser\u002Flogs",[],{"title":884,"path":885,"group":-1,"groupOrder":-1,"order":-4,"children":886},"Role-Based Access Control","\u002Fdocs\u002Fuser\u002Frole-based-access-control",[],{"title":888,"path":889,"group":-1,"groupOrder":-1,"order":-4,"children":890},"Shared Team Library","\u002Fdocs\u002Fuser\u002Fshared-library",[],{"title":892,"path":893,"group":-1,"groupOrder":-1,"order":-4,"children":894},"Snapshots","\u002Fdocs\u002Fuser\u002Fsnapshots",[],{"title":622,"path":896,"group":-1,"groupOrder":-1,"order":-4,"children":897},"\u002Fdocs\u002Fuser\u002Fteambroker",[],{"title":899,"path":900,"group":-1,"groupOrder":-1,"order":-4,"children":901},"Teams","\u002Fdocs\u002Fuser\u002Fteam",[],{"title":903,"path":904,"group":-1,"groupOrder":-1,"order":-4,"children":905},"User Settings","\u002Fdocs\u002Fuser\u002Fuser-settings",[],1786546036498]