Commit Graph
25841 Commits
Author SHA1 Message Date
rosstimothy 813a507d95 Stop comparing AccessListMembers with go-cmp (#64542)
Replaces `(AccessListMember) IsEqual` with a local goderived
implementation in local/services. All reconcilers
have been previously updated to specify their own comparison
function to prevent this change from breaking enterprise in
https://github.com/gravitational/teleport.e/pull/8233.

IsEqual was not updated to use the goderived implementation because
different use cases have different ideas about equality. A single
API to support them all is untenable and confusing. As a result the
callers are now responsible for adhering to their own equality
definitions. If in the future another use case arises that requires
full equality IsEqual may be reconsidered.
2026-03-16 18:50:02 +00:00
Grzegorz Zdunek ce254e8e3b Connect: run in E2E tests (#64614)
* Move `tests` to `tests/web`

* Enable building Connect

* Prepare Playwright test setup

* Add `browse` mode

* Replace `foo-` with `connect-e2e-test-`

* Merge if statements together

* `--browse-web` -> `--browse`

* Build Connect if requested path is `tests`

* Make imports more readable

* Attach logs to failed tests

* Link to docs about `use`

* Include "." in slashPath comparison

* Properly clean up app when `launchApp` throws before returning async disposer
2026-03-16 18:42:53 +00:00
Luke Okraszewski 8cd0378922 [firestore] add database_id for test cfg (#64684)
Added a new env var `TELEPORT_FIRESTORE_TEST_DATABASE` used
to configure the database ID to use in the tests. This is useful
as when unspecified this defaults to `(default)` which may not
be in the ideal region.
2026-03-16 17:42:47 +00:00
Grzegorz Zdunek 56b38da8dc Connect: prepare for E2E testing (#64613)
* Allow storing `home`, `userData`, and `sessionData` under custom path

* Optimize `getRuntimeSettings` loading sequence

* Enable mocking webauthn in tests

* Rename `webauthnmock_off.go` to `webauthnmock_nop.go`
2026-03-16 15:55:02 +00:00
Grzegorz Zdunek 8ad0912b30 Fix flaky test in profileWatcher.test.ts (#64569)
* Fix flaky test in `profileWatcher.test.ts`

* Use virtual watcher in debounce test
2026-03-16 15:10:29 +00:00
Hugo Shaka d9c21328d3 Fix versionning for tbot-spiffe-daemon-set and teleport-kube-agent-updater chart (#64681)
* Fix versionning for tbot-spiffe-daemon-set and teleport-kube-agent-updater charts

* Re-render chart versions

* Update test snapshots
2026-03-16 14:59:45 +00:00
Erik Margetis 692d77abea docs: Webauthn Default 2FA for Cloud (#64186)
* docs update

* simplifying language

* updating wording
2026-03-16 14:28:15 +00:00
Paul Gottschling 1534404eca Add a bot_instance reference page (#62681)
* Add a `bot_instance` reference page

Add `BotInstance` to the resource reference generator config and
generate the page. Add a missing comment on the `UpdaterStatus`
declaration to fill in an otherwise empty section.

Make minor edits to protobuf message types to fit docs messaging
conventions.

* Add a custom intro to the bot_instance reference

Respond to **strideynet** feedback.

Indicate that the resource is read only.
2026-03-16 13:11:59 +00:00
Paul Gottschling 7e245bd716 Add generated note to CLI reference docs (#64466)
Make it clear in generated CLI reference docs that they were generated
so authors do not attempt to edit them directly. Edit the template for
generated CLI docs to add a message.

Regenerate CLI references to include the message. This also updates the
references.

Note that the CLI reference doc generation is not yet fully idempotent,
so we cannot enforce generation.

To pass linting, edit the `teleport` CLI to use "Amazon Bedrock" (the
correct product name) in an error message instead of "AWS Bedrock".
2026-03-16 13:09:55 +00:00
Paul Gottschling 1351fc3fba Edit Automatic Reviews guide prerequisites (#64562)
Fixes #59649

Explain that the guide requires CRUDL permissions on
`access_monitoring_rule` resources. Also include some minor edits to the
section: make all bullets noun phrases so all items in the list have the
same grammatical structure. Fix an incorrect use of "setup" as a verb.
2026-03-16 13:06:29 +00:00
Steven Martin cb0d95cfa2 Remove repeated words in cli command descriptions (#64654)
* Remove repeated words in cli command descriptions

* Remove duplicate description word for tctl sso configure
2026-03-16 12:57:36 +00:00
Steven Martin 0addf80a59 web: correct access list error message (#64657) 2026-03-16 11:13:08 +00:00
Marco Dinis c70c4dab26 Docs: remove virtualMachines/read required permission for Azure Server Discovery (#64471)
* Docs: remove vmread req for Azure Server Discovery

* grammar
2026-03-16 10:00:05 +00:00
Krzysztof Skrzętnicki af1acbf166 Manual test plan changes -- database access (#64610)
* Update test plan for DB Access

* Trim repetitive checks involving trusted cluster

* Narrow down trusted cluster + db test plan, add Oracle
2026-03-16 07:41:47 +00:00
Steven Martin a1dddaefe3 docs: minor corrections and remove duplicate words (#64655)
* docs: correct phrasing and remove duplicate words

* docs: remove extra to in backends doc

* docs: remove duplicate words

* docs: fix mcp --client-config parameter

* docs: grammer fixes

* docs: grammar fixes

* docs: fix grammer in mwi docs

* docs: fix grammer and references

* docs: fix grammer and references

* docs: fix e.g. updates
2026-03-15 20:23:56 +00:00
Edoardo SpadoliniandAlan Parra c3632c9456 Replace the endpoint-specific rate limit for CreateAuthenticateChallenge with a custom rate limiter for unauthenticated requests (#64559)
* Add a limiter.RateLimiter helper for peer addresses

* Add custom rate limit for CreateAuthenticateChallenge

* Remove endpoint-based rate limit for CreateAuthenticateChallenge

* Tweak existing rate limit test to use synctest

* Hide rate limit details from error response

* Make the limiter configurable for TestAdminActionMFA

* Use a regular require.Greater check instead of a static assertion

* Update lib/auth/grpcserver_test.go

Co-authored-by: Alan Parra <[email protected]>

* Treat a nil request as a ContextUser request

* Undo changes to make the limiter configurable

* fix TestCustomRateLimiting

---------

Co-authored-by: Alan Parra <[email protected]>
2026-03-15 19:36:02 +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
Pawel Kopiczko d3dd538468 Docs: Fix outdated Okta groups statement setup (#64553)
* Docs: Fix outdated Okta groups statement setup

* Re-add username attribute config
2026-03-13 22:28:50 +00:00
charlestp 4c18fb78a2 Instrumentation of Discovery usage events for the new IAC flow (#64322) 2026-03-13 19:04:58 +00:00
Matt Smith 4424d04dc0 Release 19.0.0-prealpha.2 (#64631) api/v19.0.0-prealpha.2 v19.0.0-prealpha.2 2026-03-13 17:56:57 +00:00
Edoardo Spadolini 21a0f9f3e7 Don't suggest the use of resource headers in parsers (#64601) 2026-03-13 17:44:26 +00:00
Edoardo Spadolini 83fc3ac219 Add relay service section to the test plan (#64593) 2026-03-13 17:44:04 +00:00
nixpig 0ed705a9b9 Add event stream support for SAML connector (#64564)
* Add backend event stream support for SAML connector

* Add test for SAML connector watcher

* Reference resource consistently
2026-03-13 17:16:45 +00:00
Paul Gottschling e64eb70c9d Remove SSH Service example from ECS install guide (#64609)
Fixes #60008

Explain that the Teleport ECS service shown in the guide runs a
distroless image that does not include a shell. Include the Teleport
Application Service in the base configuration, rather than the SSH
Service.
2026-03-13 17:00:20 +00:00
Nic Klaassen afe50a783d fix: instance rejoin against legacy join server (#64599)
Fixes #64598

This commit fixes an issue with Instance identity "self-healing".
When starting up with additional enabled services which have no
corresponding role in the current Instance identity, the node attempts a
new cluster join request with the currently configured join token to get
an Instance identity with all required roles.

There's currently a bug if:
- the node is new enough to attempt joining via the new join service and
  fall back to the legacy join service
- the Auth is old enough it doesn't support the new join service
- the token used for the rejoin includes all of the original instance
  cert roles and the newly required roles

The bug exists because `state.IdentityID.HostUUID` is overloaded. When
originally joining, it is expected to be populated with a plain UUID.
When it is parsed from an existing certificate, it includes a suffix of
`.<clustername>`. So when the rejoin attempt passes in the current
`IdentityID` from the existing identity, it includes the clustername
suffix, and then when rejoining auth adds the suffix again, and you end
up with a double suffix.

This doesn't affect joining via the new join service because the node
doesn't explicitly pass its desired HostUUID at all, Auth extracts it
from the authenticated identity used for the rejoin request.

The fix is to call `state.IdentityID.HostID()` which strips the
clustername suffix. This will fix new 18.7.x+ nodes rejoining to older
18.2.10- auth servers.

Added test coverage for four cases:
1. rejoing with new join service with token including all required roles
2. rejoing with new join service with token including only the newly
  required role
3. rejoing with legacy join service with token including all required roles
4. rejoing with legacy join service with token including only the newly
  required role

The bug currently effects case 3, all others still work.

changelog: fixed a bug affecting nodes on v18.3.0+ rejoining with new system roles to clusters with Auth services on v18.2.10-
2026-03-13 16:54:53 +00:00
Alan Parra c7a98a6c72 Add Sub CA event codes (#64452)
* Add CertAuthOverrideEvent to "OneOf"

* make grpc

* Add Sub CA event codes

* Trim CertAuthorityOverrideEvent
2026-03-13 16:50:09 +00:00
Michael ef67bb2edf Update e (#64625) 2026-03-13 16:48:26 +00:00
Alan Parra 1925fec14b Refactor subca validation to lib/subca (#64563)
* Copy validation functions to parsed.go

* Add parsed types and adjust code

* Copy tests to parsed_test.go

* Adjust tests, test parsed resource

* Use lib/subca validation in storage, simplify testing
2026-03-13 16:45:22 +00:00
dependabot[bot]andRafał Cieślak 1932880650 Bump svgo from 4.0.0 to 4.0.1, tar from 7.5.10 to 7.5.11 (#64618)
* Bump svgo from 4.0.0 to 4.0.1

Bumps [svgo](https://github.com/svg/svgo) from 4.0.0 to 4.0.1.
- [Release notes](https://github.com/svg/svgo/releases)
- [Commits](https://github.com/svg/svgo/compare/v4.0.0...v4.0.1)

---
updated-dependencies:
- dependency-name: svgo
  dependency-version: 4.0.1
  dependency-type: direct:development
...

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

* Update tar to 7.5.11

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Rafał Cieślak <[email protected]>
2026-03-13 15:43:47 +00:00
Paul Gottschling 8750a269f1 Add Access Request permission troubleshooting note (#63291)
* Add Access Request permission troubleshooting note

Closes #48955

Add a note that Access Request plugin identities need permissions to
list and read the resources included in an Access Request. Include this
information in a standard Troubleshooting section at the end of each
Access Request plugin guide.

* Include example in Access Request troubleshooting

Show how to add the required API permissions for a resource mentioned in
the error message.
2026-03-13 15:37:14 +00:00
dependabot[bot]andRafał Cieślak 576412fb0d Update pnpm, bump the electron group with 4 updates (#64148)
* Bump the electron group with 4 updates

Bumps the electron group with 4 updates: [node-pty](https://github.com/microsoft/node-pty), [electron](https://github.com/electron/electron), [electron-builder](https://github.com/electron-userland/electron-builder/tree/HEAD/packages/electron-builder) and [electron-updater](https://github.com/electron-userland/electron-builder/tree/HEAD/packages/electron-updater).


Updates `node-pty` from 1.2.0-beta.10 to 1.2.0-beta.11
- [Release notes](https://github.com/microsoft/node-pty/releases)
- [Commits](https://github.com/microsoft/node-pty/compare/v1.2.0-beta.10...v1.2.0-beta.11)

Updates `electron` from 40.1.0 to 40.6.1
- [Release notes](https://github.com/electron/electron/releases)
- [Commits](https://github.com/electron/electron/compare/v40.1.0...v40.6.1)

Updates `electron-builder` from 26.6.0 to 26.8.1
- [Release notes](https://github.com/electron-userland/electron-builder/releases)
- [Changelog](https://github.com/electron-userland/electron-builder/blob/master/packages/electron-builder/CHANGELOG.md)
- [Commits](https://github.com/electron-userland/electron-builder/commits/[email protected]/packages/electron-builder)

Updates `electron-updater` from 6.7.3 to 6.8.3
- [Release notes](https://github.com/electron-userland/electron-builder/releases)
- [Changelog](https://github.com/electron-userland/electron-builder/blob/master/packages/electron-updater/CHANGELOG.md)
- [Commits](https://github.com/electron-userland/electron-builder/commits/[email protected]/packages/electron-updater)

---
updated-dependencies:
- dependency-name: node-pty
  dependency-version: 1.2.0-beta.11
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: electron
- dependency-name: electron
  dependency-version: 40.6.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: electron
- dependency-name: electron-builder
  dependency-version: 26.8.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: electron
- dependency-name: electron-updater
  dependency-version: 6.8.3
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: electron
...

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

* Revert unnecessary updates

* Update Electron to 40.7.0

* Upgrade electron-builder to 26.8.2

* Upgrade electron to 40.8.0

* Update pnpm to 10.32.0

* after-install: Fix stdio redirects in update-alternatives

This mirrors electron-userland/electron-builder@ec9e2dbbd8.

* Update electron to 41.0.0

* Keep Electron at 40.1.0

* Update pnpm to 10.32.1

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Rafał Cieślak <[email protected]>
2026-03-13 15:16:17 +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
Paul Gottschling 411638a816 Add diagram to SSH Getting Started guide (#63995)
Closes #61573

Add a diagram showing how the components introduced in the How it Works
section relate to one another. Use the newly enabled MermaidJS plugin
for Docusaurus along with our allowed icon sets (which include a custom
Teleport icon). See gravitational/docs-website#552.
2026-03-13 14:23:54 +00:00
Ryan Clark c1387457fa Fix pnpm lint-fix (#64607) 2026-03-13 13:48:37 +00:00
Matt Smith 53aeefd389 Release 19.0.0-prealpha.1 (#64603)
* Release 19.0.0-prealpha.1

* Update changelog
api/v19.0.0-prealpha.1 v19.0.0-prealpha.1
2026-03-13 13:34:56 +00:00
rosstimothy 433da078e6 Add modules.Modules to Auth config (#64420)
The modules are not yet consumed, and default to modules.GetModules(),
if not provided. Their existence is meant to bridge the transitional
period without breaking enterprise. Once this lands, enterprise will
be updated to both inject the modules to Auth and specify them via either
modules.SetModules or modulestest.SetTestModules. This will ensure
that enterprise does not break when Auth exclusively consumes the
dependency injected modules over the global modules. After the
enterprise update lands a follow up will convert Auth.
2026-03-13 12:44:13 +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
williamong-tel e444c979ca add k8s operator support for scoped tokens (#64034)
Add scoped tokens to k8s operator

address linter

Update crds

Add updated contributing.md and missing rbac for scoped tokens

Update CONTRIBUTING.md

Update zz_generated.deepcopy.go

Update Makefile

Update CONTRIBUTING.md

Update config.yaml

Add scope to root level crd instead of part of spec. Add OverrideVersionKind and regenerate crds and generated files

Update scopedtoken_types.go

Address incorrect immutable labels mapping

Update resources-teleport-dev-scopedtokensv1.mdx

Update scopedtoken_controller.go

Update schemagen.go

Update resources-teleport-dev-scopedtokensv1.mdx
2026-03-13 02:43:47 +00:00
Tim Buckley ce1d73dec8 Refactor bound keypair join client interface (#64235)
* Refactor bound keypair join client interface

This refactors the bound keypair join client interface to reduce the
work needed for clients to manage local bound keypair state. Most
state management, aside from the initial load (from storage, static
keys, etc) is now handled internally by the join client.

The client state is now passed directly to the join client through its
params, after which the joining client no longer needs to perform any
join method-specific logic once joining completes.

This is part of adding support for bound keypair for standard agents
(#59617). Agents make several different calls to the joinclient for
different joining and rejoining scenarios. This would've required a
lot of duplicate code to manage the update/store calls, and not all
callsites lent well to additional post-join steps. This refactor
eliminates that entirely and simplifies the interface for all clients,
including `tbot`.

* Fix code review suggestions
2026-03-13 00:53:56 +00:00
Tim Buckley 5a22c83420 MWI: Add certificate expiry check leeway for tbot (#64293)
* MWI: Add certificate expiry check leeway for app tunnel service

This adds some leeway to the application-tunnel service's certificate
expiration check.

For context, the app tunnel service does not follow Machine ID's
usual certificate renewal cycle and instead opts to renew
certificates just-in-time before completing a request if the
certificate has expired per the local clock.

Unfortunately, the local clock is not always accurate, and if the
certificate or underlying app session has already expired from the
server's perspective, client requests can still fail until the local
clock catches up and the certificate is refreshed.

To mitigate this, this change adds a `leeway` parameter to the
service, configurable via YAML, with a default value of 1m. This is
added to the current time when certificate validity is checked. This
means that, in the worst case, certificates will be refreshed to early
rather than too late.

See also: #64284

* Remove duration pointer and ignore leeway if greater than cert TTL

* Make tbot's leeway parameter global

This makes the leeway parameter global, and additionally uses it in
the main renewal loop (for the expired bot internal identity
detection) and in the database tunnel service.

Also adds some test coverage for app tunnel cert renewals.

* Tweak doc comment for clarity

* Remove unused code

* Ignore excessive leeway values in identity service

* Honor effective lifetime in leeway check

* Fix leeway var reference

* Update golden tests

* Codex reviewer appeasement

Factor in actual cert TTL in the leeway cap.

* Fix failing test

* Fix imports
2026-03-13 00:47:15 +00:00
Michael 7a07204b46 Update e (#64589) 2026-03-12 23:06:50 +00:00
williamong-tel 8f9694be94 Fix operator map generation (#64459)
* fix mapping gen

make crd

Update schemagen.go

update format

fix docs

update map key

fix

fix formatting

fix formatting

Update format.go

Update format.go

* Update resources-teleport-dev-accesslists.mdx

* add back nullable

fix nullable

* Add schema test

Update schema_test.go

Update schema_test.go
2026-03-12 22:35:09 +00:00
Michael 6298fe25b4 Upgrade to react-router v7 (#63496) 2026-03-12 21:48:41 +00:00
Erik Margetis c75ea42d36 Add access graph entitlement (#64340)
* adding access graph entitlement

* removing logic change
2026-03-12 21:25:12 +00:00
rosstimothy eb59c3b204 Stop comparing Users with go-cmp (#64127)
`(UserV2) IsEqual` was added with a goderived implementation to
remove go-cmp comparisons outside test files. This was not as
straightforward as other resources due to a goderive not being able
to handle interfaces. Due to the Device oneof in LocalAuth goderive
would silently fail with a partially generated equality function for
users.

The TeleportEqual derive plugin was updated to ignore the devices
field. They are manually validated in `(UserV2) IsEqual` if all other
user fields match. `mfaDevicesEqual` manually validates device fields
and relies on goderived quality functions for each concrete device type.
2026-03-12 20:45:35 +00:00
ForrestandMarco Dinis 5ab0f77b02 scope pin pruning (#63944)
* scope pin pruning

* Update lib/scopes/pinning/pinning.go

Co-authored-by: Marco Dinis <[email protected]>

---------

Co-authored-by: Marco Dinis <[email protected]>
2026-03-12 20:39:37 +00:00
williamong-tel fee0426568 Add scope aware profiles after tsh login (#64233)
* Add scope aware profiles after tsh login

Update tsh.go

fix some minor issues

Update client_store_test.go

fix rebase

Update client_store.go

Add scope changing feature

Update tsh.go

Update tsh.go

* Remove "none" descoping

Update tsh.go

clean up

* nil the scope pin when "" is in the profile instead of scope pin ""
2026-03-12 19:20:53 +00:00
charlestp 5be00e4f21 Refactor Label status cases to use Status component instead (#64190) 2026-03-12 17:18:51 +00:00
Kevin 8180bff242 [docs] Update Event Handler guides with Kubernetes Operator opt-in (#63109)
* Update docs for Event Handler chart Operator opt-in

* Address feedback

* Edit Splunk guide with new rework

* Address feedback
2026-03-12 17:16:20 +00:00
dependabot[bot]andMatt Smith c05b3bb94b Bump actions/download-artifact from 6 to 8 in /.github/workflows (#64149)
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 6 to 8.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v6...v8)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: '8'
  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>
Co-authored-by: Matt Smith <[email protected]>
2026-03-12 16:58:54 +00:00