New Manifest.internet field (viable: bool, port: int | None), parsed by _parse_internet() following _parse_settings/_parse_requires's existing shape. When viable, port must be one of the manifest's own declared ports — resolves which entry is the exposable web UI for apps declaring several (e.g. a DNS service exposing both a resolver port and an admin UI port). catalog.py's release validation additionally rejects any internet.viable app whose docker-compose.yaml sets privileged: true. Deliberately not a network_mode check: a furtka-gateway reaches a host-networked container's port exactly like a bridge-published one — the real risk is a compromised internet-facing container also having host device/kernel access, which privileged: true grants outright. |
||
|---|---|---|
| .. | ||
| test_api.py | ||
| test_app.py | ||
| test_auth.py | ||
| test_catalog.py | ||
| test_cli.py | ||
| test_deps.py | ||
| test_dockerops.py | ||
| test_drives.py | ||
| test_https.py | ||
| test_install_runner.py | ||
| test_installer.py | ||
| test_manifest.py | ||
| test_passwd.py | ||
| test_reconciler.py | ||
| test_scanner.py | ||
| test_sources.py | ||
| test_updater.py | ||
| test_webinstaller_assets.py | ||