Commit Graph
24345 Commits
Author SHA1 Message Date
Grzegorz Zdunek a41d021f8a Move cluster state to main process (#59643)
* Create `ClusterStore` that manages cluster state

* Fix tests that mocked tshd directly

* Remove IPC to notify the main process about cluster list changes

* Load immer plugins in `MainProcess`

* Improve comments

* Refactor `useSender`

* Get rid of unnecessary Map and try/catch around send

* Get rid of `MainProcess.create`

* Do not return early `c.proxyHost` is falsy

* Add more context to test

* Add missing logout handler in main process

* Fix applying patches

* Adjust `subscribeToClusterStore` to updated `startAwaitableSenderListener`

* Crash window when sending state update fails

* Extract WebContents navigation handlers and add tests for opening links

* Improve error message

* Initialize `ClusterStore` synchronously

* Convert `lazyTshdClient` field to `getTshdClient` function, add docs

* Remove unused eslint directive
2025-10-22 10:49:30 +00:00
Grzegorz Zdunek 5dc76fecac Enable sending messages from main to renderer with acknowledgments (#59642)
* Create awaitable sender

* Review comments

* Fix test and lint
2025-10-22 10:14:04 +00:00
Ryan Clark 98ad9d199c Add stories for list/view session recordings (#58728)
* Add stories for list/view session recordings, minor UI changes

* Type check storybook, use import.meta.dirname instead of __dirname

* Add mocking for the session recordings service

* Clear all queries between stories

* Unexport interface

* Undo unnecessary changes

* Try using `.mts` for main

* Undo node v24 changes

* Add license
2025-10-22 06:31:14 +00:00
Ryan Clark ec242c26d3 Add configurable playback speed to session recording player (#59641)
* Add configurable playback speed to session recording player

* Load more events sooner when the playback speed is increased

* Update default speed to 1

* Prettier

* Add license
2025-10-22 06:20:10 +00:00
Bartosz Leper f3ad993adc Add support for Bedrock models to the session summarizer (#60030)
* Add support for Bedrock models to the session summarizer

- Add protocol buffers
- Add validation
- Add dependency on Bedrock SDK
- Move GenerateTestSession to the OSS code

* Tidy up the go.mod file

* Enable/disable Bedrock on the auth server level

* Add bedrockruntime to e_imports, rerun mod-tidy-all

* Add a comment to GetModules()

* Revert e/ change
2025-10-22 05:12:45 +00:00
Erik Tate a6ff9dc18f adding backend and service for scoped token resources (#59609) 2025-10-22 04:14:00 +00:00
Edoardo Spadolini a732b67cdf Add relay group and IDs to all resource heartbeats (#60441)
* Add relay group and IDs to all resource heartbeats

* make derive
2025-10-21 20:22:58 +00:00
Travis Rodgers df5ca7d5bb docs: new design for Identity Governance docs homepage (#59004)
New components were added for the Identity Governance docs homepage refresh. This PR applies these components to the Identity Governance docs homepage
2025-10-21 18:06:31 +00:00
Paul Gottschling 3d371acd85 Improve IaC docs index page link visibility (#59461)
The index page of the Infrastructure as Code section of the docs was
originally intended to explain dynamic resources, so links to the guides
contained within the section are neither up to date nor particularly
visible. This change improves the visibility of links to the sections
within the IaC section, and focuses the IaC index page more on its
current purpose.

Edit the IaC index page to:
- Explain dynamic resources in terms of IaC tools.
- Remove information that is already included elsewhere, and not
  relevant to using IaC tools to manage Teleport.
- Update reference links. Add links to Operator and Terraform provider
  resource references.
- Move key guide links to the introductory section of this page.
- Remove the example manifests, since these aren't necessary once a user
  chooses to get started with a particular IaC tool. The examples are
  too minimal to be useful, but long enough to take up substantial space
  within the guide. This helps shorten the guide and focus on key
  information.
2025-10-21 17:16:02 +00:00
Paul Gottschling a80d7fb6f2 Fix broken component links (#60424)
Fix broken link paths passed to components as parameter values.
2025-10-21 16:56:57 +00:00
Marco Dinis ffb816dcff EC2 auto discovery: allow usage of pre-defined AWS-RunShellScript SSM Document (#60224)
* Use AWS-RunShellScript as the default SSM Doc in EC2 Auto Discover

* escape url values
2025-10-21 15:34:57 +00:00
Paul Gottschling 713143b70d Improve IAM requirement visibility in EC2 guides (#60111)
Closes #60077

Edit the EC2 instance auto-discovery guides (manual and guided) so the
list of IAM permissions required for discoverable EC2 instances is in
the Prerequisites section. There is no reason for this discussion to be
in the same section of the page as the permissions for the Teleport
Discovery Service itself. Since attaching an IAM policy to discoverable
instances takes place outside the scope of this guide, it makes sense to
add this information to the Prerequisites.
2025-10-21 15:20:11 +00:00
Dan Upton c421081e8d MWI: Add service health to bot heartbeats (#60093)
* Add protobuf definitions for service health

* Track `UpdatedAt` timestamp on service statuses

* Track service type against status

* Send service health with bot status

* Store service health against bot instance

* Add `TELEPORT_DISABLE_TBOT_HEARTBEAT_EXTRAS` control
2025-10-21 14:45:42 +00:00
Paul Gottschling 9dc4b8e0c9 Fix database user in MySQL guide (#60359)
Closes #60179

The example command for connecting to the database lists `root` as the
database user, when it should be the user the guide told us to create in
an earlier step.
2025-10-21 14:28:01 +00:00
STeve (Xin) Huang 58cd7fc4e0 tctl resource: convert app, app_server (#60406) 2025-10-21 13:48:14 +00:00
STeve (Xin) Huang 3bee2f1b01 add "tsh proxy mcp" command (#59968) 2025-10-21 13:45:14 +00:00
Nick Marais 4e13772715 feat: Bot instance service health (#60133)
* Add tabs to instance details

* Add `kind` to bot instance heartbeat proto

* Extend `GetBotInstanceResponse` type

* Add `InfoTab` component for Overview tab

* Add `HealthTab` component for Services tab

* Wire-up tabs content

* Use `join_attrs.meta` for join token fields

* Fix links style

* Fix handling of unspecified health status

* Fix tab spacing

* Remove tab tooltips

* Replace service item background

* Add zero services story

* Support tctl instance kind

* Fix styled links

* Fix test

* Fix bot instances story
2025-10-21 13:17:48 +00:00
Dan Upton 7f5487652c MWI: Wait for service health before sending first heartbeat (#60087)
* MWI: Wait for service health before sending first heartbeat

Uses the new `AllServicesReported` method to wait for all services to report
their initial status before sending the "startup" heartbeat, with a timeout of
30 seconds.

In one-shot mode, if the outer context is canceled (typically caused by another
service returning an error) we'll hang on for up to 5 seconds to try to send the
heartbeat before shutting down.

* Swap clockwork with testing/synctest

* Prevent identity service from reporting its status too early

* Use test context

* Extract durations into constants
2025-10-21 09:59:19 +00:00
Noah Stride 1207c5ab98 Convert MWI tctl resources to new handler format (#60399)
* Refactor bot

* refactor workloadidentiyt

* fill in description

* Migrate workload_identity_x509_revocation

* Migrate bot_instance

* Migrate spiffe_federation

* Migrate autoupdate_bot_instance_report

* Remove unnecesary import

* Migrate workload_identity_x509_issuer_override

* Migrate sigstore_policy
2025-10-21 09:46:51 +00:00
Luke Okraszewski c55a6fcb14 [api] Add ListOIDCConnectors (#60400)
* [api] Add ListOIDCConnectors

This commits deperecates GetOIDCConnectors, which should be replaced by a paginated counterpart:
ListOIDCConnectors

Towards: gravitational/teleport.e/issues/6759
Changelog: Add paginated API ListOIDCConnectors, deprecate GetOIDCConnectors

* error ctx for logger
2025-10-21 08:55:48 +00:00
Ryan Clark 0561943269 Add a semaphore to recording processing (#60270)
* Add a semaphore to recording processing

* Update the concurrency limit to 20

* Update concurrency limit to 150

* Add metrics for sessions processed/processing

* Add a gauge for pending sessions

* Define subsystem once

* Add license
2025-10-21 08:25:24 +00:00
Nick Marais 79ff5e9ea8 feat: Bot instance upgrade status dashboard (#60019)
* Add plumbing for new metrics endpoint

* Align version compatibility logic

* Fix mocked responses in stories

* Add new dashboard component

* Wire-in dashboard component

* Fix lint

* Explain dynamic `refetchInterval`

* docs: `onFilterSelected`

* Use typography components from design package

* Fix `onFilterSelected` naming inconsistencies

* A better nbsp

* Remove "control plane" terminology

* Refactor `GetBotInstanceMetricsResponse` type

* Handle out-of-date proxy

* Make instance list messaging filter aware

* Update chart title to "version compatibility"

* Keep "Last updated x minutes ago" label current

* Oops, forgot to update the test

* Remove unused `TitleText`

* Change dashboard title to "insights"

* Version compatibility design changes

* Fix tests after copy change, oops
2025-10-21 08:14:03 +00:00
Marco Dinis 2f2bbbda6f AWS IAM Roles Anywhere: ignore sync profile when listing profiles (#60250)
The AWS IAM Roles Anywhere integration syncs Profiles as Teleport AWS
Apps.

In order to use the API, Teleport uses a specific Profile which is
configured as the Profile Syncer's Profile.
This Profile is only meant to be used by Teleport for syncing profiles,
and should not be available as an end-user Profile/Teleport AWS App.

During the Sync set up, we show the user all the available profiles.
This listing operation, wrongly, returns the Profile used for the
Profile Syncer.

We are showing a Profile that will not be available later on.

This PR changes the listing to only show the profiles that will be
synced, removing the Profile used in the Profile Syncer.
2025-10-21 08:11:28 +00:00
Nick Marais 4ce896563a feat: Add service health to tctl bots instances ls|show (#60316)
* Add `service_health` to bot instance protos

* Add aggregated service health to `show`

* Add services section to `show`

* Add health status column to `ls`

* Extra tabs are not welcome

* Handle zero services when aggregating health status
2025-10-21 08:11:23 +00:00
matheus a5a7c56b75 Update e ref (#60408) 2025-10-20 20:57:17 +00:00
Hugo Shaka c8ae70ad09 tctl resource: convert lock handler (#60300) 2025-10-20 20:11:08 +00:00
Nic Klaassen cdc1cfd600 message types for ec2 joining via new service (#60384)
This commit defines messages types for joining via the EC2 join method
according to [RFD 27e](https://github.com/gravitational/teleport.e/blob/master/rfd/0027e-auth-assigned-uuids.md).
2025-10-20 20:00:55 +00:00
Vadym Popov a8ae574479 Add OS and ARCH info for client tools managed updates (#59891)
* Add OS and ARCH info for client tools managed updates

* Optimized initial tsh/tctl installation in tests to perform it once and re-use

* Add reading binary headers in order to identify OS and ARCH if it is not defined in configuration file.
2025-10-20 19:03:49 +00:00
Forrest d5fc3431b1 rfd 0229 - scopes (#58518) 2025-10-20 17:37:51 +00:00
Grzegorz Zdunek 46dd5a0f9f Enable noImplictThis rule (#60346)
* Enable `noImplicitThis`

* Get rid of `memoize`

* Refactor `runOnce`

* Verify return value of `runOnce`

* Fix name

* Return value from `runOnce` in test
2025-10-20 16:04:41 +00:00
Dan Upton 64e7eaad97 MWI: Add AllServicesReported method to readyz.Register (#60059)
This method will be used by the heartbeat service to wait until services have
reported their initial status (with a timeout) before submitting the initial
heartbeat. Otherwise, we'd potentially report all services as "initializing"
for 30 minutes in daemon mode, or forever in long-shot mode.
2025-10-20 15:10:08 +00:00
rosstimothy 432fd5bc3f tctl resources: convert Auth, Proxy, Node (#60383)
Updates https://github.com/gravitational/teleport/issues/60370.
2025-10-20 14:33:59 +00:00
Sakshyam Shah f19ec66d04 abstract PluginSyncFilter builder func (#60244)
* abstract pluginsyncfilter builder func

* update package API
- rename filterinputs -> inputs
- update BuildFilters to NewFromInputs which returns propper Filters type now
2025-10-20 14:21:28 +00:00
Dan Upton 21ec7df2b0 MWI: Automatically report service statuses in oneshot mode (#60148)
* Make the `bot.Bot` responsible for registering service and tagging logger

* Defer registering services until we know they're needed

* Add explanatory comment

* Make status reporting opt-in for long running services

* Clarify doc comment on `GetStatusReporter`
2025-10-20 14:07:47 +00:00
Noah Stride d916aacd41 MWI Docs: Transition from outputs to services terminology (#60314)
* Update examples to use `services` rather than `outputs` field

* Use "output service" terminology

* Fix include

* Fix lint
2025-10-20 12:18:44 +00:00
Nick Marais 5ceeda54c0 feat: Add filtering and sort to tctl bots instances ls (#60273)
* Fix missing `--format` flag

* Use v2 rpc

* Add `--search` flag

* Add `--query` flag

* Add `--sort-index` and `--sort-order` flags

* Remove `generation` and add `version` fields to output

* Allow enabling the auth cache for the test process

* Add list bot instances tests

* Sync join method access logic between tctl and web

* Access `authentication.JoinMethod` safely

* Unhide `--format` flag

* Simplify version header label

* Fallback to v1 ListBotInstances

* Refactor to remove use of `authclient.ClientI`

* A way better fallback implementation 🙌

* typo 🙄

* Refactor to single interface
2025-10-20 11:48:16 +00:00
Dan Share 8f8bcd438b Increase LDAP dial timeout (#60354) 2025-10-20 11:42:20 +00:00
Kevin d90e4eadbb Improve tsh debug messages with client version output (#60297)
* Added client version output when --debug flag is added to tsh commands

* Moved client version output to logger

* Altered tsh client version output to match tbot's, added test coverage

* Updated test to check versions in output
2025-10-18 02:27:51 +00:00
Gavin Frazar 0218493bca Fix long role names for MySQL auto users (#60339)
Previously, role names were effectively limited to 30 characters even
though MySQL supports up to 32.

The activation procedure now:
- Unquotes the role name from JSON
- Stores it in a TEXT variable (not a narrow VARCHAR)
- Re-quotes with proper escaping before GRANT

This allows full-length (32-char) role names to work.
2025-10-17 20:30:05 +00:00
STeve (Xin) Huang 3598261782 tctl resources: convert db (#60360)
* tctl resources: convert db

* remove mfa requirement for db

* fix an issue that new handler cannot handle multiple objects in same file

* preallocate rows
2025-10-17 19:57:00 +00:00
Nic Klaassen 06f52a2ef7 send message when giving up on join attempt (#60110) 2025-10-17 18:47:11 +00:00
STeve (Xin) Huang a6775e5ff5 [mcp] add JWT and rewrite headers support for SSE MCP servers (#60320) 2025-10-17 18:20:22 +00:00
Nic Klaassen a141db20f7 feat: IAM method support in new join service (#60033) 2025-10-17 18:00:05 +00:00
Brian Joerger 3da95140e6 Fix WebUI SSH sessions in Proxy Recording mode (#60299)
* Set AddKeysToAgent to no for WebUI clients; Remove unused code.

* Fix Signers method which overwrites local agent keys with system agent keys.

* Add test.
2025-10-17 16:42:07 +00:00
matheus 8c85965afd Add ClientIPRestrictions entitlement (#60053)
* Add Client IP Restriction entitlement

* Add Client IP Restriction entitlement

* Add new entitlement to pb Features

* Fix tests

* Fix entitlements.ts using `CloudIPRestrictions`
2025-10-17 16:30:10 +00:00
Nic Klaassen 4d5cf951ff message types for iam joining via new service (#60032)
* protos

* messages
2025-10-17 16:15:21 +00:00
rosstimothyandYong-Han Chen fd00866488 Deflake TestEventHandler (#60358)
* Refactor TestEventHeandler without `testify/suite` version

Signed-off-by: Yong-Han Chen <[email protected]>
Signed-off-by: Tim Ross <[email protected]>

* Cleanup TestEventHandler

---------

Signed-off-by: Yong-Han Chen <[email protected]>
Signed-off-by: Tim Ross <[email protected]>
Co-authored-by: Yong-Han Chen <[email protected]>
2025-10-17 16:06:43 +00:00
rosstimothy d4ce358c33 tctl resources: convert users (#60332)
Convert users to the new tctl resource handler format that
was introduced in #59518.
2025-10-17 15:43:47 +00:00
Steven MartinandPaul Gottschling 363d6785c4 docs: update local users (#60189)
* docs: update local users

* docs: update verbiage for local users

Co-authored-by: Paul Gottschling <[email protected]>

---------

Co-authored-by: Paul Gottschling <[email protected]>
2025-10-17 12:11:28 +00:00
Steven Martin 80f3073616 docs: update agent architecture reference to users (#60267) 2025-10-17 12:11:04 +00:00