---
# System prepended metadata

title: Features

---


# Features

* :sparkles: Enable REST endpoints if logging is on (#302)


* :sparkles: [TEP-0117] Tekton Results Logs (#301)
Add support for storing PipelineRun and TaskRun logs in persistent storage backends. Refer to the TEP-0117 for more details.


* :sparkles: Allow users to set a label selector to filter objects to be deleted (#295)



* :sparkles: Add the NO_AUTH option to the API server (#293)
This feature makes the built-in Kubernetes RBAC authorization check optional. In
larger clusters with high activity users may turn-off the RBAC authorization
check which improves the Results API's performance significantly.




* :sparkles: Add log level value to the api server config. (#285)
Add log level value to the api server config to make it this option visible in the config.


* :sparkles: logs storage service and RPC definitions (#277)
This feature separates the service definition of logs from the results in the Proto file. Also the logs service registration is made optional at the API server and the watcher can negotiate the availability of logs service through a reflection client and enable/disable sending logs.


* :sparkles: Audit Logging (#275)
Generate an access log for audit/compliance purposes.
Record request durations and responses for debugging.



* :sparkles: Hide sensitive information from pod logs. (#268)
Hiding DB/GORM logs.


* :sparkles: Enhance the support for reading Results and Records across multiple collections (#249)
Listing Results and Records without specifying the parent name. Use `-` to specify all namespaces.




* :sparkles: Enable high availability through Knative leader election support (#242)
Enable high availability by making Watcher controllers leader aware. This allows the two forms of leader election (standard and statefulset-based) provided by Knative to be easily used in the Watcher.
Add the threadiness flag to the Watcher binary. It allows users to tweak the number of workers allocated to process the controller's worker queue.
Add the tekton-results-watcher Service. This is mostly a convenience to users who want to enable the statefulset-based leader election mechanism.
Add ConfigMaps to customize logging, leader election and observability. The
config-leader-election ConfigMap allows users to tweak the leader election
mechanism. The other two ones make Results more homogeneous with Tekton Pipeline project.



* :sparkles: Allow configuration of API server through config file (#214)
This change allows for both config file options and env var options, where the env var will override the config file option if it is set.


* :sparkles: Add ppc64le support to Tekton results (#211)



* :sparkles: Added REST proxy over existing RPCs (#200)
These changes will allow UI developers to access results API over REST


* :sparkles: Allow setting SSLMODE for connections to database by env variable (#191)
Allow setting SSLMODE by setting environment variable DB_SSLMODE=verify-full

* :sparkles: Implement Record Summaries. (#164)
Record Summaries allow for clients to associate simplified information
to their Results. The purpose of this is to allow Results to capture
basic high level information such as status and start/end times without
needing to perform an additional API call.


<!-- Fill in deprecation notices when applicable
# Deprecation Notices

* :rotating_light: [Deprecation Notice Title]

[Detailed deprecation notice description] (#Number).

[Fill list here]
-->

<!-- Fill in backward incompatible changes when applicable
        # Backwards incompatible changes

        In current release:

        * :rotating_light: [Change Title]

        [Detailed change description] (#Number).

        [Fill list here]
-->

### Fixes

* :bug: Fix log streaming error. (#367)
Fix failing streaming logs, when log api is enabled.



* :bug: Fix go generate: Protobuf generation (#342)



* :bug: Restore gRPC logging (#328)
The initial implementation was unintentionally removed. Log gRPC authentication enabled/disabled for each call.


* :bug: API fix for REST access (#319)
Logs static path fragment added to differentiate between GetRecords and GetLogs in the generated HTTP mux, keeping the input field name same.
ListLogs request/response changed to print the whole log record (similar to ListRecords)



* :bug: Change the ClusterRoles for Logging (#317)
Added logs as resources in ClusterRole readonly, readwrite and admin.


* :bug: Fix insertion of child resources (#298)
All TaskRuns associated to a PipelineRun will be inserted properly into the Results API server. Before this, insertion was unstable.


* :bug: Fix isDone function, improve visibility as well as traceability and skip deleted keys (#294)
When configured to do so, Results will delete all completed objects regardless their status.


* :bug: Fix resource deletion and refactor watcher (#255)
If the completed_run_grace_period watcher flag is greater than 0, objects will be deleted upon completion once the configured grace period elapses.

* :bug: Fix the API server startup (#244)
Users will be able to install the API server from the code in the main branch.

* :bug: Read the parent name from the results annotation when it's set (#232)
When the result's name is set via the results.tekton.dev/result annotation, the watcher will use the parent defined in the annotation value rather than assuming the object's namespace as the parent.

* :bug: fix proto/v1alpha2 link (#210)

* :bug: Fix Postgres permission issue (#193)

* :bug: Full compare of data on a record update (#186)
Fix updatation of Record when Record's generation is equal to changed object's generation.



* :bug: Upgrade postgres to v1.3.4 (#185)
Previous postgres driver was throwing error:
`panic: runtime error: invalid memory address or nil pointer dereference`



* :bug: fix(cli): fix flag parsing (#171)



* :bug: fix(cli): fixes handling of flags (#156)
        
        
        

### Misc

* :hammer: Add pull request template (#348)

* :hammer: Make sa token and certificates path configurable. (#283)

* :hammer: Organize Results Kustomization with Components (#341)


* :hammer: Fix the select statement to leverage the existing records_by_name index (#338)


* :hammer: Upgrade Gorm models and make database auto-migration optional (#334)



* :hammer: Remove watcher reconciler unittest (#316)



* :hammer: Bump Gorm and related dependencies (#310)



* :hammer: Enable the e2e (integration) tests (#287)



* :hammer: Fix api config location and e2e tests (#274)



* :hammer: Fix E2E tests deployment (#270)



* :hammer: deployment with restricted pod policy  (#266)



* :hammer: Improve coverage of E2E tests (#253)



* :hammer: Vendoring and dependencies bump (#227)

* :hammer: Bump github.com/containerd/containerd from 1.6.14 to 1.6.18 (#357)


* :hammer: Bump golang.org/x/oauth2 from 0.3.0 to 0.5.0 (#350)



* :hammer: Add title to fix display of Results on docs landing page (#349)



* :hammer: Bump google.golang.org/grpc from 1.51.0 to 1.53.0 (#347)



* :hammer: Fixing the install script for mac M1 (#335)



* :hammer: Bump github.com/containerd/containerd from 1.5.13 to 1.5.16 (#327)



* :hammer: Bump google.golang.org/api from 0.103.0 to 0.108.0 (#324)



* :hammer: Add myself to the OWNERS file (#320)



* :hammer: Bump github.com/jonboulle/clockwork from 0.2.3 to 0.3.0 (#306)



* :hammer: Bump github.com/spf13/viper from 1.12.0 to 1.14.0 (#297)



* :hammer: Bump go.uber.org/zap from 1.22.0 to 1.24.0 (#288)



* :hammer: Bump go.uber.org/automaxprocs from 1.4.0 to 1.5.1 (#281)



* :hammer: Bump go.uber.org/zap from 1.22.0 to 1.24.0 (#279)



* :hammer: add s390x arch support (#264)



* :hammer: Bump github.com/prometheus/client_golang from 1.11.1 to 1.14.0 (#262)



* :hammer: fix misspelled word (#245)



* :hammer: Delete release.yaml (#236)



* :hammer: Add adambkaplan and vdemeester as Results owners (#226)



* :hammer: Remove @sbwsg -- account deleted. (#222)



* :hammer: Bump google.golang.org/protobuf from 1.28.0 to 1.28.1 (#218)



* :hammer: Bump go.uber.org/zap from 1.19.1 to 1.22.0 (#215)



* :hammer: Remove wlynch from active reviewers. (#213)



* :hammer: Bump gorm.io/driver/sqlite from 1.1.4 to 1.3.6 (#205)



* :hammer: Bump gorm.io/driver/mysql from 1.0.3 to 1.3.3 (#178)



* :hammer: Bump gorm.io/driver/postgres from 1.1.0 to 1.3.3 (#177)



* :hammer: Bump google.golang.org/api from 0.60.0 to 0.74.0 (#175)



* :hammer: Bump github.com/jonboulle/clockwork from 0.2.2 to 0.2.3 (#174)



* :hammer: Bump google.golang.org/protobuf from 1.27.1 to 1.28.0 (#173)



* :hammer: Add dependabot config. (#168)



* :hammer: Add results-info ConfigMap and supporting roles (#167)



* :hammer: watcher: Add back missing reconciler config values. (#165)



* :hammer: Add Uber/Automaxprocs to autoset GOMAXPROCS to CPU quota (#163)



* :hammer: configure postgres to use the volume mount for data persistence (#153)



* :hammer: tkn-results: Add client provider auth. (#149)



* :hammer: Add RecordSummary type. (#148)



* :hammer: Use kustomize labels instead of commonLabels. (#146)

* :hammer: Refactor reconcilers to use Object interfaces. (#157)

* :hammer: e2e: Update client-go calls to use ctx based signatures. (#160)
Adds permament flags
Moves handling of flags to cmd


### Docs

* :book: Fix the image and response info in docs (#353)



* :book: Fix DEVELOPMENT documentation (#315)



* :book: fix broken link Any.type (#212)



* :book: update github links (#208)


* :book: DEVELOPMENT.md: Fix kubectl link (#159)


* :book: fix: add debug serviceaccount steps to DEVELOPMENT.md (#154)


* :book: Docs: Fix front-matter formatting. (#144)