6 Commits
Author SHA1 Message Date
Maxim d6ae3d6e36 types: add ResourcePrincipalSet to unified resources protos and types (#68879)
- Add new ResourcePrincipalSet message and a Principals field on
  PaginatedResource to carry resources' principals per-dimension, split
  between granted/requestable values. The flat Logins field is kept for
  backwards-compatibility with older clients.
- Each dimension can attribute its values to the granting role(s) via
  the by_role field.
- Add RESOURCE_CONSTRAINTS_SSH_V1 component feature ID as well.
  Constraint support is advertised per-kind going forward to ensure a
  gate is only satisfied by components able to parse and enforce that
  kind; SSH is the first per-kind ID while AWS Console app resources
  stay using RESOURCE_CONSTRAINTS_V1.
2026-08-06 23:44:07 +00:00
Maxim aad99a49db fix: Compute features for agentless AppServer resources (#67489)
Agentless resources (integration app servers, or tctl/gRPC-created) have
no agent to heartbeat ComponentFeatures to presence/the unifiedresources
aggregation layer. Compute from resource type instead of reading the
spec field for these.
2026-06-05 22:40:07 +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
Maxim 867b48cb61 [Access Requests] Support SSH node resource constraints (#64403)
* feat: support SSH node resource constraints in access requests

- Allow KindNode with constraints in ValidateAccessRequest, add SSH
  constraint matching via buildStringConstraintTransform
- Surface per-login granted/requestable metadata in MakeServer and
  advertise ResourceConstraintsV1 for all SSH servers

* test: add tests for SSH node resource constraints

- Unit tests for WithConstraints, MatcherFromConstraints, and
  ValidateAccessRequest with SSH constraint kinds
- MakeServer tests for granted-vs-requestable login details

* fix: Filter sshLogins via client.CalculateSSHLogins when IncludeRequestable!=true

* refactor: apply suggestions from code review

* refactor: extract granted/requestable principal calcs to web util file

* refactor: use `[]ComponentFeatureID` vs `[]int` for `Server.SupportedFeatureIDs`

* fix: Role pruning at request creation for constrained resources

* refactor: Add Config struct for MakeServer

- Use Config struct vs passing in individual params
- Address misc other code review feedback
2026-04-01 21:31:16 +00:00
Maxim 7d2d2a891d Access Requests: Add Resource-Scoped Constraints (#60123)
* feat: Extend `AWSRole` struct w/ `RequiresRequest`

- Differentiate between already-granted vs. requestable AWSRoles when
  including requestable resources in `clusterUnifiedResourcesGet`
  req

* feat: Implement Resource Constraints support for Proxy, Auth

* fixup: Fix tests

* test: Add tests for resourceaccessid-related helpers

* fixup: Address code review feedback

* test: Update identity/events tests for new `ResourceAccessID` fields

* fixup: Expand/improve godocs/comments for sentinel ResourceID handling

* fixup: Address code review feedback

* feat: Conv ResourceID->ResourceAccessID at cert decoding

- Convert ResourceIDs present on certs to ResourceAccessIDs at decoding
  time, rather than at each callsite. Update tests/usages of tlsca/sshca
  Identities to reflect this.
2026-01-27 14:51:52 +00:00
Maxim e76216ca6a Add Component Feature Advertisement (#61647)
* types: Add `ComponentFeatures` proto types

* feat: Add handling for `ComponentFeatures` to Auth, Proxy, AppServer

- Impl `ComponentFeatures` for Auth, Proxy, AppServer
- Add helper funcs
- Add/update tests
- Update WebUI types

* docs: Update operator crd manifests, tf docs
2025-12-19 19:06:39 +00:00