Commit Graph
26759 Commits
Author SHA1 Message Date
Steven Martin 8f8b6f6ba0 docs: Update sql server self-hosted (#67028)
* docs: Update sql server self-hosted

* docs: Update config file instrs
2026-05-25 13:32:36 +00:00
Maxim 4d580653b4 fix: Propagate DeviceExtensions in remote user identity mapping (#67016) 2026-05-24 01:22:12 +00:00
Edoardo Spadolini 6413a5ae2e Add an optional unstable rate limit for ResolveSSHTarget (#66952)
* Move CreateAuditStream unstable envvar to lib/service

* Add an optional rate limit for ResolveSSHTarget

* Fix logging oddities

* Actually set the create audit stream limit metric

* Fix and synctest TestCreateAuditStreamLimit
2026-05-22 23:03:52 +00:00
Hugo Shaka 57ee7542c8 Force resource replacement on scope change (#66960) 2026-05-22 21:43:42 +00:00
Hugo Shaka 9443943375 crdgen: address scope-related bugs (#66955)
* crdgen: restore age column + fix additional column scoped bug

* Make scope field immutable

* Scope bots
2026-05-22 21:09:42 +00:00
Hugo Shaka e2c22ebd54 Add scoped mode for the operator (#66762)
This work is not production ready yet. While this work makes the
operator support running with a scoped token, this is not enough for a
public release.

Several failure modes must be addressed, including scoped name
conflicts, and operators fighting for ownership of a resource.
2026-05-22 20:48:45 +00:00
teleport-post-release-automation[bot] 8b4ba68a8b [auto] Update AMI IDs for 18.8.2 (#67015)
Co-authored-by: teleport-post-release-automation[bot] <128860004+teleport-post-release-automation[bot]@users.noreply.github.com>
2026-05-22 19:53:45 +00:00
Paul GottschlingandHugo Shaka 6cd0efe99b Add a docs linter for unused partials and images (#64999)
* Add a docs linter for unused partials and images

Check whether any images in the `docs/img` directory or partials in the
`docs/pages/includes` directory are unused within the docs. This
prevents situations such as the following:

- An author unknowingly removes the only inclusion of a partial with
  important information, which should remain in the docs.
- An author introduces an image, thinking they might use it, but ends up
  using a different image, unnecessarily increasing repo size.
- An author forgets to remove unused assets, causing cluster that adds
  friction for other authors trying to navigate the `docs` directory.

Implementation details:
- Add a script to `build.assets` to list unused docs assets, including
  images and partials.
- Add a step to the `Lint (Docs)` workflow that checks whether the list
  is nonempty and, if so, exits with an error.

* Remove unused docs partials and images

* Refactor custom installer partials

The current approach injects a parameter into partial paths within
`custom-installer.mdx` in order to load one of several partials based on
the cloud provider and whether the installer is created statically or
dynamically.

However, if we use the automated approach in
`build.assets/unused-docs-assets.sh` to check for unused partials, it is
impossible to determine whether the partials we keep in
`docs/pages/includes` are included in the docs. This change refactors
the custom installer partials so we can use only static partial paths,
rather than dynamic ones.

* Apply suggestion from **hugoShaka**

Co-authored-by: Hugo Shaka <[email protected]>

---------

Co-authored-by: Hugo Shaka <[email protected]>
2026-05-22 19:50:07 +00:00
Paul Gottschling f5212798ec Fix the event handler reference (#66972)
- Fix incorrect table column syntax
- Fix make command to use the `-C` flag
2026-05-22 19:31:14 +00:00
Paul Gottschling 2a1bcc2247 Add a conceptual introduction to Beams (#66155)
* Add a conceptual introduction to Beams

Expand the Agentic Identity Framework section of the docs with a
conceptual guide to the architectural principles behind Beams. The guide
is for prospective Teleport users who may be solving the same problems
as Beams independently with their own solution. This guide explains the
principles behind Beams by emphasizing that Teleport builds Beams on top
of its existing infrastructure identity foundations, and that the
overall approach is deeply integrated into Teleport's longstanding
approach to infrastructure security.

Implementation details:
- Create an Agentic Identity Framework section.
- Assume that we have moved to VNet for egress controls (e.g., #66074).
- Mention the possibility of scoped delegation based on the current
  architecture of Beams.
- Link to the guide in the "security model" section of beams.mdx.
- Add a sidebar item for the new guide, but don't add it to the section
  index page yet, as there is no natural place for it. Decouple this
  change from a reorganization of the Agentic Identity Framework page.

* Clean up Beams guidance

Responds to **kurktchiev**

- Remove the mentions of "Firecracker", as this is an implementation
  detail that is more likely to change than the use of a microVM.
- Add a link to the tbot introduction and VNet in the "Sandboxing"
  section of the "Reference implementation" H2
- Indicate in the Beams guide that they are a reference implementation
  of the Agentic Identity Framework
- Remove the specific TTL of a beam, which is an implementation detail.
  Move the first mention of the TTL to where we explain how Teleport
  uses it.

* Update spellcheck config

Add "sandboxing" and "indeterministic" and sort the list.

* Edit introductory Beams documentation

- Remove descriptions of functionality that is not yet available from
  beams.mdx.
- Replace "indeterministic" with "non-deterministic".
- Remove the Beams discussion from the conceptual introduction. Link to
  the Beams docs instead.

* Remove implementation language around Beams

Use softer language around Beams implementing the agentic identity
framework or a secure agentic environment.

* Remove redundant sentence

Respond to zmb3 feedback.
2026-05-22 19:25:30 +00:00
Chris Thach c46a8f5f14 Migrate MFA service from v1 to v2 (#66820)
* Migrate from mfa v1 to v2.

Signed-off-by: Chris Thach <[email protected]>

* Set deprecated proto option and update migration comment.

Signed-off-by: Chris Thach <[email protected]>

* Reduce nolint directives.

Signed-off-by: Chris Thach <[email protected]>

* Tag Ryan for the Desktop TODO.

---------

Signed-off-by: Chris Thach <[email protected]>
2026-05-22 18:49:20 +00:00
williamong-tel ffd043fa9c Add scope support to proxy recording mode (#66537) 2026-05-22 17:57:16 +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
Maja c118891fb0 Audit event reference: Update tests and instructions on regeneration; fix typo (#66994)
* Fix typo in T1014W (`headdless` -> `headless`)

* Use snapshot tests in gen-event-reference.test.ts

* audit-events.mdx: Update instructions on how to regenerate file
2026-05-22 16:00:49 +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
Paul Gottschling 949c895fb7 Make Discovery Service partial cloud agnostic (#66967)
Fixes #66931

We use the `discovery-service-troubleshooting.mdx` partial in docs
guides for multiple cloud providers, but it has some AWS-specific
language. Use a parameter so it applies to other cloud providers.
2026-05-22 15:32:16 +00:00
rosstimothy 7279874b17 Extend kube mock server with a generic resource store (#66902)
Replaces the per-type clusterrole/secret handlers with a generic
in-memory store keyed by GVR and namespace/name. Registers
standard CRUD routes for serviceaccounts, configmaps, secrets,
services, roles, rolebindings, clusterroles, clusterrolebindings,
deployments, statefulsets, daemonsets, replicasets, jobs,
networkpolicies, and poddisruptionbudgets. Advertises the apps,
batch, networking.k8s.io, and policy API groups via discovery.
Updates handler errors metav1.StatusReason so client-go can
classify NotFound/AlreadyExists/BadRequest responses.
2026-05-22 14:21:44 +00:00
dependabot[bot]andTiago Silva d9fd110fd7 Bump github.com/containerd/containerd from 1.7.30 to 1.7.32 (#66984)
* Bump github.com/containerd/containerd from 1.7.30 to 1.7.32

Bumps [github.com/containerd/containerd](https://github.com/containerd/containerd) from 1.7.30 to 1.7.32.
- [Release notes](https://github.com/containerd/containerd/releases)
- [Changelog](https://github.com/containerd/containerd/blob/main/RELEASES.md)
- [Commits](https://github.com/containerd/containerd/compare/v1.7.30...v1.7.32)

---
updated-dependencies:
- dependency-name: github.com/containerd/containerd
  dependency-version: 1.7.32
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>

* go mod tidy all

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Tiago Silva <[email protected]>
2026-05-22 13:54:17 +00:00
Edoardo Spadolini 4767f8cfcb Use iterators in ResolveSSHTargets (#66945)
* Avoid collecting matching nodes in ResolveSSHTarget

* Allow using GetSSHTargets as a stream
2026-05-22 12:47:40 +00:00
Jake Alti b97768537c kube: handle goaway test fixture conns concurrently (#66934)
* kube: handle goaway test fixture conns concurrently

* kube: wait for goaway handler goroutines on close

* kube: drop late-arriving goaway conns after close
2026-05-22 10:50:16 +00:00
Noah Stride 2bfaf33b32 Add tsh workload-identity issue-jwt (#66963)
* Add `tsh workload-identity issue-jwt`

* Avoid creating new iface
2026-05-22 09:30:58 +00:00
Jake Alti 711f8054b0 kube: forward watch BOOKMARK events unfiltered (#66939)
* kube: add BOOKMARK passthrough reproducer test

* kube: pass watch BOOKMARK events through filter

* kube: simplify bookmark passthrough
2026-05-21 21:54:40 +00:00
Zac BergquistandGrzegorz Zdunek 3711a89924 Use clipboardchange when available for clipboard sync (#66747)
* Use `clipboardchange` when available for clipboard sync

* Fix check for clipboard change event

---------

Co-authored-by: Grzegorz Zdunek <[email protected]>
2026-05-21 21:01:05 +00:00
Tyler Richardson 779d41088d Add secondary index for database server lookup by database name (#66484)
* Add secondary index for database server lookup by database name

Adds a new function, RangeDatabaseServersWithName, to the cache and
presence APIs that returns an iterator over database servers
matching a given database name.

Replaces the full scan in IsMFARequiredRequest_Database, which fetched
all database servers and filtered in-memory, with a range scan over a
secondary index keyed by database name.

Add generic server range test helpers so the same cache/fallback
behavior can be reused for other server resources that need
target-name range lookups.

* lint: fix imports

* use stream.Fail helper and fail quickly on validation error

* add comment for context

* add warning for wrong type

* split decoding into two stages and add error handling

* add defensive error handling for NextKey parsing

* add check to validate that the token database name matches the requested database name

* add comment explaining decision not to optimize further at this time
2026-05-21 19:36:00 +00:00
Maxim f45094759d [Web] Account for interim private releases in appServerEffectiveFeatures (#66911)
* fix: Account for private releases in appServerEffectiveFeatures

- Account for 18.7.4 and 18.7.5 private releases when calculating
  appServerEffectiveFeatures in apiserver; previously not included as
  versions advertising support prior to constraint parsing impl.

* fix: awsrole visibility uses appServerEffectiveFeatures result

* refac: Move effectiveFeatures helper to componentfeatures
2026-05-21 19:32:26 +00:00
Gavin Frazar 7bd72b759c Fix Amazon Keyspaces CA certs (#66942)
AWS deprecated the CA that was used for Keyspaces and now recommends
using a cert bundle including four root CA certs and the deprecated CA
cert for backward compatibility.

This change also fixes the improper usage of filepath to parse URL paths.
2026-05-21 18:19:34 +00:00
Maxim 7e124be755 Always populate AllowedResourceIDs on decoded Identity (#66870)
* fix: Always populate AllowedResourceIDs on decoded Identity

- TLS and SSH cert decoders populated AllowedResourceAccessIDs but left
  AllowedResourceIDs nil. Any path decoding an identity and re-encoding
  via Subject() would result in the encoder injecting a sentinel value
  into the legacy field, and storing all resources under the new
  AllowedResourceAccessIDs field only.

  This specifically broke database access in mixed-version clusters:
  Proxy would decode user cert, build a CSR (Subject()), send it to Auth
  for signing (FromSubject() then Subject() again). This dropped
  AllowedResourceIDs, storing all under the new extension, so older
  database agents received the cert with only the sentinel in the legacy
  extension, and unaware of the new extension, denied access.

  Fix by populating AllowedResourceIDs at decode time in both decoders
  via UnwrapResourceAccessIDs, ensuring and unconstrained resources
  persist across decode-re-encode cycles.

* refac: tidy ca_test encode/decode test
2026-05-21 18:13:15 +00:00
Dan Upton 6ce005b441 Fix staticcheck error from ConfigureACL (#66949) 2026-05-21 18:05:09 +00:00
Paul Gottschling ed00b138ca Clarify MAU calculations for SSO users (#66917)
Fixes #66361.

Add more explicit language to the Usage and Billing page
to indicate that, since Teleport counts unique users by username and
treats SSO users the same as local ones for the purposes of billing, SSO
users who re-authenticate multiple times in the same billing period
count as a single users.
2026-05-21 18:04:21 +00:00
Ryan Clark 45509bb55c Revert wasm log level during desktop sessions (#66946) 2026-05-21 15:53:50 +00:00
rhammonds-teleport b299b2f3cf Fix GenerateCertificate overriding Subject.ExtraNames (#66915)
* Remove regression in GenerateCertificate that stomps on the certificate request's subject names.

* Add regression test

* Improve regression test.

* Add the Names -> ExtraNames copy back, but only in code path used for Windows Desktop certificates, and with a long explanation of the unexpected behaviors it may cause.

* Fix test
2026-05-21 15:37:08 +00:00
Noah Stride fa5fab4659 Delete unused template consts (#66948) 2026-05-21 14:49:23 +00:00
Nibras Ohin e1a23db598 chore: gate db vnet access only to beams (#66814)
* chore: gate dv vnet access only to beams

* chore: updated to make allowDatabaseAccess flag to default to false
2026-05-21 13:58:30 +00:00
rosstimothy 37f58b5279 Add preliminary Scoped RBAC documentation (#66444)
This adds a getting started guide with a a high level primer on
scopes, prequisites needed to test scopes today, and examples on how
to use the currently supported scoped features.
2026-05-21 13:57:01 +00:00
rosstimothy 4d7ec05ced Fix sqlite backend KeepAlive revision mismatch (#66930)
Ensures the backend table and events table use the same revision when
updating items during KeepAlive operations. Previously a revision was
generated for _both_ tables causing watchers and Get calls to observe
different revisions.

The backend test suite was updated to validate revisions in the event
stream match revisions in the backend.

Resolves https://github.com/gravitational/pressure-washing/issues/139.
2026-05-21 13:52:38 +00:00
rosstimothy daf519b4ec Fix memory backend value aliasing (#66926)
Ensures the memory backend does not expose or retain caller
owned values by cloning them prior to storing, on gets, and
replicating to watchers.

Resolves https://github.com/gravitational/pressure-washing/issues/143.
2026-05-21 13:50:20 +00:00
mica 79c0f1f9e9 docs: guide to set up PingFederate as an OIDC Auth Connector (#63682)
* Adding guide to use PingFederate OIDC Auth Connector

* post-feedback from Gavin: changes to issuer URL information and OIDC phrasing

* post-feedback changes: administrative access clarification, OIDC client table render, and tctl sso test validation and placement
2026-05-21 10:24:45 +00:00
Trent Clarke 9e0a7d0f49 Write AWS config files with stricter permissions (#66825)
Prior to this patch `tctl` would create new AWS config files with filemode `0666`
globally readable). In most cases this is not a security issue as Teleport would
create the file's destinaton directory with `0700` (only readable by the owner).

This becomes an issue in the rare case where the destination directory already
exists AND has weak permissions; in this case the AWS config files may be read
by other users on the owner's machine.

This change bypasses the ini file library's `SaveTo` method and writes the file
with known permissions.
2026-05-21 00:14:03 +00:00
Chris Thach 600b42bdfa Add mfav2.ValidatedMFAChallenge to event.proto. (#66872)
Signed-off-by: Chris Thach <[email protected]>
2026-05-20 20:12:58 +00:00
mica c2e02fbdc0 docs: Edit the Agentic Identity Framework landing page (#65757)
* docs: add Agentic Identity Framework landing page

* post-feedback: Agentic Identity Framework descriptions, adding Architecture overview, and removed lettered heading

* adding 'Agentic' to title sections

* post-feedback: refining Agentic access and Identity descriptions

* minor sentence tweak
2026-05-20 19:41:57 +00:00
Sakshyam Shah ee382e91c2 add delta api and throttling error codes to /lib/msgraph (#66684)
* add delta api and throttling error codes to '/lib/msgraph'

* log retry-after atoi con failure
2026-05-20 19:35:38 +00:00
rosstimothy d90f946b83 fix: Use pointer types for generated protobuf messages (#66777)
Converts non-pointer protobuf generated Go types to pointers
via `open2opaque rewrite -levels=red ./...`. This contributes to
https://github.com/gravitational/teleport/issues/66776 and was done
separately to isolate per proto file migrations in the future.
2026-05-20 18:28:42 +00:00
Brian Joerger 438461d024 Use ptybuffer in lib/srv tests (#66673)
* Remove wait group which could introduce a deadlock.

* Add regression test.

* Use ptybuffer in lib/srv tests.
2026-05-20 17:30:11 +00:00
Marco Dinis 9115a54ec2 Add support for enrolling uniform Azure VM Scale Sets (#66631) 2026-05-20 16:08:33 +00:00
dependabot[bot] 37431ede40 Bump rustls-webpki from 0.103.10 to 0.103.13 (#66149)
Bumps [rustls-webpki](https://github.com/rustls/webpki) from 0.103.10 to 0.103.13.
- [Release notes](https://github.com/rustls/webpki/releases)
- [Commits](https://github.com/rustls/webpki/compare/v/0.103.10...v/0.103.13)

---
updated-dependencies:
- dependency-name: rustls-webpki
  dependency-version: 0.103.13
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-20 15:28:49 +00:00
dependabot[bot] be5eca1031 Bump docker/setup-buildx-action in /.github/workflows (#66362)
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3.12.0 to 4.0.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/8d2750c68a42422c14e847fe6c8ac0403b4cbd6f...4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-version: 4.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-20 14:29:57 +00:00
dependabot[bot] 98fa638dcd Bump docker/login-action from 3.7.0 to 4.1.0 in /.github/workflows (#66363)
Bumps [docker/login-action](https://github.com/docker/login-action) from 3.7.0 to 4.1.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/c94ce9fb468520275223c153574b00df6fe4bcc9...4907a6ddec9925e35a0a9e82d7399ccc52663121)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-version: 4.1.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-20 14:29:33 +00:00
dependabot[bot] 565589cf4d Bump dorny/paths-filter from 3.0.2 to 4.0.1 in /.github/workflows (#66364)
Bumps [dorny/paths-filter](https://github.com/dorny/paths-filter) from 3.0.2 to 4.0.1.
- [Release notes](https://github.com/dorny/paths-filter/releases)
- [Changelog](https://github.com/dorny/paths-filter/blob/master/CHANGELOG.md)
- [Commits](https://github.com/dorny/paths-filter/compare/de90cc6fb38fc0963ad72b210f1f284cd68cea36...fbd0ab8f3e69293af611ebaee6363fc25e6d187d)

---
updated-dependencies:
- dependency-name: dorny/paths-filter
  dependency-version: 4.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-20 14:29:17 +00:00
Alan Parra 31074c2661 Calculate CA overrides on GenerateDatabaseCert (#66770)
* lib/subca includes override CA in chain

* Calculate CA overrides on GenerateDatabaseCert

* Propagate CA override details to DatabaseSessionStart events

* Fix breakage on ./lib/srv/db

* Include only known CAs on CACerts

* Tweak getDatabaseCACerts error wrapping message

* Add godoc to dbAuth.WithSession

* Review: Deterministic PEM ordering

* Review: Fix session.caOverrideDetails assertion

* Review: Fix comment typo

* Review: Explain lack of TrustChain/CAOverride on generateDatabaseServerCert

* Remove unused func

* Fix build and tests after rebase
2026-05-20 14:21:22 +00:00
Paul Gottschling 0fa2199639 Add CLI snippets to correspond to example configs (#66409)
* Add CLI snippets to correspond to example configs

Remove varying levels of friction from how-to guides by including
example CLI commands that corresond with configuration examples. This is
part of an effort to standardize docs guides on including CLI examples
in how-to guide "Step..." headings.

Edit the auditd guide to include the configuration step before the
starting Teleport step, which makes more sequential sense.

In some guides, add `tctl create -f` commands to correspond to YAML
resource examples. This gives users a command to copy/paste, and
potentially helps AI agents by including the relevant CLI command so there
is no need to look it up.

For some guides, there is an example configuration but no command to
apply it. Add example commands to restart a Teleport instance with the
new configuration.

In the Identity Activity Center guide, correct the docs links included
in the Prerequisits section to accommodate the example commands for
restarting the self-hosted Access Graph service.

The Azure, GCP, Kubernetes, and OCI join guides include relevant
commands, but in separate sections from the example configurations. This
change brings the example configs closer to the example commands to
apply them by moving what used to be separate `## Step...` H2s into one
H2 with instructions in an ordered list.

* Improve command instructions in how-to guides

Address **mmcallister** feedback

- Move an admonition to the appropriate place in the auditd.mdx guide.
  Connect it more explicitly to the instructions to start Teleport with
  systemd.
- Replace a placeholder value with a `Var`.
- Use sentence case in a heading.
- Use correct syntax in a `Step` heading.
2026-05-20 14:15:55 +00:00