Skip to content

Commit 24a5540

Browse files
committed
feat(spicedb): add testcontainer module for SpiceDB
1 parent a253f4b commit 24a5540

File tree

15 files changed

+504
-90
lines changed

15 files changed

+504
-90
lines changed

.github/workflows/cicd.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,8 @@ jobs:
9595
{ name: "Testcontainers.Weaviate", runs-on: "ubuntu-22.04" },
9696
{ name: "Testcontainers.WebDriver", runs-on: "ubuntu-22.04" },
9797
{ name: "Testcontainers.Xunit", runs-on: "ubuntu-22.04" },
98-
{ name: "Testcontainers.XunitV3", runs-on: "ubuntu-22.04" }
98+
{ name: "Testcontainers.XunitV3", runs-on: "ubuntu-22.04" },
99+
{ name: "Testcontainers.SpiceDb", runs-on: "ubuntu-22.04" }
99100
]
100101

101102
runs-on: ${{ matrix.test-projects.runs-on }}

Directory.Packages.props

Lines changed: 91 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -1,90 +1,93 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<Project>
3-
<PropertyGroup>
4-
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
5-
</PropertyGroup>
6-
<ItemGroup>
7-
<PackageVersion Include="BouncyCastle.Cryptography" Version="2.6.1"/>
8-
<PackageVersion Include="Docker.DotNet.Enhanced.X509" Version="3.128.3"/>
9-
<PackageVersion Include="Docker.DotNet.Enhanced" Version="3.128.3"/>
10-
<PackageVersion Include="Microsoft.Bcl.AsyncInterfaces" Version="8.0.0"/>
11-
<PackageVersion Include="Microsoft.Bcl.HashCode" Version="1.1.1"/>
12-
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.3"/>
13-
<PackageVersion Include="SharpZipLib" Version="1.4.2"/>
14-
<PackageVersion Include="SSH.NET" Version="2024.2.0"/>
15-
<!-- Cake build: -->
16-
<PackageVersion Include="Cake.Frosting.Git" Version="5.0.1"/>
17-
<PackageVersion Include="Cake.Frosting" Version="5.0.0"/>
18-
<PackageVersion Include="Cake.Sonar" Version="5.0.0"/>
19-
<!-- Unit and integration test dependencies: -->
20-
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.11.1"/>
21-
<PackageVersion Include="Microsoft.Extensions.Diagnostics.Testing" Version="8.10.0"/>
22-
<PackageVersion Include="coverlet.collector" Version="6.0.4"/>
23-
<PackageVersion Include="Dapper" Version="2.1.66"/>
24-
<PackageVersion Include="ReflectionMagic" Version="5.0.1"/>
25-
<PackageVersion Include="xunit.analyzers" Version="1.21.0"/>
26-
<PackageVersion Include="xunit.runner.visualstudio" Version="3.1.0"/>
27-
<PackageVersion Include="xunit" Version="2.9.3"/>
28-
<PackageVersion Include="xunit.v3" Version="2.0.2"/>
29-
<!-- xUnit.net extensibility for Testcontainers.Xunit and Testcontainers.XunitV3 packages: -->
30-
<PackageVersion Include="xunit.extensibility.execution" Version="2.9.3"/>
31-
<PackageVersion Include="xunit.v3.extensibility.core" Version="2.0.2"/>
32-
<!-- Third-party client dependencies to connect and interact with the containers: -->
33-
<PackageVersion Include="Apache.NMS.ActiveMQ" Version="2.1.1"/>
34-
<PackageVersion Include="ArangoDBNetStandard" Version="2.0.1"/>
35-
<PackageVersion Include="AWSSDK.CloudWatchLogs" Version="3.7.104.14"/>
36-
<PackageVersion Include="AWSSDK.DynamoDBv2" Version="3.7.101.42"/>
37-
<PackageVersion Include="AWSSDK.S3" Version="3.7.103.3"/>
38-
<PackageVersion Include="AWSSDK.SimpleNotificationService" Version="3.7.101.7"/>
39-
<PackageVersion Include="AWSSDK.SQS" Version="3.7.100.71"/>
40-
<PackageVersion Include="Azure.Data.Tables" Version="12.8.0"/>
41-
<PackageVersion Include="Azure.Identity" Version="1.13.2"/>
42-
<PackageVersion Include="Azure.Messaging.EventHubs" Version="5.11.3"/>
43-
<PackageVersion Include="Azure.Messaging.ServiceBus" Version="7.18.2"/>
44-
<PackageVersion Include="Azure.Security.KeyVault.Certificates" Version="4.7.0"/>
45-
<PackageVersion Include="Azure.Security.KeyVault.Secrets" Version="4.7.0"/>
46-
<PackageVersion Include="Azure.Storage.Blobs" Version="12.17.0"/>
47-
<PackageVersion Include="Azure.Storage.Queues" Version="12.15.0"/>
48-
<PackageVersion Include="CassandraCSharpDriver" Version="3.22.0"/>
49-
<PackageVersion Include="ClickHouse.Client" Version="7.9.1"/>
50-
<PackageVersion Include="Confluent.Kafka" Version="2.8.0"/>
51-
<PackageVersion Include="Confluent.SchemaRegistry.Serdes.Json" Version="2.8.0"/>
52-
<PackageVersion Include="Confluent.SchemaRegistry" Version="2.8.0"/>
53-
<PackageVersion Include="Consul" Version="1.6.10.9"/>
54-
<PackageVersion Include="CouchbaseNetClient" Version="3.7.2"/>
55-
<PackageVersion Include="DotPulsar" Version="3.6.0"/>
56-
<PackageVersion Include="Elastic.Clients.Elasticsearch" Version="8.16.3"/>
57-
<PackageVersion Include="EventStore.Client.Grpc.Streams" Version="22.0.0"/>
58-
<PackageVersion Include="FirebirdSql.Data.FirebirdClient" Version="10.0.0"/>
59-
<PackageVersion Include="Google.Cloud.BigQuery.V2" Version="3.4.0"/>
60-
<PackageVersion Include="Google.Cloud.Bigtable.Admin.V2" Version="3.7.0"/>
61-
<PackageVersion Include="Google.Cloud.Firestore" Version="3.1.0"/>
62-
<PackageVersion Include="Google.Cloud.PubSub.V1" Version="3.5.0"/>
63-
<PackageVersion Include="Google.Cloud.Storage.V1" Version="4.6.0"/>
64-
<PackageVersion Include="InfluxDB.Client" Version="4.18.0"/>
65-
<PackageVersion Include="JanusGraph.Net" Version="1.0.0"/>
66-
<PackageVersion Include="Keycloak.Net.Core" Version="1.0.20"/>
67-
<PackageVersion Include="KubernetesClient" Version="15.0.1"/>
68-
<PackageVersion Include="Microsoft.Azure.Cosmos" Version="3.32.1"/>
69-
<PackageVersion Include="Microsoft.Azure.Kusto.Data" Version="12.2.8"/>
70-
<PackageVersion Include="Microsoft.Data.SqlClient" Version="5.2.2"/>
71-
<PackageVersion Include="Milvus.Client" Version="2.2.2-preview.6"/>
72-
<PackageVersion Include="MongoDB.Driver" Version="3.2.0"/>
73-
<PackageVersion Include="MyCouch" Version="7.6.0"/>
74-
<PackageVersion Include="MySqlConnector" Version="2.2.5"/>
75-
<PackageVersion Include="NATS.Client" Version="1.0.8"/>
76-
<PackageVersion Include="Neo4j.Driver" Version="5.5.0"/>
77-
<PackageVersion Include="Net.IBM.Data.Db2-lnx" Version="9.0.0.100"/>
78-
<PackageVersion Include="Net.IBM.Data.Db2-osx" Version="9.0.0.100"/>
79-
<PackageVersion Include="Net.IBM.Data.Db2" Version="9.0.0.100"/>
80-
<PackageVersion Include="Npgsql" Version="6.0.11"/>
81-
<PackageVersion Include="OllamaSharp" Version="5.1.13"/>
82-
<PackageVersion Include="OpenSearch.Client" Version="1.8.0"/>
83-
<PackageVersion Include="Oracle.ManagedDataAccess.Core" Version="23.7.0"/>
84-
<PackageVersion Include="Qdrant.Client" Version="1.13.0"/>
85-
<PackageVersion Include="RabbitMQ.Client" Version="6.4.0"/>
86-
<PackageVersion Include="RavenDB.Client" Version="5.4.100"/>
87-
<PackageVersion Include="Selenium.WebDriver" Version="4.8.1"/>
88-
<PackageVersion Include="StackExchange.Redis" Version="2.6.90"/>
89-
</ItemGroup>
90-
</Project>
3+
<PropertyGroup>
4+
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
5+
</PropertyGroup>
6+
<ItemGroup>
7+
<PackageVersion Include="BouncyCastle.Cryptography" Version="2.6.1" />
8+
<PackageVersion Include="Docker.DotNet.Enhanced.X509" Version="3.128.3" />
9+
<PackageVersion Include="Docker.DotNet.Enhanced" Version="3.128.3" />
10+
<PackageVersion Include="Grpc.HealthCheck" Version="2.71.0" />
11+
<PackageVersion Include="Grpc.Net.Client" Version="2.71.0" />
12+
<PackageVersion Include="JetBrains.Annotations" Version="2023.3.0" />
13+
<PackageVersion Include="Microsoft.Bcl.AsyncInterfaces" Version="8.0.0" />
14+
<PackageVersion Include="Microsoft.Bcl.HashCode" Version="1.1.1" />
15+
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.3" />
16+
<PackageVersion Include="SharpZipLib" Version="1.4.2" />
17+
<PackageVersion Include="SSH.NET" Version="2024.2.0" />
18+
<!-- Cake build: -->
19+
<PackageVersion Include="Cake.Frosting.Git" Version="5.0.1" />
20+
<PackageVersion Include="Cake.Frosting" Version="5.0.0" />
21+
<PackageVersion Include="Cake.Sonar" Version="5.0.0" />
22+
<!-- Unit and integration test dependencies: -->
23+
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.11.1" />
24+
<PackageVersion Include="Microsoft.Extensions.Diagnostics.Testing" Version="8.10.0" />
25+
<PackageVersion Include="coverlet.collector" Version="6.0.4" />
26+
<PackageVersion Include="Dapper" Version="2.1.66" />
27+
<PackageVersion Include="ReflectionMagic" Version="5.0.1" />
28+
<PackageVersion Include="xunit.analyzers" Version="1.21.0" />
29+
<PackageVersion Include="xunit.runner.visualstudio" Version="3.1.0" />
30+
<PackageVersion Include="xunit" Version="2.9.3" />
31+
<PackageVersion Include="xunit.v3" Version="2.0.2" />
32+
<!-- xUnit.net extensibility for Testcontainers.Xunit and Testcontainers.XunitV3 packages: -->
33+
<PackageVersion Include="xunit.extensibility.execution" Version="2.9.3" />
34+
<PackageVersion Include="xunit.v3.extensibility.core" Version="2.0.2" />
35+
<!-- Third-party client dependencies to connect and interact with the containers: -->
36+
<PackageVersion Include="Apache.NMS.ActiveMQ" Version="2.1.1" />
37+
<PackageVersion Include="ArangoDBNetStandard" Version="2.0.1" />
38+
<PackageVersion Include="AWSSDK.CloudWatchLogs" Version="3.7.104.14" />
39+
<PackageVersion Include="AWSSDK.DynamoDBv2" Version="3.7.101.42" />
40+
<PackageVersion Include="AWSSDK.S3" Version="3.7.103.3" />
41+
<PackageVersion Include="AWSSDK.SimpleNotificationService" Version="3.7.101.7" />
42+
<PackageVersion Include="AWSSDK.SQS" Version="3.7.100.71" />
43+
<PackageVersion Include="Azure.Data.Tables" Version="12.8.0" />
44+
<PackageVersion Include="Azure.Identity" Version="1.13.2" />
45+
<PackageVersion Include="Azure.Messaging.EventHubs" Version="5.11.3" />
46+
<PackageVersion Include="Azure.Messaging.ServiceBus" Version="7.18.2" />
47+
<PackageVersion Include="Azure.Security.KeyVault.Certificates" Version="4.7.0" />
48+
<PackageVersion Include="Azure.Security.KeyVault.Secrets" Version="4.7.0" />
49+
<PackageVersion Include="Azure.Storage.Blobs" Version="12.17.0" />
50+
<PackageVersion Include="Azure.Storage.Queues" Version="12.15.0" />
51+
<PackageVersion Include="CassandraCSharpDriver" Version="3.22.0" />
52+
<PackageVersion Include="ClickHouse.Client" Version="7.9.1" />
53+
<PackageVersion Include="Confluent.Kafka" Version="2.8.0" />
54+
<PackageVersion Include="Confluent.SchemaRegistry.Serdes.Json" Version="2.8.0" />
55+
<PackageVersion Include="Confluent.SchemaRegistry" Version="2.8.0" />
56+
<PackageVersion Include="Consul" Version="1.6.10.9" />
57+
<PackageVersion Include="CouchbaseNetClient" Version="3.7.2" />
58+
<PackageVersion Include="DotPulsar" Version="3.6.0" />
59+
<PackageVersion Include="Elastic.Clients.Elasticsearch" Version="8.16.3" />
60+
<PackageVersion Include="EventStore.Client.Grpc.Streams" Version="22.0.0" />
61+
<PackageVersion Include="FirebirdSql.Data.FirebirdClient" Version="10.0.0" />
62+
<PackageVersion Include="Google.Cloud.BigQuery.V2" Version="3.4.0" />
63+
<PackageVersion Include="Google.Cloud.Bigtable.Admin.V2" Version="3.7.0" />
64+
<PackageVersion Include="Google.Cloud.Firestore" Version="3.1.0" />
65+
<PackageVersion Include="Google.Cloud.PubSub.V1" Version="3.5.0" />
66+
<PackageVersion Include="Google.Cloud.Storage.V1" Version="4.6.0" />
67+
<PackageVersion Include="InfluxDB.Client" Version="4.18.0" />
68+
<PackageVersion Include="JanusGraph.Net" Version="1.0.0" />
69+
<PackageVersion Include="Keycloak.Net.Core" Version="1.0.20" />
70+
<PackageVersion Include="KubernetesClient" Version="15.0.1" />
71+
<PackageVersion Include="Microsoft.Azure.Cosmos" Version="3.32.1" />
72+
<PackageVersion Include="Microsoft.Azure.Kusto.Data" Version="12.2.8" />
73+
<PackageVersion Include="Microsoft.Data.SqlClient" Version="5.2.2" />
74+
<PackageVersion Include="Milvus.Client" Version="2.2.2-preview.6" />
75+
<PackageVersion Include="MongoDB.Driver" Version="3.2.0" />
76+
<PackageVersion Include="MyCouch" Version="7.6.0" />
77+
<PackageVersion Include="MySqlConnector" Version="2.2.5" />
78+
<PackageVersion Include="NATS.Client" Version="1.0.8" />
79+
<PackageVersion Include="Neo4j.Driver" Version="5.5.0" />
80+
<PackageVersion Include="Net.IBM.Data.Db2-lnx" Version="9.0.0.100" />
81+
<PackageVersion Include="Net.IBM.Data.Db2-osx" Version="9.0.0.100" />
82+
<PackageVersion Include="Net.IBM.Data.Db2" Version="9.0.0.100" />
83+
<PackageVersion Include="Npgsql" Version="6.0.11" />
84+
<PackageVersion Include="OllamaSharp" Version="5.1.13" />
85+
<PackageVersion Include="OpenSearch.Client" Version="1.8.0" />
86+
<PackageVersion Include="Oracle.ManagedDataAccess.Core" Version="23.7.0" />
87+
<PackageVersion Include="Qdrant.Client" Version="1.13.0" />
88+
<PackageVersion Include="RabbitMQ.Client" Version="6.4.0" />
89+
<PackageVersion Include="RavenDB.Client" Version="5.4.100" />
90+
<PackageVersion Include="Selenium.WebDriver" Version="4.8.1" />
91+
<PackageVersion Include="StackExchange.Redis" Version="2.6.90" />
92+
</ItemGroup>
93+
</Project>

Testcontainers.sln

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Testcontainers.Xunit.Tests"
257257
EndProject
258258
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Testcontainers.XunitV3.Tests", "tests\Testcontainers.XunitV3.Tests\Testcontainers.XunitV3.Tests.csproj", "{B2E8B7FB-7D1E-4DD3-A25E-34DE4386B1EB}"
259259
EndProject
260+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Testcontainers.SpiceDB", "src\Testcontainers.SpiceDB\Testcontainers.SpiceDB.csproj", "{64B27088-14DC-4CA2-B24E-5D0D5BA14355}"
261+
EndProject
262+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Testcontainers.SpiceDB.Tests", "tests\Testcontainers.SpiceDB.Tests\Testcontainers.SpiceDB.Tests.csproj", "{21D155EB-A843-4D4D-84E1-5C913217BE89}"
263+
EndProject
260264
Global
261265
GlobalSection(SolutionConfigurationPlatforms) = preSolution
262266
Debug|Any CPU = Debug|Any CPU
@@ -751,6 +755,18 @@ Global
751755
{B2E8B7FB-7D1E-4DD3-A25E-34DE4386B1EB}.Debug|Any CPU.Build.0 = Debug|Any CPU
752756
{B2E8B7FB-7D1E-4DD3-A25E-34DE4386B1EB}.Release|Any CPU.ActiveCfg = Release|Any CPU
753757
{B2E8B7FB-7D1E-4DD3-A25E-34DE4386B1EB}.Release|Any CPU.Build.0 = Release|Any CPU
758+
{64B27088-14DC-4CA2-B24E-5D0D5BA14355}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
759+
{64B27088-14DC-4CA2-B24E-5D0D5BA14355}.Debug|Any CPU.Build.0 = Debug|Any CPU
760+
{64B27088-14DC-4CA2-B24E-5D0D5BA14355}.Release|Any CPU.ActiveCfg = Release|Any CPU
761+
{64B27088-14DC-4CA2-B24E-5D0D5BA14355}.Release|Any CPU.Build.0 = Release|Any CPU
762+
{A9F554E5-9183-4F8A-B226-58DD46BB2060}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
763+
{A9F554E5-9183-4F8A-B226-58DD46BB2060}.Debug|Any CPU.Build.0 = Debug|Any CPU
764+
{A9F554E5-9183-4F8A-B226-58DD46BB2060}.Release|Any CPU.ActiveCfg = Release|Any CPU
765+
{A9F554E5-9183-4F8A-B226-58DD46BB2060}.Release|Any CPU.Build.0 = Release|Any CPU
766+
{21D155EB-A843-4D4D-84E1-5C913217BE89}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
767+
{21D155EB-A843-4D4D-84E1-5C913217BE89}.Debug|Any CPU.Build.0 = Debug|Any CPU
768+
{21D155EB-A843-4D4D-84E1-5C913217BE89}.Release|Any CPU.ActiveCfg = Release|Any CPU
769+
{21D155EB-A843-4D4D-84E1-5C913217BE89}.Release|Any CPU.Build.0 = Release|Any CPU
754770
EndGlobalSection
755771
GlobalSection(SolutionProperties) = preSolution
756772
HideSolutionNode = FALSE
@@ -878,5 +894,7 @@ Global
878894
{EBA72C3B-57D5-43FF-A5B4-3D55B3B6D4C2} = {7164F1FB-7F24-444A-ACD2-2C329C2B3CCF}
879895
{E901DF14-6F05-4FC2-825A-3055FAD33561} = {7164F1FB-7F24-444A-ACD2-2C329C2B3CCF}
880896
{B2E8B7FB-7D1E-4DD3-A25E-34DE4386B1EB} = {7164F1FB-7F24-444A-ACD2-2C329C2B3CCF}
897+
{64B27088-14DC-4CA2-B24E-5D0D5BA14355} = {673F23AE-7694-4BB9-ABD4-136D6C13634E}
898+
{21D155EB-A843-4D4D-84E1-5C913217BE89} = {7164F1FB-7F24-444A-ACD2-2C329C2B3CCF}
881899
EndGlobalSection
882900
EndGlobal

docs/modules/index.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ await moduleNameContainer.StartAsync();
2020
We will add module-specific documentations soon.
2121

2222
| Module | Image | NuGet | Source |
23-
|-------------------|---------------------------------------------------------------------|----------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------|
23+
| ----------------- | ------------------------------------------------------------------- | -------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
2424
| ActiveMQ Artemis | `apache/activemq-artemis:2.31.2` | [NuGet](https://www.nuget.org/packages/Testcontainers.ActiveMq) | [Source](https://github.com/testcontainers/testcontainers-dotnet/tree/develop/src/Testcontainers.ActiveMq) |
2525
| ArangoDB | `arangodb:3.11.5` | [NuGet](https://www.nuget.org/packages/Testcontainers.ArangoDb) | [Source](https://github.com/testcontainers/testcontainers-dotnet/tree/develop/src/Testcontainers.ArangoDb) |
2626
| Azure Cosmos DB | `mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:latest` | [NuGet](https://www.nuget.org/packages/Testcontainers.CosmosDb) | [Source](https://github.com/testcontainers/testcontainers-dotnet/tree/develop/src/Testcontainers.CosmosDb) |
@@ -73,6 +73,7 @@ await moduleNameContainer.StartAsync();
7373
| Typesense | `typesense/typesense:28.0` | [NuGet](https://www.nuget.org/packages/Testcontainers.Typesense) | [Source](https://github.com/testcontainers/testcontainers-dotnet/tree/develop/src/Testcontainers.Typesense) |
7474
| Weaviate | `semitechnologies/weaviate:1.26.14` | [NuGet](https://www.nuget.org/packages/Testcontainers.Weaviate) | [Source](https://github.com/testcontainers/testcontainers-dotnet/tree/develop/src/Testcontainers.Weaviate) |
7575
| WebDriver | `selenium/standalone-chrome:110.0` | [NuGet](https://www.nuget.org/packages/Testcontainers.WebDriver) | [Source](https://github.com/testcontainers/testcontainers-dotnet/tree/develop/src/Testcontainers.WebDriver) |
76+
| SpiceDB | `authzed/spicedb:v1.45.1` | [NuGet](https://www.nuget.org/packages/Testcontainers.SpiceDB) | [Source](https://github.com/testcontainers/testcontainers-dotnet/tree/develop/src/Testcontainers.SpiceDB) |
7677

7778
## Implement a module
7879

0 commit comments

Comments
 (0)