0.9.0 (#56)

* fix tagging

* fixed headers and license

* removed conifg files

* WARN removed

---------

Co-authored-by: Michele Sciabarra <michele@sciabarra.com>
Co-authored-by: Build OpenServerless <noreply@example.com>
diff --git a/.env.dist b/.env.dist
index 0036e31..0ef9b4a 100644
--- a/.env.dist
+++ b/.env.dist
@@ -1,3 +1,21 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
 # github user, used to derive the default local image name
 GITHUB_USER=github: put here your github user
 
diff --git a/.env.example b/.env.example
index f73cbe6..cab7938 100644
--- a/.env.example
+++ b/.env.example
@@ -1,3 +1,22 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+
 LISTEN_PORT=5000
 COUCHDB_SERVICE_PORT=5984
 COUCHDB_SERVICE_HOST=host.docker.internal
diff --git a/.github/workflows/image.yml b/.github/workflows/image.yml
index 235cba8..b13c865 100644
--- a/.github/workflows/image.yml
+++ b/.github/workflows/image.yml
@@ -49,23 +49,19 @@
       # Manual run: create a new snapshot tag on the current HEAD and push it.
       # The push of the tag does not start another run (GITHUB_TOKEN pushes do
       # not trigger workflows), so this same run goes on and builds it.
-      - name: Tag HEAD (manual run)
+      - name: License
+        uses: apache/skywalking-eyes@v0.9.0
+      - name: Assign TAG from manual run
         if: ${{ github.event_name == 'workflow_dispatch' }}
         run: |
           git config user.name "github-actions[bot]"
           git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
           task tag
           task ci
-      - name: License
-        uses: apache/skywalking-eyes@v0.9.0
-      - name: Assign TAG from pull request
-        if:  ${{ github.event_name == 'pull_request' }}
-        run: |
-          echo "IMG_TAG=$(git rev-parse --short HEAD)" >> "$GITHUB_ENV"
-      - name: Assign TAG from push
-        if:  ${{ github.event_name != 'pull_request' }}
-        run: |
           echo "IMG_TAG=$(git describe --tags --abbrev=0)" >> "$GITHUB_ENV"
+      - name: Assign TAG from push
+        if: ${{ github.event_name == 'push' }}
+        run: echo "IMG_TAG=${{ github.ref_name }}" >> "$GITHUB_ENV"
       - name: Generate .env
         run: |
           OWNER=$(echo "${{ github.repository_owner }}" | tr '[:upper:]' '[:lower:]')
diff --git a/.licenserc.yaml b/.licenserc.yaml
index a1a9eff..10e7037 100644
--- a/.licenserc.yaml
+++ b/.licenserc.yaml
@@ -21,19 +21,19 @@
     copyright-owner: Apache Software Foundation
 
   paths-ignore:
-    - '**/*.sample'
-    - 'env.example'
-    - '.git-hooks/pre-commit'
-    - '**/_*'    
+    #- '**/*.sample'
+    #- 'env.example'
+    #- '.git-hooks/pre-commit'
+    #- '**/_*'
     - 'LICENSE'
     - 'NOTICE'
     - 'DISCLAIMER'
-    -  'WARN'
-    - 'deploy/samples/*'
-    - '**/*.json'
-    - '**/*.service'
-    - '**/*.txt'
-    - 'uv.lock'
-    - '.env.example'
-    - '.env.dist'
-    - '.vscode/*.json'
+    - 'WARN'
+    #- 'deploy/samples/*'
+    #- '**/*.json'
+    #- '**/*.service'
+    #- '**/*.txt'
+    #- 'uv.lock'
+    #- '.env.example'
+    #- '.env.dist'
+    # - '.vscode/*.json'
diff --git a/.vscode/launch.json b/.vscode/launch.json
deleted file mode 100644
index d2420eb..0000000
--- a/.vscode/launch.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
-    "version": "0.2.0",
-    "configurations": [
-        {
-            "name": "Debug OpenServerless Admin API",
-            "type": "debugpy",
-            "request": "launch",
-            "module": "openserverless",
-            "preLaunchTask": "Start Port Forwards",
-            "postDebugTask": "Stop Port Forwards"
-        }
-
-    ]
-}
\ No newline at end of file
diff --git a/.vscode/start-port-forwards.sh b/.vscode/start-port-forwards.sh
deleted file mode 100755
index 6126b5d..0000000
--- a/.vscode/start-port-forwards.sh
+++ /dev/null
@@ -1,60 +0,0 @@
-#!/bin/bash
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-set -e
-
-# Log start time for debugging
-echo "$(date): Starting port forwards..." >> /tmp/pf-start.log
-
-# Clean up any existing port forwards first
-pkill -f 'kubectl port-forward -n openserverless registry-0' 2>/dev/null || true
-pkill -f 'kubectl -n openserverless port-forward couchdb-0' 2>/dev/null || true
-rm -f /tmp/pf-registry.pid /tmp/pf-couchdb.pid /tmp/pf-registry.log /tmp/pf-couchdb.log
-sleep 1
-
-# Start port forwards in background with nohup to detach from terminal
-nohup kubectl port-forward -n openserverless registry-0 5000:5000 > /tmp/pf-registry.log 2>&1 &
-REGISTRY_PID=$!
-echo $REGISTRY_PID > /tmp/pf-registry.pid
-echo "$(date): Registry PID: $REGISTRY_PID" >> /tmp/pf-start.log
-
-nohup kubectl -n openserverless port-forward couchdb-0 5984:5984 > /tmp/pf-couchdb.log 2>&1 &
-COUCHDB_PID=$!
-echo $COUCHDB_PID > /tmp/pf-couchdb.pid
-echo "$(date): CouchDB PID: $COUCHDB_PID" >> /tmp/pf-start.log
-
-# Disown the processes so they don't get killed when the script exits
-disown -a
-
-# Wait a moment for port forwards to establish
-sleep 2
-
-# Verify processes are still running
-if ps -p $REGISTRY_PID > /dev/null 2>&1; then
-    echo "$(date): Registry port-forward is running" >> /tmp/pf-start.log
-else
-    echo "$(date): WARNING: Registry port-forward died!" >> /tmp/pf-start.log
-fi
-
-if ps -p $COUCHDB_PID > /dev/null 2>&1; then
-    echo "$(date): CouchDB port-forward is running" >> /tmp/pf-start.log
-else
-    echo "$(date): WARNING: CouchDB port-forward died!" >> /tmp/pf-start.log
-fi
-
-echo "Port forwards started: registry=$REGISTRY_PID, couchdb=$COUCHDB_PID"
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
deleted file mode 100644
index 50a531d..0000000
--- a/.vscode/tasks.json
+++ /dev/null
@@ -1,48 +0,0 @@
-{
-    "version": "2.0.0",
-    "tasks": [
-        {
-            "label": "Start Port Forwards",
-            "type": "shell",
-            "command": "${workspaceFolder}/.vscode/start-port-forwards.sh",
-            "isBackground": true,
-            "problemMatcher": {
-                "pattern": {
-                    "regexp": "^Port forwards started: (.*)$",
-                    "message": 1
-                },
-                "background": {
-                    "activeOnStart": true,
-                    "beginsPattern": "^.*$",
-                    "endsPattern": "^Port forwards started:.*$"
-                }
-            },
-            "presentation": {
-                "echo": false,
-                "reveal": "never",
-                "focus": false,
-                "panel": "shared",
-                "showReuseMessage": false,
-                "clear": false
-            }
-        },
-        {
-            "label": "Stop Port Forwards",
-            "type": "shell",
-            "command": "test -f /tmp/pf-registry.pid && kill $(cat /tmp/pf-registry.pid) 2>/dev/null; test -f /tmp/pf-couchdb.pid && kill $(cat /tmp/pf-couchdb.pid) 2>/dev/null; rm -f /tmp/pf-registry.pid /tmp/pf-registry.log /tmp/pf-couchdb.pid /tmp/pf-couchdb.log; pkill -f 'kubectl port-forward -n openserverless registry-0' 2>/dev/null; pkill -f 'kubectl -n openserverless port-forward couchdb-0' 2>/dev/null; echo 'Port forwards stopped'; exit 0",
-            "presentation": {
-                "echo": true,
-                "reveal": "silent",
-                "focus": false,
-                "panel": "dedicated",
-                "showReuseMessage": false
-            },
-            "options": {
-                "shell": {
-                    "executable": "/bin/bash",
-                    "args": ["-c"]
-                }
-            }
-        }
-    ]
-}
diff --git a/.vscode/test-task.sh b/.vscode/test-task.sh
deleted file mode 100755
index 14ffff2..0000000
--- a/.vscode/test-task.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/bash
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-echo "Testing from VSCode task..."
-echo "PATH: $PATH"
-echo "SHELL: $SHELL"
-echo "PWD: $PWD"
-which kubectl
-kubectl version --client --short 2>/dev/null || kubectl version --client 2>/dev/null
diff --git a/Dockerfile b/Dockerfile
index 43daf63..cff4f28 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -43,7 +43,7 @@
 USER openserverless
 RUN uv venv && uv pip install --requirement pyproject.toml
 
-# Apache release metadata (see DISCLAIMER, LICENSE, NOTICE, WARN)
+# Apache release metadata (see DISCLAIMER, LICENSE, NOTICE)
 COPY DISCLAIMER LICENSE NOTICE  /
 
 ENV HOME=/home/openserverless
diff --git a/LICENSE b/LICENSE
index a4f0e08..b0c40bf 100644
--- a/LICENSE
+++ b/LICENSE
@@ -200,228 +200,674 @@
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
+---------------
+
+The Apache source release of Apache OpenServerless consists of
+Apache-2.0 licensed files only, and the license above applies to all of
+it. The sections below apply to third-party software bundled in the
+container image built from the Dockerfile beside this file
+(docker.io/apache/openserverless-admin-api), which is a convenience
+binary assembled at build time. See the WARN file for the ASF
+category classification of each license.
+---------------
+
+The container image contains the following components which were
+released under an Apache 2.0 license, the text of which is reproduced
+above.
+
+  * aiohttp (3.14.3)            -- Apache-2.0 AND MIT
+  * aiosignal (1.4.0)
+  * bcrypt (5.0.0)
+  * frozenlist (1.8.0)
+  * minio (7.1.13)
+  * multidict (6.7.0)
+  * propcache (0.4.1)
+  * requests (2.32.5)
+  * uv (installed via pip)      -- Apache-2.0 OR MIT
+  * yarl (1.22.0)
+  * cryptography (50.0.0)       -- Apache-2.0 OR BSD-3-Clause
+  * packaging (25.0)            -- Apache-2.0 OR BSD-2-Clause
+---------------
+
+The container image contains the following components which were
+released under an MIT license.
+
+  * aiohttp (3.14.3), in part, and its vendored copy of llhttp
+  * attrs (25.4.0)
+  * auth0-python (4.13.0)
+  * backoff (2.2.1)
+  * blinker (1.9.0)
+  * charset-normalizer (3.4.4)
+  * flasgger (0.9.7.1)
+  * flask-cors (6.0.1)
+  * jsonschema (4.25.1)
+  * jsonschema-specifications (2025.9.1)
+  * pyjwt (2.13.0)
+  * pyyaml (6.0.3)
+  * redis (7.1.0)
+  * referencing (0.37.0)
+  * rpds-py (0.30.0)
+  * six (1.17.0)
+  * urllib3 (2.7.0)
+  * uv (installed via pip)      -- Apache-2.0 OR MIT
+
+The MIT-licensed components above carry the following copyright
+notices:
+
+  attrs                      Copyright (c) 2015 Hynek Schlawack and the attrs contributors
+  auth0-python               Copyright (c) 2017 Auth0, Inc. <support@auth0.com> (http://auth0.com)
+  backoff                    Copyright (c) 2014 litl, LLC.
+  blinker                    Copyright 2010 Jason Kirtland
+  charset-normalizer         Copyright (c) 2025 TAHRI Ahmed R.
+  flasgger                   Copyright (c) 2014 Bruno Rocha
+  jsonschema                 Copyright (c) 2013 Julian Berman
+  jsonschema-specifications  Copyright (c) 2022 Julian Berman
+  llhttp (vendored)          Copyright (c) 2018 Fedor Indutny
+  pyjwt                      Copyright (c) 2015-2022 José Padilla
+  pyyaml                     Copyright (c) 2006-2016 Kirill Simonov
+                             Copyright (c) 2017-2021 Ingy döt Net
+  redis                      Copyright (c) 2022-2023, Redis, inc.
+  referencing                Copyright (c) 2022 Julian Berman
+  rpds-py                    Copyright (c) 2023 Julian Berman
+  six                        Copyright (c) 2010-2024 Benjamin Peterson
+  urllib3                    Copyright (c) 2008-2020 Andrey Petrov and contributors
+
+The MIT license text, as distributed with attrs, is:
+
+The MIT License (MIT)
+
+Copyright (c) 2015 Hynek Schlawack and the attrs contributors
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+---------------
+
+The container image contains cffi (2.0.0), which was released under
+the MIT No Attribution license.
 
 
-==============================================================================
-BEGIN BUNDLED THIRD-PARTY SOFTWARE INVENTORY (container image)
-==============================================================================
+Except when otherwise stated (look for LICENSE files in directories or
+information at the beginning of each file) all software and
+documentation is licensed as follows: 
 
-==============================================================================
-LICENSES OF BUNDLED THIRD-PARTY SOFTWARE
-Container image: apache/openserverless-admin-api
-==============================================================================
+    MIT No Attribution
 
-Apache OpenServerless itself is licensed under the Apache License,
-Version 2.0, reproduced above. The container image built from the
-Dockerfile beside this file additionally bundles the third-party
-components listed below, each under its own license.
+    Permission is hereby granted, free of charge, to any person 
+    obtaining a copy of this software and associated documentation 
+    files (the "Software"), to deal in the Software without 
+    restriction, including without limitation the rights to use, 
+    copy, modify, merge, publish, distribute, sublicense, and/or 
+    sell copies of the Software, and to permit persons to whom the 
+    Software is furnished to do so.
 
-Refer to https://www.apache.org/legal/resolved.html for the ASF
-classification of these licenses. Components that are NOT compatible
-with the Apache License 2.0 are enumerated in the WARN file.
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 
+    OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
+    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 
+    THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
+    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
+    FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
+    DEALINGS IN THE SOFTWARE.
+---------------
 
-------------------------------------------------------------------------------
-Summary by license
-------------------------------------------------------------------------------
+The container image contains the following components which were
+released under a 3-clause BSD license.
 
-Apache-2.0
-    aiosignal (1.4.0)
-    asttokens (3.0.1)
-    bcrypt (5.0.0)
-    frozenlist (1.8.0)
-    minio (7.1.13)
-    multidict (6.7.0)
-    propcache (0.4.1)
-    requests (2.32.5)
-    yarl (1.22.0)
+  * click (8.3.1)
+  * flask (3.1.2)
+  * flatdict (4.1.0)
+  * idna (3.15)
+  * itsdangerous (2.2.0)
+  * jinja2 (3.1.6)
+  * markupsafe (3.0.3)
+  * mistune (3.3.0)
+  * pycparser (2.23)
+  * python-dotenv (1.2.2)
+  * werkzeug (3.1.4)
+  * cryptography (50.0.0)       -- Apache-2.0 OR BSD-3-Clause
 
-Apache-2.0 AND MIT
-    aiohttp (3.14.3)
+The 3-clause-BSD-licensed components above carry the following
+copyright notices:
 
-Apache-2.0 OR BSD-2-Clause
-    packaging (25.0)
+  click           Copyright 2014 Pallets
+  cryptography    Copyright (c) Individual contributors.
+  flask           Copyright 2010 Pallets
+  flatdict        Copyright (c) 2013-2020 Gavin M. Roy
+  idna            Copyright (c) 2013-2026, Kim Davies and contributors.
+  itsdangerous    Copyright 2011 Pallets
+  jinja2          Copyright 2007 Pallets
+  markupsafe      Copyright 2010 Pallets
+  mistune         Copyright (c) 2014, Hsiaoming Yang
+  pycparser       Copyright (c) 2008-2022, Eli Bendersky
+  python-dotenv   Copyright (c) 2014, Saurabh Kumar (python-dotenv),
+                  2013, Ted Tieken (django-dotenv-rw),
+                  2013, Jacob Kaplan-Moss (django-dotenv)
+  werkzeug        Copyright 2007 Pallets
 
-Apache-2.0 OR BSD-3-Clause
-    cryptography (50.0.0)
+The 3-clause BSD license text, as distributed with click, is:
 
-Apache-2.0 OR MIT
-    uv (latest)
+Copyright 2014 Pallets
 
-BSD-2-Clause
-    decorator (5.2.1)
-    pygments (2.19.2)
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
 
-BSD-3-Clause
-    click (8.3.1)
-    colorama (0.4.6)
-    flask (3.1.2)
-    flatdict (4.1.0)
-    idna (3.15)
-    ipython (9.8.0)
-    ipython-pygments-lexers (1.1.1)
-    itsdangerous (2.2.0)
-    jinja2 (3.1.6)
-    markupsafe (3.0.3)
-    matplotlib-inline (0.2.1)
-    mistune (3.3.0)
-    prompt-toolkit (3.0.52)
-    pycparser (2.23)
-    python-dotenv (1.2.2)
-    traitlets (5.14.3)
-    werkzeug (3.1.4)
+1.  Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
 
-GPL-2.0-or-later AND BSD-3-Clause
-    libpam-modules, libpam-modules-bin, libpam-runtime, libpam0g ((Debian bookworm))
+2.  Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
 
-ISC
-    pexpect (4.9.0)
-    ptyprocess (0.7.0)
+3.  Neither the name of the copyright holder nor the names of its
+    contributors may be used to endorse or promote products derived from
+    this software without specific prior written permission.
 
-Info-ZIP
-    zip, unzip ((Debian bookworm))
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+---------------
 
-MIT
-    attrs (25.4.0)
-    auth0-python (4.13.0)
-    backoff (2.2.1)
-    blinker (1.9.0)
-    cffi (2.0.0)
-    charset-normalizer (3.4.4)
-    executing (2.2.1)
-    flasgger (0.9.7.1)
-    flask-cors (6.0.1)
-    jedi (0.19.2)
-    jsonschema (4.25.1)
-    jsonschema-specifications (2025.9.1)
-    parso (0.8.5)
-    pure-eval (0.2.3)
-    pyjwt (2.13.0)
-    pyyaml (6.0.3)
-    redis (7.1.0)
-    referencing (0.37.0)
-    rpds-py (0.30.0)
-    six (1.17.0)
-    stack-data (0.6.3)
-    urllib3 (2.7.0)
-    wcwidth (0.2.14)
+The container image contains packaging (25.0), which was released
+under an Apache 2.0 license (reproduced above) and a 2-clause BSD
+license, at the recipient's option.
 
-MPL-2.0
-    certifi (2025.11.12)
+Copyright (c) Donald Stufft and individual contributors.
+All rights reserved.
 
-PSF-2.0
-    aiohappyeyeballs (2.6.1)
-    typing-extensions (4.15.0)
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
 
-ZPL-2.1
-    waitress (3.0.2)
+    1. Redistributions of source code must retain the above copyright notice,
+       this list of conditions and the following disclaimer.
 
-curl (MIT-like)
-    curl ((Debian bookworm))
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
 
-mixed; see WARN
-    (see the FROM line of the Dockerfile) (-)
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+---------------
 
-------------------------------------------------------------------------------
-Detail by component
-------------------------------------------------------------------------------
+The container image contains the CPython runtime and standard
+library, obtained from the python:3.12-slim-bookworm base image, and the
+components aiohappyeyeballs (2.6.1) and typing-extensions (4.15.0),
+which were released under the Python Software Foundation License
+Version 2.
 
-Python runtime dependencies (pyproject.toml / uv.lock)
-------------------------------------------------------
-  aiohappyeyeballs (2.6.1) -- PSF-2.0
-  aiohttp (3.14.3) -- Apache-2.0 AND MIT
-  aiosignal (1.4.0) -- Apache-2.0
-  asttokens (3.0.1) -- Apache-2.0
-  attrs (25.4.0) -- MIT
-  auth0-python (4.13.0) -- MIT
-  backoff (2.2.1) -- MIT
-  bcrypt (5.0.0) -- Apache-2.0
-  blinker (1.9.0) -- MIT
-  certifi (2025.11.12) -- MPL-2.0
-      Category B: used unmodified, as a separate file.
-  cffi (2.0.0) -- MIT
-  charset-normalizer (3.4.4) -- MIT
-  click (8.3.1) -- BSD-3-Clause
-  colorama (0.4.6) -- BSD-3-Clause
-  cryptography (50.0.0) -- Apache-2.0 OR BSD-3-Clause
-  decorator (5.2.1) -- BSD-2-Clause
-  executing (2.2.1) -- MIT
-  flasgger (0.9.7.1) -- MIT
-  flask (3.1.2) -- BSD-3-Clause
-  flask-cors (6.0.1) -- MIT
-  flatdict (4.1.0) -- BSD-3-Clause
-  frozenlist (1.8.0) -- Apache-2.0
-  idna (3.15) -- BSD-3-Clause
-  ipython (9.8.0) -- BSD-3-Clause
-      Dev-only dependency.
-  ipython-pygments-lexers (1.1.1) -- BSD-3-Clause
-      Dev-only dependency.
-  itsdangerous (2.2.0) -- BSD-3-Clause
-  jedi (0.19.2) -- MIT
-  jinja2 (3.1.6) -- BSD-3-Clause
-  jsonschema (4.25.1) -- MIT
-  jsonschema-specifications (2025.9.1) -- MIT
-  markupsafe (3.0.3) -- BSD-3-Clause
-  matplotlib-inline (0.2.1) -- BSD-3-Clause
-  minio (7.1.13) -- Apache-2.0
-  mistune (3.3.0) -- BSD-3-Clause
-  multidict (6.7.0) -- Apache-2.0
-  packaging (25.0) -- Apache-2.0 OR BSD-2-Clause
-  parso (0.8.5) -- MIT
-  pexpect (4.9.0) -- ISC
-  prompt-toolkit (3.0.52) -- BSD-3-Clause
-  propcache (0.4.1) -- Apache-2.0
-  ptyprocess (0.7.0) -- ISC
-  pure-eval (0.2.3) -- MIT
-  pycparser (2.23) -- BSD-3-Clause
-  pygments (2.19.2) -- BSD-2-Clause
-  pyjwt (2.13.0) -- MIT
-  python-dotenv (1.2.2) -- BSD-3-Clause
-  pyyaml (6.0.3) -- MIT
-  redis (7.1.0) -- MIT
-  referencing (0.37.0) -- MIT
-  requests (2.32.5) -- Apache-2.0
-  rpds-py (0.30.0) -- MIT
-  six (1.17.0) -- MIT
-  stack-data (0.6.3) -- MIT
-  traitlets (5.14.3) -- BSD-3-Clause
-  typing-extensions (4.15.0) -- PSF-2.0
-  urllib3 (2.7.0) -- MIT
-  waitress (3.0.2) -- ZPL-2.1
-      Category B: used unmodified, as a separate file.
-  wcwidth (0.2.14) -- MIT
-  werkzeug (3.1.4) -- BSD-3-Clause
-  yarl (1.22.0) -- Apache-2.0
+A. HISTORY OF THE SOFTWARE
+==========================
 
-Operating-system packages installed by the Dockerfile
------------------------------------------------------
-  uv (latest) -- Apache-2.0 OR MIT
-      Python dependency manager, installed via pip.
-  curl ((Debian bookworm)) -- curl (MIT-like)
-  zip, unzip ((Debian bookworm)) -- Info-ZIP
+Python was created in the early 1990s by Guido van Rossum at Stichting
+Mathematisch Centrum (CWI, see https://www.cwi.nl) in the Netherlands
+as a successor of a language called ABC.  Guido remains Python's
+principal author, although it includes many contributions from others.
 
-Base operating system image
----------------------------
-  (see the FROM line of the Dockerfile) (-) -- mixed; see WARN
-      Operating-system components are supplied by the upstream base image and are not
-      redistributed by the ASF in source form.
-  libpam-modules, libpam-modules-bin, libpam-runtime, libpam0g ((Debian bookworm)) -- GPL-2.0-or-later AND BSD-3-Clause
-      Shipped by the upstream base image; not installed by this Dockerfile. *** SEE WARN ***
+In 1995, Guido continued his work on Python at the Corporation for
+National Research Initiatives (CNRI, see https://www.cnri.reston.va.us)
+in Reston, Virginia where he released several versions of the
+software.
 
-------------------------------------------------------------------------------
-Full license texts
-------------------------------------------------------------------------------
+In May 2000, Guido and the Python core development team moved to
+BeOpen.com to form the BeOpen PythonLabs team.  In October of the same
+year, the PythonLabs team moved to Digital Creations, which became
+Zope Corporation.  In 2001, the Python Software Foundation (PSF, see
+https://www.python.org/psf/) was formed, a non-profit organization
+created specifically to own Python-related Intellectual Property.
+Zope Corporation was a sponsoring member of the PSF.
 
-The complete text of the Apache License 2.0 is reproduced at the top of
-this file. The complete texts of the other licenses referenced above are
-distributed with each component inside the container image, in the
-package metadata directories of the respective package manager:
+All Python releases are Open Source (see https://opensource.org for
+the Open Source Definition).  Historically, most, but not all, Python
+releases have also been GPL-compatible; the table below summarizes
+the various releases.
 
-  * Python packages: <site-packages>/<dist>.dist-info/ (LICENSE, METADATA)
-  * Node.js packages: /node_modules/<pkg>/LICENSE
-  * PHP packages:     /phpAction/composer/vendor/<pkg>/LICENSE
-  * Go modules:       vendored module sources / pkg.go.dev
-  * Debian packages:  /usr/share/doc/<pkg>/copyright
+    Release         Derived     Year        Owner       GPL-
+                    from                                compatible? (1)
 
-==============================================================================
-END BUNDLED THIRD-PARTY SOFTWARE INVENTORY
-==============================================================================
+    0.9.0 thru 1.2              1991-1995   CWI         yes
+    1.3 thru 1.5.2  1.2         1995-1999   CNRI        yes
+    1.6             1.5.2       2000        CNRI        no
+    2.0             1.6         2000        BeOpen.com  no
+    1.6.1           1.6         2001        CNRI        yes (2)
+    2.1             2.0+1.6.1   2001        PSF         no
+    2.0.1           2.0+1.6.1   2001        PSF         yes
+    2.1.1           2.1+2.0.1   2001        PSF         yes
+    2.1.2           2.1.1       2002        PSF         yes
+    2.1.3           2.1.2       2002        PSF         yes
+    2.2 and above   2.1.1       2001-now    PSF         yes
+
+Footnotes:
+
+(1) GPL-compatible doesn't mean that we're distributing Python under
+    the GPL.  All Python licenses, unlike the GPL, let you distribute
+    a modified version without making your changes open source.  The
+    GPL-compatible licenses make it possible to combine Python with
+    other software that is released under the GPL; the others don't.
+
+(2) According to Richard Stallman, 1.6.1 is not GPL-compatible,
+    because its license has a choice of law clause.  According to
+    CNRI, however, Stallman's lawyer has told CNRI's lawyer that 1.6.1
+    is "not incompatible" with the GPL.
+
+Thanks to the many outside volunteers who have worked under Guido's
+direction to make these releases possible.
+
+
+B. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING PYTHON
+===============================================================
+
+Python software and documentation are licensed under the
+Python Software Foundation License Version 2.
+
+Starting with Python 3.8.6, examples, recipes, and other code in
+the documentation are dual licensed under the PSF License Version 2
+and the Zero-Clause BSD license.
+
+Some software incorporated into Python is under different licenses.
+The licenses are listed with code falling under that license.
+
+
+PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
+--------------------------------------------
+
+1. This LICENSE AGREEMENT is between the Python Software Foundation
+("PSF"), and the Individual or Organization ("Licensee") accessing and
+otherwise using this software ("Python") in source or binary form and
+its associated documentation.
+
+2. Subject to the terms and conditions of this License Agreement, PSF hereby
+grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce,
+analyze, test, perform and/or display publicly, prepare derivative works,
+distribute, and otherwise use Python alone or in any derivative version,
+provided, however, that PSF's License Agreement and PSF's notice of copyright,
+i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
+2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Python Software Foundation;
+All Rights Reserved" are retained in Python alone or in any derivative version
+prepared by Licensee.
+
+3. In the event Licensee prepares a derivative work that is based on
+or incorporates Python or any part thereof, and wants to make
+the derivative work available to others as provided herein, then
+Licensee hereby agrees to include in any such work a brief summary of
+the changes made to Python.
+
+4. PSF is making Python available to Licensee on an "AS IS"
+basis.  PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
+IMPLIED.  BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND
+DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
+FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT
+INFRINGE ANY THIRD PARTY RIGHTS.
+
+5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
+FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
+A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON,
+OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
+
+6. This License Agreement will automatically terminate upon a material
+breach of its terms and conditions.
+
+7. Nothing in this License Agreement shall be deemed to create any
+relationship of agency, partnership, or joint venture between PSF and
+Licensee.  This License Agreement does not grant permission to use PSF
+trademarks or trade name in a trademark sense to endorse or promote
+products or services of Licensee, or any third party.
+
+8. By copying, installing or otherwise using Python, Licensee
+agrees to be bound by the terms and conditions of this License
+Agreement.
+
+
+BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0
+-------------------------------------------
+
+BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1
+
+1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an
+office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the
+Individual or Organization ("Licensee") accessing and otherwise using
+this software in source or binary form and its associated
+documentation ("the Software").
+
+2. Subject to the terms and conditions of this BeOpen Python License
+Agreement, BeOpen hereby grants Licensee a non-exclusive,
+royalty-free, world-wide license to reproduce, analyze, test, perform
+and/or display publicly, prepare derivative works, distribute, and
+otherwise use the Software alone or in any derivative version,
+provided, however, that the BeOpen Python License is retained in the
+Software, alone or in any derivative version prepared by Licensee.
+
+3. BeOpen is making the Software available to Licensee on an "AS IS"
+basis.  BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
+IMPLIED.  BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND
+DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
+FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT
+INFRINGE ANY THIRD PARTY RIGHTS.
+
+4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE
+SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS
+AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY
+DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
+
+5. This License Agreement will automatically terminate upon a material
+breach of its terms and conditions.
+
+6. This License Agreement shall be governed by and interpreted in all
+respects by the law of the State of California, excluding conflict of
+law provisions.  Nothing in this License Agreement shall be deemed to
+create any relationship of agency, partnership, or joint venture
+between BeOpen and Licensee.  This License Agreement does not grant
+permission to use BeOpen trademarks or trade names in a trademark
+sense to endorse or promote products or services of Licensee, or any
+third party.  As an exception, the "BeOpen Python" logos available at
+http://www.pythonlabs.com/logos.html may be used according to the
+permissions granted on that web page.
+
+7. By copying, installing or otherwise using the software, Licensee
+agrees to be bound by the terms and conditions of this License
+Agreement.
+
+
+CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1
+---------------------------------------
+
+1. This LICENSE AGREEMENT is between the Corporation for National
+Research Initiatives, having an office at 1895 Preston White Drive,
+Reston, VA 20191 ("CNRI"), and the Individual or Organization
+("Licensee") accessing and otherwise using Python 1.6.1 software in
+source or binary form and its associated documentation.
+
+2. Subject to the terms and conditions of this License Agreement, CNRI
+hereby grants Licensee a nonexclusive, royalty-free, world-wide
+license to reproduce, analyze, test, perform and/or display publicly,
+prepare derivative works, distribute, and otherwise use Python 1.6.1
+alone or in any derivative version, provided, however, that CNRI's
+License Agreement and CNRI's notice of copyright, i.e., "Copyright (c)
+1995-2001 Corporation for National Research Initiatives; All Rights
+Reserved" are retained in Python 1.6.1 alone or in any derivative
+version prepared by Licensee.  Alternately, in lieu of CNRI's License
+Agreement, Licensee may substitute the following text (omitting the
+quotes): "Python 1.6.1 is made available subject to the terms and
+conditions in CNRI's License Agreement.  This Agreement together with
+Python 1.6.1 may be located on the internet using the following
+unique, persistent identifier (known as a handle): 1895.22/1013.  This
+Agreement may also be obtained from a proxy server on the internet
+using the following URL: http://hdl.handle.net/1895.22/1013".
+
+3. In the event Licensee prepares a derivative work that is based on
+or incorporates Python 1.6.1 or any part thereof, and wants to make
+the derivative work available to others as provided herein, then
+Licensee hereby agrees to include in any such work a brief summary of
+the changes made to Python 1.6.1.
+
+4. CNRI is making Python 1.6.1 available to Licensee on an "AS IS"
+basis.  CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
+IMPLIED.  BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND
+DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
+FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT
+INFRINGE ANY THIRD PARTY RIGHTS.
+
+5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
+1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
+A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1,
+OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
+
+6. This License Agreement will automatically terminate upon a material
+breach of its terms and conditions.
+
+7. This License Agreement shall be governed by the federal
+intellectual property law of the United States, including without
+limitation the federal copyright law, and, to the extent such
+U.S. federal law does not apply, by the law of the Commonwealth of
+Virginia, excluding Virginia's conflict of law provisions.
+Notwithstanding the foregoing, with regard to derivative works based
+on Python 1.6.1 that incorporate non-separable material that was
+previously distributed under the GNU General Public License (GPL), the
+law of the Commonwealth of Virginia shall govern this License
+Agreement only as to issues arising under or with respect to
+Paragraphs 4, 5, and 7 of this License Agreement.  Nothing in this
+License Agreement shall be deemed to create any relationship of
+agency, partnership, or joint venture between CNRI and Licensee.  This
+License Agreement does not grant permission to use CNRI trademarks or
+trade name in a trademark sense to endorse or promote products or
+services of Licensee, or any third party.
+
+8. By clicking on the "ACCEPT" button where indicated, or by copying,
+installing or otherwise using Python 1.6.1, Licensee agrees to be
+bound by the terms and conditions of this License Agreement.
+
+        ACCEPT
+
+
+CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2
+--------------------------------------------------
+
+Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam,
+The Netherlands.  All rights reserved.
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation, and that the name of Stichting Mathematisch
+Centrum or CWI not be used in advertising or publicity pertaining to
+distribution of the software without specific, written prior
+permission.
+
+STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
+THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
+FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+ZERO-CLAUSE BSD LICENSE FOR CODE IN THE PYTHON DOCUMENTATION
+----------------------------------------------------------------------
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+---------------
+
+The container image contains certifi (2025.11.12), which
+distributes a modified version of the Mozilla CA root certificate
+bundle under the Mozilla Public License, v. 2.0. The full text of the
+Mozilla Public License 2.0 is available at http://mozilla.org/MPL/2.0/.
+
+This package contains a modified version of ca-bundle.crt:
+
+ca-bundle.crt -- Bundle of CA Root Certificates
+
+This is a bundle of X.509 certificates of public Certificate Authorities
+(CA). These were automatically extracted from Mozilla's root certificates
+file (certdata.txt).  This file can be found in the mozilla source tree:
+https://hg.mozilla.org/mozilla-central/file/tip/security/nss/lib/ckfw/builtins/certdata.txt
+It contains the certificates in PEM format and therefore
+can be directly used with curl / libcurl / php_curl, or with
+an Apache+mod_ssl webserver for SSL client authentication.
+Just configure this file as the SSLCACertificateFile.#
+
+***** BEGIN LICENSE BLOCK *****
+This Source Code Form is subject to the terms of the Mozilla Public License,
+v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain
+one at http://mozilla.org/MPL/2.0/.
+
+***** END LICENSE BLOCK *****
+@(#) $RCSfile: certdata.txt,v $ $Revision: 1.80 $ $Date: 2011/11/03 15:11:58 $
+---------------
+
+The container image contains waitress (3.0.2), which was released
+under the Zope Public License 2.1.
+
+Zope Public License (ZPL) Version 2.1
+
+A copyright notice accompanies this license document that identifies the
+copyright holders.
+
+This license has been certified as open source. It has also been designated as
+GPL compatible by the Free Software Foundation (FSF).
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions in source code must retain the accompanying copyright
+notice, this list of conditions, and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the accompanying copyright
+notice, this list of conditions, and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+
+3. Names of the copyright holders must not be used to endorse or promote
+products derived from this software without prior written permission from the
+copyright holders.
+
+4. The right to distribute this software or to use it for any purpose does not
+give you the right to use Servicemarks (sm) or Trademarks (tm) of the
+copyright
+holders. Use of them is covered by separate agreement with the copyright
+holders.
+
+5. If any files are modified, you must cause the modified files to carry
+prominent notices stating that you changed the files and the date of any
+change.
+
+Disclaimer
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY EXPRESSED
+OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+---------------
+
+The container image contains curl, obtained from the Debian
+bookworm userland of the base image, which was released under an
+MIT-like license (the curl license).
+
+COPYRIGHT AND PERMISSION NOTICE
+
+Copyright (c) 1996 - 2026, Daniel Stenberg, <daniel@haxx.se>, and many
+contributors, see the THANKS file.
+
+All rights reserved.
+
+Permission to use, copy, modify, and distribute this software for any purpose
+with or without fee is hereby granted, provided that the above copyright
+notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN
+NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
+OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of a copyright holder shall not
+be used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization of the copyright holder.
+---------------
+
+The container image contains zip and unzip, obtained from the
+Debian bookworm userland of the base image, which were released under
+the Info-ZIP license.
+
+This software is provided "as is," without warranty of any kind, express
+or implied.  In no event shall Info-ZIP or its contributors be held liable
+for any direct, indirect, incidental, special or consequential damages
+arising out of the use of or inability to use this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the above disclaimer and the following restrictions:
+
+    1. Redistributions of source code (in whole or in part) must retain
+       the above copyright notice, definition, disclaimer, and this list
+       of conditions.
+
+    2. Redistributions in binary form (compiled executables and libraries)
+       must reproduce the above copyright notice, definition, disclaimer,
+       and this list of conditions in documentation and/or other materials
+       provided with the distribution.
+
+    3. Altered versions--including, but not limited to, ports to new operating
+       systems, existing ports with new graphical interfaces, versions with
+       modified or added functionality, and dynamic, shared, or static library
+       versions not from Info-ZIP--must be plainly marked as such and must not
+       be misrepresented as being the original source or, if binaries,
+       compiled from the original source.  Such altered versions also must not
+       be misrepresented as being Info-ZIP releases--including, but not
+       limited to, labeling of the altered versions with the names "Info-ZIP"
+       (or any variation thereof, including, but not limited to, different
+       capitalizations), "Pocket UnZip," "WiZ" or "MacZip" without the
+       explicit permission of Info-ZIP.  Such altered versions are further
+       prohibited from misrepresentative use of the Zip-Bugs or Info-ZIP
+       e-mail addresses or the Info-ZIP URL(s), such as to imply Info-ZIP
+       will provide support for the altered versions.
+
+    4. Info-ZIP retains the right to use the names "Info-ZIP," "Zip," "UnZip,"
+       "UnZipSFX," "WiZ," "Pocket UnZip," "Pocket Zip," and "MacZip" for its
+       own source and binary releases.
+---------------
+
+The container image inherits from the python:3.12-slim-bookworm
+base image a Debian userland containing components under reciprocal
+licenses, including GPL-2.0-or-later (libpam-modules,
+libpam-modules-bin, libpam-runtime, libpam0g). These components are
+supplied by the upstream base image and are not redistributed by the
+ASF in source form. Their license texts are distributed inside the
+container image at /usr/share/doc/<package>/copyright. See the WARN
+file beside this LICENSE.
+---------------
+
+The complete license text of every bundled Python component is
+distributed inside the container image, in the package metadata
+directory of each distribution:
+
+  <site-packages>/<distribution>-<version>.dist-info/
+
+as LICENSE, LICENSE.txt, COPYING or licenses/, together with METADATA.
+The license texts of Debian components are distributed at
+/usr/share/doc/<package>/copyright.
diff --git a/NOTICE b/NOTICE
index 13ed55a..9d75f1b 100644
--- a/NOTICE
+++ b/NOTICE
@@ -1,182 +1,151 @@
 Apache OpenServerless (Incubating)
-Copyright 2024 The Apache Software Foundation
+Copyright 2024-2026 The Apache Software Foundation
 
 This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
+The Apache Software Foundation (https://www.apache.org/).
 
+The following notices apply to third-party software bundled in the
+container image built from the Dockerfile beside this file
+(docker.io/apache/openserverless-admin-api). They do not apply to the
+Apache source release, which contains only Apache-2.0 licensed files.
 
-==============================================================================
-BEGIN BUNDLED THIRD-PARTY SOFTWARE INVENTORY (container image)
-==============================================================================
+---------------
 
-------------------------------------------------------------------------------
-Container image: apache/openserverless-admin-api
-------------------------------------------------------------------------------
+The container image contains the CPython runtime and standard library,
+obtained from the python:3.12-slim-bookworm base image, which was released
+under the Python Software Foundation License Version 2.
 
-This image bundles third-party software. The components below are
-redistributed under the licenses recorded in the LICENSE file that
-accompanies this NOTICE. Components flagged '*** SEE WARN ***' are
-listed in the WARN file as incompatible with the Apache License 2.0.
+Copyright (c) 2001-2026 Python Software Foundation. All Rights Reserved.
+Copyright (c) 2000 BeOpen.com. All Rights Reserved.
+Copyright (c) 1995-2001 Corporation for National Research Initiatives.
+All Rights Reserved.
+Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam.
+All Rights Reserved.
 
-Python runtime dependencies (pyproject.toml / uv.lock)
-------------------------------------------------------
-  * aiohappyeyeballs (2.6.1)
-      License: PSF-2.0
-  * aiohttp (3.14.3)
-      License: Apache-2.0 AND MIT
-  * aiosignal (1.4.0)
-      License: Apache-2.0
-  * asttokens (3.0.1)
-      License: Apache-2.0
-  * attrs (25.4.0)
-      License: MIT
-  * auth0-python (4.13.0)
-      License: MIT
-  * backoff (2.2.1)
-      License: MIT
-  * bcrypt (5.0.0)
-      License: Apache-2.0
-  * blinker (1.9.0)
-      License: MIT
-  * certifi (2025.11.12)
-      License: MPL-2.0
-      Category B: used unmodified, as a separate file.
-  * cffi (2.0.0)
-      License: MIT
-  * charset-normalizer (3.4.4)
-      License: MIT
-  * click (8.3.1)
-      License: BSD-3-Clause
-  * colorama (0.4.6)
-      License: BSD-3-Clause
-  * cryptography (50.0.0)
-      License: Apache-2.0 OR BSD-3-Clause
-  * decorator (5.2.1)
-      License: BSD-2-Clause
-  * executing (2.2.1)
-      License: MIT
-  * flasgger (0.9.7.1)
-      License: MIT
-  * flask (3.1.2)
-      License: BSD-3-Clause
-  * flask-cors (6.0.1)
-      License: MIT
-  * flatdict (4.1.0)
-      License: BSD-3-Clause
-  * frozenlist (1.8.0)
-      License: Apache-2.0
-  * idna (3.15)
-      License: BSD-3-Clause
-  * ipython (9.8.0)
-      License: BSD-3-Clause
-      Dev-only dependency.
-  * ipython-pygments-lexers (1.1.1)
-      License: BSD-3-Clause
-      Dev-only dependency.
-  * itsdangerous (2.2.0)
-      License: BSD-3-Clause
-  * jedi (0.19.2)
-      License: MIT
-  * jinja2 (3.1.6)
-      License: BSD-3-Clause
-  * jsonschema (4.25.1)
-      License: MIT
-  * jsonschema-specifications (2025.9.1)
-      License: MIT
-  * markupsafe (3.0.3)
-      License: BSD-3-Clause
-  * matplotlib-inline (0.2.1)
-      License: BSD-3-Clause
-  * minio (7.1.13)
-      License: Apache-2.0
-  * mistune (3.3.0)
-      License: BSD-3-Clause
-  * multidict (6.7.0)
-      License: Apache-2.0
-  * packaging (25.0)
-      License: Apache-2.0 OR BSD-2-Clause
-  * parso (0.8.5)
-      License: MIT
-  * pexpect (4.9.0)
-      License: ISC
-  * prompt-toolkit (3.0.52)
-      License: BSD-3-Clause
-  * propcache (0.4.1)
-      License: Apache-2.0
-  * ptyprocess (0.7.0)
-      License: ISC
-  * pure-eval (0.2.3)
-      License: MIT
-  * pycparser (2.23)
-      License: BSD-3-Clause
-  * pygments (2.19.2)
-      License: BSD-2-Clause
-  * pyjwt (2.13.0)
-      License: MIT
-  * python-dotenv (1.2.2)
-      License: BSD-3-Clause
-  * pyyaml (6.0.3)
-      License: MIT
-  * redis (7.1.0)
-      License: MIT
-  * referencing (0.37.0)
-      License: MIT
-  * requests (2.32.5)
-      License: Apache-2.0
-  * rpds-py (0.30.0)
-      License: MIT
-  * six (1.17.0)
-      License: MIT
-  * stack-data (0.6.3)
-      License: MIT
-  * traitlets (5.14.3)
-      License: BSD-3-Clause
-  * typing-extensions (4.15.0)
-      License: PSF-2.0
-  * urllib3 (2.7.0)
-      License: MIT
-  * waitress (3.0.2)
-      License: ZPL-2.1
-      Category B: used unmodified, as a separate file.
-  * wcwidth (0.2.14)
-      License: MIT
-  * werkzeug (3.1.4)
-      License: BSD-3-Clause
-  * yarl (1.22.0)
-      License: Apache-2.0
+---------------
 
-Operating-system packages installed by the Dockerfile
------------------------------------------------------
-  * uv (latest)
-      License: Apache-2.0 OR MIT
-      Python dependency manager, installed via pip.
-  * curl ((Debian bookworm))
-      License: curl (MIT-like)
-  * zip, unzip ((Debian bookworm))
-      License: Info-ZIP
+The container image contains uv, installed by the Dockerfile via pip,
+which was released under the Apache 2.0 license.
 
-Base operating system image
----------------------------
-  * (see the FROM line of the Dockerfile) (-)
-      License: mixed; see WARN
-      Operating-system components are supplied by the upstream base image and are not
-      redistributed by the ASF in source form.
-  * libpam-modules, libpam-modules-bin, libpam-runtime, libpam0g ((Debian bookworm))
-      License: GPL-2.0-or-later AND BSD-3-Clause
-      Shipped by the upstream base image; not installed by this Dockerfile.
-      *** SEE WARN ***
+uv
+Copyright (c) Astral Software Inc.
 
-------------------------------------------------------------------------------
-Attribution required by bundled components
-------------------------------------------------------------------------------
+---------------
 
-This product includes software developed by the Apache Software
-Foundation (http://www.apache.org/), including Apache OpenWhisk
-components and Apache-2.0 licensed libraries listed above.
+The container image contains aiohttp, which was released under an
+Apache 2.0 license.
 
-This product includes software developed by third parties under the
-MIT, BSD, ISC, PSF, MPL-2.0 and other licenses, as recorded in LICENSE.
+aiohttp
+Copyright aio-libs contributors
 
-==============================================================================
-END BUNDLED THIRD-PARTY SOFTWARE INVENTORY
-==============================================================================
+aiohttp bundles llhttp, which was released under an MIT license.
+
+Copyright (c) 2018 Fedor Indutny
+
+---------------
+
+The container image contains aiosignal and frozenlist, which were
+released under an Apache 2.0 license.
+
+Copyright 2013-2019 Nikolay Kim and Andrew Svetlov
+
+---------------
+
+The container image contains multidict, which was released under an
+Apache 2.0 license.
+
+Copyright 2016 Andrew Svetlov and aio-libs contributors
+
+---------------
+
+The container image contains propcache and yarl, which were released
+under an Apache 2.0 license.
+
+Copyright 2016-2021, Andrew Svetlov and aio-libs team
+
+---------------
+
+---------------
+
+The container image contains bcrypt, which was released under an
+Apache 2.0 license.
+
+Copyright (c) The Python Cryptographic Authority developers
+
+---------------
+
+The container image contains minio, which was released under an
+Apache 2.0 license.
+
+MinIO Python SDK for Amazon S3 Compatible Cloud Storage
+(C) 2015-2021 MinIO, Inc.
+
+---------------
+
+The container image contains requests, which was released under an
+Apache 2.0 license.
+
+Requests
+Copyright Kenneth Reitz
+
+---------------
+
+The container image contains cryptography, which was released under
+an Apache 2.0 license and a 3-clause BSD license, at the recipient's
+option.
+
+Copyright (c) Individual contributors.
+All rights reserved.
+
+---------------
+
+The container image contains packaging, which was released under an
+Apache 2.0 license and a 2-clause BSD license, at the recipient's
+option.
+
+Copyright (c) Donald Stufft and individual contributors.
+All rights reserved.
+
+---------------
+
+The container image contains curl, obtained from the Debian bookworm
+userland of the base image, which was released under an MIT-like
+license.
+
+Copyright (c) 1996 - 2026, Daniel Stenberg, <daniel@haxx.se>, and many
+contributors, see the THANKS file.
+
+---------------
+
+The container image contains zip and unzip, obtained from the Debian
+bookworm userland of the base image, which were released under the
+Info-ZIP license.
+
+Copyright (c) 1990-2009 Info-ZIP. All rights reserved.
+
+---------------
+
+The container image contains certifi, which distributes a modified
+version of the Mozilla CA root certificate bundle under the Mozilla
+Public License 2.0.
+
+This Source Code Form is subject to the terms of the Mozilla Public
+License, v. 2.0. If a copy of the MPL was not distributed with this
+file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+---------------
+
+The container image contains waitress, which was released under the
+Zope Public License 2.1.
+
+Copyright (c) Zope Foundation and Contributors.
+All Rights Reserved.
+
+---------------
+
+The container image inherits GPL-2.0-or-later and other reciprocally
+licensed operating-system components from the python:3.12-slim-bookworm
+base image, including libpam-modules, libpam-modules-bin,
+libpam-runtime and libpam0g. These components are supplied by the
+upstream base image and are not redistributed by the ASF in source
+form. See the WARN file beside this NOTICE.
diff --git a/WARN b/WARN
index 6f8ded2..c74031c 100644
--- a/WARN
+++ b/WARN
@@ -1,122 +1,271 @@
 ==============================================================================
-WARN -- Apache License 2.0 incompatibilities
-Container image: apache/openserverless-admin-api
+WARN -- warnings concerning LICENSE and NOTICE for the container image
+Container image: docker.io/apache/openserverless-admin-api
 ==============================================================================
 
-This file lists third-party components bundled by the Dockerfile beside
-it whose licenses are NOT compatible with the Apache License, Version 2.0,
-together with components that require special handling.
+This file records warnings raised while regenerating the LICENSE and NOTICE
+files beside it for the container image built from the Dockerfile. It is not
+itself a license document.
 
-Classification follows the ASF third-party licensing policy:
-
-    https://www.apache.org/legal/resolved.html
+ASF third-party licensing policy: https://www.apache.org/legal/resolved.html
 
   Category A  Apache-2.0 compatible. May be included in a release.
   Category B  May be included in BINARY form only, unmodified and as a
               separate file, with the reciprocal license disclosed.
   Category X  MUST NOT be included in an Apache release artifact.
 
-IMPORTANT SCOPE NOTE
-------------------------------------------------------------------------------
+
+==============================================================================
+SCOPE
+==============================================================================
+
 The Apache release artifact for OpenServerless is the SOURCE distribution,
-which contains this Dockerfile and the files beside it -- all Apache-2.0
-licensed. The published container image is a CONVENIENCE BINARY assembled
-at build time from third-party base images and package repositories.
-Category X components inherited from a base operating system image are
-disclosed below but are not redistributed by the ASF in source form.
-Category X components that this Dockerfile ADDS on purpose must be removed.
+which contains the Dockerfile and the files beside it -- all Apache-2.0
+licensed. The published container image is a CONVENIENCE BINARY assembled at
+build time from a third-party base image and from package repositories.
+LICENSE and NOTICE now cover both: the license above the first separator
+applies to the source release, and each section below a separator applies to
+software bundled only in the image.
 
 
 ==============================================================================
-CATEGORY X
+WARN 1 -- LICENSE and NOTICE were regenerated, previous content replaced
 ==============================================================================
 
-  None. This Dockerfile no longer adds any Category X component. The LGPL
-  `psycopg` / `psycopg-binary` dependencies and the `telnet` / `inetutils-ping`
-  packages that were previously listed here have been removed; see CATEGORY A
-  below for the details of each resolution.
+  Severity : informational
+  Detail   :
+      The previous LICENSE and NOTICE carried a summary-table inventory with
+      per-component license identifiers but NOT the license texts themselves;
+      they pointed at paths inside the image instead. They have been rewritten
+      in the style of the Apache Pekko LICENSE and NOTICE: Apache-2.0 text
+      first, then '---------------' separated sections, with the full text of
+      every non-Apache-2.0 license reproduced inline.
+  Action   :
+      Review the diff before cutting the release.
 
 
 ==============================================================================
-CATEGORY X (as bundled)
+WARN 2 -- previous inventory listed packages that are NOT in the image
 ==============================================================================
 
-  Component : libpam-modules-bin
-  License   : GPL-2.0-or-later AND BSD-3-Clause
-  Category  : X (as bundled)
-  Action    :
-      GPL-2.0 components arrive from the base operating system. This Dockerfile no
-      longer installs `libpam-modules-bin` explicitly -- it has been REMOVED from the
-      apt install list, since nothing in this service uses PAM authentication. The
-      package is nevertheless still present in the image because the upstream
-      python:3.12-slim-bookworm base image ships libpam-modules, libpam-modules-bin,
-      libpam-runtime and libpam0g as part of the Debian userland. It is therefore
-      inherited, not added, and is disclosed here on that basis. No further action
-      required.
+  Severity : correctness (resolved in the regenerated files)
+  Detail   :
+      The previous LICENSE/NOTICE listed 59 Python packages. The Dockerfile
+      runs `uv pip install --requirement pyproject.toml`, which installs the
+      default dependency group only -- the `dev` extra is never installed.
+      Resolving pyproject.toml against uv.lock yields 43 packages.
 
-  Component : Debian/Ubuntu/Alpine base image userland
-  License   : mixed, incl. GPL-2.0/GPL-3.0
-  Category  : X (as bundled)
-  Action    :
-      The base image contains GPL-licensed operating-system components. The Apache release
-      artifact is the SOURCE (this Dockerfile and the files beside it); the published
-      container image is a convenience binary assembled from third-party base images.
-      No action required beyond this disclosure.
+      The following were listed but are NOT present in the runtime image and
+      have been REMOVED from LICENSE and NOTICE:
+
+          asttokens, colorama, decorator, executing, ipython,
+          ipython-pygments-lexers, jedi, matplotlib-inline, parso, pexpect,
+          prompt-toolkit, ptyprocess, pure-eval, pygments, stack-data,
+          traitlets, wcwidth
+
+      Over-disclosure is not a license violation, but it misstates the
+      contents of the artifact and drags in licenses (ISC, BSD-2-Clause)
+      that nothing in the image actually uses.
+  Action   :
+      None required. Note that if the Dockerfile is ever changed to install
+      the dev extra, these packages must be restored.
 
 
 ==============================================================================
-CATEGORY B
+WARN 3 -- cffi is MIT No Attribution, not MIT
 ==============================================================================
 
-  Component : certifi / ca-certificates
-  License   : MPL-2.0
-  Category  : B
-  Action    :
-      Category B: MPL-2.0 may be included in binary form only, unmodified and as a
-      separate file. That is satisfied here. No action required.
-
-  Component : waitress
-  License   : ZPL-2.1
-  Category  : B
-  Action    :
-      Category B: the Zope Public License 2.1 may be included in binary form only,
-      unmodified and as a separate file. That is satisfied here. No action required.
+  Severity : correctness (resolved in the regenerated files)
+  Category : A
+  Detail   :
+      The previous inventory recorded cffi (2.0.0) as plain MIT. The license
+      file shipped in cffi-2.0.0.dist-info/licenses/LICENSE is "MIT No
+      Attribution" (MIT-0), a distinct, more permissive license. It is now
+      reproduced in its own LICENSE section.
+  Action   :
+      None required. Both are Category A.
 
 
 ==============================================================================
-CATEGORY A
+WARN 4 -- CPython itself was never disclosed
 ==============================================================================
 
-  Component : zip / unzip (Info-ZIP)
-  License   : Info-ZIP License
-  Category  : A
-  Action    :
-      BSD-like and Apache-compatible. No action required.
-
-  Component : curl
-  License   : curl (MIT-like)
-  Category  : A
-  Action    :
-      Apache-compatible. The `telnet` and `inetutils-ping` packages previously
-      installed beside it have been REMOVED from the Dockerfile: they were
-      debugging conveniences and nothing in the service invokes them.
-      No action required.
-
-  Component : PostgreSQL client (formerly psycopg / psycopg-binary)
-  License   : n/a -- dependency removed
-  Category  : A
-  Action    :
-      The LGPL `psycopg` and `psycopg-binary` dependencies have been REMOVED from
-      pyproject.toml and uv.lock. No module in this service imported them: the
-      admin API persists its data in CouchDB, and the `postgres_*` fields it
-      handles are configuration values written into WhiskUser custom resources,
-      which the operator acts on. No PostgreSQL driver is required here.
-      No action required.
+  Severity : omission (resolved in the regenerated files)
+  Category : A
+  Detail   :
+      The image is built `FROM python:3.12-slim-bookworm` and ships the CPython
+      runtime and standard library, which are the single largest bundled
+      third-party component. Neither the previous LICENSE nor the previous
+      NOTICE mentioned CPython or the Python Software Foundation License.
+      The PSF License Version 2 text is now reproduced in LICENSE and the PSF
+      copyright chain is recorded in NOTICE.
+  Action   :
+      None required.
 
 
 ==============================================================================
-SUMMARY OF REQUIRED REMOVALS (Category X added by this Dockerfile)
+WARN 5 -- Category X inherited from the base image (GPL-2.0-or-later)
 ==============================================================================
 
-  (none -- all Category X components added by this Dockerfile have been removed)
+  Severity : disclosure required
+  Category : X (as bundled)
+  Components:
+      libpam-modules, libpam-modules-bin, libpam-runtime, libpam0g
+      License: GPL-2.0-or-later AND BSD-3-Clause
+      plus further reciprocally licensed Debian userland components.
+  Detail   :
+      These arrive from the python:3.12-slim-bookworm base image. The
+      Dockerfile does not install them: its only `apt-get install` line adds
+      curl, zip and unzip. They are therefore INHERITED, not added, and
+      nothing in this service uses PAM authentication.
 
+      The ASF does not redistribute these in source form; they are present
+      only in the convenience binary. This is disclosed in both LICENSE and
+      NOTICE.
+  Action   :
+      No removal possible without changing base image. Disclosure is the
+      required and sufficient remedy. Do NOT add any further GPL component
+      deliberately.
+
+
+==============================================================================
+WARN 6 -- Category B components (reciprocal, binary-only)
+==============================================================================
+
+  Severity : conditions must hold
+  Components:
+      certifi (2025.11.12)  -- MPL-2.0
+      waitress (3.0.2)      -- ZPL-2.1
+  Detail   :
+      Category B permits inclusion in BINARY form only, unmodified and as a
+      separate file, with the reciprocal license disclosed. Both are installed
+      unmodified as separate wheels by uv and are not statically combined with
+      or patched by OpenServerless code. Full MPL-2.0 reference and ZPL-2.1
+      text are reproduced in LICENSE.
+
+      Note: certifi's own license file states it contains a MODIFIED version
+      of Mozilla's ca-bundle.crt. The modification is made by the certifi
+      project upstream, not by OpenServerless; OpenServerless ships certifi
+      unmodified. This satisfies Category B.
+  Action   :
+      None required. Do not patch either package in the image.
+
+
+==============================================================================
+WARN 7 -- copyright holders that could not be verified from the artifact
+==============================================================================
+
+  Severity : verify before release
+  Detail   :
+      Copyright lines in LICENSE and NOTICE were extracted from the license
+      files actually shipped in each installed distribution. For a few
+      components the shipped license file is the bare Apache-2.0 text with no
+      copyright line, so the attribution was taken from package metadata or
+      source headers instead:
+
+          bcrypt     -- taken from METADATA Author-email
+                        (The Python Cryptographic Authority developers)
+          minio      -- taken from "(C) 2015-2021 MinIO, Inc." in source headers
+          requests   -- taken from __version__.py (__copyright__)
+          uv         -- NOT installed locally; uv is installed by pip at image
+                        build time. Its attribution (Astral Software Inc.,
+                        Apache-2.0 OR MIT) was not verified against a built
+                        image.
+          curl       -- Debian package; its copyright range and license text
+                        were not read from the image.
+          zip/unzip  -- Debian packages; Info-ZIP license text was not read
+                        from the image.
+          CPython    -- PSF copyright chain not read from the base image.
+
+      Docker was unavailable in the environment where these files were
+      regenerated, so no component was verified against an actually built
+      image. The 43 Python packages WERE verified by resolving pyproject.toml
+      against uv.lock and reading each installed dist-info.
+  Action   :
+      Before the release vote, build the image and confirm the Debian, uv and
+      CPython attributions against /usr/share/doc/<pkg>/copyright and the
+      base image, and adjust the corresponding LICENSE/NOTICE sections.
+
+
+==============================================================================
+WARN 8 -- LICENSE/NOTICE are copied to / in the image, not to a doc path
+==============================================================================
+
+  Severity : minor
+  Detail   :
+      The Dockerfile has:
+
+          COPY DISCLAIMER LICENSE NOTICE  /
+
+      WARN is NOT copied into the image, although both LICENSE and NOTICE
+      refer the reader to "the WARN file beside this file". Inside the image
+      that reference cannot be followed.
+  Action   :
+      Either add WARN to that COPY line, or drop the in-image cross-reference.
+      Consider also placing the files under a conventional path such as
+      /usr/share/doc/openserverless-admin-api/ in addition to /.
+
+
+==============================================================================
+WARN 9 -- dual-licensed components: no election recorded
+==============================================================================
+
+  Severity : informational
+  Components:
+      cryptography (50.0.0)  -- Apache-2.0 OR BSD-3-Clause
+      packaging (25.0)       -- Apache-2.0 OR BSD-2-Clause
+      uv                     -- Apache-2.0 OR MIT
+  Detail   :
+      These are offered under a choice of licenses. LICENSE reproduces both
+      options for each rather than electing one, which is permissible but
+      leaves the election implicit.
+  Action   :
+      Optional: state that the ASF elects Apache-2.0 for each, which
+      simplifies the inventory.
+
+
+==============================================================================
+WARN 10 -- aiohttp is Apache-2.0 AND MIT
+==============================================================================
+
+  Severity : informational
+  Category : A
+  Detail   :
+      aiohttp (3.14.3) declares "Apache-2.0 AND MIT" -- a conjunction, not a
+      choice: it is Apache-2.0 licensed and vendors llhttp under MIT
+      (Copyright (c) 2018 Fedor Indutny). Both are disclosed.
+  Action   :
+      None required.
+
+
+==============================================================================
+WARN 11 -- previously recorded removals are confirmed still absent
+==============================================================================
+
+  Severity : informational
+  Detail   :
+      The previous WARN recorded that the LGPL `psycopg`/`psycopg-binary`
+      dependencies and the `telnet`/`inetutils-ping` packages had been
+      removed. Both removals are confirmed against the current tree:
+      pyproject.toml and uv.lock contain no psycopg, and the Dockerfile's
+      apt install list is curl, zip, unzip only.
+  Action   :
+      None required. Do not reintroduce them.
+
+
+==============================================================================
+SUMMARY
+==============================================================================
+
+  Category X added deliberately by this Dockerfile : none
+  Category X inherited from the base image         : GPL-2.0-or-later Debian
+                                                     userland (disclosed,
+                                                     WARN 5)
+  Category B components                            : certifi, waitress
+                                                     (conditions hold, WARN 6)
+  Blocking issues                                  : none
+  Open before release vote                         : WARN 7 (verify Debian /
+                                                     uv / CPython attributions
+                                                     against a built image)
+                                                     WARN 8 (WARN not shipped
+                                                     in image)
diff --git a/deploy/samples/requirements.txt b/deploy/samples/requirements.txt
index 349475f..d66830f 100644
--- a/deploy/samples/requirements.txt
+++ b/deploy/samples/requirements.txt
@@ -1,2 +1,20 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
 beautifulsoup4
 setuptools
diff --git a/uv.lock b/uv.lock
index 2f02511..6f4d79a 100644
--- a/uv.lock
+++ b/uv.lock
@@ -1,3 +1,21 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
 version = 1
 revision = 3
 requires-python = ">=3.12"