diff --git a/Streetwriters.Common/Constants.cs b/Streetwriters.Common/Constants.cs index 634c09e..4cf1bb4 100644 --- a/Streetwriters.Common/Constants.cs +++ b/Streetwriters.Common/Constants.cs @@ -25,6 +25,7 @@ namespace Streetwriters.Common { public static bool IS_SELF_HOSTED => Environment.GetEnvironmentVariable("SELF_HOSTED") == "1"; public static bool DISABLE_ACCOUNT_CREATION => Environment.GetEnvironmentVariable("DISABLE_ACCOUNT_CREATION") == "1"; + public static string INSTANCE_NAME => Environment.GetEnvironmentVariable("INSTANCE_NAME") ?? "default"; // S3 related public static string S3_ACCESS_KEY => Environment.GetEnvironmentVariable("S3_ACCESS_KEY"); diff --git a/Streetwriters.Common/Extensions/AppBuilderExtensions.cs b/Streetwriters.Common/Extensions/AppBuilderExtensions.cs index 5ee31d4..451b73d 100644 --- a/Streetwriters.Common/Extensions/AppBuilderExtensions.cs +++ b/Streetwriters.Common/Extensions/AppBuilderExtensions.cs @@ -18,6 +18,8 @@ along with this program. If not, see . */ using System; +using System.Collections.Generic; +using System.Text.Json; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.DependencyInjection; @@ -30,13 +32,20 @@ namespace Streetwriters.Common.Extensions { public static class AppBuilderExtensions { - public static IApplicationBuilder UseVersion(this IApplicationBuilder app) + public static IApplicationBuilder UseVersion(this IApplicationBuilder app, Server server) { app.Map("/version", (app) => { app.Run(async context => { - await context.Response.WriteAsync(Version.AsString()); + context.Response.ContentType = "application/json"; + var data = new Dictionary + { + { "version", Version.AsString() }, + { "id", server.Id }, + { "instance", Constants.INSTANCE_NAME } + }; + await context.Response.WriteAsync(JsonSerializer.Serialize(data)); }); }); return app; diff --git a/Streetwriters.Common/Servers.cs b/Streetwriters.Common/Servers.cs index fa7c751..9d63537 100644 --- a/Streetwriters.Common/Servers.cs +++ b/Streetwriters.Common/Servers.cs @@ -34,7 +34,7 @@ namespace Streetwriters.Common if (!string.IsNullOrEmpty(originCertPath) && !string.IsNullOrEmpty(originCertKeyPath)) this.SSLCertificate = X509Certificate2.CreateFromPemFile(originCertPath, originCertKeyPath); } - + public string Id { get; set; } public int Port { get; set; } public string Hostname { get; set; } public string Domain { get; set; } @@ -95,6 +95,7 @@ namespace Streetwriters.Common Domain = Constants.NOTESNOOK_SERVER_DOMAIN, Port = Constants.NOTESNOOK_SERVER_PORT, Hostname = Constants.NOTESNOOK_SERVER_HOST, + Id = "notesnook-sync" }; public static Server MessengerServer { get; } = new(Constants.SSE_CERT_PATH, Constants.SSE_CERT_KEY_PATH) @@ -102,6 +103,7 @@ namespace Streetwriters.Common Domain = Constants.SSE_SERVER_DOMAIN, Port = Constants.SSE_SERVER_PORT, Hostname = Constants.SSE_SERVER_HOST, + Id = "sse" }; public static Server IdentityServer { get; } = new(Constants.IDENTITY_CERT_PATH, Constants.IDENTITY_CERT_KEY_PATH) @@ -109,6 +111,7 @@ namespace Streetwriters.Common Domain = Constants.IDENTITY_SERVER_DOMAIN, Port = Constants.IDENTITY_SERVER_PORT, Hostname = Constants.IDENTITY_SERVER_HOST, + Id = "auth" }; public static Server SubscriptionServer { get; } = new(Constants.SUBSCRIPTIONS_CERT_PATH, Constants.SUBSCRIPTIONS_CERT_KEY_PATH) @@ -116,6 +119,7 @@ namespace Streetwriters.Common Domain = Constants.SUBSCRIPTIONS_SERVER_DOMAIN, Port = Constants.SUBSCRIPTIONS_SERVER_PORT, Hostname = Constants.SUBSCRIPTIONS_SERVER_HOST, + Id = "subscription" }; } } diff --git a/Streetwriters.Common/Version.cs b/Streetwriters.Common/Version.cs index 4715f12..7e66f24 100644 --- a/Streetwriters.Common/Version.cs +++ b/Streetwriters.Common/Version.cs @@ -21,8 +21,8 @@ namespace Streetwriters.Common { public class Version { - public const int MAJOR = 2; - public const int MINOR = 3; + public const int MAJOR = 1; + public const int MINOR = 0; public const int PATCH = 0; public static string AsString() {