Files
Tiago Silva 60a7e68e07 sessionsearch[9]: add session search proto definitions for Auth and Access Graph (#64711)
Adds two proto files that together define the session summary search
feature.

  proto/accessgraph/v1/session_search.proto — internal, Auth->Access Graph
    Used exclusively by the Auth server. Defines SessionRecordingService
    with two RPCs:
      - SearchSessionSummaries: a bidirectional streaming RPC the Auth
        server uses to paginate through session summaries stored in the
        Access Graph. The Auth server sends search_params on the first
        message, receives batches of SessionSummary results each
        terminated by a PageComplete, and sends FetchMore to advance pages.
        Each SessionSummary includes session_end_event — the raw audit
        event the Auth server evaluates against the requesting user's RBAC
        permissions before deciding whether to forward the result to client.
      - StoreSessionSummary: used by the summarizer pipeline to persist
        session summaries and their vector embeddings to the Access Graph.

  api/proto/teleport/sessionsearch/v1/session_search.proto — public, Client->Auth
    Used by Teleport clients (tsh, web UI handler, etc.). Defines
    SessionSearchService.SearchSessionSummaries as a unary-request /
    server-streaming RPC. The Auth server implements this service: it
    receives the client's filter criteria, fans out to the Access Graph
    via the internal bidi stream above (handling all pagination
    internally), filters each result using session_end_event, and streams
    only the permitted SessionSummary results back. Clients see a single
    continuous stream with no pagination mechanics exposed to them.

Signed-off-by: Tiago Silva <tiago.silva@goteleport.com>
2026-04-13 13:27:12 +00:00

109 lines
4.1 KiB
YAML

version: v2
modules:
- path: api/proto
- path: proto
deps:
# gogo/protobuf v1.3.2, keep in sync with build.assets/versions.mk.
- buf.build/gogo/protobuf:b03c65ea87cdc3521ede29f62fe3ce239267c1bc
- buf.build/googleapis/googleapis:beb34b4050abfcfff72ff5cc6a28f0afa4043ce0
lint:
use:
- STANDARD
- COMMENT_ENUM
- COMMENT_MESSAGE
- COMMENT_RPC
- COMMENT_SERVICE
- PACKAGE_NO_IMPORT_CYCLE
- PAGINATION_REQUIRED
- UNARY_RPC
except:
- FIELD_NOT_REQUIRED
- RPC_REQUEST_RESPONSE_UNIQUE
- RPC_RESPONSE_STANDARD_NAME
ignore:
- api/proto/teleport/legacy/client/proto/authservice.proto
- api/proto/teleport/legacy/client/proto/certs.proto
- api/proto/teleport/legacy/client/proto/event.proto
- api/proto/teleport/legacy/client/proto/proxyservice.proto
- api/proto/teleport/legacy/types/events/athena.proto
- api/proto/teleport/legacy/types/events/events.proto
- api/proto/teleport/legacy/types/types.proto
- api/proto/teleport/legacy/types/metadata.proto
- api/proto/teleport/legacy/types/mfa_device.proto
- api/proto/teleport/legacy/types/wrappers/wrappers.proto
- proto/teleport/lib/multiplexer/test/ping.proto
- proto/teleport/lib/web/terminal/envelope.proto
ignore_only:
COMMENT_MESSAGE:
- proto/prehog
- proto/teleport/lib/teleterm/v1/access_request.proto
- proto/teleport/lib/teleterm/v1/app.proto
- proto/teleport/lib/teleterm/v1/auth_settings.proto
- proto/teleport/lib/teleterm/v1/cluster.proto
- proto/teleport/lib/teleterm/v1/database.proto
- proto/teleport/lib/teleterm/v1/gateway.proto
- proto/teleport/lib/teleterm/v1/kube.proto
- proto/teleport/lib/teleterm/v1/label.proto
- proto/teleport/lib/teleterm/v1/server.proto
- proto/teleport/lib/teleterm/v1/service.proto
- proto/teleport/lib/teleterm/v1/usage_events.proto
COMMENT_RPC:
- proto/prehog
COMMENT_SERVICE:
- proto/prehog
FIELD_LOWER_SNAKE_CASE:
- api/proto/teleport/legacy/client/proto/inventory.proto
- api/proto/teleport/legacy/types/device.proto
- api/proto/teleport/legacy/types/resources.proto
PACKAGE_DIRECTORY_MATCH:
- api/proto/teleport/legacy/client/proto/joinservice.proto
- api/proto/teleport/legacy/types/device.proto
- api/proto/teleport/legacy/types/trusted_device_requirement.proto
- api/proto/teleport/legacy/types/resources.proto
- api/proto/teleport/legacy/types/webauthn/webauthn.proto
PACKAGE_VERSION_SUFFIX:
- api/proto/teleport/legacy/client/proto/joinservice.proto
- api/proto/teleport/legacy/types/device.proto
- api/proto/teleport/legacy/types/trusted_device_requirement.proto
- api/proto/teleport/legacy/types/resources.proto
- api/proto/teleport/legacy/types/webauthn/webauthn.proto
RPC_REQUEST_STANDARD_NAME:
- proto/teleport/lib/teleterm/v1/service.proto
UNARY_RPC:
- api/proto/teleport/auditlog/v1/auditlog.proto
- api/proto/teleport/devicetrust/v1/devicetrust_service.proto
- api/proto/teleport/legacy/client/proto/joinservice.proto
- api/proto/teleport/transport/v1/transport_service.proto
- api/proto/teleport/access_graph/v1/secrets_service.proto
- api/proto/teleport/workloadidentity/v1/revocation_service.proto
- proto/accessgraph/v1alpha/access_graph_service.proto
- proto/teleport/lib/teleterm/v1/service.proto
- api/proto/teleport/recordingmetadata/v1/recordingmetadata_service.proto
- api/proto/teleport/join/v1/joinservice.proto
- api/proto/teleport/sessionsearch/v1/session_search.proto
- proto/teleport/web/teleterm/ptyhost/v1/pty_host_service.proto
- proto/accessgraph/v1/session_search.proto
breaking:
use:
- ENUM_VALUE_NO_DELETE
- WIRE_JSON
ignore:
# TODO(codingllama): Remove ignore once the PDP API is stable.
- api/proto/teleport/decision/v1alpha1
# TODO(eriktate): Remove ignore once the new scopes API is stable.
- api/proto/teleport/scopes
plugins:
- plugin:
- env
- GOWORK=off
- go
- -C
- ./build.assets/tooling
- run
- ./cmd/buf-plugin-linters