gitextract_u506bnuo/ ├── .all-contributorsrc ├── .bumpversion.cfg ├── .cargo/ │ └── config.toml ├── .dockerignore ├── .flake8 ├── .github/ │ ├── FUNDING.yml │ ├── dependabot.yml │ └── workflows/ │ ├── build.yml │ ├── check-schema-compatibility.yml │ ├── codeql.yml │ ├── dependency-review.yml │ ├── docker.yml │ ├── reprotest.yml │ ├── scorecard.yml │ └── test.yml ├── .gitignore ├── .well-known/ │ └── funding-manifest-urls ├── Cargo.toml ├── Cranky.toml ├── Cross.toml ├── LICENSE ├── README.md ├── SECURITY.md ├── clippy.toml ├── config-schema.json ├── deny.toml ├── docker/ │ ├── Dockerfile │ └── docker-compose.yml ├── helm/ │ └── warpgate/ │ ├── .helmignore │ ├── Chart.yaml │ ├── templates/ │ │ ├── NOTES.txt │ │ ├── _helpers.tpl │ │ ├── configmap.yaml │ │ ├── deployment.yaml │ │ ├── httproute.yaml │ │ ├── ingress.yaml │ │ ├── pvc.yaml │ │ ├── service.yaml │ │ └── setup-job.yaml │ └── values.yaml ├── justfile ├── rust-toolchain ├── rustfmt.toml ├── sonar-project.properties ├── tests/ │ ├── .gitignore │ ├── Makefile │ ├── __init__.py │ ├── api_client.py │ ├── certs/ │ │ ├── tls.certificate.pem │ │ └── tls.key.pem │ ├── conftest.py │ ├── images/ │ │ ├── mysql-server/ │ │ │ ├── Dockerfile │ │ │ └── init.sql │ │ ├── postgres-server/ │ │ │ ├── Dockerfile │ │ │ └── init.sql │ │ └── ssh-server/ │ │ └── Dockerfile │ ├── oidc-mock/ │ │ ├── clients-config.json │ │ └── docker-compose.yml │ ├── pyproject.toml │ ├── run.sh │ ├── ssh-keys/ │ │ ├── id_ed25519 │ │ ├── id_ed25519.pub │ │ ├── id_rsa │ │ ├── id_rsa.pub │ │ └── wg/ │ │ ├── client-ed25519 │ │ ├── client-ed25519.pub │ │ ├── client-rsa │ │ ├── client-rsa.pub │ │ ├── host-ed25519 │ │ ├── host-ed25519.pub │ │ └── host-rsa │ ├── test_api_auth.py │ ├── test_http_basic.py │ ├── test_http_common.py │ ├── test_http_proto.py │ ├── test_http_redirects.py │ ├── test_http_user_auth_logout.py │ ├── test_http_user_auth_oidc.py │ ├── test_http_user_auth_otp.py │ ├── test_http_user_auth_password.py │ ├── test_http_user_auth_ticket.py │ ├── test_http_websocket.py │ ├── test_json_logs.py │ ├── test_kubernetes_integration.py │ ├── test_mysql_user_auth_password.py │ ├── test_postgres_user_auth_in_browser.py │ ├── test_postgres_user_auth_password.py │ ├── test_ssh_client_auth_config.py │ ├── test_ssh_proto.py │ ├── test_ssh_target_selection.py │ ├── test_ssh_user_auth_in_browser.py │ ├── test_ssh_user_auth_otp.py │ ├── test_ssh_user_auth_password.py │ ├── test_ssh_user_auth_pubkey.py │ ├── test_ssh_user_auth_ticket.py │ └── util.py ├── warpgate/ │ ├── .gitignore │ ├── Cargo.toml │ └── src/ │ ├── commands/ │ │ ├── check.rs │ │ ├── client_keys.rs │ │ ├── common.rs │ │ ├── create_user.rs │ │ ├── healthcheck.rs │ │ ├── mod.rs │ │ ├── recover_access.rs │ │ ├── run.rs │ │ └── setup.rs │ ├── config.rs │ ├── logging.rs │ └── main.rs ├── warpgate-admin/ │ ├── Cargo.toml │ └── src/ │ ├── api/ │ │ ├── admin_roles.rs │ │ ├── certificate_credentials.rs │ │ ├── common.rs │ │ ├── known_hosts_detail.rs │ │ ├── known_hosts_list.rs │ │ ├── ldap_servers.rs │ │ ├── logs.rs │ │ ├── mod.rs │ │ ├── otp_credentials.rs │ │ ├── pagination.rs │ │ ├── parameters.rs │ │ ├── password_credentials.rs │ │ ├── public_key_credentials.rs │ │ ├── recordings_detail.rs │ │ ├── roles.rs │ │ ├── sessions_detail.rs │ │ ├── sessions_list.rs │ │ ├── ssh_connection_test.rs │ │ ├── ssh_keys.rs │ │ ├── sso_credentials.rs │ │ ├── target_groups.rs │ │ ├── targets.rs │ │ ├── tickets_detail.rs │ │ ├── tickets_list.rs │ │ └── users.rs │ ├── lib.rs │ └── main.rs ├── warpgate-ca/ │ ├── Cargo.toml │ └── src/ │ ├── error.rs │ └── lib.rs ├── warpgate-common/ │ ├── Cargo.toml │ └── src/ │ ├── api.rs │ ├── auth/ │ │ ├── cred.rs │ │ ├── mod.rs │ │ ├── policy.rs │ │ ├── selector.rs │ │ └── state.rs │ ├── config/ │ │ ├── defaults.rs │ │ ├── mod.rs │ │ └── target.rs │ ├── config_schema.rs │ ├── consts.rs │ ├── error.rs │ ├── eventhub.rs │ ├── helpers/ │ │ ├── fs.rs │ │ ├── hash.rs │ │ ├── locks.rs │ │ ├── mod.rs │ │ ├── otp.rs │ │ ├── rng.rs │ │ ├── serde_base64.rs │ │ ├── serde_base64_secret.rs │ │ └── websocket.rs │ ├── http_headers.rs │ ├── lib.rs │ ├── state.rs │ ├── try_macro.rs │ ├── types/ │ │ ├── aliases.rs │ │ ├── listen_endpoint.rs │ │ ├── mod.rs │ │ └── secret.rs │ └── version.rs ├── warpgate-common-http/ │ ├── Cargo.toml │ └── src/ │ ├── auth.rs │ ├── lib.rs │ └── logging.rs ├── warpgate-core/ │ ├── Cargo.toml │ └── src/ │ ├── auth_state_store.rs │ ├── config_providers/ │ │ ├── db.rs │ │ └── mod.rs │ ├── consts.rs │ ├── data.rs │ ├── db/ │ │ └── mod.rs │ ├── lib.rs │ ├── logging/ │ │ ├── database.rs │ │ ├── json_console.rs │ │ ├── layer.rs │ │ ├── mod.rs │ │ ├── socket.rs │ │ └── values.rs │ ├── protocols/ │ │ ├── handle.rs │ │ └── mod.rs │ ├── rate_limiting/ │ │ ├── limiter.rs │ │ ├── mod.rs │ │ ├── registry.rs │ │ ├── shared_limiter.rs │ │ ├── stack.rs │ │ ├── stream.rs │ │ └── swappable_cell.rs │ ├── recordings/ │ │ ├── mod.rs │ │ ├── terminal.rs │ │ ├── traffic.rs │ │ └── writer.rs │ ├── services.rs │ └── state.rs ├── warpgate-database-protocols/ │ ├── Cargo.toml │ ├── README.md │ └── src/ │ ├── error.rs │ ├── io/ │ │ ├── buf.rs │ │ ├── buf_mut.rs │ │ ├── buf_stream.rs │ │ ├── decode.rs │ │ ├── encode.rs │ │ ├── mod.rs │ │ └── write_and_flush.rs │ ├── lib.rs │ └── mysql/ │ ├── collation.rs │ ├── io/ │ │ ├── buf.rs │ │ ├── buf_mut.rs │ │ └── mod.rs │ ├── mod.rs │ └── protocol/ │ ├── auth.rs │ ├── capabilities.rs │ ├── connect/ │ │ ├── auth_switch.rs │ │ ├── handshake.rs │ │ ├── handshake_response.rs │ │ ├── mod.rs │ │ └── ssl_request.rs │ ├── mod.rs │ ├── packet.rs │ ├── response/ │ │ ├── eof.rs │ │ ├── err.rs │ │ ├── mod.rs │ │ ├── ok.rs │ │ └── status.rs │ ├── row.rs │ └── text/ │ ├── column.rs │ ├── mod.rs │ ├── ping.rs │ ├── query.rs │ └── quit.rs ├── warpgate-db-entities/ │ ├── Cargo.toml │ └── src/ │ ├── AdminRole.rs │ ├── ApiToken.rs │ ├── CertificateCredential.rs │ ├── CertificateRevocation.rs │ ├── KnownHost.rs │ ├── LdapServer.rs │ ├── LogEntry.rs │ ├── OtpCredential.rs │ ├── Parameters.rs │ ├── PasswordCredential.rs │ ├── PublicKeyCredential.rs │ ├── Recording.rs │ ├── Role.rs │ ├── Session.rs │ ├── SsoCredential.rs │ ├── Target.rs │ ├── TargetGroup.rs │ ├── TargetRoleAssignment.rs │ ├── Ticket.rs │ ├── User.rs │ ├── UserAdminRoleAssignment.rs │ ├── UserRoleAssignment.rs │ └── lib.rs ├── warpgate-db-migrations/ │ ├── Cargo.toml │ ├── README.md │ └── src/ │ ├── lib.rs │ ├── m00001_create_ticket.rs │ ├── m00002_create_session.rs │ ├── m00003_create_recording.rs │ ├── m00004_create_known_host.rs │ ├── m00005_create_log_entry.rs │ ├── m00006_add_session_protocol.rs │ ├── m00007_targets_and_roles.rs │ ├── m00008_users.rs │ ├── m00009_credential_models.rs │ ├── m00010_parameters.rs │ ├── m00011_rsa_key_algos.rs │ ├── m00012_add_openssh_public_key_label.rs │ ├── m00013_add_openssh_public_key_dates.rs │ ├── m00014_api_tokens.rs │ ├── m00015_fix_public_key_dates.rs │ ├── m00016_fix_public_key_length.rs │ ├── m00017_descriptions.rs │ ├── m00018_ticket_description.rs │ ├── m00019_rate_limits.rs │ ├── m00020_target_groups.rs │ ├── m00021_ldap_server.rs │ ├── m00022_user_ldap_link.rs │ ├── m00023_ldap_username_attribute.rs │ ├── m00024_ssh_key_attribute.rs │ ├── m00025_ldap_uuid_attribute.rs │ ├── m00026_ssh_client_auth.rs │ ├── m00027_ca.rs │ ├── m00028_certificate_credentials.rs │ ├── m00029_certificate_revocation.rs │ ├── m00030_add_recording_metadata.rs │ ├── m00031_minimize_password_login.rs │ ├── m00032_admin_roles.rs │ └── main.rs ├── warpgate-ldap/ │ ├── Cargo.toml │ └── src/ │ ├── connection.rs │ ├── error.rs │ ├── lib.rs │ ├── queries.rs │ └── types.rs ├── warpgate-protocol-http/ │ ├── Cargo.toml │ └── src/ │ ├── api/ │ │ ├── api_tokens.rs │ │ ├── auth.rs │ │ ├── common.rs │ │ ├── credentials.rs │ │ ├── info.rs │ │ ├── mod.rs │ │ ├── sso_provider_detail.rs │ │ ├── sso_provider_list.rs │ │ └── targets_list.rs │ ├── catchall.rs │ ├── common.rs │ ├── error.rs │ ├── lib.rs │ ├── main.rs │ ├── middleware/ │ │ ├── cookie_host.rs │ │ ├── mod.rs │ │ └── ticket.rs │ ├── proxy.rs │ ├── session.rs │ └── session_handle.rs ├── warpgate-protocol-kubernetes/ │ ├── Cargo.toml │ └── src/ │ ├── correlator.rs │ ├── lib.rs │ ├── recording.rs │ ├── server/ │ │ ├── auth.rs │ │ ├── client_certs.rs │ │ ├── handlers.rs │ │ └── mod.rs │ └── session_handle.rs ├── warpgate-protocol-mysql/ │ ├── Cargo.toml │ └── src/ │ ├── client.rs │ ├── common.rs │ ├── error.rs │ ├── lib.rs │ ├── session.rs │ ├── session_handle.rs │ └── stream.rs ├── warpgate-protocol-postgres/ │ ├── Cargo.toml │ └── src/ │ ├── client.rs │ ├── common.rs │ ├── error.rs │ ├── lib.rs │ ├── session.rs │ ├── session_handle.rs │ └── stream.rs ├── warpgate-protocol-ssh/ │ ├── Cargo.toml │ └── src/ │ ├── client/ │ │ ├── channel_direct_tcpip.rs │ │ ├── channel_session.rs │ │ ├── error.rs │ │ ├── handler.rs │ │ └── mod.rs │ ├── common.rs │ ├── compat.rs │ ├── keys.rs │ ├── known_hosts.rs │ ├── lib.rs │ └── server/ │ ├── channel_writer.rs │ ├── mod.rs │ ├── russh_handler.rs │ ├── service_output.rs │ ├── session.rs │ └── session_handle.rs ├── warpgate-sso/ │ ├── Cargo.toml │ └── src/ │ ├── config.rs │ ├── error.rs │ ├── google_groups.rs │ ├── lib.rs │ ├── request.rs │ ├── response.rs │ └── sso.rs ├── warpgate-tls/ │ ├── Cargo.toml │ └── src/ │ ├── cert.rs │ ├── error.rs │ ├── lib.rs │ ├── maybe_tls_stream.rs │ ├── mode.rs │ ├── rustls_helpers.rs │ └── rustls_root_certs.rs └── warpgate-web/ ├── .editorconfig ├── .gitignore ├── Cargo.toml ├── eslint.config.mjs ├── openapitools.json ├── package.json ├── src/ │ ├── admin/ │ │ ├── App.svelte │ │ ├── AuthPolicyEditor.svelte │ │ ├── CertificateCredentialModal.svelte │ │ ├── CreateOtpModal.svelte │ │ ├── CreatePasswordModal.svelte │ │ ├── CredentialEditor.svelte │ │ ├── Home.svelte │ │ ├── KubernetesRecording.svelte │ │ ├── Log.svelte │ │ ├── LogViewer.svelte │ │ ├── PublicKeyCredentialModal.svelte │ │ ├── Recording.svelte │ │ ├── RelativeDate.svelte │ │ ├── Session.svelte │ │ ├── SsoCredentialModal.svelte │ │ ├── TlsConfiguration.svelte │ │ ├── config/ │ │ │ ├── AccessRole.svelte │ │ │ ├── AccessRoles.svelte │ │ │ ├── AdminRole.svelte │ │ │ ├── AdminRolePermissionsBadge.svelte │ │ │ ├── AdminRoles.svelte │ │ │ ├── Config.svelte │ │ │ ├── CreateAdminRole.svelte │ │ │ ├── CreateRole.svelte │ │ │ ├── CreateTicket.svelte │ │ │ ├── CreateUser.svelte │ │ │ ├── Parameters.svelte │ │ │ ├── SSHKeys.svelte │ │ │ ├── Tickets.svelte │ │ │ ├── User.svelte │ │ │ ├── Users.svelte │ │ │ ├── ldap/ │ │ │ │ ├── CreateLdapServer.svelte │ │ │ │ ├── LdapConnectionFields.svelte │ │ │ │ ├── LdapServer.svelte │ │ │ │ ├── LdapServers.svelte │ │ │ │ ├── LdapUserBrowser.svelte │ │ │ │ └── common.ts │ │ │ ├── target-groups/ │ │ │ │ ├── CreateTargetGroup.svelte │ │ │ │ ├── TargetGroup.svelte │ │ │ │ ├── TargetGroups.svelte │ │ │ │ └── common.ts │ │ │ └── targets/ │ │ │ ├── ChooseTargetKind.svelte │ │ │ ├── CreateTarget.svelte │ │ │ ├── Target.svelte │ │ │ ├── Targets.svelte │ │ │ └── ssh/ │ │ │ ├── KeyChecker.svelte │ │ │ ├── KeyCheckerResult.svelte │ │ │ └── Options.svelte │ │ ├── index.html │ │ ├── index.ts │ │ ├── lib/ │ │ │ ├── PermissionGate.svelte │ │ │ ├── api.ts │ │ │ ├── openapi-schema.json │ │ │ ├── store.ts │ │ │ └── time.ts │ │ └── player/ │ │ └── TerminalRecordingPlayer.svelte │ ├── common/ │ │ ├── AsyncButton.svelte │ │ ├── AuthBar.svelte │ │ ├── Brand.svelte │ │ ├── ConnectionInstructions.svelte │ │ ├── CopyButton.svelte │ │ ├── CredentialUsedStateBadge.svelte │ │ ├── DelayedSpinner.svelte │ │ ├── EmptyState.svelte │ │ ├── GettingStarted.svelte │ │ ├── GroupColorCircle.svelte │ │ ├── InfoBox.svelte │ │ ├── ItemList.svelte │ │ ├── Loadable.svelte │ │ ├── NavListItem.svelte │ │ ├── Pagination.svelte │ │ ├── RadioButton.svelte │ │ ├── RateLimitInput.svelte │ │ ├── ThemeSwitcher.svelte │ │ ├── autosave.ts │ │ ├── errors.ts │ │ ├── helpers.ts │ │ ├── protocols.ts │ │ ├── recordings.ts │ │ └── sveltestrap-s5-ports/ │ │ ├── Alert.svelte │ │ ├── Badge.svelte │ │ ├── ModalHeader.svelte │ │ ├── Tooltip.svelte │ │ └── _sveltestrapUtils.ts │ ├── embed/ │ │ ├── EmbeddedUI.svelte │ │ └── index.ts │ ├── gateway/ │ │ ├── ApiTokenManager.svelte │ │ ├── App.svelte │ │ ├── CreateApiTokenModal.svelte │ │ ├── CredentialManager.svelte │ │ ├── Login.svelte │ │ ├── OutOfBandAuth.svelte │ │ ├── Profile.svelte │ │ ├── ProfileApiTokens.svelte │ │ ├── ProfileCredentials.svelte │ │ ├── TargetList.svelte │ │ ├── index.html │ │ ├── index.ts │ │ ├── lib/ │ │ │ ├── api.ts │ │ │ ├── openapi-schema.json │ │ │ ├── shellEscape.ts │ │ │ └── store.ts │ │ └── login.ts │ ├── lib.rs │ ├── theme/ │ │ ├── _theme.scss │ │ ├── fonts.css │ │ ├── index.ts │ │ ├── theme.dark.scss │ │ ├── theme.light.scss │ │ ├── vars.common.scss │ │ ├── vars.dark.scss │ │ └── vars.light.scss │ └── vite-env.d.ts ├── svelte.config.js ├── tsconfig.json ├── tsconfig.node.json └── vite.config.ts