diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml
index f161e06..85931a6 100644
--- a/.github/workflows/docker-image.yml
+++ b/.github/workflows/docker-image.yml
@@ -19,6 +19,9 @@ jobs:
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
+
+ - name: Set up QEMU
+ uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
@@ -26,6 +29,7 @@ jobs:
- name: Build and push image
uses: docker/build-push-action@v6
with:
+ platforms: linux/arm64,linux/amd64
context: .
file: ./Dockerfile
push: true
diff --git a/Dockerfile b/Dockerfile
index a666e53..554a571 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,11 +1,11 @@
#See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging.
-FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
+FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS base
WORKDIR /app
EXPOSE 8080
EXPOSE 8081
-FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
+FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build
ARG BUILD_CONFIGURATION=Release
WORKDIR /src
COPY ["EOToolsWeb.Api/EOToolsWeb.Api.csproj", "EOToolsWeb.Api/"]
diff --git a/EOToolsWeb.Api/EOToolsWeb.Api.csproj b/EOToolsWeb.Api/EOToolsWeb.Api.csproj
index 2e07b95..898a4ce 100644
--- a/EOToolsWeb.Api/EOToolsWeb.Api.csproj
+++ b/EOToolsWeb.Api/EOToolsWeb.Api.csproj
@@ -1,51 +1,51 @@
-
- net8.0
- enable
- enable
- 82c8340f-25e9-428c-a86e-94acf0c6eda1
- Linux
-
+
+ net10.0
+ enable
+ enable
+ 82c8340f-25e9-428c-a86e-94acf0c6eda1
+ Linux
+
-
-
-
+
+
+
-
-
- Always
-
-
+
+
+ Always
+
+
-
-
-
- all
- runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
-
-
-
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+
+
-
-
-
+
+
+
-
-
- Always
-
-
- Always
-
-
- Always
-
-
- Always
-
-
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
diff --git a/EOToolsWeb.Api/Program.cs b/EOToolsWeb.Api/Program.cs
index 6e6e3cd..ceaba4d 100644
--- a/EOToolsWeb.Api/Program.cs
+++ b/EOToolsWeb.Api/Program.cs
@@ -2,13 +2,15 @@
using EOToolsWeb.Api.Services;
using EOToolsWeb.Api.Services.GitManager;
using EOToolsWeb.Api.Services.UpdateData;
+using EOToolsWeb.Shared.Sessions;
using Microsoft.AspNetCore.Authentication;
using Microsoft.EntityFrameworkCore;
-using Microsoft.OpenApi.Models;
+using NSwag;
+using NSwag.Generation.Processors.Security;
+using System.Reflection.Metadata;
using System.Runtime.InteropServices;
using System.Text.Encodings.Web;
using System.Text.Json;
-using EOToolsWeb.Shared.Sessions;
var builder = WebApplication.CreateBuilder(args);
@@ -18,55 +20,28 @@
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
-builder.Services.AddSwaggerGen(option =>
+builder.Services.AddOpenApiDocument(option =>
{
- option.AddSecurityDefinition("ApiAuthentication", new OpenApiSecurityScheme
+ option.AddSecurity("ApiAuthentication", new OpenApiSecurityScheme()
{
- In = ParameterLocation.Header,
+ In = OpenApiSecurityApiKeyLocation.Header,
Description = "Username / Password",
Name = "Authorization",
- Type = SecuritySchemeType.Http,
+ Type = OpenApiSecuritySchemeType.Http,
Scheme = "Basic",
});
- option.AddSecurityDefinition("TokenAuthentication", new OpenApiSecurityScheme
+ option.AddSecurity("TokenAuthentication", new OpenApiSecurityScheme
{
- In = ParameterLocation.Header,
+ In = OpenApiSecurityApiKeyLocation.Header,
Description = "Token",
Name = "X-TOKEN-EO-TOOLS-WEB-X",
- Type = SecuritySchemeType.ApiKey,
+ Type = OpenApiSecuritySchemeType.ApiKey,
Scheme = "",
});
- option.AddSecurityRequirement(new OpenApiSecurityRequirement
- {
- {
- new OpenApiSecurityScheme
- {
- Reference = new OpenApiReference
- {
- Type = ReferenceType.SecurityScheme,
- Id = "ApiAuthentication"
- }
- },
- new string[]{}
- }
- });
-
- option.AddSecurityRequirement(new OpenApiSecurityRequirement
- {
- {
- new OpenApiSecurityScheme
- {
- Reference = new OpenApiReference
- {
- Type = ReferenceType.SecurityScheme,
- Id = "TokenAuthentication"
- }
- },
- new string[]{}
- }
- });
+ option.OperationProcessors.Add(new AspNetCoreOperationSecurityScopeProcessor("ApiAuthentication"));
+ option.OperationProcessors.Add(new AspNetCoreOperationSecurityScopeProcessor("TokenAuthentication"));
});
builder.Services.AddScoped();
@@ -120,10 +95,10 @@
// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
- app.UseSwagger();
- app.UseSwaggerUI(config =>
+ app.UseOpenApi();
+ app.UseSwaggerUi(config =>
{
- config.EnablePersistAuthorization();
+ config.PersistAuthorization = true;
});
}
diff --git a/EOToolsWeb.Shared/EOToolsWeb.Shared.csproj b/EOToolsWeb.Shared/EOToolsWeb.Shared.csproj
index ad775fb..3b1c9b6 100644
--- a/EOToolsWeb.Shared/EOToolsWeb.Shared.csproj
+++ b/EOToolsWeb.Shared/EOToolsWeb.Shared.csproj
@@ -1,15 +1,15 @@
- net8.0
+ net10.0
enable
enable
-
-
-
+
+
+
diff --git a/EOToolsWeb.sln b/EOToolsWeb.sln
index 349c14c..7fbdd88 100644
--- a/EOToolsWeb.sln
+++ b/EOToolsWeb.sln
@@ -1,7 +1,7 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 17
-VisualStudioVersion = 17.9.34728.123
+# Visual Studio Version 18
+VisualStudioVersion = 18.3.11206.111 d18.3
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EOToolsWeb", "EOToolsWeb\EOToolsWeb\EOToolsWeb.csproj", "{FF84FDF0-DA65-4DC3-B4FB-52A057315CAD}"
EndProject
@@ -11,6 +11,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
ProjectSection(SolutionItems) = preProject
.dockerignore = .dockerignore
.gitignore = .gitignore
+ .github\workflows\docker-image.yml = .github\workflows\docker-image.yml
Dockerfile = Dockerfile
EndProjectSection
EndProject
diff --git a/EOToolsWeb/EOToolsWeb.Desktop/EOToolsWeb.Desktop.csproj b/EOToolsWeb/EOToolsWeb.Desktop/EOToolsWeb.Desktop.csproj
index addf308..c14cb9e 100644
--- a/EOToolsWeb/EOToolsWeb.Desktop/EOToolsWeb.Desktop.csproj
+++ b/EOToolsWeb/EOToolsWeb.Desktop/EOToolsWeb.Desktop.csproj
@@ -3,7 +3,7 @@
WinExe
- net8.0
+ net10.0
enable
true
@@ -13,9 +13,10 @@
-
+
-
+
+
diff --git a/EOToolsWeb/EOToolsWeb.Desktop/Program.cs b/EOToolsWeb/EOToolsWeb.Desktop/Program.cs
index 391ac07..c9d18c0 100644
--- a/EOToolsWeb/EOToolsWeb.Desktop/Program.cs
+++ b/EOToolsWeb/EOToolsWeb.Desktop/Program.cs
@@ -13,6 +13,10 @@ internal sealed class Program
public static void Main(string[] args) => BuildAvaloniaApp()
.StartWithClassicDesktopLifetime(args);
+ // TODO : Need to replace the nuget Avalonia.ReactiveUI by ReactiveUI.Avalonia
+ // This can't be done for the moment cause of an issue on startup
+ // See https://github.com/reactiveui/ReactiveUI/issues/4123
+
// Avalonia configuration, don't remove; also used by visual designer.
public static AppBuilder BuildAvaloniaApp()
=> AppBuilder.Configure()
diff --git a/EOToolsWeb/EOToolsWeb/EOToolsWeb.csproj b/EOToolsWeb/EOToolsWeb/EOToolsWeb.csproj
index 5ec3e7c..0a6b06c 100644
--- a/EOToolsWeb/EOToolsWeb/EOToolsWeb.csproj
+++ b/EOToolsWeb/EOToolsWeb/EOToolsWeb.csproj
@@ -1,11 +1,11 @@
- net8.0
+ net10.0
enable
preview
true
- 2.4.2
- 2.4.2
+ 2.5.0
+ 2.5.0
@@ -23,19 +23,18 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
-
+
+
+
+
diff --git a/EoToolsWeb.Updater/EoToolsWeb.Updater.csproj b/EoToolsWeb.Updater/EoToolsWeb.Updater.csproj
index eeaa1ab..9ca56c9 100644
--- a/EoToolsWeb.Updater/EoToolsWeb.Updater.csproj
+++ b/EoToolsWeb.Updater/EoToolsWeb.Updater.csproj
@@ -1,7 +1,7 @@
WinExe
- net8.0
+ net10.0
enable
true
app.manifest
@@ -10,13 +10,13 @@
-
-
-
-
+
+
+
+
-
-
+
+