diff --git a/changelog/index.mdx b/changelog/index.mdx
index 1a5dc38e..ce993c6e 100644
--- a/changelog/index.mdx
+++ b/changelog/index.mdx
@@ -4,6 +4,51 @@ description: "Release notes for Kosli products."
rss: true
---
+
+
+## New features
+
+- **`kosli_flow` resource and data source** — manage Kosli [flows](/getting_started/flows) as Terraform resources. Define name, description, and YAML template inline or via `file()`. The data source lets you query existing flows and reuse their templates. See the [resource](/terraform-reference/resources/flow) and [data source](/terraform-reference/data-sources/flow) reference.
+
+[View on GitHub](https://github.com/kosli-dev/terraform-provider-kosli/releases/tag/v0.5.0)
+
+
+
+
+
+## New features
+
+- **`kosli evaluate input`** — evaluate a local JSON file (or stdin) against a Rego policy with no API dependency. Enables local policy development and fast iteration without a running Kosli server. See the [evaluate input](/client_reference/kosli_evaluate_input) reference.
+- **`--params` flag for policy evaluation** — pass configuration data (thresholds, expected counts, etc.) to Rego policies via `--params` on [`kosli evaluate trail`](/client_reference/kosli_evaluate_trail), [`kosli evaluate trails`](/client_reference/kosli_evaluate_trails), and [`kosli evaluate input`](/client_reference/kosli_evaluate_input). Accepts inline JSON or a file reference. Parameters are available as `data.params` in the policy.
+- **npm installation** — the Kosli CLI is now available as an npm package (`@kosli/cli`), making it easy to install in JavaScript/Node.js toolchains.
+
+## Bug fixes
+
+- Fixed Docker API version negotiation — the CLI now automatically negotiates the Docker API version with the host daemon, preventing compatibility errors after SDK upgrades.
+- Fixed AWS API rate limiting — snapshot commands for ECS, S3, and Lambda environments now use adaptive retry with up to 10 attempts, preventing failures under heavy API load.
+- Fixed git HEAD resolution in linked worktrees.
+
+[View on GitHub](https://github.com/kosli-dev/cli/releases/tag/v2.15.1)
+
+
+
+
+
+## New features
+
+- **Deployment list** — the repository releases page now includes a deployments tab showing a paginated list of deployments with artifact details, commit links, replaced artifacts, and compliance status.
+- **Filter deployments by environment** — filter the deployment list and metrics by specific environments on the repository releases page.
+
+## Updates
+
+- Redesigned the repository run page with improved layout, hover states, and rich tooltips showing artifact fingerprints, snapshot references, and commit details.
+
+## Bug fixes
+
+- Fixed an error when viewing deployment details for artifacts with a missing replaced snapshot index.
+
+
+
## Updates
diff --git a/docs.json b/docs.json
index f06e0904..4a354d79 100644
--- a/docs.json
+++ b/docs.json
@@ -498,6 +498,7 @@
"pages": [
"terraform-reference/resources/environment",
"terraform-reference/resources/logical_environment",
+ "terraform-reference/resources/flow",
"terraform-reference/resources/custom_attestation_type",
"terraform-reference/resources/action",
"terraform-reference/resources/policy",
@@ -509,6 +510,7 @@
"pages": [
"terraform-reference/data-sources/environment",
"terraform-reference/data-sources/logical_environment",
+ "terraform-reference/data-sources/flow",
"terraform-reference/data-sources/custom_attestation_type",
"terraform-reference/data-sources/action",
"terraform-reference/data-sources/policy"
diff --git a/terraform-reference/data-sources/flow.mdx b/terraform-reference/data-sources/flow.mdx
new file mode 100644
index 00000000..54570561
--- /dev/null
+++ b/terraform-reference/data-sources/flow.mdx
@@ -0,0 +1,52 @@
+---
+title: "kosli_flow data source"
+description: "Fetches details of an existing Kosli flow. Use this data source to reference flow configurations and templates."
+icon: "database"
+---
+
+Fetches details of an existing Kosli flow. A flow represents a business or software process that requires change tracking.
+
+## Example usage
+
+```terraform
+terraform {
+ required_providers {
+ kosli = {
+ source = "kosli-dev/kosli"
+ }
+ }
+}
+
+# Query an existing flow
+data "kosli_flow" "example" {
+ name = "my-application-flow"
+}
+
+# Create a new flow reusing the template from an existing one
+resource "kosli_flow" "copy" {
+ name = "my-application-flow-copy"
+ description = data.kosli_flow.example.description
+ template = data.kosli_flow.example.template
+}
+
+output "flow_name" {
+ description = "The name of the flow"
+ value = data.kosli_flow.example.name
+}
+
+output "flow_template" {
+ description = "The YAML template of the flow"
+ value = data.kosli_flow.example.template
+}
+```
+
+## Schema
+
+### Required
+
+- `name` (String) The name of the flow to query.
+
+### Read-only
+
+- `description` (String) The description of the flow.
+- `template` (String) YAML template defining the flow structure (trails, artifacts, attestations).
diff --git a/terraform-reference/resources/flow.mdx b/terraform-reference/resources/flow.mdx
new file mode 100644
index 00000000..4faa0c10
--- /dev/null
+++ b/terraform-reference/resources/flow.mdx
@@ -0,0 +1,77 @@
+---
+title: "kosli_flow resource"
+description: "Manages a Kosli flow. Flows represent business or software processes that require change tracking."
+icon: "cube"
+---
+
+Manages a Kosli flow. A flow represents a business or software process that requires change tracking. It lets you monitor changes across all steps within a process or focus on a subset of critical steps.
+
+
+The `template` attribute accepts a YAML string defining the flow template structure. You can load it from a file using the `file()` function: `template = file("template.yml")`. Minor YAML formatting differences between what you provide and what the API returns may result in a no-op change being shown in plans.
+
+
+## Example usage
+
+```terraform
+terraform {
+ required_providers {
+ kosli = {
+ source = "kosli-dev/kosli"
+ }
+ }
+}
+
+# Minimal flow with only a name
+resource "kosli_flow" "minimal" {
+ name = "my-service"
+}
+
+# Flow with description
+resource "kosli_flow" "with_description" {
+ name = "api-service"
+ description = "CD pipeline for the API service"
+}
+
+# Flow with a YAML template defining trails and attestations
+# The template can also be loaded from a file: template = file("template.yml")
+resource "kosli_flow" "with_template" {
+ name = "backend-service"
+ description = "Backend service CD pipeline with full attestation template"
+
+ template = <<-YAML
+version: 1
+trail:
+ attestations:
+ - name: pull-request
+ type: pull_request
+ - name: unit-tests
+ type: generic
+ artifacts:
+ - name: docker-image
+ attestations:
+ - name: sbom
+ type: generic
+ - name: security-scan
+ type: snyk
+YAML
+}
+```
+
+## Import
+
+Flows can be imported using their name:
+
+```shell
+terraform import kosli_flow.example my-flow-name
+```
+
+## Schema
+
+### Required
+
+- `name` (String) Name of the flow. Must be unique within the organization. Changing this will force recreation of the resource.
+
+### Optional
+
+- `description` (String) Description of the flow. Explains the purpose and context of this pipeline.
+- `template` (String) YAML template defining the flow structure (trails, artifacts, attestations). Can be provided as an inline heredoc or loaded from a file using `file()`. If omitted, the flow is created without a template.