Commit Graph
3027 Commits
Author SHA1 Message Date
Gabriel Corado e5c992ccc1 App service use upstream TLS options (#66454)
* feat: app service use upstream tls options

* refactor: code review suggestions

* refactor(upstreamtls): code review suggestions

* test(app): provide missing transport options

* chore(app): fix lint
2026-05-27 13:41:28 +00:00
Noah Stride d79bff946e Revert x/crypto ssh update (#67111) 2026-05-27 12:36:00 +00:00
Alan Parra a6b9e2fd49 chore: Bump golang.org/x/ dependencies (#67011)
* chore: Bump golang.org/x/ dependencies

* tidy

* Fix TestTCPIPForward (close resources in the correct order)
2026-05-25 14:27:42 +00:00
Chris Thach c46a8f5f14 Migrate MFA service from v1 to v2 (#66820)
* Migrate from mfa v1 to v2.

Signed-off-by: Chris Thach <chris.thach@goteleport.com>

* Set deprecated proto option and update migration comment.

Signed-off-by: Chris Thach <chris.thach@goteleport.com>

* Reduce nolint directives.

Signed-off-by: Chris Thach <chris.thach@goteleport.com>

* Tag Ryan for the Desktop TODO.

---------

Signed-off-by: Chris Thach <chris.thach@goteleport.com>
2026-05-22 18:49:20 +00:00
Zac Bergquist fad450b4ea Prevent users from creating apps for the beam app service (#66937)
Beams runs an app_service, configured to look for apps with
the "teleport.internal/beams/app-type" label.

Users should not be able to create apps with this label - we expect
these apps are only created via static beams config or via the
`tsh beams publish` command.

It's safe to block these requests at the RPC layer because beam
apps are written directly to storage and don't go through these
auth RPCs.
2026-05-22 17:26:19 +00:00
Chris Thach 600b42bdfa Add mfav2.ValidatedMFAChallenge to event.proto. (#66872)
Signed-off-by: Chris Thach <chris.thach@goteleport.com>
2026-05-20 20:12:58 +00:00
Alan Parra d99dc46cf6 Add TrustChain and CAOverrideDetails to DB Access protos (#66767)
* Add TrustChain and CAOverrideDetails to DB Access protos

* make grpc
2026-05-20 13:27:47 +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 <10600907+danielashare@users.noreply.github.com>

* Update codec.ts

Co-authored-by: rhammonds-teleport <ryan.hammonds@goteleport.com>

* 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 <10600907+danielashare@users.noreply.github.com>
Co-authored-by: rhammonds-teleport <ryan.hammonds@goteleport.com>
2026-05-20 12:55:27 +00:00
Gabriel CoradoandNoah Stride c5cb5c8cd6 Add IssueTeleportWorkloadIdentity RPC (#66691)
* feat(workloadidentityv1): issue teleport workload identity

* refactor(workloadidentityv1): code review suggestions

* refactor(workloadidentityv1): code review suggestions

* chore(workloadidentityv1): clarify comment

* Apply suggestions from code review

Co-authored-by: Noah Stride <noah@noahstride.co.uk>

* chore(workloadidentityv1): code review suggestions and update

---------

Co-authored-by: Noah Stride <noah@noahstride.co.uk>
2026-05-20 01:52:10 +00:00
Gabriel CoradoandDan Upton 091a381cad tbot add trust_domains option for supported services (#66587)
* feat: tbot trust_domains option for supported services

* test(workloadidentity): adjust test assertion

* Apply suggestions from code review

Co-authored-by: Dan Upton <daniel@floppy.co>

* refactor: code review suggestions

* chore(workloadidentity): fix lint

---------

Co-authored-by: Dan Upton <daniel@floppy.co>
2026-05-19 20:33:58 +00:00
williamong-tel 7629b951d4 Add scope support to OpenSSH nodes (#64819)
* Add scope support to OpenSSH certificate generation

simplify scopes open ssh connection

Add DeviceVerified and isBot in the signer

tweak signer to be lazily referenced

revert adding login to client

Pass in targetServer to the OpenSSHCertRequest instead - use CheckAccessToSSHServer to check if scoped role has access

Respond to pr review

Changed signature of DialHost to use a struct before it gets too big

Changed requestedHostLogin to login and targetnodescope to targetserverscope

fix build

Update auth_with_roles.go

Update split_access_checker.go

Update agentless.go

Update auth.go

fix test

Update authservice.pb.go

move cert gen

alias auth proto instead and update the test error expectation

rename goproto go googleproto for better readability - address pr feedback

Update integration_test.go

test

fix build

revert merge conflict for applyTraits

Switch to using pinning package to marshal/unmarshal

* respond to PR review

* updated the need for a agents to upsert node

* revert permissions.go change for upserting node

Update auth_with_roles.go

* set gogo proto options to false for openSSHCertRequest so that we can import teleport.scoped.v1.Pin

Update authservice.pb.go

* Add node ID check in upsertNode

* fix test structure

Update auth_with_roles_test.go
2026-05-19 18:41:29 +00:00
williamong-tel 6500619d93 Add disconnect expired cert and lock mode for scoped role (#66376)
* Add disconnect expired cert and lock mode for scoped role

Update IAC docs

* respond to code review

Add a scoped authorizer in the forwarder_test

fix up proto comments

Update forwarder.go

* fix forwarder setting nil disconnectExpiredCert

* Update validate lock to accept empty string - will be treated as best_effort down the line

add comment
2026-05-14 21:51:48 +00:00
Chris Thach c12fcaabc6 Add mfa v2 and webauthn v2 protos and gen Go bindings. (#66643)
Signed-off-by: Chris Thach <chris.thach@goteleport.com>
2026-05-14 13:01:44 +00:00
Dan Upton ce46e109d0 Add beam-user, beam-admin, and beam roles (#66708)
* Add `beam-user`, `beam-admin`, and `beam` roles

Migrates the beam roles from the cloud tenant controller, adds descriptions, and
marks `beam` as a "system" role so it does not show in the role selector.

Fixes https://github.com/gravitational/beams/issues/137

* Make `host_cert` permissions more restrictive

* Disable beams roles in OSS

* Extract beams login into a constant

* Fix stray quote

* Further lock down the host cert permissions

* Fix role preset tests

* Using `host_cert.role` in expressions doesn't work
2026-05-14 11:50:52 +00:00
Maja 212f0acc26 Add leaf cluster to MFA prompt and fix resource casing; Improve look of MFA modal in Connect (#66714)
* Improve look of ReAuthenticate in Connect

* Display `<Text>` for reason only if reason is present.
* Drop "from trusted cluster" being appended to reason. This will be
  moved to api/mfa/prompt.go.
* Center text for browsermfa and sso so it matches webauthn.
* Consistent comma at the end of text for each method.

* Add leaf cluster name to prompt reason for MFA

* Fix resource type casing in MFA prompt

* Assert MFA prompt in tests
2026-05-14 07:27:11 +00:00
Zac Bergquist 23716c4d8a Prevent the LDAP reconciler from picking up dynamic desktops (#66609)
Prior to this change, users who manually register dynamic desktops
using the same labels that the LDAP reconciler uses could trick
the reconciler into managing desktops that it shouldn't own.

Additionally, the LDAP reconciler would pull all desktops from
the backend, including the dynamically registered ones. Since
these dynamic desktops aren't found in LDAP, the reconciler
woudl think they are stale and incorrectly delete them.

Use a new status field (because changing teleport.dev/origin is unsafe)
in order to indicate desktops managed by LDAP. This ensures that
the LDAP reconciler operates only on LDAP-managed hosts.
2026-05-14 02:31:49 +00:00
Maja 14d09364e5 webclient: Check Content-Type before parsing non-200 ping response (#66706)
* webclient: Check Content-Type before parsing non-200 ping response

* ClusterLogin: Replace "cluster auth preferences" with "authentication methods"
2026-05-13 13:00:29 +00:00
Noah Stride 1894178df3 Wildcard support for kubernetes join method (#66520)
* Add protos

* implement validation and matching support

* generated integrations stuff

* De Morgan, and his faithful followers, have once again defeated me in battle

* Udpate tests in lib/kube/token

* Extend join_kubernetes_test.go

* Fix missing param

* Extend validation tests

* Fix minor nits

* qF1001: CoUld aPpLY de MORgan'S LaW (stAticCHEck)
2026-05-13 08:47:24 +00:00
Kevin 25390e35ad Extend access_request.review audit event with SubmittedBy field (#66555)
* Add `AccessRequestCreate.SubmittedBy` field

* Address feedback
2026-05-12 17:18:29 +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
williamong-tel 947cb73f0c add enhanced session recording and session recording mode for scoped roles (#65996) 2026-05-11 22:37:12 +00:00
rhammonds-teleportandPrzemko Robakowski a1067af54b Desktop Access: Fix Shared Directory Truncate Error (#66307)
* Change 'EndOfFile' property to int64 from uint32

* Plumb the new int64 'EndOfFile' field through the rest of the backend and client

* Switch 'size' field of truncate requests to uint64 instead of int64

* Update everything downstream of the new uint64 'size' field

* Update lib/srv/desktop/tdp/protocol/tdpb/translate.go

Co-authored-by: Przemko Robakowski <przemko.robakowski@goteleport.com>

---------

Co-authored-by: Przemko Robakowski <przemko.robakowski@goteleport.com>
2026-05-11 17:18:42 +00:00
Alan Parra 02c315e31e chore: Bump /x/net in api/ and auxiliary modules (#66619)
* Update all Go modules to 1.25.10

* chore: Bump golang.org/x/net to v0.53.0

* Tidy modules
2026-05-11 17:03:45 +00:00
STeve (Xin) Huang 72a911fbd1 [refactoring] remove some deadcode (#66583) 2026-05-11 13:36:46 +00:00
teleport-renovate[bot] 42a4eaafee Update Go toolchain version to v1.25.10 (#66568)
Co-authored-by: teleport-renovate[bot] <275214890+teleport-renovate[bot]@users.noreply.github.com>
2026-05-08 22:48:49 +00:00
Chris Thach 9a77c5b3ce Fix headless login when in-band MFA is required (#66168)
* Fix headless login when in-band MFA is required.

* Set HeadlessAuthenticationID in headless cert and allow bypass of in-band MFA if set.

Signed-off-by: Chris Thach <chris.thach@goteleport.com>

* Update proto to fix test.

Signed-off-by: Chris Thach <chris.thach@goteleport.com>

* Delete useless assert.

Signed-off-by: Chris Thach <chris.thach@goteleport.com>

---------

Signed-off-by: Chris Thach <chris.thach@goteleport.com>
2026-05-08 17:25:55 +00:00
Michelle Bergquist 351521258f Add audit event for environment profile (#66217)
* Add audit event for environment profile

* Enforce that new event codes are registered in the web audit UI

Add TestEventCodesInWebTypes, a Go test that cross-checks every code defined in lib/events/codes.go against the eventCodes map in web/packages/teleport/src/services/audit/types.ts. Without an entry there, events appear as "Unknown" in the audit log UI.

A knownMissing set exempts 14 pre-existing gaps that predate the test; those should be fixed in follow-up PRs and removed from the list.

* Add web audit UI entries for environment profile update event
2026-05-07 21:36:21 +00:00
Kevin 4dcfcc608f Add RBAC rule review_requests.submit_for_users (#66254) 2026-05-07 20:49:43 +00:00
Nick Marais 068fa4a213 feat: Preparation for Beams list (web ui) (#66287)
* Add beam list sorting

* ACL for beams

* Add `BeamServiceClient` to api client

* Use correct expires field for sorting

* Use case-insensitive sorting for user/owner

* Fix service client comment

* Refactor index selection

* Refactor backend sort validation

* Use enums for sort field and order

* Handle nil spec.expires at key creation

* Encode uft8-unsafe page tokens

* Fix tests naming

* Apply filters in backend `IterateBeams`

* Rename `ListBeamsRequestOptions.GetFilterOwners`

* Fix yield

* Tweak len access

* Always base32 encode page tokens

* Use bytestring type

* Don't use `IterateBeams` in `ListBeams`

`pageSize` was not propagated to the lister

* Add missing error checks

* Revert unnecessary comment change

* Make `IterateBeams` backwards compatible with teleport.e

* Make `ListBeams` backwards compatible with teleport.e

* Don't lower user name for cache index keys

* Godoc for MakeBeamFilterFunc

* Deny user acl for beams without entitlement

* Comment sorting validation in backend

* Encode page token only when required

* Remove upper bound on page size

* Decode page tokens in IterateBeams
2026-05-07 17:54:49 +00:00
Adam Pickering e2dadc573e Remove redundant database configuration references in docs (#66447)
* Remove redundant database configuration references

This:
1. Adds documentation for the mysql_server_version field of proxy_service
   to the general config reference and improves formatting for a couple
   of fields there.
2. Removes database config/resource references that are redundant due to
   being covered by auto-generated docs or the more centralized teleport
   config docs.

* Update docs redirects

* Update internal links pointing to deleted pages

* Update DatabaseSpecV3.Protocol comment with allowed database protocol types

- This PR is removing the old `db` resource reference.
- The new `db` resource reference is generated from the DatabaseV3
  protobuf type.
- The old `db` resource reference defined the allowed values of the
  protocol field, whereas this information is not in the `DatabaseV3` type.
- docs/pages/identity-security/session-summaries.mdx links to the `db`
  resource reference, using it as a source of information on which values
  are allowed for the protocol field.

Therefore, we must update the DatabaseV3 protobuf type with information
on which values are allowed for the protocol field.
2026-05-07 17:44:48 +00:00
Dustin Specker 45e9168701 remove workload cluster cache (#65474)
* Revert "Add cache support for workload cluster (#62866)"

This reverts commit bc3ef9078e.

* fix(api/proto): reserve WorkloadCluster events

* feat(api/client): run make grpc

* fix(lib/services): remove workload cluster event parsing
2026-05-07 16:02:12 +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
Sakshyam Shah 990b1cf72b entra plugin sync intervals (#66229)
* feat: add entra plugin sync interval proto

* SyncIntervals custom JSON marshaller, defaults and test

* review:
- avoid mutating plugin spec and backfill default at service level
- fix test msg typo
- provide example of PluginSyncInterval.MarshalJSON

* refactor: update intervals proto type to be of string
2026-05-07 02:32:49 +00:00
Kevin ae4bb28b8b Add traits matching logic for users (#66020) 2026-05-05 23:42:31 +00:00
Hugo Shaka 7e642fec45 Slack plugin oauth refactor (#65172)
* Add new simpler Slack oauth integration

* restore old oauth logic for seamless transition

* address kevin's feedback
2026-05-05 21:22:58 +00:00
Dan Upton 71e8c9a40d Add tsh delegation create-session command (#65029)
* Add test helper for authenticating user

* Add `CreateDelegationSession` RPC

* Add `tsh delegation create-session` command

* Apply login state before checking resource access

* Set max TTL on delegation sessions

* Make `TestBuildCreateDelegationSessionRequest` table-driven

* Prevent sub-delegation for now

* Pass `allowReuse = false` when performing MFA ceremony

* Fix test error message assertion

* Honor the `DisallowReissue` flag

* Use `ttl` variable instead of calling `GetTtl`
2026-05-05 16:17:50 +00:00
Gabriel Corado 59dc3182e3 Add TLS options to app spec (#65995)
* feat: add TLS options for app spec

* fix(service): missing app tls

* chore: missing generations

* refactor(api): update

* feat(api): add `tls://` scheme for TCP apps

* refactor: move app tls validation to services

* refactor(services): improve ca certificates validation

* refactor(services): move app tls validation to happen before public_addr early return

* refactor(services): remove time-based validations and allow single cert

* test: improve testing around tls fields

* refactor: code review suggestions

* chore(api): regenerate proto

* chore(docs): regenerate docs

* refactor(api): always return a copy of the allowed ca aliases

* chore(api): typo
2026-05-05 15:50:04 +00:00
Edoardo Spadolini ebc779b053 Upgrade gravitational/trace to v1.5.4 (#66437) 2026-05-05 15:31:35 +00:00
STeve (Xin) Huang 221c16885b VNet HTTP/LLM support: routing and app handler (#65146)
* VNet HTTP/LLM support: routing and app handler

* reject all browser requests

* address pr comments

* fix test after merging master
2026-05-04 16:00:25 +00:00
Maxim 2e2fdfe041 fix: Add SSH ResourceConstraint event messages, fix unmarshalling (#65721) 2026-05-01 21:13:23 +00:00
274086e9c7 Add AppClient CA (#66273)
* feat: introduce app_client CA

* Apply suggestions from code review

Co-authored-by: Krzysztof Skrzętnicki <krzysztof.skrzetnicki@goteleport.com>

* fix(tctl): app client info being shown for other CAs due to fallthrough

* Apply suggestions from code review

Co-authored-by: Alan Parra <12500300+codingllama@users.noreply.github.com>

* refactor(cryptosuites): update legacy algo

---------

Co-authored-by: Krzysztof Skrzętnicki <krzysztof.skrzetnicki@goteleport.com>
Co-authored-by: Alan Parra <12500300+codingllama@users.noreply.github.com>
2026-04-30 19:05:23 +00:00
nixpig ffdd3eebf1 Split MS Graph endpoint validation into separate functions (#66315)
* Refactor MS Graph endpoint validation into separate functions

* Add comment noting empty string valid for backward compatibility
2026-04-30 15:07:24 +00:00
Dan UptonandNick Marais 3d1a74f564 tool/tsh: Initial beams CLI (#66277)
* Add scaffolds for `tsh beams` commands

* tool/tsh: Implement beams add, exec, ls, publish, rm, scp, ssh, and unpublish

* Fix missing period on beams help text

* Fix comment typo

* Remove unused struct field

* Rely on backend sorting beams

---------

Co-authored-by: Nick Marais <nicholas.marais@goteleport.com>
2026-04-30 09:56:05 +00:00
Dustin SpeckerandPaul Gottschling 7bb55db115 Add docs for workload_cluster (#65812)
* docs: add reference for workload-cluster

* docs: add workload clusters guide

* fix(docs): add words to ignore

* feat(build.assets): use resource-ref-generator

* fix(docs): clarify replacing account and arn

* docs(zta/wc): add How it works and clarify child cluster

* docs(zta/wc): make feature availability callout a warning

* docs(zta/wc): move IAM callout to paragraph

* docs(zta/wc): indent snippets

* docs(zta/wc): split up Go example

* docs(zta/wc): update example ARN to use assumed-role

* docs(refs/wc): update example to use assumed-role

* fix typo

Co-authored-by: Paul Gottschling <paul.gottschling@goteleport.com>

* docs(zta/wc): fix snippet indent

* docs(zta/wc): move wc Go to examples dir

* fix(examples/wc): uppercase log messages

* refactor(examples/wc): rename to timeoutCtx

* fix(examples/wc): log os.RemoveAll error

* fix(examples/wc): use fmt.Printf instead for actual output

* refactor(examples/wc): move replaceable values to vars block

* refactor(examples/wc): use ticker instead of timer

* docs(zta/wc): reword example usage

* fix(docs/wc): update example name

* fix(docs/zta/wc): fix cd command

* docs(zta/wc): clarify address

* fix(examples/wc): add license header

* refactor(examples/wc): move wc name to a var

* fix(api/proto/wc): improve godoc for bot.name

* docs(zta/wc): use company-organization as name

* fix(examples/wc): use deffered func to delete wc

* refactor(examples/wc): use consistent import naming

* refactor(examples/wc): avoid panics

* fix(examples/wc): fix log message

---------

Co-authored-by: Paul Gottschling <paul.gottschling@goteleport.com>
2026-04-29 21:10:24 +00:00
Brian Joerger a09174cd0b Add piv tag for lint-api make target; Fix lint errors in piv package. (#65669) 2026-04-29 17:50:49 +00:00
Przemko RobakowskiandZac Bergquist d3fe70b2c2 Add locks support for Linux desktop (#65761)
* Add LinuxDesktop gRPC and backend

* Add LinuxDesktop resource to unified resources

* Remove CloneResource

* Review comments

* Fix logins

* Review comment

* Add ClonableResourceWithLabels

* Fix missing CloneResource

* Update lib/auth/linuxdesktop/linuxdesktopv1/service.go

Co-authored-by: Zac Bergquist <zac.bergquist@goteleport.com>

* Proto changes for Linux Desktop

* Add locks support for Linux desktop

* Fix role

* Update lib/auth/auth_with_roles.go

Co-authored-by: Zac Bergquist <zac.bergquist@goteleport.com>

* Update lib/web/ui/server.go

Co-authored-by: Zac Bergquist <zac.bergquist@goteleport.com>

* Fix compilation

* Review comments

* Review comments

* fix e

---------

Co-authored-by: Zac Bergquist <zac.bergquist@goteleport.com>
2026-04-29 08:50:19 +00:00
Marco Dinis 801c68a11d Add support for filtering by Organizational Units in IAM Join (#66241) 2026-04-29 08:01:05 +00:00
Przemko RobakowskiandZac Bergquist 0065833422 Proto changes for Linux Desktop (#65692)
* Add LinuxDesktop gRPC and backend

* Add LinuxDesktop resource to unified resources

* Remove CloneResource

* Review comments

* Fix logins

* Review comment

* Add ClonableResourceWithLabels

* Fix missing CloneResource

* Update lib/auth/linuxdesktop/linuxdesktopv1/service.go

Co-authored-by: Zac Bergquist <zac.bergquist@goteleport.com>

* Proto changes for Linux Desktop

* Fix role

* Update lib/auth/auth_with_roles.go

Co-authored-by: Zac Bergquist <zac.bergquist@goteleport.com>

* Update lib/web/ui/server.go

Co-authored-by: Zac Bergquist <zac.bergquist@goteleport.com>

* Fix compilation

* Review comments

* Review comments

* e

* skip gogoproto

* e

* fix test

---------

Co-authored-by: Zac Bergquist <zac.bergquist@goteleport.com>
2026-04-29 07:20:46 +00:00
Michael 95287cc592 Add Device Bound Session Credentials to App Access (#65431) 2026-04-28 22:35:47 +00:00
Przemko RobakowskiandZac Bergquist 1c0a636206 Add LinuxDesktop resource to unified resources (#63101)
* Add LinuxDesktop gRPC and backend

* Add LinuxDesktop resource to unified resources

* Remove CloneResource

* Review comments

* Fix logins

* Review comment

* Add ClonableResourceWithLabels

* Fix missing CloneResource

* Update lib/auth/linuxdesktop/linuxdesktopv1/service.go

Co-authored-by: Zac Bergquist <zac.bergquist@goteleport.com>

* Fix role

* Update lib/auth/auth_with_roles.go

Co-authored-by: Zac Bergquist <zac.bergquist@goteleport.com>

* Update lib/web/ui/server.go

Co-authored-by: Zac Bergquist <zac.bergquist@goteleport.com>

* Fix compilation

* e

* skip gogoproto

* e

* fix test

* Update api/client/proto/linuxdesktop.go

Co-authored-by: Zac Bergquist <zac.bergquist@goteleport.com>

---------

Co-authored-by: Zac Bergquist <zac.bergquist@goteleport.com>
2026-04-28 20:57:34 +00:00