100 Commits
Author SHA1 Message Date
Ryan Clark 14128e5aac Support pnpm virtual store in Vite config (#463)
Export-Source-Commit: 559c8808b397a4f54dc95e0ca7f746ee14d67e78
2026-08-25 11:35:10 -05:00
Ryan Clark 2f2cd8600c Consolidate the vitest cleanup to avoid flaking (#532)
Export-Source-Commit: 2b5afd7acd1b0fc9cb312698591830d3af17b2c7
2026-08-25 11:35:10 -05:00
Ryan Clark 64fc081821 Add allowunused tag for bypassing knip (#483)
Export-Source-Commit: 8bb674e4622791c809493020a4fb86cb0e451e08
2026-08-25 11:35:10 -05:00
Ryan Clark 7cee3c41ac Introduce Vitest (#478)
Export-Source-Commit: 6242977d8081c01f4f88446ea7e74101a89fb8cf
2026-08-25 11:35:10 -05:00
Ryan Clark 44ba4e6053 Adjust E2E CI now that we're in a monorepo (#391)
Export-Source-Commit: 41f0850a4efcabe7dc5ed59dc04f054653a19845
2026-08-25 11:35:10 -05:00
Ryan Clark 89ba17b08f Add knip (#376)
Export-Source-Commit: 754d2f1b0238a99b266936a27562314c9c74f85b
2026-08-25 11:35:10 -05:00
Ryan Clark 20b35780fc Fix Vite config warning (#302)
Export-Source-Commit: cbf3b2a9d9fdb304090aee9c4d6c8a16d7b3116d
2026-08-25 11:35:10 -05:00
Ryan Clark 286ce6d8d8 Change the way e2e logs in for tests, enable unauthenticated tests (#69637)
* Change the way e2e logs in for tests, enable unauthenticated tests

* Change the SSH clipboard test to use the browser selector instead of skipping

* Remove workaround in darktheme test

* Share login state for connect tests

* Keep the DisposableTempDir instead of the path
2026-08-13 15:32:59 +00:00
Ryan Clark a8a6ad6f81 e2e runner changes - BPF, remote docker host (SSH), restrict tests to certain browsers (#69447)
* Support ssh:// DOCKER_HOST

* Allow specs to pin themselves to browsers

* Add ssh-node-bpf fixture

* Run a separate node per requested ssh-node fixture

* Run every Teleport config pass even if an earlier one fails

* Fix e2e/runner linting
2026-08-11 13:31:39 +00:00
Ryan Clark 2ed5586e01 Fix E2E runner linting, add check to make lint and CI, fix e2e type check (#69461)
* Fix e2e/runner linting

* Add e2e linting to makefile/CI

* Adjust the comment about public key bytes

* Fix type check command
2026-08-07 14:58:20 +00:00
Ryan Clark 63257ad910 Temporarily skip unauthenticated e2e tests in Firefox (#69010)
* Temporarily skip unauthenticated e2e tests in Firefox

* Keep the project defined, but skip it
2026-07-28 16:16:45 +00:00
Ryan Clark 2513508d88 Add linux/darwin to pnpm supported architectures (#68496)
* Add linux/darwin to pnpm supported architectures

* Add comment
2026-07-24 14:55:20 +00:00
Ryan Clark 9d20e25d37 Add classifier to the web user ACL (#67890)
* Add classifier to the web user ACL

* Add to more places
2026-07-15 12:15:15 +00:00
Ryan Clark 8bee8c1afa Update design-system to v0.2.0 (#68490) 2026-07-14 08:57:05 +00:00
Ryan Clark b1f6a90a8c Update design-system to v0.1.3 (#68377)
* Update design-system to v0.1.3

* Undo last line removal
2026-07-07 09:26:28 +00:00
Ryan Clark db894153cc Supress IronRDP's decode tracing logs (#68324) 2026-07-02 12:58:04 +00:00
Ryan Clark 6945bf9ae7 Update e ref (#68269) 2026-06-30 19:59:47 +00:00
Ryan ClarkandYassine Bounekhla 489f155761 Skip flaky firefox e2e test (#68257)
* Skip flaky firefox e2e test

* skip only on firefox

---------

Co-authored-by: Yassine Bounekhla <[email protected]>
2026-06-30 17:45:12 +00:00
Ryan Clark 26d04f9470 Add the new design system (#61524)
* Add the new design system

* pnpm format

* Fix session recordings not updating on theme changes

* Remove color assertions
2026-06-30 16:25:38 +00:00
Ryan Clark a2bdc8c6b2 Allow for wasm-bindgen to be installed into target/ (#68247) 2026-06-30 15:31:53 +00:00
Ryan Clark b19a4d2f0d Capture inactivity periods when processing desktop sessions (#67721)
* Move the inactivity event helper to the base recording processor

* Expose per-frame activity signals from the desktop thumbnail generator

* Emit inactivity events for desktop session recordings

* Add a test for a fully inactive desktop session

* Change to defer

* Track changed pixels by region to differentiate between typing and clock

* Avoid marking typing as inactivity

* Add mouse button detection

* Only track inactivity if the decoder is available
2026-06-19 16:40:42 +00:00
Ryan Clark c0d806b4b2 Declare missing peers so pnpm global virtual store works (#67855)
* Declare missing peers so pnpm global virtual store works

* Add storybook/react-vite for storybook

* Pin to major versions

* Fix Storybook not working with pnpm virtual store
2026-06-19 10:46:43 +00:00
Ryan Clark 35de5d906f Unskip classifier enterprise tests (#67886) 2026-06-19 09:01:45 +00:00
Ryan Clark caf6ed1705 Increase the timeout for TestTeleportClient_Login_local (#67851) 2026-06-18 14:12:50 +00:00
Ryan Clark a02aeaac3b Change classifier terraform/YAML handling to accept friendly values (#67884)
* Accept and return booleans for Classifier action modes in tctl

* Accept short risk levels and strict booleans for Classifier in tctl
2026-06-17 13:58:34 +00:00
Ryan Clark 1ebcc101b7 Add filter state to unified resources CTA slot (#67887) 2026-06-17 13:58:03 +00:00
Ryan Clark 25835873cf Add new states for reporting summarisation status more granularly (#67883) 2026-06-17 11:22:57 +00:00
Ryan Clark 751115212d Add Terraform provider support for the Classifier resource (#67765)
* Add Terraform provider support for the Classifier resource

* Update Classifier Terraform test fixtures for tri-state action enums

* Add data source

* Add docs/fixtures

* Add conversion for tri-state mode <> boolean

* Add conversion for risk level floor enum

* Linting
2026-06-17 10:50:14 +00:00
Ryan Clark 8b955844e1 Add Terraform schema for the Classifier resource (#67764)
* Add audit event for Classifier delete, docs, and web UI support

* Add failure code for the Classifier delete audit event

* Add web UI and docs support for Classifier audit failure codes

* Add Terraform schema for the Classifier resource

* Regenerate Classifier Terraform schema for tri-state action enums
2026-06-16 22:36:34 +00:00
Ryan Clark 6aaa43440e Add audit event for Classifier delete, docs, and web UI support (#67763)
* Add audit event for Classifier delete, docs, and web UI support

* Add failure code for the Classifier delete audit event

* Add web UI and docs support for Classifier audit failure codes
2026-06-16 20:44:52 +00:00
Ryan Clark 543e9d3522 Add audit events for Classifier create and update (#67762)
* Add audit events for Classifier create and update

* Add failure codes for Classifier create and update audit events

* Add web UI and docs support for Classifier create and update audit events
2026-06-16 19:26:07 +00:00
Ryan Clark 1f6d537330 Add a CTA slot to unified resources component (#67857) 2026-06-16 19:04:40 +00:00
Ryan Clark 129d150383 Add Classifier backend storage, cache, gRPC service, and tctl support (#67761)
* Add Classifier backend storage, cache, gRPC service, and tctl support

* Fix formatting in lib/services/summarizer_test.go

* Replace Cache.AllClassifiers with RangeClassifiers using genericLister

* Validate that the filter is a boolean expression

* Code review fixes: sync test, range fallback
2026-06-16 14:47:39 +00:00
Ryan Clark bb018b13d2 Add Classifier create, update, and upsert RPCs (#67760) 2026-06-16 12:43:05 +00:00
Ryan Clark 493b41d577 Resolve auth credentials from the E2E_DIR in CI (#67809) 2026-06-16 10:20:37 +00:00
Ryan Clark 05557d92e9 Add protos for desktop session search (#67803)
* Add protos for desktop session search

* Add desktop type to the message
2026-06-15 16:15:48 +00:00
Ryan Clark caab74a7fb Add skip inactivity and timeline time updates to the desktop session player (#67724)
* Add skip inactivity and timeline time updates to the desktop session player

* rAF -> requestAnimationFrame

* Avoid redrawing the timeline/events whilst not playing
2026-06-15 14:53:59 +00:00
Ryan Clark a0851d3702 Add Classifier get, delete, and list RPCs (#67759) 2026-06-15 14:42:40 +00:00
Ryan Clark a021b81eb8 Add a "no inference policy" state for session summaries (#67793) 2026-06-15 10:30:32 +00:00
Ryan Clark 41a14f6a1f Hook up desktop sessions to summarisation (#67714)
* Hook up desktop sessions to summarisation

* Match inference policies against desktop session end events
2026-06-15 10:09:32 +00:00
Ryan Clark 36166db5f1 Set global setup to always resolve from OSS (#67774) 2026-06-12 17:13:28 +00:00
Ryan Clark 4b7ca851b1 Updates to the list session recordings page (#67752)
* Hide non-interactive sessions by default

* Add badge and decorator slots to list session recordings

* Update test assertion

* Flip the search params to the new hide non-interactive state

* Fixes for the non-interactive flip

* Remove duplicate BadgeComponent check
2026-06-12 16:07:05 +00:00
Ryan Clark 9e1bb7ff36 Add Classifier proto messages and resource type validation (#67758)
* Add Classifier proto messages and resource type validation

* Change Classifier action booleans to a tri-state enum
2026-06-12 14:34:27 +00:00
Ryan Clark d1c5559ea5 Add BatchGetSummaryMetadata method for loading multiple summaries at once (#67751) 2026-06-12 13:19:19 +00:00
Ryan Clark 5b74af79d3 Update vt10x to v0.0.6-teleport.1 (#67715) 2026-06-12 07:58:32 +00:00
Ryan Clark 467ec97484 Add output incomplete reason to summarizer proto (#67703) 2026-06-11 14:41:14 +00:00
Ryan Clark aedcd1d851 Add property-based testing for thumbnails/metadata generation (#67324)
* Add property-based testing for thumbnails/metadata generation

* Convert the resize test to a normal table test

* Increase the timeouts

* Reduce dimensions to avoid CI from dying
2026-06-11 09:32:54 +00:00
Ryan Clark ef833a355b e ref update (#67672) 2026-06-10 13:20:10 +00:00
Ryan Clark de6fd032d6 Composite cursor in Rust (#66697)
* Composite the cursor in Rust during ResizeCrop

* Apply code review feedback

* Update test

* Move CursorBitmap to an enum, remove Cow, avoid cloning the bitmap

* Remove dereference

* Invalidate E2E Rust cache on decoder changes
2026-06-10 09:27:47 +00:00
Ryan Clark c61782ed0e Resize RDP images in Rust instead of Go (#66696)
* Resize RDP images in Rust instead of Go

* go mod tidy all

* cargo fmt

* Add tests

* Remove unused Thumbnail()

* Change ResizeCrop() to return an error

* Avoid hard-coding the bytes per pixel

* Release resources in tests

* Clamp dimensions to at least 1x1

* Add x/image to e_imports

* Fix linting

* Fold resize options and crop bounds check into resize_crop_into

* Run cargo fetch
2026-06-08 11:00:18 +00:00
Ryan Clark a4527fb0c9 Update vt10x replace in the remaining go.mod files (#67440) 2026-06-04 15:09:21 +00:00
Ryan Clark 5b6ff5bf86 Protect recording metadata/thumbnail generation from panics (#66078)
* Protect recording metadata/thumbnail generation from panics

* Fix test
2026-06-03 10:54:39 +00:00
Ryan Clark 2405c6e786 Add property-based testing for RDPState (#67317)
* Add property-based testing for RDPState

* Move max screen size to separate test to avoid 8192x8192 framebuffer allocation

* Be consistent with avoiding IronRDP OOB

* Move rapid draws to outside of the run

* Fix bug in test util WrapFastPathPDU

* Reduce allocations in CI, fix row byte calculatino
2026-06-03 07:05:25 +00:00
Ryan Clark c728dc3839 Skip signup e2e test temporarily, remove e2e PR comment (#67307)
* Remove GitHub PR comment for e2e test results

* Skip the signup test
2026-06-01 14:28:18 +00:00
Ryan Clark 59d065e511 e2e: Add a login test, remove auth setup from report, better error reporting (#67259)
* Add a dedicated login e2e test

* Remove authenticated setup tests from summary

* Change Roles assertion to a header assertion

* pnpm format

* Avoid collisions during report merging

* Use global setup to avoid authentication tests appearing in report

* Add browser name back to auth state file

* Make the default export nicer

* Surface non-test errors and fix stat tally in runner report

* Generate auth state via global setup for browse/codegen

* Report flaky test details and name failing tests

* Persist trace attachments for --test-results

* Make signup test retry-safe and tolerate login rate limit

* pnpm format

* Skip global setup when there are no bootstrapped users

* Make darktheme test retry-safe and tolerate login rate limit
2026-05-29 17:47:23 +00:00
Ryan Clark 6a10d661be Enterprise e2e linting and export types (#66857)
* Update lint rules for enterprise e2e tests

* Export Locator and Page from playwright for enterprise to use
2026-05-22 15:45:26 +00:00
Ryan Clark 45509bb55c Revert wasm log level during desktop sessions (#66946) 2026-05-21 15:53:50 +00:00
70257f28dc Add HiDPI display support for desktop sessions (#64160)
* Reduce WASM log level from TRACE to WARN in development

* Add HiDPI display support for desktop sessions

* rustfmt

* Update Monitor.tsx

Co-authored-by: Dan Share <[email protected]>

* Update codec.ts

Co-authored-by: rhammonds-teleport <[email protected]>

* UI updates

* Remove unused import

* pnpm format

* Fix popover not repositioning when window is resized

* Watch for DPR changes

* Add settings UI to connect

* Fix types

* Remove monitor icon

---------

Co-authored-by: Dan Share <[email protected]>
Co-authored-by: rhammonds-teleport <[email protected]>
2026-05-20 12:55:27 +00:00
Ryan Clark f8e1dfe806 Swap tsgo and tsc (#66856) 2026-05-19 13:53:52 +00:00
Ryan Clark a3bed6930b Remove jest-canvas-mock (#66854) 2026-05-19 12:55:49 +00:00
Ryan Clark 4497faffad Use E2E_DIR in helpers for e2e directory resolution (#66744)
* Use E2E_DIR in helpers for e2e directory resolution

* Set E2E_DIR in env
2026-05-14 14:18:49 +00:00
Ryan Clark f3f66bd585 Resolve the license file path for e2e tests (#66742) 2026-05-14 11:50:51 +00:00
Ryan ClarkandZac Bergquist 767fd939a3 Small e2e fixes (#66707)
* Resolve lockfile correctly

* Resolve helpers from shared directory

* Undo lock file patching change

* Move playwright version grab to always use OSS

* Add ryanclark/avatus/ravicious as code owners of e2e workflow files

* Update e2e/runner/scan.go

Co-authored-by: Zac Bergquist <[email protected]>

* Add cmp import, remove extra line

---------

Co-authored-by: Zac Bergquist <[email protected]>
2026-05-13 15:38:32 +00:00
Ryan Clark 75d317b264 Add session event to enhanced summaries for desktop + other recording type events (#66527)
* Add session event to enhanced summaries for desktop + other recording type events

* Add more comments to proto

* Fix proto numbers

* Handle deprecation in recording TUI
2026-05-12 12:26:59 +00:00
Ryan Clark 575f5013dc Supporting changes for enterprise e2e tests (#65584)
* Move the e2e workflow to be composable

* Add support for tctl applying resources on Teleport start

* Always run playwright from OSS directory

* Copy session summaries over, adjusting end event/inference times

* Do not fix the viewport when browsing

* Fix bad rebase

* pnpm format
2026-05-08 15:35:14 +00:00
Ryan Clark 5557b9f3e4 Solidify role creation e2e test, stabilise DataTable's rows between renders (#66528)
* Use a unique role per test, clean up after

* Make TableRow stable between renders

* Add stable key to DataTable

* Throw any tctl error that doesn't contain not found
2026-05-07 17:06:24 +00:00
Ryan Clark cdf76d1eea Add channel IDs, dirty rect info to RDP decoder/state (#66157)
* Add channel IDs, dirty rect info to RDP decoder/state

* Cargo.lock update

* Use the correct bounds

* Linting fixes

* cargo fmt

* Clear pointer bitmap on default pointer event

* Code review fixes

* Formatting
2026-05-07 11:47:32 +00:00
Ryan Clark 646da032e3 Add RBAC tests, role-based page objects, and rename SSH recording fixture (#66179)
Imports yassine's RBAC tests for navigation/visibility, recordings playback,
and role CRUD, alongside the supporting Recordings/Roles/SideNav/TrustedClusters
page objects. The recording fixture is renamed from a raw UUID to
ssh-recording-1 so test authors can reference it by a friendly name; consumers
on this branch declare it via `recordings: ['ssh-recording-1']` so the runner
seeds per-user copies through the bootstrap pipeline.
2026-05-07 11:30:41 +00:00
Ryan Clark 3c4f1617ec Add metadata/thumbnail generation for desktop recordings (#65381)
* Add metadata/thumbnail generation for desktop recordings

* Rename isPTYSession to metadataParamsForSessionEnd

* go mod tidy

* Disable the processor if RDP decoder is not available

* Reuse png.Encoder and buffer instead of creating new per screenshot

* Add clarifying comment about returning nil, nil when no decoder

* Add Windows desktop end events

* Set the session start time from end event if we don't already have it

* Break import cycle by extracting MFA JSON types to lib/client/mfatypes

* pnpm format

* go mod tidy all

* Remove flakey test that's covered through other paths

* Use a different interval for desktop sessions, make frames smaller than thumbnail

* Set correct flags when resuming mid-upload

* go.sum

* Handle desktop events in session post processor

* Add a semaphore to desktop recording processing

* Populate metadata from end event if start event not present

* Formatting

* Pass session start time to the metadata processor

* Reduce image sizes in tests
2026-05-07 11:23:04 +00:00
Ryan Clark d9290eb03a Add session recording ownership to e2e runner (#66167)
* Add session recording ownership to e2e runner

* Code review fixes

* Set participants for database/desktop sessions
2026-05-07 10:57:45 +00:00
Ryan Clarkandavatus 70c438da10 Vite dev server fixes for IP based and non-http2 targes (#66419)
* Set default proxy target to localhost instead of IP

* Only rewrite origin if definitely needed

* Fix proxying when using an IP

* revert to http1

---------

Co-authored-by: avatus <[email protected]>
2026-05-07 10:24:13 +00:00
Ryan Clark a861cc62c9 Wire user/role scanner into e2e runner and TS fixtures (#66166)
* Wire user/role scanner into e2e runner and TS fixtures

* Code review fixes
2026-05-07 09:47:37 +00:00
Ryan Clark ba6ed70b2c Add user/role scanner and bootstrap library to e2e runner (#66165)
* Add user/role scanner and bootstrap library to e2e runner

* Clarify why missing files are non-fatal in scanFileUsers

* Warn if there are duplicate roles

* Trim test verbosity and tighten scan.go regex declarations
2026-05-06 13:52:56 +00:00
Ryan Clark 2f98af6d4f Vite development changes (#65914) 2026-04-24 11:17:03 +00:00
Ryan Clark f38a9e3e4d Add access request information to enhanced summaries (#65825)
* Add access request information to enhanced summaries

* Add access request snapshots, move to separate file

* Add unspecified to access request status enum

* Newline
2026-04-23 08:38:55 +00:00
Ryan Clark 5540ca0a32 Add e2e tests for missing recordings of each session type (#65911) 2026-04-22 15:57:32 +00:00
Ryan Clark 5a24b6fd05 Add risk score, risk score reasons and short title to enhanced summaries (#65824) 2026-04-22 15:28:11 +00:00
Ryan Clark d3bc76a68c Avoid a hard crash when WebAssembly is missing (#65771)
* Avoid a hard crash when WebAssembly is missing

* Simplify desktop client logic for WebAssembly check

* Replace dynamic import with a WebAssembly shim

* Move ImageAddon activation to avoid double loading

* pnpm format
2026-04-21 12:47:02 +00:00
Ryan Clark bfbbd7bcce Add RDP state tracker for processing desktop recordings (#65140)
* Add RDP state tracker for processing desktop recordings

* Guard against oversized screen dimensions

* Reset cursor state on resize

* Constrain screen dimensions to the same as we constrain RDP

* Move fastpath test helpers to separate package for reuse

* Remove mutex

* Do not use require in test module, fix linting issues

* Appease the linter

* Use DecodePermissive

* Avoid import cycle by inlining minimal message decoding in rdpstate

* Add length check to legacy fast path PDU

* t.Parallel()
2026-04-21 08:14:51 +00:00
Ryan Clark 6105aebd81 Add support for nested lists and tables in the markdown component (#64843)
* Add support for nested markdown lists

* Fix header content not parsing as markdown

* Add support for markdown tables

* Add max depth of 10 for parsing nested lists

* Only consume sibling list items with the same list marker

* Respect the start number on ordered lists

* Code review fixes

* Code review fixes

* Cap the max number of table columns to 100, rows to 1000

* Check max iterations before skipping blank lines
2026-04-17 14:02:14 +00:00
Ryan Clark a18ab3ea8c Upgrade vite to 8.0.8 (#65508)
* Upgrade vite to 8.0.7

* Vite 8.0.8
2026-04-17 13:18:58 +00:00
Ryan Clark 933f9f3c10 Fix flakey authentication in webkit e2e tests (#65642)
* Remove redundant assertion

* Run at maximum two teleport and test suites at any one time

* Stop teleport if there are any errors during start
2026-04-13 17:02:33 +00:00
Ryan Clark badd1f326c Add icons and proto updates for session summaries (#65583)
* Add flag/arrow up icons

* Add more command categories for the summarizer
2026-04-09 14:25:00 +00:00
Ryan Clark d66bf46162 Add session recordings to e2e runner (#65315)
* Add session recordings to e2e runner

* teleport -> testenv

* Make session recordings start at midnight

* Add missing license

* Use the timezone of the machine

* go mod tidy

* Wait for audit log to exist before writing to it

* Seed recordings on the fly instead of using code generation
2026-04-08 10:35:23 +00:00
Ryan ClarkandRafał Cieślak fbcaefadeb Remove custom scrollbar CSS (#64194)
* Remove custom scrollbar CSS

* Remove custom scrollbar from Connect

---------

Co-authored-by: Rafał Cieślak <[email protected]>
2026-04-07 13:18:38 +00:00
Ryan ClarkandMaja Cieślak 6266cd9eba Auto detect fixture usage in E2E tests, supporting changes for running enterprise e2e tests (#65141)
* Auto detect fixture usage in tests

* Changes to runner for enabling e e2e tests

* Only detect fixtures in test/UI/debug modes

* Make scanning more resilient - require test.use, allow for multiple lines

* Fix e2e/runner CI generate check

* Make scanning context aware to match with running individual tests

* Log enabled fixtures on one line

* Rename gen-fixtures, move go gen to main.go

* Return an error if no tests are matched

* gen-ts-fixtures: Use text/template instead of manually writing to buf

* Ignore generated fixtures.ts instead of formatting it

* Fix pnpm lockfile patching for when e/e2e is missing

* Simplify test running mode detection for scanning fixtures

* go generate

* Remove codegen from test run logic

* Handle run.sh receiving e/e2e directly

* Allow for fixtures to be enabled manually through flags

* Fix logging of enabled fixtures to include the ones set by flags

* Handle inline comments

* Update cmd in generated file

* Only pnpm install if teleport/connect needs building

* Error if UI mode is invoked with connect tests

* Handle errors better when checking if a binary exists

* Add info to the README about manually enabling fixtures

* Debug -> Warn

* Add test files to --ui

* Handle comments in strings properly

* Remove connect TSH from pnpm install logic

* Ignore flags in run.sh

* Handle double quotes just in case

* Add line number back

* Handle commented out imports

* Always include host.docker.internal in the certs

* Only scan fixtures in test mode/when test files are specified

* Make e2e/run.sh work with absolute paths to e/ tests

* Scan fixtures when running tests but not in UI mode

---------

Co-authored-by: Maja Cieślak <[email protected]>
2026-04-03 12:57:18 +00:00
Ryan Clark 3641eeeedb Surface errors during recording playback/loading errors (#64847)
* Return a nicer error when a session recording cannot be accessed

* Surface loading and playback errors in the recording player

* Remove test error

* Add comment about hasReceivedData
2026-04-01 14:12:13 +00:00
Ryan ClarkandRafał Cieślak 09156cb157 Run E2E tests in CI (#64557)
* Run E2E tests in CI

* Rename results JSON so upload-artifacts finds it

* Skip failing auth connector test

* Remove e2e's pnpm workspace, add it to root

* Use cache v5

* Change paths-filter checkout to only on merge group

* Add timeout to e2e tests job

* Only run build/test if there are changes

* Cache the pnpm store instead of node_modules

* Add rust-toolchain.toml to changed files detection

* Add rust-toolchain.toml and Makefile to Rust cache hash

* Add build.assets/Makefile to Rust cache too

* Expand the path filters to capture more changes

* Improve the build error reporting, upload failure logs as artifacts

* Add `contents:read` permission for checkout in merge_group/push triggers

* Cancel previous jobs on new push in a PR

* Move type checking to earlier to fail faster

* Use the correct glob syntax

* Remove redundant env var

* Validate playwright version before trying to get the container

* Use fetch-depth: 1 for faster checkouts

* Use bash for pipefail

* Add versions.mk to changes detection and Rust cache key

* Use bash for version checking

* Ensure build is successful before running tests

* Exit with code 1 if any build failed

* Remove redundant corepack enable

* Use exit $failed for consistency

* Exit as early as possible if e2e type-checking errors

* Remove pnpm store cache as pnpm install is fast enough

* Change playwright back to ^, remove validation, get version from installed

* Run playwright version getter in e2e dir

* Add nested Cargo.toml to paths filter

* Add --init to playwright container

* Add --ipc=host to playwright docker container

* stateRestoration.spec.ts: Limit number of `login` calls

This is to avoid running into auth rate limits when running the full
Connect test suite.

* Cleanup temp dir if `fs.cp` fails

* Remove typescript/node types from e2e package.json

* Move GitHub report to a separate step

* Add more pnpm stuff to paths filter

* Skip for dependabot PRs

* Add persist-credentials: false to checkout

* Move e2e binary building to a bash script

* Define the test results JSON path only once

* Move PR comment management to gh CLI calls instead of runner

* Add build-e2e-binaries.sh to paths filter

* Handle the possibility of a missing PR comment file

* Move PR comment posting to a separate job

* Always run the update-pr-comment job

* Print logs instead of uploading them

* Add the repo name to the concurrency group

* Up test timeout limit to 20s

* Add a SHA flag to the e2e report command

* Fix the GitHub comment not deleting on success

---------

Co-authored-by: Rafał Cieślak <[email protected]>
2026-03-31 15:39:37 +00:00
Ryan Clark 392a8165ae Remove unused accessGraph theme colors (#65074)
* Remove unused accessGraph theme colors

* Remove unused imports

* pnpm format
2026-03-27 11:54:20 +00:00
Ryan Clark da0503c4d8 Refactor recordingmetadata service to be able to support different session types (#64260)
* Refactor recordingmetadata service to be able to support different session types

* Do not capture thumbnails on resize, correctly set thumbnail time/interval

* Fix inactivity offsets, improve the test

* Improve the session join event test

* Update ProcessSessionRecording in test

* Fix test

* Satisfy sloglint

* Fix tests
2026-03-17 16:53:14 +00:00
Ryan Clark 059961951d GitHub related E2E changes (#64658)
* Add command to download playwright report/results from GHA

* Add annotations and a comment on failures

* Merge tests, update formatting

* Be smarter about printing errors

* Use head SHA, paginate list artifacts

* Stream the artifacts instead

* Filter by bot comments only

* Clean up artifact after run
2026-03-17 16:31:29 +00:00
Ryan Clark 7753fa0adf Upgrade Vite to v8 (#64600)
* Upgrade Vite to v8

* Remove crypto.randomUUID polyfill

* Remove tsconfigPathsPlugin from everywhere

* pnpm format

* Update electron vite config with new options

* Fix the loading of ace editor

* rollupOptions -> rolldownOptions in gen-event-reference-config

* Import makeEvent directly to avoid including frontend code

* Fix electron config

* pnpm format

* Ensure ace extensions load after ace is loaded

* pnpm format

* Change external dependencies to only apply to main/preload

* Remove unused eslint directive
2026-03-17 16:12:39 +00:00
Ryan Clark 5a236216bc E2E runner improvements (#64568)
* Only build teleport/tctl, skip if passed as flags, support e/

* Add support for running in different browsers

* Use a local build of teleport for the SSH node fixture

* Add a custom print summary to log results after execution finished

* Add typescript for type checking in CI

* Update mockWebAuthn to be browser agnostic

* Move the tctl invocation from Go to the test

* Save logs

* Allow for a custom docker host to be passed in

* Update playwright

* Run separate Teleport instances for each browser

* Give Connect its own Teleport instance

* Add custom dot reporter

* Add @gravitational/e2e/helpers path

* Use START_URL instead of INVITE_URL in connect login

* Always use custom dot reporter

* Always use blob reporter locally

* Only run connect if only connect tests are specified

* Do not run chromium if only running connect

* Silence the output from playwright report merging

* Ensure chromium Teleport instance doesn't start when running --browse-connect

* Log test files not projects if test files are specified
2026-03-17 15:00:08 +00:00
Ryan Clark 4764e3dc5a Replace bot empty state SVGs with PNGs (#64708) 2026-03-17 14:15:01 +00:00
Ryan Clark ddc3e93c58 Do not clear resource page session summaries CTA seen state on logout (#64602) 2026-03-14 12:13:09 +00:00
Ryan Clark 1cb7a1e08d Fix oxlint being weird (#64616)
* Use jsonc extension to stop errors showing in IDEs

* Upgrade oxlint

* Fix oxlint errors
2026-03-13 15:08:42 +00:00
Ryan Clark c1387457fa Fix pnpm lint-fix (#64607) 2026-03-13 13:48:37 +00:00
Ryan ClarkandRafał Cieślak 7b9000e734 Move from eslint to oxlint (#64300)
* Move from eslint to oxlint

* Run oxlint with the GitHub formatter in CI for PR annotations

* Bring back comments

* Add `--quiet` and report unused disable directives as errors

* Fix patterns for no-restricted-imports rules

* Configure no-unused-vars, remove unnecessary disables of it

The old version in ESLint was much more restrictive. The new config allows
things like dropping properties from an object with rest spread, see
web/packages/teleport/src/Roles/RoleEditor/StandardEditor/standardmodel.ts
for an example.

* Remove other unnecessary disable comments

* Remove duplicate `--quiet` flags

* Update link to jsx-no-useless-fragment docs

* Remove duplicate --quiet flag

* Prettier

* Move oxlint in package.json next to oxfmt

* Add the e2e eslint rules

* Scope e2e restricted imports to just the tests

* Split out the restricted imports for shared/ so they report correctly

* Also lint e2e directory

* Fix CI calling prettier instead of oxfmt

* Simplify pnpm format-check to use pnpm format with --check

---------

Co-authored-by: Rafał Cieślak <[email protected]>
2026-03-13 12:19:45 +00:00
Ryan Clark 047ed7382c Update timeline events renderer to render command analysis errors (#64510) 2026-03-12 10:43:30 +00:00
Ryan Clark 45be5250f3 Format e2e tests, run lint UI on e2e/ changes (#64517)
* Run pnpm format on e2e tests

* Run lint UI when there are changes inside e2e/
2026-03-11 21:19:16 +00:00