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.