Repository navigation
feat(security): opt-in flag for local-network-access delegation to editor iframes - #53
Open
jannefleischer wants to merge 1 commit into
Open
jannefleischer wants to merge 1 commit into
jannefleischer wants to merge 1 commit into
Conversation
This was referenced Oct 4, 2026
Open
jannefleischer
added a commit
to jannefleischer/DocumentServer
that referenced
this pull request
Oct 4, 2026
Maps to security.allowLocalNetworkAccessIframes (Euro-Office/server#53) in the standalone and orchestrated entrypoints. Default false. AI-assisted; disclosed per the AI Contribution Policy.
jannefleischer
marked this pull request as ready for review
October 4, 2026 07:45
jannefleischer
force-pushed
the
feat/local-network-access-opt-in
branch
from
October 4, 2026 07:52
cccfe61 to
494736b
Compare
jannefleischer
added a commit
to jannefleischer/DocumentServer
that referenced
this pull request
Oct 4, 2026
Maps to security.allowLocalNetworkAccessIframes (Euro-Office/server#53) in the standalone and orchestrated entrypoints. Default false. AI-assisted; disclosed per the AI Contribution Policy. Signed-off-by: jannefleischer <janne.fleischer@ils-forschung.de>
…r iframes Adds security.allowLocalNetworkAccessIframes (default false) and sends it to the editor alongside aiPluginSettings in the license message, so web-apps and sdkjs only delegate local-network-access/loopback-network to plugin iframes when the operator explicitly opts in. AI-assisted; disclosed per the AI Contribution Policy. Signed-off-by: jannefleischer <janne.fleischer@ils-forschung.de>
jannefleischer
force-pushed
the
feat/local-network-access-opt-in
branch
from
October 7, 2026 13:46
494736b to
375aa47
Compare
jannefleischer
added a commit
to jannefleischer/DocumentServer
that referenced
this pull request
Oct 7, 2026
Maps to security.allowLocalNetworkAccessIframes (Euro-Office/server#53) in the standalone and orchestrated entrypoints. Default false. AI-assisted; disclosed per the AI Contribution Policy. Signed-off-by: jannefleischer <janne.fleischer@ils-forschung.de>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Context
Companion to Euro-Office/web-apps#276, Euro-Office/sdkjs#95, Euro-Office/DocumentServer#399 and Euro-Office/documentation#21. While testing an AI plugin whose provider requests run as a browser
fetch()from the editor to a private-network host (an internal Ollama instance), the request was silently blocked by the browser's Local Network Access checks, because thelocal-network-access/loopback-networkPermissions Policy feature was not delegated through the editor/plugin iframe chain.As discussed in Euro-Office/web-apps#276, delegating this unconditionally is an unwanted security risk in many business setups. It has to be an explicit opt-in by the operator.
Change
security.allowLocalNetworkAccessIframes(defaultfalse) inCommon/config/default.json.DocsCoServer.jsreads it viactx.getCfg(so it is tenant-overridable like other settings) and sends it asallowLocalNetworkAccessin thelicensemessage, next toaiPluginSettings.sdkjs (#95) and web-apps (#276) only add the
allowtokens to the plugin iframes when this flag istrue. Default behaviour is unchanged.Enabling
With the Docker image:
-e ALLOW_LOCAL_NETWORK_ACCESS_IFRAMES=true(Euro-Office/DocumentServer#399, standalone and orchestrated entrypoints). Documented in Euro-Office/documentation#21.Caveats
This is the single switch for the operator. The outer editor iframe (created by the integrator page via
api.jsbefore the editor talks to the server) always delegates the feature; that alone grants nothing, because the browser requires delegation through every frame in the chain and the plugin iframes only delegate when this flag is set. So connectors (Nextcloud, Seafile, …) need no changes. See web-apps#276 for details.Effective in Chromium-based browsers and Firefox ≥ 153, which gate local network access on the same
local-network/loopback-networkPermissions Policy features; Safari/WebKit is still implementing it (see web-apps#276).Draft until the maintainers agree on the approach in web-apps#276.
AI-assisted; disclosed per the AI Contribution Policy.