diff --git a/MareSynchronosServer/MareSynchronosServer/MareSynchronosServer.csproj b/MareSynchronosServer/MareSynchronosServer/MareSynchronosServer.csproj
index 78e5a49..38e2081 100644
--- a/MareSynchronosServer/MareSynchronosServer/MareSynchronosServer.csproj
+++ b/MareSynchronosServer/MareSynchronosServer/MareSynchronosServer.csproj
@@ -11,7 +11,7 @@
-
+
@@ -22,6 +22,7 @@
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/MareSynchronosServer/MareSynchronosServer/Startup.cs b/MareSynchronosServer/MareSynchronosServer/Startup.cs
index 32ec88b..57fca87 100644
--- a/MareSynchronosServer/MareSynchronosServer/Startup.cs
+++ b/MareSynchronosServer/MareSynchronosServer/Startup.cs
@@ -59,6 +59,7 @@ namespace MareSynchronosServer
options.UseNpgsql(Configuration.GetConnectionString("DefaultConnection"), builder =>
{
builder.MigrationsHistoryTable("_efmigrationshistory", "public");
+ builder.MigrationsAssembly("MareSynchronosShared");
}).UseSnakeCaseNamingConvention();
options.EnableThreadSafetyChecks(false);
}, Configuration.GetValue("DbContextPoolSize", 1024));
diff --git a/MareSynchronosServer/MareSynchronosServer/appsettings.json b/MareSynchronosServer/MareSynchronosServer/appsettings.json
index 9831f47..20bad5c 100644
--- a/MareSynchronosServer/MareSynchronosServer/appsettings.json
+++ b/MareSynchronosServer/MareSynchronosServer/appsettings.json
@@ -26,7 +26,7 @@
"DbContextPoolSize": 2000,
"CdnFullUrl": "https:///cache/",
"CacheDirectory": "G:\\ServerTest", // do not delete this key and set it to the path where the files will be stored
- "ServicesUrl": "http://localhost:5002",
+ "ServiceAddress": "http://localhost:5002",
"AllowedHosts": "*",
"Kestrel": {
diff --git a/MareSynchronosServer/MareSynchronosServices/.config/dotnet-tools.json b/MareSynchronosServer/MareSynchronosServices/.config/dotnet-tools.json
new file mode 100644
index 0000000..98091c9
--- /dev/null
+++ b/MareSynchronosServer/MareSynchronosServices/.config/dotnet-tools.json
@@ -0,0 +1,12 @@
+{
+ "version": 1,
+ "isRoot": true,
+ "tools": {
+ "dotnet-ef": {
+ "version": "6.0.8",
+ "commands": [
+ "dotnet-ef"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/MareSynchronosServer/MareSynchronosServices/CleanupService.cs b/MareSynchronosServer/MareSynchronosServices/CleanupService.cs
index c64c97b..efc8a03 100644
--- a/MareSynchronosServer/MareSynchronosServices/CleanupService.cs
+++ b/MareSynchronosServer/MareSynchronosServices/CleanupService.cs
@@ -1,4 +1,5 @@
using MareSynchronosServices.Authentication;
+using MareSynchronosServices.Metrics;
using MareSynchronosShared.Data;
using MareSynchronosShared.Metrics;
using MareSynchronosShared.Models;
@@ -10,16 +11,16 @@ namespace MareSynchronosServices
{
public class CleanupService : IHostedService, IDisposable
{
- private readonly MetricsService.MetricsServiceClient _metricsClient;
+ private readonly MareMetrics metrics;
private readonly SecretKeyAuthenticationHandler _authService;
private readonly ILogger _logger;
private readonly IServiceProvider _services;
private readonly IConfiguration _configuration;
private Timer _timer;
- public CleanupService(MetricsService.MetricsServiceClient metricsClient, SecretKeyAuthenticationHandler authService, ILogger logger, IServiceProvider services, IConfiguration configuration)
+ public CleanupService(MareMetrics metrics, SecretKeyAuthenticationHandler authService, ILogger logger, IServiceProvider services, IConfiguration configuration)
{
- _metricsClient = metricsClient;
+ this.metrics = metrics;
_authService = authService;
_logger = logger;
_services = services;
@@ -64,8 +65,8 @@ namespace MareSynchronosServices
}
else if (fi.LastAccessTime < prevTime)
{
- _metricsClient.DecGauge(new GaugeRequest() { GaugeName = MetricsAPI.GaugeFilesTotalSize, Value = fi.Length });
- _metricsClient.DecGauge(new GaugeRequest() { GaugeName = MetricsAPI.GaugeFilesTotal, Value = 1 });
+ metrics.DecGaugeBy(MetricsAPI.GaugeFilesTotalSize, fi.Length);
+ metrics.DecGaugeBy(MetricsAPI.GaugeFilesTotal, 1);
_logger.LogInformation("File outdated: {fileName}", fileName);
dbContext.Files.Remove(file);
fi.Delete();
@@ -94,8 +95,8 @@ namespace MareSynchronosServices
removedHashes.Add(oldestFile.Name.ToLower());
allLocalFiles.Remove(oldestFile);
totalCacheSizeInBytes -= oldestFile.Length;
- _metricsClient.DecGauge(new GaugeRequest() { GaugeName = MetricsAPI.GaugeFilesTotalSize, Value = oldestFile.Length });
- _metricsClient.DecGauge(new GaugeRequest() { GaugeName = MetricsAPI.GaugeFilesTotal, Value = 1 });
+ metrics.DecGaugeBy(MetricsAPI.GaugeFilesTotalSize, oldestFile.Length);
+ metrics.DecGaugeBy(MetricsAPI.GaugeFilesTotal, 1);
oldestFile.Delete();
}
@@ -194,8 +195,8 @@ namespace MareSynchronosServices
var fi = new FileInfo(Path.Combine(_configuration["CacheDirectory"], file.Hash));
if (fi.Exists)
{
- _metricsClient.DecGauge(new GaugeRequest() { GaugeName = MetricsAPI.GaugeFilesTotalSize, Value = fi.Length });
- _metricsClient.DecGauge(new GaugeRequest() { GaugeName = MetricsAPI.GaugeFilesTotal, Value = 1 });
+ metrics.DecGaugeBy(MetricsAPI.GaugeFilesTotalSize, fi.Length);
+ metrics.DecGaugeBy(MetricsAPI.GaugeFilesTotal, 1);
fi.Delete();
}
}
@@ -208,10 +209,11 @@ namespace MareSynchronosServices
var otherPairData = dbContext.ClientPairs.Include(u => u.User)
.Where(u => u.OtherUser.UID == user.UID).ToList();
- _metricsClient.DecGauge(new GaugeRequest() { GaugeName = MetricsAPI.GaugePairs, Value = ownPairData.Count + otherPairData.Count });
- _metricsClient.DecGauge(new GaugeRequest() { GaugeName = MetricsAPI.GaugePairsPaused, Value = ownPairData.Count(c => c.IsPaused) });
- _metricsClient.DecGauge(new GaugeRequest() { GaugeName = MetricsAPI.GaugeUsersRegistered, Value = 1 });
-
+
+ metrics.DecGaugeBy(MetricsAPI.GaugePairs, ownPairData.Count + otherPairData.Count);
+ metrics.DecGaugeBy(MetricsAPI.GaugePairsPaused, ownPairData.Count + ownPairData.Count(c => c.IsPaused));
+ metrics.DecGaugeBy(MetricsAPI.GaugeUsersRegistered, ownPairData.Count + 1);
+
dbContext.RemoveRange(otherPairData);
dbContext.Remove(auth);
dbContext.Remove(user);
diff --git a/MareSynchronosServer/MareSynchronosServices/MareSynchronosServices.csproj b/MareSynchronosServer/MareSynchronosServices/MareSynchronosServices.csproj
index 7cddfee..0ed1bf3 100644
--- a/MareSynchronosServer/MareSynchronosServices/MareSynchronosServices.csproj
+++ b/MareSynchronosServer/MareSynchronosServices/MareSynchronosServices.csproj
@@ -9,7 +9,12 @@
-
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
diff --git a/MareSynchronosServer/MareSynchronosShared/MareSynchronosShared.csproj b/MareSynchronosServer/MareSynchronosShared/MareSynchronosShared.csproj
index afba71f..dd32764 100644
--- a/MareSynchronosServer/MareSynchronosShared/MareSynchronosShared.csproj
+++ b/MareSynchronosServer/MareSynchronosShared/MareSynchronosShared.csproj
@@ -3,7 +3,6 @@
net6.0
enable
- enable
@@ -16,7 +15,7 @@
-
+
diff --git a/MareSynchronosServer/MareSynchronosShared/Migrations/MareDbContextModelSnapshot.cs b/MareSynchronosServer/MareSynchronosShared/Migrations/MareDbContextModelSnapshot.cs
index b01ed50..5d3bb74 100644
--- a/MareSynchronosServer/MareSynchronosShared/Migrations/MareDbContextModelSnapshot.cs
+++ b/MareSynchronosServer/MareSynchronosShared/Migrations/MareDbContextModelSnapshot.cs
@@ -22,7 +22,7 @@ namespace MareSynchronosServer.Migrations
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
- modelBuilder.Entity("MareSynchronosServer.Models.Auth", b =>
+ modelBuilder.Entity("MareSynchronosShared.Models.Auth", b =>
{
b.Property("HashedKey")
.HasMaxLength(64)
@@ -42,7 +42,7 @@ namespace MareSynchronosServer.Migrations
b.ToTable("auth", (string)null);
});
- modelBuilder.Entity("MareSynchronosServer.Models.Banned", b =>
+ modelBuilder.Entity("MareSynchronosShared.Models.Banned", b =>
{
b.Property("CharacterIdentification")
.HasMaxLength(100)
@@ -65,7 +65,7 @@ namespace MareSynchronosServer.Migrations
b.ToTable("banned_users", (string)null);
});
- modelBuilder.Entity("MareSynchronosServer.Models.BannedRegistrations", b =>
+ modelBuilder.Entity("MareSynchronosShared.Models.BannedRegistrations", b =>
{
b.Property("DiscordIdOrLodestoneAuth")
.HasMaxLength(100)
@@ -78,7 +78,7 @@ namespace MareSynchronosServer.Migrations
b.ToTable("banned_registrations", (string)null);
});
- modelBuilder.Entity("MareSynchronosServer.Models.ClientPair", b =>
+ modelBuilder.Entity("MareSynchronosShared.Models.ClientPair", b =>
{
b.Property("UserUID")
.HasMaxLength(10)
@@ -116,7 +116,7 @@ namespace MareSynchronosServer.Migrations
b.ToTable("client_pairs", (string)null);
});
- modelBuilder.Entity("MareSynchronosServer.Models.FileCache", b =>
+ modelBuilder.Entity("MareSynchronosShared.Models.FileCache", b =>
{
b.Property("Hash")
.HasMaxLength(40)
@@ -147,7 +147,7 @@ namespace MareSynchronosServer.Migrations
b.ToTable("file_caches", (string)null);
});
- modelBuilder.Entity("MareSynchronosServer.Models.ForbiddenUploadEntry", b =>
+ modelBuilder.Entity("MareSynchronosShared.Models.ForbiddenUploadEntry", b =>
{
b.Property("Hash")
.HasMaxLength(40)
@@ -171,7 +171,7 @@ namespace MareSynchronosServer.Migrations
b.ToTable("forbidden_upload_entries", (string)null);
});
- modelBuilder.Entity("MareSynchronosServer.Models.LodeStoneAuth", b =>
+ modelBuilder.Entity("MareSynchronosShared.Models.LodeStoneAuth", b =>
{
b.Property("DiscordId")
.ValueGeneratedOnAdd()
@@ -205,7 +205,7 @@ namespace MareSynchronosServer.Migrations
b.ToTable("lodestone_auth", (string)null);
});
- modelBuilder.Entity("MareSynchronosServer.Models.User", b =>
+ modelBuilder.Entity("MareSynchronosShared.Models.User", b =>
{
b.Property("UID")
.HasMaxLength(10)
@@ -244,9 +244,9 @@ namespace MareSynchronosServer.Migrations
b.ToTable("users", (string)null);
});
- modelBuilder.Entity("MareSynchronosServer.Models.Auth", b =>
+ modelBuilder.Entity("MareSynchronosShared.Models.Auth", b =>
{
- b.HasOne("MareSynchronosServer.Models.User", "User")
+ b.HasOne("MareSynchronosShared.Models.User", "User")
.WithMany()
.HasForeignKey("UserUID")
.HasConstraintName("fk_auth_users_user_temp_id");
@@ -254,16 +254,16 @@ namespace MareSynchronosServer.Migrations
b.Navigation("User");
});
- modelBuilder.Entity("MareSynchronosServer.Models.ClientPair", b =>
+ modelBuilder.Entity("MareSynchronosShared.Models.ClientPair", b =>
{
- b.HasOne("MareSynchronosServer.Models.User", "OtherUser")
+ b.HasOne("MareSynchronosShared.Models.User", "OtherUser")
.WithMany()
.HasForeignKey("OtherUserUID")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.HasConstraintName("fk_client_pairs_users_other_user_temp_id1");
- b.HasOne("MareSynchronosServer.Models.User", "User")
+ b.HasOne("MareSynchronosShared.Models.User", "User")
.WithMany()
.HasForeignKey("UserUID")
.OnDelete(DeleteBehavior.Cascade)
@@ -275,9 +275,9 @@ namespace MareSynchronosServer.Migrations
b.Navigation("User");
});
- modelBuilder.Entity("MareSynchronosServer.Models.FileCache", b =>
+ modelBuilder.Entity("MareSynchronosShared.Models.FileCache", b =>
{
- b.HasOne("MareSynchronosServer.Models.User", "Uploader")
+ b.HasOne("MareSynchronosShared.Models.User", "Uploader")
.WithMany()
.HasForeignKey("UploaderUID")
.HasConstraintName("fk_file_caches_users_uploader_uid");
@@ -285,9 +285,9 @@ namespace MareSynchronosServer.Migrations
b.Navigation("Uploader");
});
- modelBuilder.Entity("MareSynchronosServer.Models.LodeStoneAuth", b =>
+ modelBuilder.Entity("MareSynchronosShared.Models.LodeStoneAuth", b =>
{
- b.HasOne("MareSynchronosServer.Models.User", "User")
+ b.HasOne("MareSynchronosShared.Models.User", "User")
.WithMany()
.HasForeignKey("UserUID")
.HasConstraintName("fk_lodestone_auth_users_user_uid");
diff --git a/MareSynchronosServer/MareSynchronosStaticFilesServer/.config/dotnet-tools.json b/MareSynchronosServer/MareSynchronosStaticFilesServer/.config/dotnet-tools.json
new file mode 100644
index 0000000..98091c9
--- /dev/null
+++ b/MareSynchronosServer/MareSynchronosStaticFilesServer/.config/dotnet-tools.json
@@ -0,0 +1,12 @@
+{
+ "version": 1,
+ "isRoot": true,
+ "tools": {
+ "dotnet-ef": {
+ "version": "6.0.8",
+ "commands": [
+ "dotnet-ef"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/MareSynchronosServer/MareSynchronosStaticFilesServer/MareSynchronosStaticFilesServer.csproj b/MareSynchronosServer/MareSynchronosStaticFilesServer/MareSynchronosStaticFilesServer.csproj
index 31bc086..23a6cae 100644
--- a/MareSynchronosServer/MareSynchronosStaticFilesServer/MareSynchronosStaticFilesServer.csproj
+++ b/MareSynchronosServer/MareSynchronosStaticFilesServer/MareSynchronosStaticFilesServer.csproj
@@ -7,7 +7,7 @@
-
+
diff --git a/MareSynchronosServer/MareSynchronosStaticFilesServer/appsettings.json b/MareSynchronosServer/MareSynchronosStaticFilesServer/appsettings.json
index 7eb3997..7e9426e 100644
--- a/MareSynchronosServer/MareSynchronosStaticFilesServer/appsettings.json
+++ b/MareSynchronosServer/MareSynchronosStaticFilesServer/appsettings.json
@@ -1,7 +1,4 @@
{
- "ConnectionStrings": {
- "DefaultConnection": "Host=localhost;Port=5432;Database=mare;Username=postgres"
- },
"Logging": {
"LogLevel": {
"Default": "Information",
@@ -17,5 +14,5 @@
},
"AllowedHosts": "*",
"CacheDirectory": "G:\\ServerTest", // do not delete this key and set it to the path where the files will be stored
- "ServicesUrl": "http://localhost:5002"
+ "ServiceAddress": "http://localhost:5002"
}