.dockerignore
.gitignore
.gitleaks.toml
.pre-commit-config.yaml
.stestr.conf
AGENTS.md
ARCHITECTURE.md
AUTHORS
LICENSE
PLAN-TEMPLATE.md
PUSH-AUDIT.md
README.md
RELEASE-SETUP.md
REVIEWS.md
alembic.ini
bindep.txt
pyproject.toml
renovate.json
tox.ini
.claude/CLAUDE.md
.claude/skills/add-database-migration/SKILL.md
.claude/skills/add-source-type/SKILL.md
.github/actionlint.yaml
.github/exported-config/repository-settings.json
.github/exported-config/ruleset-develop-branch.json
.github/exported-config/rulesets-summary.json
.github/workflows/codeql-analysis.yml
.github/workflows/demo-compose.yml
.github/workflows/dev-proxy-wheel.yml
.github/workflows/direct-qemu-functional.yml
.github/workflows/export-repo-config.yml
.github/workflows/functional-tests.yml
.github/workflows/mermaid-lint.yml
.github/workflows/pin-indirect-dependencies.yml
.github/workflows/pr-re-review.yml
.github/workflows/pr-retest.yml
.github/workflows/prune-reviews.yml
.github/workflows/pypi-storage-check.yml
.github/workflows/release.yml
.github/workflows/renovate.yml
.github/workflows/rust.yml
.github/workflows/sf-e2e-functional.yml
.vscode/mikal.weaudit
.vscode/mikal.weaudit-shas.json
.vscode/review-scope.toml
demo/Dockerfile
demo/README.md
demo/demo-env.sh
demo/docker-compose.yml
demo/entrypoint.sh
demo/get-console.sh
demo/kerbside-demo-env
demo/kerbside.ini
demo/sources.yaml
demo/spice-target/Dockerfile
docs/configuration.md
docs/console-sources.md
docs/development.md
docs/direct-qemu-harness.md
docs/index.md
docs/installation.md
docs/proxy-architecture.md
docs/schema.html
docs/schema.md
docs/testing.md
docs/plans/PLAN-consistency-audit-phase-01-blocks-and-stamp.md
docs/plans/PLAN-consistency-audit-phase-02-retire-addresser.md
docs/plans/PLAN-consistency-audit-phase-03-skillsaw-detection.md
docs/plans/PLAN-consistency-audit-phase-04-review-coverage.md
docs/plans/PLAN-consistency-audit-phase-05-diagram-discipline.md
docs/plans/PLAN-consistency-audit.md
docs/plans/PLAN-demo-install-phase-01-db-upgrade.md
docs/plans/PLAN-demo-install-phase-02-conf-example.md
docs/plans/PLAN-demo-install-phase-03-compose-demo.md
docs/plans/PLAN-demo-install-phase-04-ci-lane.md
docs/plans/PLAN-demo-install-phase-05-docs.md
docs/plans/PLAN-demo-install.md
docs/plans/PLAN-host-subject-phase-01-ryll-verifier.md
docs/plans/PLAN-host-subject-phase-02-kerbside-adoption.md
docs/plans/PLAN-host-subject.md
docs/plans/PLAN-kerbside-vdi-tokens-phase-05-exchange.md
docs/plans/PLAN-kerbside-vdi-tokens-phase-06-scrape.md
docs/plans/PLAN-kerbside-vdi-tokens-phase-07-ci.md
docs/plans/PLAN-kerbside-vdi-tokens-phase-08-docs.md
docs/plans/PLAN-kerbside-vdi-tokens-phase-09-e2e.md
docs/plans/PLAN-kerbside-vdi-tokens.md
docs/plans/PLAN-proxy-dev-releases-phase-01-publish-workflow.md
docs/plans/PLAN-proxy-dev-releases-phase-02-dev-specifier.md
docs/plans/PLAN-proxy-dev-releases-phase-03-contract-handshake.md
docs/plans/PLAN-proxy-dev-releases-phase-04-docs-and-downstream.md
docs/plans/PLAN-proxy-dev-releases-phase-05-pypi-prune.md
docs/plans/PLAN-proxy-dev-releases-phase-06-push-audit.md
docs/plans/PLAN-proxy-dev-releases.md
docs/plans/PLAN-rust-proxy-phase-01-server-primitives.md
docs/plans/PLAN-rust-proxy-phase-02-grpc-contract.md
docs/plans/PLAN-rust-proxy-phase-03-proxy-skeleton.md
docs/plans/PLAN-rust-proxy-phase-04-firewall.md
docs/plans/PLAN-rust-proxy-phase-05-daemon-integration.md
docs/plans/PLAN-rust-proxy-phase-06-packaging.md
docs/plans/PLAN-rust-proxy-phase-07-ci.md
docs/plans/PLAN-rust-proxy-phase-08-cutover.md
docs/plans/PLAN-rust-proxy.md
docs/plans/PLAN-sfui-conversion-phase-01-smoke-tests.md
docs/plans/PLAN-sfui-conversion-phase-02-vendoring.md
docs/plans/PLAN-sfui-conversion-phase-03-sfui-canonical.md
docs/plans/PLAN-sfui-conversion-phase-04-base-login.md
docs/plans/PLAN-sfui-conversion-phase-05-consoles.md
docs/plans/PLAN-sfui-conversion-phase-06-remaining-pages.md
docs/plans/PLAN-sfui-conversion-phase-07-polling.md
docs/plans/PLAN-sfui-conversion-phase-08-terminate-post.md
docs/plans/PLAN-sfui-conversion-phase-09-teardown.md
docs/plans/PLAN-sfui-conversion.md
docs/plans/PLAN-test-harness-phase-01-digest-crate.md
docs/plans/PLAN-test-harness-phase-02-static-hypervisor.md
docs/plans/PLAN-test-harness-phase-03-control-socket.md
docs/plans/PLAN-test-harness-phase-04-port-latency.md
docs/plans/PLAN-test-harness-phase-05-direct-qemu-ci.md
docs/plans/PLAN-test-harness-phase-06-digest-decoding.md
docs/plans/PLAN-test-harness-phase-07-scenario-test.md
docs/plans/PLAN-test-harness-phase-08-openstack-disposition.md
docs/plans/PLAN-test-harness.md
docs/plans/PLAN-two-tier-ci-phase-01-ovirt-kerbside.md
docs/plans/PLAN-two-tier-ci-phase-02-sf-e2e-promotion.md
docs/plans/PLAN-two-tier-ci-phase-03-merge-queue.md
docs/plans/PLAN-two-tier-ci-phase-04-docs.md
docs/plans/PLAN-two-tier-ci.md
docs/plans/PLAN-use-case-docs.md
docs/plans/index.md
docs/spice/capabilities.md
docs/spice/channel-protocols.md
docs/spice/compression-protocols.md
docs/spice/console-vv-extensions.md
docs/spice/protocol-overview.md
docs/spice/scancodes.md
docs/spice/spice-link-protocol.md
docs/spice/usb-redirection.md
docs/spice/vd-agent-protocol.md
docs/use-cases/ovirt.md
etc/example-static-sources.yaml
etc/kerbside.conf.example
etc/kolla-ci-globals-overlay.yml
kerbside/__init__.py
kerbside/_version.py
kerbside/api.py
kerbside/config.py
kerbside/consoletoken.py
kerbside/db.py
kerbside/main.py
kerbside/proxy_supervisor.py
kerbside/sf_token.py
kerbside/util.py
kerbside.egg-info/PKG-INFO
kerbside.egg-info/SOURCES.txt
kerbside.egg-info/dependency_links.txt
kerbside.egg-info/entry_points.txt
kerbside.egg-info/requires.txt
kerbside.egg-info/top_level.txt
kerbside/api/static/sfui/.sfui-commit
kerbside/api/static/sfui/README.md
kerbside/api/static/sfui/lit-core.min.js
kerbside/api/static/sfui/morphdom-umd.js
kerbside/api/static/sfui/sf-theme.js
kerbside/api/static/sfui/sf.css
kerbside/api/static/sfui/shakenfist-logo.svg
kerbside/api/static/sfui/tokens.css
kerbside/api/static/sfui/components/sf-data-table.js
kerbside/api/static/sfui/components/sf-tabs.js
kerbside/api/static/sfui/components/sf-theme-toggle.js
kerbside/api/templates/audit.html
kerbside/api/templates/base.html
kerbside/api/templates/consoles.html
kerbside/api/templates/login.html
kerbside/api/templates/sessions.html
kerbside/api/templates/sources.html
kerbside/api/templates/icons/README.md
kerbside/api/templates/icons/audit.svg
kerbside/api/templates/icons/sessions.svg
kerbside/api/templates/icons/tokens.svg
kerbside/api/templates/includes/poll.html
kerbside/api/templates/includes/two-step-terminate.html
kerbside/migrations/alembic.ini
kerbside/migrations/env.py
kerbside/migrations/script.py.mako
kerbside/migrations/versions/5c8101ff14d7_sources_can_be_deleted.py
kerbside/migrations/versions/7d1c2f36a7b3_connection_id_as_bigint.py
kerbside/migrations/versions/9a3f1c7b2e40_proxychannels_surrogate_id.py
kerbside/migrations/versions/ad47e96baff6_initial_schema.py
kerbside/migrations/versions/bb26023f0c98_remove_flavor_column.py
kerbside/migrations/versions/c4e7a1b9d2f3_session_terminations.py
kerbside/migrations/versions/cdb5c3529858_sf_token_tables.py
kerbside/migrations/versions/e1a4c7d2f9b6_auditevents_pid_as_string.py
kerbside/migrations/versions/f7b2e9c4a1d8_drop_proxychannels_session_id_fk.py
kerbside/rpc/__init__.py
kerbside/rpc/contract.py
kerbside/rpc/kerbside.proto
kerbside/rpc/kerbside_pb2.py
kerbside/rpc/kerbside_pb2.pyi
kerbside/rpc/kerbside_pb2_grpc.py
kerbside/rpc/kerbside_pb2_grpc.pyi
kerbside/rpc/server.py
kerbside/rpc/servicer.py
kerbside/sources/base.py
kerbside/sources/ovirt.py
kerbside/sources/shakenfist.py
kerbside/sources/static.py
kerbside/tests/__init__.py
kerbside/tests/functional/__init__.py
kerbside/tests/functional/ryll_helper.py
kerbside/tests/functional/test_openstack.py
kerbside/tests/functional/test_shakenfist.py
kerbside/tests/unit/__init__.py
kerbside/tests/unit/test_api.py
kerbside/tests/unit/test_api_html.py
kerbside/tests/unit/test_check_pypi_storage.py
kerbside/tests/unit/test_conf_example.py
kerbside/tests/unit/test_contract.py
kerbside/tests/unit/test_create_ovirt_vnc_vm.py
kerbside/tests/unit/test_db.py
kerbside/tests/unit/test_demo_stack.py
kerbside/tests/unit/test_demo_token.py
kerbside/tests/unit/test_docs_links.py
kerbside/tests/unit/test_main.py
kerbside/tests/unit/test_migrations.py
kerbside/tests/unit/test_plan_range.py
kerbside/tests/unit/test_proxy_floor.py
kerbside/tests/unit/test_proxy_supervisor.py
kerbside/tests/unit/test_rpc.py
kerbside/tests/unit/test_sf_token.py
kerbside/tests/unit/test_sources_ovirt.py
kerbside/tests/unit/test_sources_shakenfist.py
kerbside/tests/unit/test_sources_static.py
loadtests/latency/Dockerfile
loadtests/latency/cleanupconsoles.sh
loadtests/latency/makeconsole.sh
loadtests/latency/orchestrator.py
rust/kerbside-proxy/.gitignore
rust/kerbside-proxy/Cargo.lock
rust/kerbside-proxy/Cargo.toml
rust/kerbside-proxy/Dockerfile
rust/kerbside-proxy/Makefile
rust/kerbside-proxy/README.md
rust/kerbside-proxy/build.rs
rust/kerbside-proxy/pyproject.toml
rust/kerbside-proxy/src/allowlist.rs
rust/kerbside-proxy/src/backend.rs
rust/kerbside-proxy/src/listen.rs
rust/kerbside-proxy/src/main.rs
rust/kerbside-proxy/src/metrics.rs
rust/kerbside-proxy/src/policy.rs
rust/kerbside-proxy/src/relay.rs
rust/kerbside-proxy/src/rpc.rs
rust/kerbside-proxy/src/session.rs
rust/kerbside-proxy/src/tls.rs
tempest-plugin/README.md
tempest-plugin/pyproject.toml
tempest-plugin/kerbside_tempest_plugin/__init__.py
tempest-plugin/kerbside_tempest_plugin/config.py
tempest-plugin/kerbside_tempest_plugin/plugin.py
tempest-plugin/kerbside_tempest_plugin/ryll_client.py
tempest-plugin/kerbside_tempest_plugin/tests/__init__.py
tempest-plugin/kerbside_tempest_plugin/tests/api/__init__.py
tempest-plugin/kerbside_tempest_plugin/tests/api/test_spice_via_kerbside.py
tempest-plugin/kerbside_tempest_plugin/tests/scenario/__init__.py
tempest-plugin/kerbside_tempest_plugin/tests/scenario/test_sextant_scenario.py
tests/fixtures/README.md
tests/fixtures/uefi-latency-guest.qcow2
tests/fixtures/uncalibrated-sextant.qcow2
tools/build-proxy-wheel.sh
tools/check-pypi-storage.py
tools/check-required-checks.sh
tools/check-wheel.py
tools/ci-prune-reviews.sh
tools/create-ovirt-vnc-vm.py
tools/dump-ovirt-host-subject.py
tools/file-nightly-failure-issue.sh
tools/file-pypi-storage-issue.sh
tools/flake8wrap.sh
tools/gen-protos.sh
tools/gitleaks-scan.sh
tools/mermaid-lint.sh
tools/pin-indirect-dependencies.sh
tools/preview-templates.py
tools/review-tracking.sh
tools/run-tempest-tests
tools/shellcheck-wrap.sh
tools/stamp-dev-proxy-version.sh
tools/stamp-proxy-version.sh
tools/test-ovirt-console.py
tools/verify-wheel-stamping.sh
tools/audit/plan-range.sh
tools/audit/wave1.sh
tools/audit/wave2-mechanical.sh
tools/demo/install-docker.sh
tools/demo/lane-assert.sh
tools/demo/lane-up.sh
tools/demo/probe-runner.sh
tools/demo/redact-artifacts.sh
tools/direct-qemu/generate-tls.sh
tools/direct-qemu/install-proxy-wheel.sh
tools/direct-qemu/lane-down.sh
tools/direct-qemu/lane-up.sh
tools/direct-qemu/mock-grpc-server.py
tools/direct-qemu/probe-runner.sh
tools/direct-qemu/rebuild-sextant-qcow2.sh
tools/direct-qemu/run-host-subject-checks.sh
tools/direct-qemu/run-loadtest.sh
tools/direct-qemu/run-scenario.sh
tools/direct-qemu/setup-mariadb.sh
tools/direct-qemu/smoke-client.py
tools/direct-qemu/start-kerbside.sh
tools/direct-qemu/start-qemu.sh
tools/direct-qemu/start-rust-proxy.sh
tools/direct-qemu/verify-rust-proxy.sh
tools/direct-qemu/verify-terminate-live.sh
tools/direct-qemu/wait-for-banner.sh
tools/ovirt-e2e/README.md
tools/ovirt-e2e/deploy-kerbside.sh
tools/ovirt-e2e/drive-console.py
tools/ovirt-e2e/gen-sources.py
tools/sf-e2e/README.md
tools/sf-e2e/deploy-kerbside.sh
tools/sf-e2e/drive-adversarial.py
tools/sf-e2e/drive-happy-path.py
tools/sf-e2e/gather-artifacts.sh
tools/sf-e2e/gen-sources.py
tools/sf-e2e/import-instance.sh
tools/sf-e2e/provision-sf.sh