Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
4548a45
Add docs for v1
w1am Jul 22, 2025
8ee8751
Improve doc examples
w1am Jul 24, 2025
f6d402d
chore: Ignore node modules
w1am Jul 24, 2025
af888be
Trigger CI
w1am Aug 6, 2025
77e674b
Revamp github workflow
w1am Aug 6, 2025
5251b8b
Add v2 protos and fix CI
w1am Aug 6, 2025
51c576f
Add multistream append method
w1am Aug 11, 2025
a6f3199
Document multi stream append
w1am Aug 13, 2025
9cd68fe
Improve error message
w1am Aug 13, 2025
13fa68d
Add extension methods
w1am Aug 15, 2025
045003d
Remove unused proto files
w1am Aug 18, 2025
82c2b9f
Remove JsonSerializer
w1am Aug 18, 2025
449f194
Add metadata docoder helper
w1am Aug 19, 2025
2350982
Add PublicAPI attribute to MetadataDecoder class
w1am Aug 19, 2025
6271735
add timespan iso 8601 converter
w1am Aug 19, 2025
994e82d
Update MetadataDecoder summary to reflect decode-only functionality
w1am Aug 19, 2025
59ff368
Fix samples
w1am Aug 19, 2025
a7049fe
Handle TimeSpan ISO8601 metadata decoder
w1am Aug 22, 2025
59343b0
[DEV-833] Support tracing in multi stream append (#364)
w1am Aug 26, 2025
abb5bcf
Expand multi stream append tests to cover additional metadata types a…
w1am Aug 26, 2025
62330c9
Update documentation
w1am Aug 26, 2025
a6ac920
Adapt client to revised db feature changes
w1am Sep 29, 2025
336d8d1
Update docs
w1am Oct 1, 2025
afa261d
Update protocols
w1am Oct 10, 2025
8d13ff0
Reduce code
w1am Oct 10, 2025
4e6abb5
Change image to kurrentdb latest
w1am Oct 20, 2025
97df393
Merge branch 'master' of github.com:kurrent-io/KurrentDB-Client-Dotne…
w1am Oct 20, 2025
f3c0830
Update metadata handling to use string dictionary
w1am Oct 21, 2025
a22c7df
docs
w1am Oct 22, 2025
3489858
Remove dead code and improve docs
w1am Oct 22, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
102 changes: 0 additions & 102 deletions .github/workflows/base.yml
Original file line number Diff line number Diff line change
@@ -1,102 +0,0 @@
name: Build

on:
workflow_call:
inputs:
kurrentdb-tag:
description: The docker tag to use. If kurrentdb-image is empty, the action will use the values in the KURRENTDB_DOCKER_IMAGES variable (ci, lts, previous-lts).
required: true
type: string
kurrentdb-image:
description: The docker image to use. Leave this empty to use the image in the KURRENTDB_DOCKER_IMAGES variable.
required: false
type: string
kurrentdb-registry:
description: The docker registry to use. Leave this empty to use the registry in the KURRENTDB_DOCKER_IMAGES variable.
required: false
type: string
test:
description: Which test to run.
required: true
type: string
env:
KURRENTDB_TAG: ${{ inputs.kurrentdb-image != '' && inputs.kurrentdb-tag || fromJSON(vars.KURRENTDB_DOCKER_IMAGES)[inputs.kurrentdb-tag].tag }}
KURRENTDB_IMAGE: ${{ inputs.kurrentdb-image || fromJSON(vars.KURRENTDB_DOCKER_IMAGES)[inputs.kurrentdb-tag].image }}
KURRENTDB_REGISTRY: ${{ inputs.kurrentdb-registry || fromJSON(vars.KURRENTDB_DOCKER_IMAGES)[inputs.kurrentdb-tag].registry }}
jobs:
test:
timeout-minutes: 20
strategy:
fail-fast: false
matrix:
framework: [ net8.0, net9.0 ]
os: [ ubuntu-latest ]
configuration: [ release ]
runs-on: ${{ matrix.os }}
name: ${{ inputs.test }} (${{ matrix.os }}, ${{ matrix.framework }})
steps:
- name: Echo docker details
shell: bash
run: |
echo "${{env.KURRENTDB_REGISTRY}}"
echo "${{env.KURRENTDB_IMAGE}}"
echo "${{env.KURRENTDB_TAG}}"

- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Login to Cloudsmith via docker.cloudsmith.io
uses: docker/login-action@v3
with:
registry: docker.cloudsmith.io
username: ${{ secrets.CLOUDSMITH_CICD_USER }}
password: ${{ secrets.CLOUDSMITH_CICD_TOKEN }}

- name: Login to Cloudsmith via docker.kurrent.io
uses: docker/login-action@v3
with:
registry: docker.kurrent.io
username: ${{ secrets.CLOUDSMITH_CICD_USER }}
password: ${{ secrets.CLOUDSMITH_CICD_TOKEN }}

- name: Login to Cloudsmith via docker.eventstore.com
uses: docker/login-action@v3
with:
registry: docker.eventstore.com
username: ${{ secrets.CLOUDSMITH_CICD_USER }}
password: ${{ secrets.CLOUDSMITH_CICD_TOKEN }}

- name: Pull KurrentDB Image
shell: bash
run: |
docker pull ${{ env.KURRENTDB_REGISTRY }}/${{ env.KURRENTDB_IMAGE}}:${{ env.KURRENTDB_TAG}}

- name: Install dotnet SDKs
uses: actions/setup-dotnet@v3
with:
dotnet-version: |
8.0.x
9.0.x

- name: Generate certificates
shell: bash
run: sudo ./gencert.sh

- name: Restore dependencies
shell: bash
run: dotnet restore

- name: Run Tests
shell: bash
env:
ES_DOCKER_TAG: ${{env.KURRENTDB_TAG}}
ES_DOCKER_REGISTRY: ${{env.KURRENTDB_REGISTRY}}/${{env.KURRENTDB_IMAGE}}
KURRENTDB_LICENSE_KEY: ${{ secrets.KURRENTDB_TEST_LICENSE_KEY }}
run: |
dotnet test --configuration ${{ matrix.configuration }} --blame \
--logger:"GitHubActions;report-warnings=false" --logger:"console;verbosity=normal" \
--framework ${{ matrix.framework }} \
--filter "Category=Target:${{ inputs.test }}" \
test/KurrentDB.Client.Tests
37 changes: 0 additions & 37 deletions .github/workflows/ci.yml

This file was deleted.

29 changes: 0 additions & 29 deletions .github/workflows/dispatch-ce.yml

This file was deleted.

36 changes: 0 additions & 36 deletions .github/workflows/dispatch-ee.yml
Original file line number Diff line number Diff line change
@@ -1,36 +0,0 @@
name: Dispatch
run-name: "Dispatch [${{ inputs.correlation-id }}]"

on:
workflow_dispatch:
inputs:
kurrentdb-tag:
description: "The KurrentDB docker tag to use. If kurrentdb-image is empty, the action will use the values in the KURRENTDB_DOCKER_IMAGES variable (ci, lts, previous-lts)."
required: true
type: string
kurrentdb-image:
description: "The KurrentDB docker image to test against. Leave this empty to use the image in the KURRENTDB_DOCKER_IMAGES variable"
required: false
type: string
kurrentdb-registry:
description: "The docker registry containing the KurrentDB docker image. Leave this empty to use the registry in the KURRENTDB_DOCKER_IMAGES variable."
required: false
type: string
correlation-id:
type: string
description: Optional CorrelationId to identify the workflow run
required: false
jobs:
test:
uses: ./.github/workflows/base.yml
strategy:
fail-fast: false
matrix:
test: [ Streams, PersistentSubscriptions, Operations, UserManagement, ProjectionManagement, Plugins ]
name: Test (${{ inputs.kurrentdb-tag }})
with:
kurrentdb-tag: ${{ inputs.kurrentdb-tag }}
kurrentdb-image: ${{ inputs.kurrentdb-image }}
kurrentdb-registry: ${{ inputs.kurrentdb-registry }}
test: ${{ matrix.test }}
secrets: inherit
19 changes: 19 additions & 0 deletions .github/workflows/dotnet.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: Client

on:
pull_request:
push:
branches:
- master

jobs:
old:
name: ${{ matrix.runtime }}
uses: ./.github/workflows/test.yml
strategy:
fail-fast: false
matrix:
runtime: [ previous-lts, lts, ci ]
with:
runtime: ${{ matrix.runtime }}
secrets: inherit
66 changes: 66 additions & 0 deletions .github/workflows/load-configuration.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
name: Load KurrentDB Runtime Configuration
on:
workflow_call:
inputs:
runtime:
description: "The runtime's name. Current options are: `ci`, `previous-lts`, `latest` and `qa`"
required: true
type: string

registry:
description: "When in QA mode, the Docker registry to use"
type: string
required: false

image:
description: "When in QA mode, the Docker image to use"
type: string
required: false

tag:
description: "When in QA mode, the Docker image tag to use"
type: string
required: false

outputs:
runtime:
description: The runtime's name
value: ${{ inputs.runtime }}

registry:
description: The Docker registry
value: ${{ jobs.load.outputs.registry }}

image:
description: The Docker image
value: ${{ jobs.load.outputs.image }}

tag:
description: The Docker image tag
value: ${{ jobs.load.outputs.tag }}

jobs:
load:
runs-on: ubuntu-latest
outputs:
registry: ${{ steps.set.outputs.registry }}
image: ${{ steps.set.outputs.image }}
tag: ${{ steps.set.outputs.tag }}

steps:
- name: Set KurrentDB Runtime Configuration Properties
id: set
run: |
case ${{ inputs.runtime }} in
"qa")
echo "registry=${{ inputs.registry }}" >> $GITHUB_OUTPUT
echo "image=${{ inputs.image }}" >> $GITHUB_OUTPUT
echo "tag=${{ inputs.tag }}" >> $GITHUB_OUTPUT
;;

*)
echo "registry=${{ fromJSON(vars.KURRENTDB_DOCKER_IMAGES)[inputs.runtime].registry }}" >> $GITHUB_OUTPUT
echo "image=${{ fromJSON(vars.KURRENTDB_DOCKER_IMAGES)[inputs.runtime].image }}" >> $GITHUB_OUTPUT
echo "tag=${{ fromJSON(vars.KURRENTDB_DOCKER_IMAGES)[inputs.runtime].tag }}" >> $GITHUB_OUTPUT
;;
esac
83 changes: 83 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
name: Test

on:
workflow_call:
secrets:
CLOUDSMITH_CICD_USER:
required: false
CLOUDSMITH_CICD_TOKEN:
required: false
inputs:
runtime:
required: true
type: string

registry:
description: "The Docker registry to use"
type: string
required: false

image:
description: "The Docker image to use"
type: string
required: false

tag:
description: "The Docker image tag to use"
type: string
required: false

jobs:
load_configuration:
uses: ./.github/workflows/load-configuration.yml
with:
runtime: ${{ inputs.runtime }}
registry: ${{ inputs.registry }}
image: ${{ inputs.image }}
tag: ${{ inputs.tag }}

test:
name: Test
needs: load_configuration
timeout-minutes: 10

strategy:
fail-fast: false
matrix:
framework: [ net8.0, net9.0 ]
test: [ Streams, PersistentSubscriptions, Operations, UserManagement, ProjectionManagement, Security, Diagnostics, Misc ]

runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Login to Cloudsmith
uses: docker/login-action@v3
with:
registry: docker.kurrent.io
username: ${{ secrets.CLOUDSMITH_CICD_USER }}
password: ${{ secrets.CLOUDSMITH_CICD_TOKEN }}

- name: Install dotnet SDKs
uses: actions/setup-dotnet@v3
with:
dotnet-version: |
8.0.x
9.0.x

- name: Run Tests
shell: bash
env:
TESTCONTAINER_KURRENTDB_IMAGE: "${{ needs.load_configuration.outputs.registry }}/${{ needs.load_configuration.outputs.image }}:${{ needs.load_configuration.outputs.tag }}"
run: |
sudo ./gencert.sh
dotnet test --configuration release --blame \
--logger:"GitHubActions;report-warnings=false" --logger:"console;verbosity=normal" \
--framework ${{ matrix.framework }} \
--filter "Category=Target:${{ matrix.test }}" \
test/KurrentDB.Client.Tests

5 changes: 2 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -366,7 +366,6 @@ certs-cluster/
.DS_Store
docs/public


.cache
.temp
node_modules
.cache
node_modules
Loading