Skip to content

Commit 901a489

Browse files
author
thepirat000
committed
Update services and configurations for Azure Cosmos DB.
Adding docker-compose for unit testing. Including CosmosDB and Kafka
1 parent 984789b commit 901a489

36 files changed

Lines changed: 318 additions & 1419 deletions

.github/docker/docker-compose.yml

Lines changed: 160 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,160 @@
1+
services:
2+
immudb:
3+
image: codenotary/immudb:latest
4+
container_name: immudb
5+
ports:
6+
- "3322:3322" # ImmuDB default port
7+
- "9497:9497" # Metrics port
8+
volumes:
9+
- immudb-data:/var/lib/immudb
10+
11+
dynamodb:
12+
image: amazon/dynamodb-local:latest
13+
ports:
14+
- "8000:8000"
15+
command: ["-jar", "DynamoDBLocal.jar", "-sharedDb", "-port", "8000"]
16+
17+
postgresql:
18+
image: postgres:17
19+
environment:
20+
POSTGRES_USER: postgres
21+
POSTGRES_PASSWORD: admin
22+
POSTGRES_DB: postgres
23+
ports:
24+
- "5432:5432"
25+
volumes:
26+
- ../../test/Audit.PostgreSql.UnitTest/SqlScript.sql:/docker-entrypoint-initdb.d/init.sql
27+
- pgdata:/var/lib/postgresql/data
28+
29+
mysql:
30+
image: mysql:9.0
31+
environment:
32+
MYSQL_ROOT_PASSWORD: admin
33+
ports:
34+
- "3306:3306"
35+
volumes:
36+
- ../../test/Audit.MySql.UnitTest/MySqlScript.mysql:/docker-entrypoint-initdb.d/init.sql:ro
37+
- mysqldata:/var/lib/mysql
38+
39+
redis:
40+
image: redis:7
41+
ports:
42+
- "6379:6379"
43+
44+
elasticsearch:
45+
image: docker.elastic.co/elasticsearch/elasticsearch:9.0.0
46+
environment:
47+
- discovery.type=single-node
48+
- xpack.security.enabled=false
49+
- xpack.security.http.ssl.enabled=false
50+
ports:
51+
- "9200:9200"
52+
53+
opensearch:
54+
image: opensearchproject/opensearch:2.19.2
55+
environment:
56+
- OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m
57+
- DISABLE_INSTALL_DEMO_CONFIG=true
58+
- OPENSEARCH_INITIAL_ADMIN_PASSWORD=Messi1708!!!
59+
- plugins.security.disabled=true
60+
- http.port=9250
61+
- discovery.type=single-node
62+
- network.host=0.0.0.0
63+
ports:
64+
- "9250:9250"
65+
66+
mongodb:
67+
image: mongo:6
68+
ports:
69+
- "27017:27017"
70+
volumes:
71+
- mongodata:/data/db
72+
73+
ravendb:
74+
image: ravendb/ravendb:latest
75+
environment:
76+
- RAVEN_Security_UnsecuredAccessAllowed=PublicNetwork
77+
ports:
78+
- "8080:8080"
79+
80+
eventhubs-emulator:
81+
container_name: "eventhubs-emulator"
82+
image: "mcr.microsoft.com/azure-messaging/eventhubs-emulator:latest"
83+
ports:
84+
- "5672:5672"
85+
- "9092:9092"
86+
- "8081:8081"
87+
environment:
88+
BLOB_SERVER: azurite
89+
METADATA_SERVER: azurite
90+
ACCEPT_EULA: Y
91+
depends_on:
92+
- azurite
93+
networks:
94+
eh-emulator:
95+
aliases:
96+
- "eventhubs-emulator"
97+
98+
cosmosdb-emulator:
99+
image: mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:vnext-preview
100+
ports:
101+
- "8082:8082"
102+
- "10250-10255:10250-10255"
103+
- "1234:1234"
104+
environment:
105+
- PORT=8082
106+
- AZURE_COSMOS_EMULATOR_PARTITION_COUNT=10
107+
- AZURE_COSMOS_EMULATOR_ENABLE_DATA_PERSISTENCE=true
108+
networks:
109+
- cosmos-network
110+
111+
azurite:
112+
container_name: "azurite"
113+
image: "mcr.microsoft.com/azure-storage/azurite:latest"
114+
ports:
115+
- "10000:10000"
116+
- "10001:10001"
117+
- "10002:10002"
118+
networks:
119+
eh-emulator:
120+
aliases:
121+
- "azurite"
122+
123+
sqlserver:
124+
image: mcr.microsoft.com/mssql/server:2022-latest
125+
environment:
126+
- ACCEPT_EULA=Y
127+
- SA_PASSWORD=YourStrong!Passw0rd
128+
ports:
129+
- "1433:1433"
130+
healthcheck:
131+
test: ["CMD-SHELL", "/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P YourStrong!Passw0rd -Q 'SELECT 1'"]
132+
interval: 10s
133+
retries: 5
134+
135+
kafka:
136+
image: bitnami/kafka:latest
137+
ports:
138+
- 9094:9094
139+
networks:
140+
- kafka-network
141+
environment:
142+
- KAFKA_CFG_NODE_ID=0
143+
- KAFKA_CFG_PROCESS_ROLES=controller,broker
144+
- KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093,EXTERNAL://:9094
145+
- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://kafka:9092,EXTERNAL://localhost:9094
146+
- KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,EXTERNAL:PLAINTEXT,PLAINTEXT:PLAINTEXT
147+
- KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=0@kafka:9093
148+
- KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
149+
150+
volumes:
151+
pgdata:
152+
mysqldata:
153+
mongodata:
154+
immudb-data:
155+
156+
networks:
157+
cosmos-network:
158+
driver: bridge
159+
eh-emulator:
160+
kafka-network:

.github/workflows/dotnet.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ jobs:
235235
236236
- name: Generate Code Coverage Report
237237
run: |
238-
dotnet reportgenerator -reports:${{ github.workspace }}\test\TestResult\**\*.cobertura.xml -targetdir:"${{ github.workspace }}\Tests\coveragereport" -reporttypes:"MarkdownSummary;Html" "-assemblyfilters:+Audit.*;-*UnitTest;-Audit.NET.AmazonQLDB;-Audit.NET.Kafka;-Audit.NET.AzureCosmos;-Audit.NET.AzureEventHubs"
238+
dotnet reportgenerator -reports:${{ github.workspace }}\test\TestResult\**\*.cobertura.xml -targetdir:"${{ github.workspace }}\Tests\coveragereport" -reporttypes:"MarkdownSummary;Html" "-assemblyfilters:+Audit.*;-*UnitTest;-Audit.NET.Kafka;-Audit.NET.AzureCosmos;-Audit.NET.AzureEventHubs"
239239
240240
- name: Upload Code Coverage Report artifact
241241
uses: actions/upload-artifact@v4

Audit.NET.sln

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Audit.NET.NLog", "src\Audit
103103
EndProject
104104
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Audit.EntityFramework.Full.UnitTest", "test\Audit.EntityFramework.Full.UnitTest\Audit.EntityFramework.Full.UnitTest.csproj", "{C2A70131-5E99-4070-B8E8-2B4E296C0A6D}"
105105
EndProject
106-
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Audit.NET.AmazonQLDB", "src\Audit.NET.AmazonQLDB\Audit.NET.AmazonQLDB.csproj", "{2E06C8C9-6BF7-4467-BD92-05B1C2E366E1}"
107-
EndProject
108106
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Audit.NET.Kafka", "src\Audit.NET.Kafka\Audit.NET.Kafka.csproj", "{A784FB5C-4097-40FC-9CD5-D97AED2A743D}"
109107
EndProject
110108
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Audit.NET.AzureCosmos", "src\Audit.NET.AzureCosmos\Audit.NET.AzureCosmos.csproj", "{78784E1E-CFFB-47F1-A585-286CD470542B}"
@@ -159,8 +157,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Audit.PostgreSql.UnitTest",
159157
EndProject
160158
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Audit.Serilog.UnitTest", "test\Audit.Serilog.UnitTest\Audit.Serilog.UnitTest.csproj", "{25E2A9F4-DB37-437D-8688-DDB5C678C0F8}"
161159
EndProject
162-
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Audit.AmazonQLDB.UnitTest", "test\Audit.AmazonQLDB.UnitTest\Audit.AmazonQLDB.UnitTest.csproj", "{ED5B6C4F-87D2-46AA-BA41-3BA4B0B1F551}"
163-
EndProject
164160
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Audit.Wcf.Client.UnitTest", "test\Audit.Wcf.Client.UnitTest\Audit.Wcf.Client.UnitTest.csproj", "{B0EDF983-3AC1-4D8D-9897-A7B639A0001F}"
165161
EndProject
166162
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Audit.AspNetCore.UnitTest", "test\Audit.AspNetCore.UnitTest\Audit.AspNetCore.UnitTest.csproj", "{0DA81364-E5E3-40BD-A0EA-65A8A0C1BC09}"
@@ -481,14 +477,6 @@ Global
481477
{C2A70131-5E99-4070-B8E8-2B4E296C0A6D}.Release|Any CPU.Build.0 = Release|Any CPU
482478
{C2A70131-5E99-4070-B8E8-2B4E296C0A6D}.Release|x64.ActiveCfg = Release|Any CPU
483479
{C2A70131-5E99-4070-B8E8-2B4E296C0A6D}.Release|x64.Build.0 = Release|Any CPU
484-
{2E06C8C9-6BF7-4467-BD92-05B1C2E366E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
485-
{2E06C8C9-6BF7-4467-BD92-05B1C2E366E1}.Debug|Any CPU.Build.0 = Debug|Any CPU
486-
{2E06C8C9-6BF7-4467-BD92-05B1C2E366E1}.Debug|x64.ActiveCfg = Debug|Any CPU
487-
{2E06C8C9-6BF7-4467-BD92-05B1C2E366E1}.Debug|x64.Build.0 = Debug|Any CPU
488-
{2E06C8C9-6BF7-4467-BD92-05B1C2E366E1}.Release|Any CPU.ActiveCfg = Release|Any CPU
489-
{2E06C8C9-6BF7-4467-BD92-05B1C2E366E1}.Release|Any CPU.Build.0 = Release|Any CPU
490-
{2E06C8C9-6BF7-4467-BD92-05B1C2E366E1}.Release|x64.ActiveCfg = Release|Any CPU
491-
{2E06C8C9-6BF7-4467-BD92-05B1C2E366E1}.Release|x64.Build.0 = Release|Any CPU
492480
{A784FB5C-4097-40FC-9CD5-D97AED2A743D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
493481
{A784FB5C-4097-40FC-9CD5-D97AED2A743D}.Debug|Any CPU.Build.0 = Debug|Any CPU
494482
{A784FB5C-4097-40FC-9CD5-D97AED2A743D}.Debug|x64.ActiveCfg = Debug|Any CPU
@@ -705,14 +693,6 @@ Global
705693
{25E2A9F4-DB37-437D-8688-DDB5C678C0F8}.Release|Any CPU.Build.0 = Release|Any CPU
706694
{25E2A9F4-DB37-437D-8688-DDB5C678C0F8}.Release|x64.ActiveCfg = Release|Any CPU
707695
{25E2A9F4-DB37-437D-8688-DDB5C678C0F8}.Release|x64.Build.0 = Release|Any CPU
708-
{ED5B6C4F-87D2-46AA-BA41-3BA4B0B1F551}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
709-
{ED5B6C4F-87D2-46AA-BA41-3BA4B0B1F551}.Debug|Any CPU.Build.0 = Debug|Any CPU
710-
{ED5B6C4F-87D2-46AA-BA41-3BA4B0B1F551}.Debug|x64.ActiveCfg = Debug|Any CPU
711-
{ED5B6C4F-87D2-46AA-BA41-3BA4B0B1F551}.Debug|x64.Build.0 = Debug|Any CPU
712-
{ED5B6C4F-87D2-46AA-BA41-3BA4B0B1F551}.Release|Any CPU.ActiveCfg = Release|Any CPU
713-
{ED5B6C4F-87D2-46AA-BA41-3BA4B0B1F551}.Release|Any CPU.Build.0 = Release|Any CPU
714-
{ED5B6C4F-87D2-46AA-BA41-3BA4B0B1F551}.Release|x64.ActiveCfg = Release|Any CPU
715-
{ED5B6C4F-87D2-46AA-BA41-3BA4B0B1F551}.Release|x64.Build.0 = Release|Any CPU
716696
{B0EDF983-3AC1-4D8D-9897-A7B639A0001F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
717697
{B0EDF983-3AC1-4D8D-9897-A7B639A0001F}.Debug|Any CPU.Build.0 = Debug|Any CPU
718698
{B0EDF983-3AC1-4D8D-9897-A7B639A0001F}.Debug|x64.ActiveCfg = Debug|Any CPU
@@ -852,7 +832,6 @@ Global
852832
{BC4D2C5B-E0EC-4304-9620-7CCCAF9EC683} = {E62475E8-0BE1-4464-BBD9-FD06CC546593}
853833
{8660908C-2A22-4FFF-8CB3-D139B1F8ADA1} = {E62475E8-0BE1-4464-BBD9-FD06CC546593}
854834
{C2A70131-5E99-4070-B8E8-2B4E296C0A6D} = {A54B4BB6-3439-432B-AFD9-FE62D6528D42}
855-
{2E06C8C9-6BF7-4467-BD92-05B1C2E366E1} = {E62475E8-0BE1-4464-BBD9-FD06CC546593}
856835
{A784FB5C-4097-40FC-9CD5-D97AED2A743D} = {E62475E8-0BE1-4464-BBD9-FD06CC546593}
857836
{78784E1E-CFFB-47F1-A585-286CD470542B} = {E62475E8-0BE1-4464-BBD9-FD06CC546593}
858837
{7547EDD0-241B-48D4-A07D-29CF38A945BA} = {E62475E8-0BE1-4464-BBD9-FD06CC546593}
@@ -880,7 +859,6 @@ Global
880859
{D81558A2-EC45-4526-88E2-F385D42E79E6} = {A54B4BB6-3439-432B-AFD9-FE62D6528D42}
881860
{E3821A4F-B1F5-4220-A491-4310D4DC4DE4} = {A54B4BB6-3439-432B-AFD9-FE62D6528D42}
882861
{25E2A9F4-DB37-437D-8688-DDB5C678C0F8} = {A54B4BB6-3439-432B-AFD9-FE62D6528D42}
883-
{ED5B6C4F-87D2-46AA-BA41-3BA4B0B1F551} = {A54B4BB6-3439-432B-AFD9-FE62D6528D42}
884862
{B0EDF983-3AC1-4D8D-9897-A7B639A0001F} = {A54B4BB6-3439-432B-AFD9-FE62D6528D42}
885863
{0DA81364-E5E3-40BD-A0EA-65A8A0C1BC09} = {A54B4BB6-3439-432B-AFD9-FE62D6528D42}
886864
{CA13DD91-30D5-45E8-AD0E-4F9049E7DC78} = {E62475E8-0BE1-4464-BBD9-FD06CC546593}

README.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -705,7 +705,6 @@ The Data Providers included are summarized in the following table:
705705

706706
| **Type** | **Technology** | **Package / Class** | **Description** | **[Configuration API](#configuration-fluent-api)** |
707707
|----------|-------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------|
708-
| SQL | Amazon QLDB | [Audit.NET.AmazonQLDB](https://github.com/thepirat000/Audit.NET/blob/master/src/Audit.NET.AmazonQLDB/README.md) / [AmazonQldbDataProvider](https://github.com/thepirat000/Audit.NET/blob/master/src/Audit.NET.AmazonQLDB/Providers/AmazonQldbDataProvider.cs) | Store the audit events using [Amazon QLDB](https://aws.amazon.com/es/qldb/). | `.UseAmazonQldb()` |
709708
| SQL | Entity Framework | [Audit.EntityFramework](https://github.com/thepirat000/Audit.NET/blob/master/src/Audit.EntityFramework/README.md#entity-framework-data-provider) / [EntityFrameworkDataProvider](https://github.com/thepirat000/Audit.NET/blob/master/src/Audit.EntityFramework/Providers/EntityFrameworkDataProvider.cs) | Store EntityFramework audit events in the same EF context. (This data provider can only be used for Entity Framework audits) | `.UseEntityFramework()` |
710709
| SQL | EF Core DbContext | [Audit.EntityFramework](https://github.com/thepirat000/Audit.NET/blob/master/src/Audit.EntityFramework/README.md#entity-framework-data-provider) / [DbContextDataProvider](https://github.com/thepirat000/Audit.NET/blob/master/src/Audit.EntityFramework/Providers/DbContextDataProvider.cs) | Store the events using Entity Framework Core DbContext. (This data provider can be used for any kind of audits events) | `.UseDbContext()` |
711710
| SQL | MySql | [Audit.NET.MySql](https://github.com/thepirat000/Audit.NET/tree/master/src/Audit.NET.MySql#auditnetmysql) / [MySqlDataProvider](https://github.com/thepirat000/Audit.NET/blob/master/src/Audit.NET.MySql/Providers/MySqlDataProvider.cs) | Store the events as rows in a **MySQL** database table, in JSON format. | `.UseMySql()` |
@@ -1094,7 +1093,6 @@ In addition, a variety of other Data Providers are available through separate pa
10941093

10951094
<a></a> | Package | Description
10961095
------------- | ------------------- | ------------------
1097-
<img width="80" src="https://unpkg.com/simple-icons@v11/icons/amazondynamodb.svg" /> | **[Audit.NET.AmazonQLDB](https://github.com/thepirat000/Audit.NET/blob/master/src/Audit.NET.AmazonQLDB/README.md)** | Store the audit events in **Amazon QLDB** (Quantum Ledger Database).
10981096
<img width="80" src="https://unpkg.com/simple-icons@v11/icons/microsoftazure.svg" /> | **[Audit.NET.AzureCosmos](https://github.com/thepirat000/Audit.NET/blob/master/src/Audit.NET.AzureCosmos/README.md)** | Store the events in an **Azure Cosmos DB** container, in JSON format.
10991097
<img width="80" src="https://unpkg.com/simple-icons@v11/icons/microsoftazure.svg" /> | **[Audit.NET.AzureEventHubs](https://github.com/thepirat000/Audit.NET/blob/master/src/Audit.NET.AzureEventHubs/README.md)** | Send the events to an **Azure Event Hub**, in JSON format.
11001098
<img width="80" src="https://unpkg.com/simple-icons@v11/icons/microsoftazure.svg" /> | **[Audit.NET.AzureStorage](https://github.com/thepirat000/Audit.NET/blob/master/src/Audit.NET.AzureStorage/README.md)** | Store the events in an **Azure Blob Storage** container or an **Azure Table** using the legacy client [WindowsAzure.Storage](https://www.nuget.org/packages/WindowsAzure.Storage/).

src/Audit.NET.AmazonQLDB/Audit.NET.AmazonQLDB.csproj

Lines changed: 0 additions & 45 deletions
This file was deleted.

src/Audit.NET.AmazonQLDB/ConfigurationApi/AmazonQldbConfiguratorExtensions.cs

Lines changed: 0 additions & 52 deletions
This file was deleted.

src/Audit.NET.AmazonQLDB/ConfigurationApi/AmazonQldbProviderAttributeConfigurator.cs

Lines changed: 0 additions & 17 deletions
This file was deleted.

0 commit comments

Comments
 (0)