Skip to content

docs(security): define the migration boundary for protected Swagger UI header forwarding #830

Closed

Description

@yeongseon

Context

At main@9127b17, register_openapi_routes(..., docs_key_forwarding=None) intentionally keeps legacy ?code= forwarding for protected docs and emits a DeprecationWarning (src/azure_functions_openapi/docs_routes.py:88-99,133-145). The safer header mode already exists in swagger_ui.py, and the documented plan says that the default will change in a future pre-1.0 minor. This is a tracked migration decision, not a new exploit claim. The related feature PR #823 is merged but no open issue tracks the precise default-change migration.

Acceptance Checklist

  • Document which supported consumers rely on implicit query forwarding and how to opt into explicit header or query behavior.
  • Choose the release/compatibility boundary for switching the protected default to header without changing anonymous docs.
  • Add/keep regressions that header mode forwards a function key only to the same-origin spec download, rejects redirects, removes the page query, and never forwards credentials to Try-it-out requests.
  • Preserve explicit legacy query mode during the announced compatibility period; reflect the observable change in release notes.

Out of scope

Redesigning Swagger UI, creating another browser runner, or merging before the existing browser verification decision (#825).

Evidence

src/azure_functions_openapi/docs_routes.py:45-59,88-99,133-145; src/azure_functions_openapi/swagger_ui.py:91-120 at 9127b17; merged PR #823.

Activity

  1. added
    documentationImprovements or additions to documentation
    needs-triageNot yet reviewed for validity, scope, type, and priority.
    and removed
    needs-triageNot yet reviewed for validity, scope, type, and priority.
    on Oct 24, 2026
  2. yeongseon commented on Oct 25, 2026

    @yeongseon
    OwnerAuthor

    Verified against origin/main at 2968098: docs_routes.py still intentionally maps protected docs_key_forwarding=None to legacy query forwarding and warns at registration; explicit header/query/none modes and anonymous no-forwarding behavior already exist. README.md and docs/security.md announce only a future pre-1.0 minor, not a specific release. PR #833 now supplies the advisory Chromium lane requested by #825. This issue still needs a maintainer compatibility decision: identify supported consumers relying on implicit query forwarding and select the release boundary/compatibility period. Repository source cannot establish external consumer usage, and choosing a version or claiming consumer validation would be guessing. No default or release metadata was changed. Leaving this issue open pending that decision; the browser/redirect/Try-it-out regression tests remain in place.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions