diff --git a/.gitignore b/.gitignore index 0fca7e5e..986f2ada 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,7 @@ *.userosscache *.sln.docstates *.idea +*.tye # User-specific files (MonoDevelop/Xamarin Studio) *.userprefs diff --git a/EShopOnAbp.sln b/EShopOnAbp.sln index 3a1d31cb..3cdee83d 100644 --- a/EShopOnAbp.sln +++ b/EShopOnAbp.sln @@ -23,14 +23,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EShopOnAbp.Shared.Hosting.M EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EShopOnAbp.AdministrationService.HttpApi.Host", "services\administration\src\EShopOnAbp.AdministrationService.HttpApi.Host\EShopOnAbp.AdministrationService.HttpApi.Host.csproj", "{0FA9667E-6A08-4EFF-8CAF-D2A3C3C1FBBD}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EShopOnAbp.SaasService.HttpApi.Host", "services\saas\src\EShopOnAbp.SaasService.HttpApi.Host\EShopOnAbp.SaasService.HttpApi.Host.csproj", "{9203C6CC-F491-4A9F-93B3-3BEA018D87B4}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EShopOnAbp.IdentityService.HttpApi.Host", "services\identity\src\EShopOnAbp.IdentityService.HttpApi.Host\EShopOnAbp.IdentityService.HttpApi.Host.csproj", "{FDFCA1B4-FD9D-445C-8655-3DF3F2D57CEA}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EShopOnAbp.Shared.Hosting.Gateways", "shared\EShopOnAbp.Shared.Hosting.Gateways\EShopOnAbp.Shared.Hosting.Gateways.csproj", "{590B609C-5887-4896-9FC5-5E54A2658B18}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EShopOnAbp.InternalGateway", "gateways\internal\src\EShopOnAbp.InternalGateway\EShopOnAbp.InternalGateway.csproj", "{857EE54A-6116-46AA-AB34-50B19E51DB3B}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EShopOnAbp.WebGateway", "gateways\web\src\EShopOnAbp.WebGateway\EShopOnAbp.WebGateway.csproj", "{5D653BE4-7653-4684-B9F0-9A9B955093E5}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EShopOnAbp.WebPublicGateway", "gateways\web-public\src\EShopOnAbp.WebPublicGateway\EShopOnAbp.WebPublicGateway.csproj", "{2E0B715C-3AAD-47B3-B2EB-D34CB24CBEFA}" @@ -75,10 +71,6 @@ Global {0FA9667E-6A08-4EFF-8CAF-D2A3C3C1FBBD}.Debug|Any CPU.Build.0 = Debug|Any CPU {0FA9667E-6A08-4EFF-8CAF-D2A3C3C1FBBD}.Release|Any CPU.ActiveCfg = Release|Any CPU {0FA9667E-6A08-4EFF-8CAF-D2A3C3C1FBBD}.Release|Any CPU.Build.0 = Release|Any CPU - {9203C6CC-F491-4A9F-93B3-3BEA018D87B4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9203C6CC-F491-4A9F-93B3-3BEA018D87B4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9203C6CC-F491-4A9F-93B3-3BEA018D87B4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9203C6CC-F491-4A9F-93B3-3BEA018D87B4}.Release|Any CPU.Build.0 = Release|Any CPU {FDFCA1B4-FD9D-445C-8655-3DF3F2D57CEA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {FDFCA1B4-FD9D-445C-8655-3DF3F2D57CEA}.Debug|Any CPU.Build.0 = Debug|Any CPU {FDFCA1B4-FD9D-445C-8655-3DF3F2D57CEA}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -87,10 +79,6 @@ Global {590B609C-5887-4896-9FC5-5E54A2658B18}.Debug|Any CPU.Build.0 = Debug|Any CPU {590B609C-5887-4896-9FC5-5E54A2658B18}.Release|Any CPU.ActiveCfg = Release|Any CPU {590B609C-5887-4896-9FC5-5E54A2658B18}.Release|Any CPU.Build.0 = Release|Any CPU - {857EE54A-6116-46AA-AB34-50B19E51DB3B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {857EE54A-6116-46AA-AB34-50B19E51DB3B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {857EE54A-6116-46AA-AB34-50B19E51DB3B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {857EE54A-6116-46AA-AB34-50B19E51DB3B}.Release|Any CPU.Build.0 = Release|Any CPU {5D653BE4-7653-4684-B9F0-9A9B955093E5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {5D653BE4-7653-4684-B9F0-9A9B955093E5}.Debug|Any CPU.Build.0 = Debug|Any CPU {5D653BE4-7653-4684-B9F0-9A9B955093E5}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -130,10 +118,8 @@ Global {2B608875-8226-44E4-B93A-D475E11A7B80} = {B8B59303-2178-459B-91A8-DF353044E090} {49DDB3F1-6200-445E-9A0D-0339E31D5D77} = {B8B59303-2178-459B-91A8-DF353044E090} {0FA9667E-6A08-4EFF-8CAF-D2A3C3C1FBBD} = {F415FFFD-E52D-4EBE-98DC-067C1EFFFFE3} - {9203C6CC-F491-4A9F-93B3-3BEA018D87B4} = {F415FFFD-E52D-4EBE-98DC-067C1EFFFFE3} {FDFCA1B4-FD9D-445C-8655-3DF3F2D57CEA} = {F415FFFD-E52D-4EBE-98DC-067C1EFFFFE3} {590B609C-5887-4896-9FC5-5E54A2658B18} = {B8B59303-2178-459B-91A8-DF353044E090} - {857EE54A-6116-46AA-AB34-50B19E51DB3B} = {1484E912-DCF3-4568-A72C-4C7622104DB8} {5D653BE4-7653-4684-B9F0-9A9B955093E5} = {1484E912-DCF3-4568-A72C-4C7622104DB8} {2E0B715C-3AAD-47B3-B2EB-D34CB24CBEFA} = {1484E912-DCF3-4568-A72C-4C7622104DB8} {969029FC-CFCF-4F95-9778-E5C69117711E} = {866DB6CC-FEA8-4CC2-A2E4-143537D197B6} diff --git a/NuGet.Config b/NuGet.Config new file mode 100644 index 00000000..f578cf96 --- /dev/null +++ b/NuGet.Config @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/apps/angular/Dockerfile b/apps/angular/Dockerfile index 6912e62c..837db661 100644 --- a/apps/angular/Dockerfile +++ b/apps/angular/Dockerfile @@ -1,3 +1,15 @@ -FROM nginx:alpine +FROM node:14-alpine as build + WORKDIR /app -COPY dist/EShopOnAbp /usr/share/nginx/html \ No newline at end of file +COPY package*.json /app/ + +RUN npm install +COPY . /app +ARG configuration=production +RUN npm run ng build -- --output-path=dist/EShopOnAbp --configuration $configuration + +FROM nginx:alpine +COPY dynamic-env.json /usr/share/nginx/html +COPY nginx.conf /etc/nginx/conf.d/default.conf + +COPY --from=build /app/dist/EShopOnAbp/ /usr/share/nginx/html diff --git a/apps/angular/Dockerfile.local b/apps/angular/Dockerfile.local new file mode 100644 index 00000000..5f83f0de --- /dev/null +++ b/apps/angular/Dockerfile.local @@ -0,0 +1,5 @@ +FROM nginx:alpine +WORKDIR /app +COPY dist/EShopOnAbp /usr/share/nginx/html +COPY dynamic-env.json /usr/share/nginx/html +COPY /nginx.conf /etc/nginx/conf.d/default.conf \ No newline at end of file diff --git a/apps/angular/dynamic-env.json b/apps/angular/dynamic-env.json new file mode 100644 index 00000000..1a1ff42a --- /dev/null +++ b/apps/angular/dynamic-env.json @@ -0,0 +1,21 @@ +{ + "production": true, + "application": { + "baseUrl":"https://eshop-st-web", + "name": "EShopOnAbp", + "logoUrl": "" + }, + "oAuthConfig": { + "issuer": "https://eshop-st-authserver", + "redirectUri": "https://eshop-st-web", + "clientId": "EShopOnAbp_App", + "responseType": "code", + "scope": "offline_access openid profile email phone IdentityService AdministrationService SaasService" + }, + "apis": { + "default": { + "url": "https://eshop-st-gateway-web", + "rootNamespace": "EShopOnAbp" + } + } +} \ No newline at end of file diff --git a/apps/angular/nginx.conf b/apps/angular/nginx.conf new file mode 100644 index 00000000..11f9847a --- /dev/null +++ b/apps/angular/nginx.conf @@ -0,0 +1,30 @@ +server { + listen 80; + listen [::]:80; + server_name _; + + #access_log /var/log/nginx/host.access.log main; + + location / { + root /usr/share/nginx/html; + index index.html index.htm; + try_files $uri $uri/ /index.html =404; + } + + location /getEnvConfig { + default_type 'application/json'; + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS' always; + add_header 'Content-Type' 'application/json'; + try_files $uri /dynamic-env.json; + } + + #error_page 404 /404.html; + + # redirect server error pages to the static page /50x.html + # + error_page 500 502 503 504 /50x.html; + location = /50x.html { + root /usr/share/nginx/html; + } +} \ No newline at end of file diff --git a/apps/angular/package.json b/apps/angular/package.json index 6d5af4df..95de0ece 100644 --- a/apps/angular/package.json +++ b/apps/angular/package.json @@ -56,4 +56,4 @@ "tslint": "~6.1.0", "typescript": "~4.3.5" } -} +} \ No newline at end of file diff --git a/apps/angular/src/environments/environment.prod.ts b/apps/angular/src/environments/environment.prod.ts index b5ede0c0..20653898 100644 --- a/apps/angular/src/environments/environment.prod.ts +++ b/apps/angular/src/environments/environment.prod.ts @@ -12,9 +12,9 @@ export const environment = { oAuthConfig: { issuer: 'https://localhost:44394', redirectUri: baseUrl, - clientId: 'EShopOnAbp_App', + clientId: 'Web', responseType: 'code', - scope: 'offline_access EShopOnAbp', + scope: 'offline_access openid profile email phone IdentityService AdministrationService SaasService', }, apis: { default: { @@ -22,4 +22,8 @@ export const environment = { rootNamespace: 'EShopOnAbp', }, }, + remoteEnv:{ + url: "/getEnvConfig", + mergeStrategy:'deepmerge' + } } as Environment; diff --git a/apps/angular/src/environments/environment.ts b/apps/angular/src/environments/environment.ts index 0e9fa789..d79f4a8e 100644 --- a/apps/angular/src/environments/environment.ts +++ b/apps/angular/src/environments/environment.ts @@ -11,7 +11,7 @@ export const environment = { oAuthConfig: { issuer: 'https://localhost:44330', redirectUri: baseUrl, - clientId: 'EShopOnAbp_Angular', + clientId: 'Web', responseType: 'code', scope: 'offline_access openid profile email phone IdentityService AdministrationService SaasService', diff --git a/apps/auth-server/src/EShopOnAbp.AuthServer/Dockerfile b/apps/auth-server/src/EShopOnAbp.AuthServer/Dockerfile index 9eede96d..1bbffe2c 100644 --- a/apps/auth-server/src/EShopOnAbp.AuthServer/Dockerfile +++ b/apps/auth-server/src/EShopOnAbp.AuthServer/Dockerfile @@ -1,4 +1,53 @@ - FROM mcr.microsoft.com/dotnet/aspnet:6.0 - COPY bin/Release/net6.0/publish/ app/ - WORKDIR /app - ENTRYPOINT ["dotnet", "EShopOnAbp.AuthServer.dll"] \ No newline at end of file +FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base +WORKDIR /app +EXPOSE 80 +EXPOSE 443 + +FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build +WORKDIR /src + +# It's important to keep lines from here down to "COPY . ." identical in all Dockerfiles +# to take advantage of Docker's build cache, to speed up local container builds +COPY "EShopOnAbp.sln" "EShopOnAbp.sln" + +# Applications +COPY "apps/auth-server/src/EShopOnAbp.AuthServer/EShopOnAbp.AuthServer.csproj" "apps/auth-server/src/EShopOnAbp.AuthServer/EShopOnAbp.AuthServer.csproj" +COPY "apps/public-web/src/EShopOnAbp.PublicWeb/EShopOnAbp.PublicWeb.csproj" "apps/public-web/src/EShopOnAbp.PublicWeb/EShopOnAbp.PublicWeb.csproj" + +# Shared +COPY "shared/EShopOnAbp.Shared.Hosting/EShopOnAbp.Shared.Hosting.csproj" "shared/EShopOnAbp.Shared.Hosting/EShopOnAbp.Shared.Hosting.csproj" +COPY "shared/EShopOnAbp.Shared.Hosting.AspNetCore/EShopOnAbp.Shared.Hosting.AspNetCore.csproj" "shared/EShopOnAbp.Shared.Hosting.AspNetCore/EShopOnAbp.Shared.Hosting.AspNetCore.csproj" +COPY "shared/EShopOnAbp.Shared.Hosting.Gateways/EShopOnAbp.Shared.Hosting.Gateways.csproj" "shared/EShopOnAbp.Shared.Hosting.Gateways/EShopOnAbp.Shared.Hosting.Gateways.csproj" +COPY "shared/EShopOnAbp.Shared.Hosting.Microservices/EShopOnAbp.Shared.Hosting.Microservices.csproj" "shared/EShopOnAbp.Shared.Hosting.Microservices/EShopOnAbp.Shared.Hosting.Microservices.csproj" +COPY "shared/EShopOnAbp.Shared.Localization/EShopOnAbp.Shared.Localization.csproj" "shared/EShopOnAbp.Shared.Localization/EShopOnAbp.Shared.Localization.csproj" + +# Microservices +COPY "services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/EShopOnAbp.AdministrationService.HttpApi.Host.csproj" "services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/EShopOnAbp.AdministrationService.HttpApi.Host.csproj" +COPY "services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/EShopOnAbp.IdentityService.HttpApi.Host.csproj" "services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/EShopOnAbp.IdentityService.HttpApi.Host.csproj" +COPY *"services/saas/src/EShopOnAbp.SaasService.HttpApi.Host/EShopOnAbp.SaasService.HttpApi.Host.csproj" "services/saas/src/EShopOnAbp.SaasService.HttpApi.Host/EShopOnAbp.SaasService.HttpApi.Host.csproj" +COPY *"services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/EShopOnAbp.BasketService.HttpApi.Host.csproj" "services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/EShopOnAbp.BasketService.HttpApi.Host.csproj" +COPY *"services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/EShopOnAbp.OrderingService.HttpApi.Host.csproj" "services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/EShopOnAbp.OrderingService.HttpApi.Host.csproj" +COPY *"services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/EShopOnAbp.CatalogService.HttpApi.Host.csproj" "services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/EShopOnAbp.CatalogService.HttpApi.Host.csproj" +COPY *"services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/EShopOnAbp.PaymentService.HttpApi.Host.csproj" "services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/EShopOnAbp.PaymentService.HttpApi.Host.csproj" + +# Gateways +COPY "gateways/web/src/EShopOnAbp.WebGateway/EShopOnAbp.WebGateway.csproj" "gateways/web/src/EShopOnAbp.WebGateway/EShopOnAbp.WebGateway.csproj" +COPY "gateways/web-public/src/EShopOnAbp.WebPublicGateway/EShopOnAbp.WebPublicGateway.csproj" "gateways/web-public/src/EShopOnAbp.WebPublicGateway/EShopOnAbp.WebPublicGateway.csproj" + +COPY "NuGet.Config" "NuGet.Config" + +RUN dotnet restore "EShopOnAbp.sln" +COPY . . + +WORKDIR "/src/apps/auth-server/src/EShopOnAbp.AuthServer" + +RUN dotnet publish -c Release -o /app +# Should be used after .net6 is out of preview for better performance +# RUN dotnet publish --no-restore -c Release -o /app + +FROM build AS publish + +FROM base AS final +WORKDIR /app +COPY --from=publish /app . +ENTRYPOINT ["dotnet", "EShopOnAbp.AuthServer.dll"] \ No newline at end of file diff --git a/gateways/internal/src/EShopOnAbp.InternalGateway/Dockerfile b/apps/auth-server/src/EShopOnAbp.AuthServer/Dockerfile.local similarity index 63% rename from gateways/internal/src/EShopOnAbp.InternalGateway/Dockerfile rename to apps/auth-server/src/EShopOnAbp.AuthServer/Dockerfile.local index 2b7cbf5a..9eede96d 100644 --- a/gateways/internal/src/EShopOnAbp.InternalGateway/Dockerfile +++ b/apps/auth-server/src/EShopOnAbp.AuthServer/Dockerfile.local @@ -1,4 +1,4 @@ FROM mcr.microsoft.com/dotnet/aspnet:6.0 COPY bin/Release/net6.0/publish/ app/ WORKDIR /app - ENTRYPOINT ["dotnet", "EShopOnAbp.InternalGateway.dll"] \ No newline at end of file + ENTRYPOINT ["dotnet", "EShopOnAbp.AuthServer.dll"] \ No newline at end of file diff --git a/apps/auth-server/src/EShopOnAbp.AuthServer/EShopOnAbp.AuthServer.csproj b/apps/auth-server/src/EShopOnAbp.AuthServer/EShopOnAbp.AuthServer.csproj index 7a386146..0dce8548 100644 --- a/apps/auth-server/src/EShopOnAbp.AuthServer/EShopOnAbp.AuthServer.csproj +++ b/apps/auth-server/src/EShopOnAbp.AuthServer/EShopOnAbp.AuthServer.csproj @@ -2,32 +2,39 @@ net6.0 - true - true - true - - + + - - - - - - - + + + + + + + - - + + + + + + + + + + + Always + diff --git a/apps/auth-server/src/EShopOnAbp.AuthServer/EShopOnAbpAuthServerModule.cs b/apps/auth-server/src/EShopOnAbp.AuthServer/EShopOnAbpAuthServerModule.cs index 726fcc96..5110d159 100644 --- a/apps/auth-server/src/EShopOnAbp.AuthServer/EShopOnAbpAuthServerModule.cs +++ b/apps/auth-server/src/EShopOnAbp.AuthServer/EShopOnAbpAuthServerModule.cs @@ -1,6 +1,5 @@ using EShopOnAbp.AdministrationService.EntityFrameworkCore; using EShopOnAbp.IdentityService.EntityFrameworkCore; -using EShopOnAbp.SaasService.EntityFrameworkCore; using EShopOnAbp.Shared.Hosting.AspNetCore; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Cors; @@ -12,6 +11,11 @@ using StackExchange.Redis; using System; using System.IO; using System.Linq; +using System.Security.Cryptography.X509Certificates; +using IdentityServer4.Configuration; +using IdentityServer4.Extensions; +using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.Configuration; using Volo.Abp; using Volo.Abp.Account; using Volo.Abp.Account.Web; @@ -23,6 +27,7 @@ using Volo.Abp.Caching; using Volo.Abp.Caching.StackExchangeRedis; using Volo.Abp.Emailing; using Volo.Abp.EventBus.RabbitMq; +using Volo.Abp.IdentityServer; using Volo.Abp.Modularity; using Volo.Abp.MultiTenancy; using Volo.Abp.UI.Navigation.Urls; @@ -40,15 +45,54 @@ namespace EShopOnAbp.AuthServer typeof(EShopOnAbpSharedHostingAspNetCoreModule), typeof(EShopOnAbpSharedLocalizationModule), typeof(AdministrationServiceEntityFrameworkCoreModule), - typeof(IdentityServiceEntityFrameworkCoreModule), - typeof(SaasServiceEntityFrameworkCoreModule) + typeof(IdentityServiceEntityFrameworkCoreModule) )] public class EShopOnAbpAuthServerModule : AbpModule { + public override void PreConfigureServices(ServiceConfigurationContext context) + { + var hostingEnvironment = context.Services.GetHostingEnvironment(); + + if (!hostingEnvironment.IsDevelopment()) + { + var configuration = context.Services.GetConfiguration(); + + PreConfigure(options => + { + options.AddDeveloperSigningCredential = false; + }); + + PreConfigure(builder => + { + builder.AddSigningCredential(GetSigningCertificate(hostingEnvironment, configuration)); + }); + } + } + + private X509Certificate2 GetSigningCertificate(IWebHostEnvironment hostingEnv, IConfiguration configuration) + { + var fileName = "eshoponabp-authserver.pfx"; + var passPhrase = "780F3C11-0A96-40DE-B335-9848BE88C77D"; + var file = Path.Combine(hostingEnv.ContentRootPath, fileName); + + if (!File.Exists(file)) + { + throw new FileNotFoundException($"Signing Certificate couldn't found: {file}"); + } + + return new X509Certificate2(file, passPhrase); + } + public override void ConfigureServices(ServiceConfigurationContext context) { + Microsoft.IdentityModel.Logging.IdentityModelEventSource.ShowPII = true; var hostingEnvironment = context.Services.GetHostingEnvironment(); var configuration = context.Services.GetConfiguration(); + + Configure(options => + { + options.IssuerUri = configuration["App:SelfUrl"]; + }); Configure(options => { @@ -74,7 +118,8 @@ namespace EShopOnAbp.AuthServer var redis = ConnectionMultiplexer.Connect(configuration["Redis:Configuration"]); context.Services .AddDataProtection() - .PersistKeysToStackExchangeRedis(redis, "EShopOnAbp-Protection-Keys"); + .PersistKeysToStackExchangeRedis(redis, "EShopOnAbp-Protection-Keys") + .SetApplicationName("eShopOnAbp-AuthServer"); context.Services.AddCors(options => { @@ -114,10 +159,16 @@ namespace EShopOnAbp.AuthServer var app = context.GetApplicationBuilder(); var env = context.GetEnvironment(); - app.Use((ctx, next) => + var configuration = context.ServiceProvider.GetRequiredService(); + + app.Use(async (ctx, next) => { - ctx.Request.Scheme = "https"; - return next(); + if (ctx.Request.Headers.ContainsKey("from-ingress")) + { + ctx.SetIdentityServerOrigin(configuration["App:SelfUrl"]); + } + + await next(); }); if (env.IsDevelopment()) @@ -138,7 +189,6 @@ namespace EShopOnAbp.AuthServer app.UseCors(); // app.UseHttpMetrics(); app.UseAuthentication(); - app.UseMultiTenancy(); app.UseAbpSerilogEnrichers(); app.UseUnitOfWork(); app.UseIdentityServer(); diff --git a/apps/auth-server/src/EShopOnAbp.AuthServer/appsettings.json b/apps/auth-server/src/EShopOnAbp.AuthServer/appsettings.json index 81e84e8e..cecca953 100644 --- a/apps/auth-server/src/EShopOnAbp.AuthServer/appsettings.json +++ b/apps/auth-server/src/EShopOnAbp.AuthServer/appsettings.json @@ -1,7 +1,7 @@ { "App": { "SelfUrl": "https://localhost:44330", - "CorsOrigins": "https://*.EShopOnAbp.com,http://localhost:4200,https://localhost:44307,https://localhost:44371,https://localhost:44372,https://localhost:44353", + "CorsOrigins": "https://*.EShopOnAbp.com,http://localhost:4200,https://localhost:44307,https://localhost:44372,https://localhost:44353", "RedirectAllowedUrls": "http://localhost:4200,https://localhost:44307" }, "Logging": { @@ -14,8 +14,7 @@ "AllowedHosts": "*", "ConnectionStrings": { "IdentityService": "Server=localhost,1434;Database=EShopOnAbp_Identity;User Id=sa;password=myPassw0rd;MultipleActiveResultSets=true", - "AdministrationService": "Server=localhost,1434;Database=EShopOnAbp_Administration;User Id=sa;password=myPassw0rd;MultipleActiveResultSets=true", - "SaasService": "Server=localhost,1434;Database=EShopOnAbp_Saas;User Id=sa;password=myPassw0rd;MultipleActiveResultSets=true" + "AdministrationService": "Server=localhost,1434;Database=EShopOnAbp_Administration;User Id=sa;password=myPassw0rd;MultipleActiveResultSets=true" }, "StringEncryption": { "DefaultPassPhrase": "gsKnGZ041HLL4IM8" diff --git a/apps/auth-server/src/EShopOnAbp.AuthServer/eshoponabp-authserver.pfx b/apps/auth-server/src/EShopOnAbp.AuthServer/eshoponabp-authserver.pfx new file mode 100644 index 00000000..3b0c5860 Binary files /dev/null and b/apps/auth-server/src/EShopOnAbp.AuthServer/eshoponabp-authserver.pfx differ diff --git a/apps/auth-server/src/EShopOnAbp.AuthServer/package.json b/apps/auth-server/src/EShopOnAbp.AuthServer/package.json index 4b835a4c..1596b6c1 100644 --- a/apps/auth-server/src/EShopOnAbp.AuthServer/package.json +++ b/apps/auth-server/src/EShopOnAbp.AuthServer/package.json @@ -3,7 +3,7 @@ "name": "EShopOnAbpAuthServer", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~5.0.0-beta.1", - "@volo/account": "~4.4.3" + "@abp/aspnetcore.mvc.ui.theme.basic": "^5.0.0-beta.2", + "@volo/account": "^5.0.0-beta.2" } } \ No newline at end of file diff --git a/apps/auth-server/src/EShopOnAbp.AuthServer/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js b/apps/auth-server/src/EShopOnAbp.AuthServer/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js index 1fee6e79..d7b5d2d9 100644 --- a/apps/auth-server/src/EShopOnAbp.AuthServer/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js +++ b/apps/auth-server/src/EShopOnAbp.AuthServer/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js @@ -1,4 +1,6 @@ /* https://select2.org/troubleshooting/common-problems */ -$.fn.modal.Constructor.prototype._enforceFocus = function () { }; \ No newline at end of file +if ($.fn.modal) { + $.fn.modal.Constructor.prototype._enforceFocus = function () { }; +} diff --git a/apps/auth-server/src/EShopOnAbp.AuthServer/yarn.lock b/apps/auth-server/src/EShopOnAbp.AuthServer/yarn.lock index 0a5b5d3a..fb0f4b65 100644 --- a/apps/auth-server/src/EShopOnAbp.AuthServer/yarn.lock +++ b/apps/auth-server/src/EShopOnAbp.AuthServer/yarn.lock @@ -2,57 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.0.0-beta.1.tgz#2c78c2bd977a67f6c2ed77cfcd404cf9533eaaae" - integrity sha512-b8Boztxd5NbaDlXQvgHXHtw8ZNgM4tEgo14kw/bN3mcLx05fWLGd8Lzfdi7i+Ju6U3rKbgi+0MSbga93A0KSmg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~5.0.0-beta.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~4.4.3": - version "4.4.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.4.3.tgz#464148bbf641e6988852235f94dc3393131c657e" - integrity sha512-/aXlX5JZ/CYD6KdIBL2V216aNidqxf7ugU9dZPK1FbGSixN805lJVIu766ufEA5xZrMIGPL/O7MZmu+hJyclTA== - dependencies: - "@abp/aspnetcore.mvc.ui" "~4.4.3" - "@abp/bootstrap" "~4.4.3" - "@abp/bootstrap-datepicker" "~4.4.3" - "@abp/datatables.net-bs4" "~4.4.3" - "@abp/font-awesome" "~4.4.3" - "@abp/jquery-form" "~4.4.3" - "@abp/jquery-validation-unobtrusive" "~4.4.3" - "@abp/lodash" "~4.4.3" - "@abp/luxon" "~4.4.3" - "@abp/malihu-custom-scrollbar-plugin" "~4.4.3" - "@abp/select2" "~4.4.3" - "@abp/sweetalert" "~4.4.3" - "@abp/timeago" "~4.4.3" - "@abp/toastr" "~4.4.3" - -"@abp/aspnetcore.mvc.ui.theme.shared@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.0.0-beta.1.tgz#25596652bb3f7b6bac5bbd966a731144cd9646c6" - integrity sha512-N4SHu6rn8alK4jdve00IscngrfvqJNEjrwQclXNmP9c4NtPuVM9emZdxBzKF8jFb6Hz8HiwM9H3xV/SjKCS/7A== - dependencies: - "@abp/aspnetcore.mvc.ui" "~5.0.0-beta.1" - "@abp/bootstrap" "~5.0.0-beta.1" - "@abp/bootstrap-datepicker" "~5.0.0-beta.1" - "@abp/datatables.net-bs4" "~5.0.0-beta.1" - "@abp/font-awesome" "~5.0.0-beta.1" - "@abp/jquery-form" "~5.0.0-beta.1" - "@abp/jquery-validation-unobtrusive" "~5.0.0-beta.1" - "@abp/lodash" "~5.0.0-beta.1" - "@abp/luxon" "~5.0.0-beta.1" - "@abp/malihu-custom-scrollbar-plugin" "~5.0.0-beta.1" - "@abp/select2" "~5.0.0-beta.1" - "@abp/sweetalert2" "~5.0.0-beta.1" - "@abp/timeago" "~5.0.0-beta.1" - "@abp/toastr" "~5.0.0-beta.1" - -"@abp/aspnetcore.mvc.ui@~4.4.3": - version "4.4.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.4.3.tgz#b7c217f23d39793a63baff9a56ff063bb0da3049" - integrity sha512-dVZe5HcKRTg0gfWom7vY70JRZkHm1nFtYWq+ciEPvVqPAClzDEvJucoKiUTzfgmPQO13Yv5/GonTV99MV9sLHg== +"@abp/aspnetcore.mvc.ui.theme.basic@^5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.0.0-beta.2.tgz#077d1edd88f2f1ccb5c8227180a75e3121eece19" + integrity sha512-b7f05Fza18NYHudrHosYuCX/UJ/Y3KYJrJMHqdvAsZYu0t3dc7EMWKYTDA/+rDEO8iV/83twRYfHLf0tmVyc1Q== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~5.0.0-beta.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.0.0-beta.2.tgz#8c58d252f1a39f91c2c287b91691e5bd772f4918" + integrity sha512-l4suGM7PjGTw/MEg2f2BdbRXYzALhZQUSijzKIQTy5dwcA/JQPsLbezPzGy45fD3lXsYxBwS4QaOmofTosKkug== + dependencies: + "@abp/aspnetcore.mvc.ui" "~5.0.0-beta.2" + "@abp/bootstrap" "~5.0.0-beta.2" + "@abp/bootstrap-datepicker" "~5.0.0-beta.2" + "@abp/datatables.net-bs4" "~5.0.0-beta.2" + "@abp/font-awesome" "~5.0.0-beta.2" + "@abp/jquery-form" "~5.0.0-beta.2" + "@abp/jquery-validation-unobtrusive" "~5.0.0-beta.2" + "@abp/lodash" "~5.0.0-beta.2" + "@abp/luxon" "~5.0.0-beta.2" + "@abp/malihu-custom-scrollbar-plugin" "~5.0.0-beta.2" + "@abp/select2" "~5.0.0-beta.2" + "@abp/sweetalert2" "~5.0.0-beta.2" + "@abp/timeago" "~5.0.0-beta.2" + "@abp/toastr" "~5.0.0-beta.2" + +"@abp/aspnetcore.mvc.ui@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.0.0-beta.2.tgz#c30d9905e133451208e379f7173ed9c44dd5f487" + integrity sha512-8Dzfg5SzeVoXz/nY11o2u3y7ZQdUW/zVSYVTgbsCMC1HCe2yzptpr2XI0Goz8jQKgz0G+zg3iwfeur7vNoaoMw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -61,315 +41,161 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/aspnetcore.mvc.ui@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.0.0-beta.1.tgz#30c14386899596bf91e8871810dbaa1a0e51e996" - integrity sha512-pabiGHghC62eg95RfAncEt0+yGdBxdMmyqCXV+Be4JjaMz/hGZIDOPIYnaqCayZtyMmIRqG6IAwi99DqBjkQAQ== - dependencies: - ansi-colors "^4.1.1" - extend-object "^1.0.0" - glob "^7.1.6" - gulp "^4.0.2" - merge-stream "^2.0.0" - micromatch "^4.0.2" - -"@abp/bootstrap-datepicker@~4.4.3": - version "4.4.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.4.3.tgz#08fd1642ede232badb62a1536982ad2bfce6c265" - integrity sha512-pwb+3DbLkhuNnjD74UwqZgK5hnoxAFFu8y7qlJEkSiKsLWrKNlJS+PHF1LLifPqXogU1MKwc18AuXnHOEKjzbQ== +"@abp/bootstrap-datepicker@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.0.0-beta.2.tgz#dbf92485225a424f0e53e55c3ef8c993943682f0" + integrity sha512-jJWVKrkKcUMEqwBrEqhGD1zDFD8b0b3j0WdlzKuzlw26AaQkfE4LQ9Gjfjs+RnTW1LxPn8rGP8QCgdVeWMNjQQ== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap-datepicker@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.0.0-beta.1.tgz#727e0f7305a94c95ece152ffff011bcff621f46d" - integrity sha512-txhdlJqyO2D9MkGLYgrsiDaC58cb2eCpk2uxoqqQeVWvuRPo/L+9rCBk+bu6J37FGJtU8aabtHJyR5xnYbv0TQ== +"@abp/bootstrap@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.0.0-beta.2.tgz#0faaa85871fd23076dd597dce83dc3020b1ff950" + integrity sha512-zy0DUcAJuX+Oeu4csw7XbyLGq/YdfonMLJt/Mkpq8CjAssD7n7aJK6PwG+akaI4giSQd7Sc1JvvnKRMRzyxy1Q== dependencies: - bootstrap-datepicker "^1.9.0" - -"@abp/bootstrap@~4.4.3": - version "4.4.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.4.3.tgz#76968df98fd5c6e5d26abea9cea5c9d76646d24e" - integrity sha512-InA3AI1ydkqd7AYz+f9RAag1h/uhFsFAFGIo34jllIeFhG4C59EbkNwdWDk96lNHmt0qutQYydsO6WKPlgnjYA== - dependencies: - "@abp/core" "~4.4.3" - bootstrap "^4.6.0" - bootstrap-v4-rtl "4.6.0-1" - -"@abp/bootstrap@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.0.0-beta.1.tgz#075a15459ff8e3896b6553786e6c8f091c6ffcad" - integrity sha512-W8z6qSAsRoXmG0++xH6Bk1oRc90hFqVcjKI+5XgBQhUUCn2qBruBYOKFxPg2GeT2f1k9K5TrCEnnVrh0sOP9/A== - dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" bootstrap "^4.6.0" bootstrap-v4-rtl "4.6.0-1" -"@abp/core@~4.4.3": - version "4.4.3" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.4.3.tgz#fc79a2eebf37a61a6cc05287b722750000f38522" - integrity sha512-gQ2rNyj1MpYCfLTg7Id/20AH4dqs0XIt/n+WqlgeGoYvEpAm4lakHWL7mxZaDQ+iMI/lVVrBhuzwuQv7xKpEIQ== - dependencies: - "@abp/utils" "^4.4.3" - -"@abp/core@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.0.0-beta.1.tgz#6cff06b13529ab9d7a6ddc4e89dc40616e6b7739" - integrity sha512-TK1CnurJIK/SXfsNTk6HSpxdaJgVxwvqNd4F3fxCC0Uj8s5viD3TAGk39Hkp4909WGfNrRq8BEUNvTYM/rP6gg== +"@abp/core@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.0.0-beta.2.tgz#f9643d21b19128be3ad58b23083e1fc9620f2102" + integrity sha512-AHlJQF5NC+yNsj5xILHk1CF++Z93aQDNp0zdJciDqIexH9lEJ+AQCX2EKLn0yjWt4Ga00pOOmQM5vJVJjuJCEw== dependencies: - "@abp/utils" "^5.0.0-beta.1" + "@abp/utils" "^5.0.0-beta.2" -"@abp/cropperjs@~4.4.3": - version "4.4.3" - resolved "https://registry.yarnpkg.com/@abp/cropperjs/-/cropperjs-4.4.3.tgz#9320e6c827acdc4eb1c842e24a122a5bc4f447b6" - integrity sha512-dbmfIz74AbF06gzDTtEeSTNAinjHY5b3Ea+sMyzJMr9akhi2ISEQB2TWU1VFbuFebnIPvLgKG1Yr34crG6Al6w== +"@abp/cropperjs@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/cropperjs/-/cropperjs-5.0.0-beta.2.tgz#6b8d870e85add42941f778cec14122f962cf8e4b" + integrity sha512-fkkomk3+7gMoEGyx6Hq2cLC4zsCtddwz7QamjEA7g7SxzQf3Rvfv36Nk/GBf78Jn/5eQXAXwLiNIXxeYDTyARA== dependencies: - "@abp/core" "~4.4.3" + "@abp/core" "~5.0.0-beta.2" cropperjs "^1.5.7" -"@abp/datatables.net-bs4@~4.4.3": - version "4.4.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.4.3.tgz#69d3704d057fe39c3b4aff0654f098fac3a27f49" - integrity sha512-Rs8u9BqaVnA7SYhaP849dVNQjaUdO3y5d95b5hv9kLgxquIEf/FIAmGMc0p9BkCK74SkRJ3WJLlR8DXxLi/tEw== +"@abp/datatables.net-bs4@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-5.0.0-beta.2.tgz#3afb32918f59b55c68d3d37b2c1f0bf49bb06fc8" + integrity sha512-t6YserKkBId7KnT46uYaGw6HJrf8tcLp4bJmGyUSnCwVlgJcha/P6fr3pKWqFz9QPGk5riCZF3hK6x1BH9u71g== dependencies: - "@abp/datatables.net" "~4.4.3" + "@abp/datatables.net" "~5.0.0-beta.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net-bs4@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-5.0.0-beta.1.tgz#110d7d8cf1c15db7432d8f0649f4317ba8de10dd" - integrity sha512-CPodZP9pqLdwnFZ77/mcSfuhyK1WMi/c+9VWpGXFQSGaABNKPP2UIdAChwUcBRdGkZRa/IhXx3CCr1ZMLpJsMQ== +"@abp/datatables.net@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.0.0-beta.2.tgz#fc87be76ebec94b16c6734c2249ea8a0a04a83b8" + integrity sha512-aEAlej1wNtxsxpwlw2GFOV0tFSZ7MWA+Wpfi5QZ4VIbYHSIkhEnz0apiNMBsoB8i7VJLJKZuKvynlJWYABNk0Q== dependencies: - "@abp/datatables.net" "~5.0.0-beta.1" - datatables.net-bs4 "^1.10.21" - -"@abp/datatables.net@~4.4.3": - version "4.4.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.4.3.tgz#1515dcc2bdc7c65c1f24a366c738e1b21ad05723" - integrity sha512-j0cIadlcIOLb/ZQnbqXi4sMEgyLCFA08GMIljvN6GhBObZjMQh4Eazk/B+a4xw+ATk0rbAW3dJyMx80zpi82cg== - dependencies: - "@abp/jquery" "~4.4.3" + "@abp/jquery" "~5.0.0-beta.2" datatables.net "^1.10.21" -"@abp/datatables.net@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.0.0-beta.1.tgz#8e784a011d33de154554f3239c448fcfd8adb713" - integrity sha512-mRMYqTCoYLmDLvL+CvmwUS4JqCqdkn6mxHd7zgkaR04xlGLEmNae5aGbs1wURJ86MOWrHbfkx66lQjkul3zbQw== - dependencies: - "@abp/jquery" "~5.0.0-beta.1" - datatables.net "^1.10.21" - -"@abp/font-awesome@~4.4.3": - version "4.4.3" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.4.3.tgz#9b0b03da07245e4458305e54490b4e37cbcc2b40" - integrity sha512-R6s0jcAhmpUTdc4b/NJkfHXbXblmcuTNwiNG/CJJ/QNrVhk7OolzyqR5k/moaBpb4Uaqf5u07Aau24rOH35q5w== - dependencies: - "@abp/core" "~4.4.3" - "@fortawesome/fontawesome-free" "^5.13.0" - -"@abp/font-awesome@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.0.0-beta.1.tgz#3ae721c447a009601226c381a20dc4adabe154e1" - integrity sha512-fsMqwApogZ1rAogStQxBX/Nh8akXPW/Alm8UayfK6TXIkPPjBz5RQSHfdlosG7M/U3mwUNGcLlaDvQXsE/nqow== +"@abp/font-awesome@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.0.0-beta.2.tgz#10a920fb20294f7ccd404ea2b302fb11f68f0705" + integrity sha512-Mmhfm7g5HdflvqbZOZDKk335IlY8ipwtKsCQ1qRaobsMpWi2AFh6/P/XX7y4H5p0wH5cluUsSzS1QB37QXp36w== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~4.4.3": - version "4.4.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.4.3.tgz#3d5760e9ece4984165304fa028a5eb997adc4d9f" - integrity sha512-lk0QYruQVwXhVFYBiIrNx5zqF7fY7PKuGGvPQMHyeNaljvpbuK5FPwkge0y6nToWA4Y7PhSCYBU7xvkBuqEDgA== +"@abp/jquery-form@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.0.0-beta.2.tgz#4b685858d54eafac123995ebfea759c769e49cab" + integrity sha512-ekytRAvAUNKJAPiR5i7kxASh5j3D5jabO1GHbPwq6UzapGLMzG5r8s6/1b4eX+4Zorfy+TmERNeUsWvQwf3P1A== dependencies: - "@abp/jquery" "~4.4.3" + "@abp/jquery" "~5.0.0-beta.2" jquery-form "^4.3.0" -"@abp/jquery-form@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.0.0-beta.1.tgz#d13f4cffce48125547b9da57cfc407f9a35a89e6" - integrity sha512-RYE90XIDxWkvxO5ukuZ2PHk6aA/o7NQKLcR9WsN1G2xTU/frrNPgtruGRTIj7Nx3BPUeMp7EAN2rYZwglcnO5g== +"@abp/jquery-validation-unobtrusive@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.0.0-beta.2.tgz#392ab72716baea26e6f560e2369d09f8c5488d3b" + integrity sha512-PyiWj0hj5jkjcZ1oJeLXYuoVCIAg51X4y6iLbcb1SpAbqYQP23gilDJK8xkURbysGPMiDq+7tOiKAnGiHSBnWA== dependencies: - "@abp/jquery" "~5.0.0-beta.1" - jquery-form "^4.3.0" - -"@abp/jquery-validation-unobtrusive@~4.4.3": - version "4.4.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.4.3.tgz#c08e336debe60a119a5abd0cb66032da6ace6b08" - integrity sha512-mfvYChTALH5nmB0docrEkS5/+Yxt6SgbQOjPVuQx5PgqoVscmf2/JvsBnW73/YVdQBkVXs339hoDGPA6K2WR9w== - dependencies: - "@abp/jquery-validation" "~4.4.3" - jquery-validation-unobtrusive "^3.2.11" - -"@abp/jquery-validation-unobtrusive@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.0.0-beta.1.tgz#93ff6ee92bccdde77816bfb434e967fd142f6b83" - integrity sha512-LZE1KIALGBCINdWrHzoGczekUFtKwbXbLIgb4ZgiipO5Xja7py/iVvts10QWqUzhnBk+kmbHbj+KnjdqP4Z8pQ== - dependencies: - "@abp/jquery-validation" "~5.0.0-beta.1" + "@abp/jquery-validation" "~5.0.0-beta.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~4.4.3": - version "4.4.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.4.3.tgz#331f3671e6e37bed4dc737942e8eb2a6d1297722" - integrity sha512-RjKn9xxoYQz0v8yzWcVlbIQYZQTcXgYFX7GMJf04V/QbdU6vsge+5vHKzhcaW5XWL8+GgKHTqqoxbqzdJykaPA== - dependencies: - "@abp/jquery" "~4.4.3" - jquery-validation "^1.19.2" - -"@abp/jquery-validation@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.0.0-beta.1.tgz#2964ca1266b087e4c4c0e768bfc4bfe0284e4ff5" - integrity sha512-ZDNdkPy2ZNu0EYDNH20Oh9R3bICCYv9CbEj4zZ8Qavixo9VTkybY3BW0nYjcu1yb1P92gZPp80W8vyfxSo//kw== +"@abp/jquery-validation@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.0.0-beta.2.tgz#233eda5998ae566daeb945d8508999da2ef75a51" + integrity sha512-jKY0yfRgM5RGlJeQCGKkkczx5qptpPkhqWr4x+ffTUzR+ywF9FHUB5zcbELpEyWuOJ9cilap2hga2lvPZ8c+Pg== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" jquery-validation "^1.19.2" -"@abp/jquery@~4.4.3": - version "4.4.3" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.4.3.tgz#9d2dc238596a6e5c878b5be4b1d49e7e8f95aec4" - integrity sha512-BN2KU1mw0hyQD8/61ZOIDM0hyMDkhZix4TOWCQa3s18pWHlBEsjKVnINQlz9J9k4TZEdQP9D3wZmw+XUfZjoIw== +"@abp/jquery@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.0.0-beta.2.tgz#62fa64fcc0bd5dca4b5e7534b24205a3f0461f08" + integrity sha512-tMzjo9qQAgJDYPvLk67YNlnOOUSTUfPWodlqfl5vvo6/NHSsB9eJhXH28txEtygX0o/Mepi9Ag87dL9VLh0DEw== dependencies: - "@abp/core" "~4.4.3" + "@abp/core" "~5.0.0-beta.2" jquery "~3.6.0" -"@abp/jquery@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.0.0-beta.1.tgz#360e7a164b6b4ce615a5ad91a1c78ef6893648f3" - integrity sha512-v2t+76L45tlbpGeVR39GurZl60Rj1pR/TdUidpP6zwnpx1Y3I+CvlJNDwTESeE/ixTOT3PyFbXoMEi6hI+v39A== +"@abp/lodash@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.0.0-beta.2.tgz#c821eb502de3211f94ca2f7ba8a5c0b0677c5c9b" + integrity sha512-lW8lz1JG8kweVOWVCB7jC6xxLUE0G6MJfwv4g0+eKwFLgsAO5dK6Yk4xZi+UXgST73OgGt5LIQJcS4+aCo/zmg== dependencies: - "@abp/core" "~5.0.0-beta.1" - jquery "~3.6.0" - -"@abp/lodash@~4.4.3": - version "4.4.3" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.4.3.tgz#8e936ebc54a9043eee80cb22f3dad5ea8a2306cb" - integrity sha512-QKFjdRd8cEZp7fg9MhuFhD5CP3MBw7CfaJ3yj0W1e5Tx+xtV+rYz4PrOE8/BLb4un7gxqUrEWBgdIzY+lBR7mQ== - dependencies: - "@abp/core" "~4.4.3" + "@abp/core" "~5.0.0-beta.2" lodash "^4.17.15" -"@abp/lodash@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.0.0-beta.1.tgz#618797bde42b17f91d7f99fdd5f24cb5e8a361b3" - integrity sha512-WsUjzHRZ6RkSMd5PTw0oWijDbbq/Wgonv8++ufUZi1WK5spZi9ohjcYM4io3Ms3fG+g4pWznaicYraMpV5tcsQ== +"@abp/luxon@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.0.0-beta.2.tgz#64c68c3091415153c8c470fb3e5650bbc00500d1" + integrity sha512-0mSVsycWEo5hamEuR7Mqw00JnVRlhQvpy8Bks58d7bRksIQzK8iPx9advTbP2ICF3iz9zHT9MJrMXYfvUT6oIQ== dependencies: - "@abp/core" "~5.0.0-beta.1" - lodash "^4.17.15" - -"@abp/luxon@~4.4.3": - version "4.4.3" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.4.3.tgz#bd3328f45714155870bc8a91d41a197a613392b0" - integrity sha512-rPVzSXEy+rJZLIQ10boOq6suQAZQWJyB5P+rvfSx8h9sbRpsQ5fJOX2ShnUUf/+49KHzRRIqy+vrhr1oiE0C8Q== - dependencies: - "@abp/core" "~4.4.3" + "@abp/core" "~5.0.0-beta.2" luxon "^1.24.1" -"@abp/luxon@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.0.0-beta.1.tgz#fc81fcbfb592d3baf7b9856b3cecf5b86df4bfdf" - integrity sha512-t4lhJ/wr1rAVH1/bnzmc8niZYvolTuXUB0h6A6UYaw205QyNtimzusYkTwkc+Z3xHFUrkLCoG7J2SVoCJuioaA== +"@abp/malihu-custom-scrollbar-plugin@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.0.0-beta.2.tgz#6c030cfe1e123be0a81f769dedd6a6b22aed9077" + integrity sha512-ZEkCMMDKe26b/sCArQjDOGEm8+lQB9Uis17FNyHDt/vA+FdtaPJjeLOqmfzMeLQYppvefH+JCpGzfaWwCNZmcw== dependencies: - "@abp/core" "~5.0.0-beta.1" - luxon "^1.24.1" - -"@abp/malihu-custom-scrollbar-plugin@~4.4.3": - version "4.4.3" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.4.3.tgz#194f39ebbabad7853089549a7e19cfd2a7393e98" - integrity sha512-bhME41UsDCPGxnLP+zqH8nsx1uAxRR8tAeBKOJV24Xf8FHEjUQEDBXG0t1PBYGZVn1/0Ugao7Z12G9uZOiZVog== - dependencies: - "@abp/core" "~4.4.3" - malihu-custom-scrollbar-plugin "^3.1.5" - -"@abp/malihu-custom-scrollbar-plugin@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.0.0-beta.1.tgz#7af43d30af9b1f741fd9d9559d100aa4a5c52ae9" - integrity sha512-B195PC4/75W0EXjGEQUd/ZARb/eGWj8DX7hq3K+J+lUWzWu46dZy8s5bBij78HqxS91/q6nbxU35Z+E9xl6ICg== - dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~4.4.3": - version "4.4.3" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.4.3.tgz#71015901aae117360f876c744903613494800c83" - integrity sha512-s7ArMLq2LC0m1oFcuCJghf5lEnGbq1D8/WaIKGmmD0ERL0g5xMccFlNbXm+Z79MJoTvQFssSLPTLZICjzWPKJw== +"@abp/select2@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.0.0-beta.2.tgz#f5e74d56ccdabde61825453044f31fa183573b58" + integrity sha512-ApL7ioC4p5GguQM2KfnqtGrJ9TqBRiQh1v+y1J2Z3Lh18SJU+tsA3f9Va9ZyZNIFrpV3Bsmim2cIu7bjm7IBRw== dependencies: - "@abp/core" "~4.4.3" + "@abp/core" "~5.0.0-beta.2" select2 "^4.0.13" -"@abp/select2@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.0.0-beta.1.tgz#15988165fcfed2ebc2b8d097965e2dc1984af35e" - integrity sha512-SF+NkWDJNz1EeEimW5luaCMPTNN1oPzEWs47usPJo8m7HfijEvF3rymJ8jL5zWIOo05Tx3HUurLSVz0qu4vZsw== +"@abp/sweetalert2@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.0.0-beta.2.tgz#164c1df63c2859fa5277673906f85cc8e7e2d1ef" + integrity sha512-UdENhKcfywOorjTf4+CxDO8UUet9lYAIDH2r+Kd1qjFKIDDu6w3TfJ7Gz108VG84+RsUevfVLgZ8qeYsA+drKQ== dependencies: - "@abp/core" "~5.0.0-beta.1" - select2 "^4.0.13" - -"@abp/sweetalert2@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.0.0-beta.1.tgz#c6a1185f39d3207f67753e7c486eddcefc7fd0da" - integrity sha512-ADotpiMkIzHLy/ufK0q49V9hgF8oKE0rLRzVZV2dHBpmFR7YRcPdbb5AN9CiXDk6ol8nsocEEAwRmgD3eJG63w== - dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" sweetalert2 "^11.0.18" -"@abp/sweetalert@~4.4.3": - version "4.4.3" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.4.3.tgz#287b9c89f90885742b074b4e3a427f0ec482952d" - integrity sha512-tAEgHMaTe+E+uS+Mt8XV3dt5yJJHg01Zsbp4ojO3wvdoAS6MKRXWdH05u3ZdwRQrJFbSgQjY85vWn/a/PnYRng== - dependencies: - "@abp/core" "~4.4.3" - sweetalert "^2.1.2" - -"@abp/timeago@~4.4.3": - version "4.4.3" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.4.3.tgz#7d31b9fcc128e9b8c6bb7870c4284427e9f9f383" - integrity sha512-E8FeAraStlYsHz6D1oBrwM5eHhZeCGrP7aA768Ke5UGIZPoYwyIIYLRfK4MCoCLKgTVlRrUn0Dj7Xkj9tWOfBQ== +"@abp/timeago@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.0.0-beta.2.tgz#7a6242e6cc403addf172ebf18ffb3513d4b30f21" + integrity sha512-wdXaKd0dBJP0mawzHqE04YWUgpUYzq8vJHGH3QGf9RpB+XpMztt1KNHR6d32VylDAEoPEtB7GH4rVvlimKa48g== dependencies: - "@abp/jquery" "~4.4.3" + "@abp/jquery" "~5.0.0-beta.2" timeago "^1.6.7" -"@abp/timeago@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.0.0-beta.1.tgz#0f7bb8cd85b7e90d7d5c0a0940b9102e3f4f1e42" - integrity sha512-QwYZyeDRW+X8BGecBcK1SgsClVWNYfPgvct+WkQhTIRxzbP/c1c+1irj69sNdN3df2WLnmjfu3sBw2hzz5ykbg== +"@abp/toastr@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.0.0-beta.2.tgz#924f5315d3ade6ee41869d8809b625116c5b02f1" + integrity sha512-iqmgO/8AwORzYKf/43+Fx/478la0w+g+mrDahzokPlZFv6WUvFL3QSD/fs1mjc2yUOxEuvgprEiEfWoZcrwtNA== dependencies: - "@abp/jquery" "~5.0.0-beta.1" - timeago "^1.6.7" - -"@abp/toastr@~4.4.3": - version "4.4.3" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.4.3.tgz#45ef155fdbb6134a50794e456f820671c72e4105" - integrity sha512-dmKYS7iw/a+eWCD+J+nZ1htmGEjJSCsV1H8dDwA+ZxYJrE2/ejUh0LZ+b8Hsvobqfe/6bwYBj6oe0R9+vszCfg== - dependencies: - "@abp/jquery" "~4.4.3" + "@abp/jquery" "~5.0.0-beta.2" toastr "^2.1.4" -"@abp/toastr@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.0.0-beta.1.tgz#d420fc5db6b15f6d623d3928bb6913996511937f" - integrity sha512-82LfDrZQagtv4QLb643VTra4pxleOq5xYwhpOK1Ifop2K5CRgElxKfWvY2EtxdGkpCO2arvkOzjRNbxnecHB2w== +"@abp/uppy@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/uppy/-/uppy-5.0.0-beta.2.tgz#9b2dc0333cd2b35431a7287d60883d57796b63cf" + integrity sha512-oNRMMqgaFMMLDqPRaVOLER04iZ3Mx3h1kmfWOnEra3zopHqB/c3B3sOgaYYVzav2IeO/lz4YUuzLN6+/kZEIVw== dependencies: - "@abp/jquery" "~5.0.0-beta.1" - toastr "^2.1.4" - -"@abp/uppy@~4.4.3": - version "4.4.3" - resolved "https://registry.yarnpkg.com/@abp/uppy/-/uppy-4.4.3.tgz#2ce6eae0be3875f5666a94480662412d31d5fb92" - integrity sha512-tMov0MgPLQnGiBRmAmyJHSlaUAIyyVWHGfXqdmeMn1fzlmqNkRDStaflO5ei94kXk+MvU8DLZXVaWRSfmai3fg== - dependencies: - "@abp/core" "~4.4.3" + "@abp/core" "~5.0.0-beta.2" uppy "^1.16.1" -"@abp/utils@^4.4.3": - version "4.4.3" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.4.3.tgz#5d6939be5463adaa938357d74d1a35fed21b0115" - integrity sha512-B2E89fhM7vKDz9He6EeNc9P5RVYThiBLpTkKvJTeXG+DJtrP2ZbEICe1fcDA48wLFokXXKgx/SjoJlMvObhilQ== - dependencies: - just-compare "^1.3.0" - -"@abp/utils@^5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.0.0-beta.1.tgz#e1bf9240738276081c89a67073d9d85205fdf14c" - integrity sha512-suzKxHUautizxt5XdlJ8ONIaVMcAHrb2dp1kEnXnFRW1ip+7ZQ9/nxJj+GtY1MhHX2yPmlUQP2K8f2upJh9aoA== +"@abp/utils@^5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.0.0-beta.2.tgz#4d120c0f930b943071b4ba27dafedf6c8b730182" + integrity sha512-EZV1P+eafVBEHO6B+Ws6iX4xyeg8B6nCPLvpaFC6mStk7SGidh2rAYYWyydyh68Ky8YdbLYQE3oPaIewOhDWTg== dependencies: just-compare "^1.3.0" @@ -672,21 +498,21 @@ "@uppy/utils" "^3.3.0" cuid "^2.1.1" -"@volo/abp.aspnetcore.mvc.ui.theme.commercial@~4.4.3": - version "4.4.3" - resolved "https://registry.yarnpkg.com/@volo/abp.aspnetcore.mvc.ui.theme.commercial/-/abp.aspnetcore.mvc.ui.theme.commercial-4.4.3.tgz#1dd1c57b1ef4ebe4a8dddef522c6a98d4b039945" - integrity sha512-V5b8mw2vg+c+728LBmK4e/vCjKYV00qgFt3KCk790F2/zxVXWmKDRBQtbivgoTB46B01hVDGkLleXufkvOAh0g== +"@volo/abp.aspnetcore.mvc.ui.theme.commercial@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@volo/abp.aspnetcore.mvc.ui.theme.commercial/-/abp.aspnetcore.mvc.ui.theme.commercial-5.0.0-beta.2.tgz#6ac19bc128920b6f45996a2f0cddc36653188164" + integrity sha512-63gJgqexwdeSeiEHLmR4jxMv9+fXWjkNVjW29xAdtFMC+/kW07IMSOTZEA9bbGLOukOPxvN3OruEFc4n5v2HeA== dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~4.4.3" + "@abp/aspnetcore.mvc.ui.theme.shared" "~5.0.0-beta.2" -"@volo/account@~4.4.3": - version "4.4.3" - resolved "https://registry.yarnpkg.com/@volo/account/-/account-4.4.3.tgz#a0f5f394d7551a894cf8dcbb0e20a4b2f13f2063" - integrity sha512-GpzuisoDiTBlj/eH4KQogH6dzyTXDY23m1XiXh9wIZ2huR+SrrRkTtfB/kn3eMuBcUomVYKxTvu0ux3Sfrwc8w== +"@volo/account@^5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@volo/account/-/account-5.0.0-beta.2.tgz#681915f8a40cea1a95115fa17b231996fc33418a" + integrity sha512-qjyK4ZnHPtnLSBfE/ox4O1lavZa/bQA4TOp6tDayuLKYaAM0zAG/pz0heBzgkTQzj5+LlAJx/IkIOI/0BhLjKA== dependencies: - "@abp/cropperjs" "~4.4.3" - "@abp/uppy" "~4.4.3" - "@volo/abp.aspnetcore.mvc.ui.theme.commercial" "~4.4.3" + "@abp/cropperjs" "~5.0.0-beta.2" + "@abp/uppy" "~5.0.0-beta.2" + "@volo/abp.aspnetcore.mvc.ui.theme.commercial" "~5.0.0-beta.2" abortcontroller-polyfill@^1.4.0: version "1.5.0" @@ -1368,11 +1194,6 @@ es6-iterator@^2.0.1, es6-iterator@^2.0.3, es6-iterator@~2.0.3: es5-ext "^0.10.35" es6-symbol "^3.1.1" -es6-object-assign@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/es6-object-assign/-/es6-object-assign-1.1.0.tgz#c2c3582656247c39ea107cb1e6652b6f9f24523c" - integrity sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw= - es6-symbol@^3.1.1, es6-symbol@~3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" @@ -2642,11 +2463,6 @@ process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -promise-polyfill@^6.0.2: - version "6.1.0" - resolved "https://registry.yarnpkg.com/promise-polyfill/-/promise-polyfill-6.1.0.tgz#dfa96943ea9c121fca4de9b5868cb39d3472e057" - integrity sha1-36lpQ+qcEh/KTem1hoyznTRy4Fc= - proper-lockfile@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/proper-lockfile/-/proper-lockfile-2.0.1.tgz#159fb06193d32003f4b3691dd2ec1a634aa80d1d" @@ -3073,14 +2889,6 @@ sweetalert2@^11.0.18: resolved "https://registry.yarnpkg.com/sweetalert2/-/sweetalert2-11.1.7.tgz#0ff2851eae77a76a3fe0ab289d3c32493e811b6d" integrity sha512-7MHQVtKCTORfA9e58g9ZOfT3X58DkSBtvoCQJnqSHobXXb5C7aB8Yg/tAccTFnefCUBU41PoStjXMkzG3bNeig== -sweetalert@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/sweetalert/-/sweetalert-2.1.2.tgz#010baaa80d0dbdc86f96bfcaa96b490728594b79" - integrity sha512-iWx7X4anRBNDa/a+AdTmvAzQtkN1+s4j/JJRWlHpYE8Qimkohs8/XnFcWeYHH2lMA8LRCa5tj2d244If3S/hzA== - dependencies: - es6-object-assign "^1.1.0" - promise-polyfill "^6.0.2" - through2-filter@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-3.0.0.tgz#700e786df2367c2c88cd8aa5be4cf9c1e7831254" diff --git a/apps/public-web/src/EShopOnAbp.PublicWeb/Dockerfile b/apps/public-web/src/EShopOnAbp.PublicWeb/Dockerfile index e783fe5e..813b2f49 100644 --- a/apps/public-web/src/EShopOnAbp.PublicWeb/Dockerfile +++ b/apps/public-web/src/EShopOnAbp.PublicWeb/Dockerfile @@ -1,4 +1,53 @@ - FROM mcr.microsoft.com/dotnet/aspnet:6.0 - COPY bin/Release/net6.0/publish/ app/ - WORKDIR /app - ENTRYPOINT ["dotnet", "EShopOnAbp.PublicWeb.dll"] \ No newline at end of file +FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base +WORKDIR /app +EXPOSE 80 +EXPOSE 443 + +FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build +WORKDIR /src + +# It's important to keep lines from here down to "COPY . ." identical in all Dockerfiles +# to take advantage of Docker's build cache, to speed up local container builds +COPY "EShopOnAbp.sln" "EShopOnAbp.sln" + +# Applications +COPY "apps/auth-server/src/EShopOnAbp.AuthServer/EShopOnAbp.AuthServer.csproj" "apps/auth-server/src/EShopOnAbp.AuthServer/EShopOnAbp.AuthServer.csproj" +COPY "apps/public-web/src/EShopOnAbp.PublicWeb/EShopOnAbp.PublicWeb.csproj" "apps/public-web/src/EShopOnAbp.PublicWeb/EShopOnAbp.PublicWeb.csproj" + +# Shared +COPY "shared/EShopOnAbp.Shared.Hosting/EShopOnAbp.Shared.Hosting.csproj" "shared/EShopOnAbp.Shared.Hosting/EShopOnAbp.Shared.Hosting.csproj" +COPY "shared/EShopOnAbp.Shared.Hosting.AspNetCore/EShopOnAbp.Shared.Hosting.AspNetCore.csproj" "shared/EShopOnAbp.Shared.Hosting.AspNetCore/EShopOnAbp.Shared.Hosting.AspNetCore.csproj" +COPY "shared/EShopOnAbp.Shared.Hosting.Gateways/EShopOnAbp.Shared.Hosting.Gateways.csproj" "shared/EShopOnAbp.Shared.Hosting.Gateways/EShopOnAbp.Shared.Hosting.Gateways.csproj" +COPY "shared/EShopOnAbp.Shared.Hosting.Microservices/EShopOnAbp.Shared.Hosting.Microservices.csproj" "shared/EShopOnAbp.Shared.Hosting.Microservices/EShopOnAbp.Shared.Hosting.Microservices.csproj" +COPY "shared/EShopOnAbp.Shared.Localization/EShopOnAbp.Shared.Localization.csproj" "shared/EShopOnAbp.Shared.Localization/EShopOnAbp.Shared.Localization.csproj" + +# Microservices +COPY "services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/EShopOnAbp.AdministrationService.HttpApi.Host.csproj" "services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/EShopOnAbp.AdministrationService.HttpApi.Host.csproj" +COPY "services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/EShopOnAbp.IdentityService.HttpApi.Host.csproj" "services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/EShopOnAbp.IdentityService.HttpApi.Host.csproj" +COPY *"services/saas/src/EShopOnAbp.SaasService.HttpApi.Host/EShopOnAbp.SaasService.HttpApi.Host.csproj" "services/saas/src/EShopOnAbp.SaasService.HttpApi.Host/EShopOnAbp.SaasService.HttpApi.Host.csproj" +COPY *"services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/EShopOnAbp.BasketService.HttpApi.Host.csproj" "services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/EShopOnAbp.BasketService.HttpApi.Host.csproj" +COPY *"services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/EShopOnAbp.OrderingService.HttpApi.Host.csproj" "services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/EShopOnAbp.OrderingService.HttpApi.Host.csproj" +COPY *"services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/EShopOnAbp.CatalogService.HttpApi.Host.csproj" "services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/EShopOnAbp.CatalogService.HttpApi.Host.csproj" +COPY *"services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/EShopOnAbp.PaymentService.HttpApi.Host.csproj" "services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/EShopOnAbp.PaymentService.HttpApi.Host.csproj" + +# Gateways +COPY "gateways/web/src/EShopOnAbp.WebGateway/EShopOnAbp.WebGateway.csproj" "gateways/web/src/EShopOnAbp.WebGateway/EShopOnAbp.WebGateway.csproj" +COPY "gateways/web-public/src/EShopOnAbp.WebPublicGateway/EShopOnAbp.WebPublicGateway.csproj" "gateways/web-public/src/EShopOnAbp.WebPublicGateway/EShopOnAbp.WebPublicGateway.csproj" + +COPY "NuGet.Config" "NuGet.Config" + +RUN dotnet restore "EShopOnAbp.sln" +COPY . . + +WORKDIR "/src/apps/public-web/src/EShopOnAbp.PublicWeb" + +RUN dotnet publish -c Release -o /app +# Should be used after .net6 is out of preview for better performance +# RUN dotnet publish --no-restore -c Release -o /app + +FROM build AS publish + +FROM base AS final +WORKDIR /app +COPY --from=publish /app . +ENTRYPOINT ["dotnet", "EShopOnAbp.PublicWeb.dll"] \ No newline at end of file diff --git a/services/saas/src/EShopOnAbp.SaasService.HttpApi.Host/Dockerfile b/apps/public-web/src/EShopOnAbp.PublicWeb/Dockerfile.local similarity index 59% rename from services/saas/src/EShopOnAbp.SaasService.HttpApi.Host/Dockerfile rename to apps/public-web/src/EShopOnAbp.PublicWeb/Dockerfile.local index 505246d8..e783fe5e 100644 --- a/services/saas/src/EShopOnAbp.SaasService.HttpApi.Host/Dockerfile +++ b/apps/public-web/src/EShopOnAbp.PublicWeb/Dockerfile.local @@ -1,4 +1,4 @@ FROM mcr.microsoft.com/dotnet/aspnet:6.0 COPY bin/Release/net6.0/publish/ app/ WORKDIR /app - ENTRYPOINT ["dotnet", "EShopOnAbp.SaasService.HttpApi.Host.dll"] \ No newline at end of file + ENTRYPOINT ["dotnet", "EShopOnAbp.PublicWeb.dll"] \ No newline at end of file diff --git a/apps/public-web/src/EShopOnAbp.PublicWeb/EShopOnAbp.PublicWeb.csproj b/apps/public-web/src/EShopOnAbp.PublicWeb/EShopOnAbp.PublicWeb.csproj index e73523ba..c8e4799b 100644 --- a/apps/public-web/src/EShopOnAbp.PublicWeb/EShopOnAbp.PublicWeb.csproj +++ b/apps/public-web/src/EShopOnAbp.PublicWeb/EShopOnAbp.PublicWeb.csproj @@ -3,14 +3,28 @@ net6.0 + + + + - - - - + + + + + + + + + + + + + + Always @@ -21,29 +35,10 @@ - - - - - - - - - - - - - - - - - - - - - - - <_ContentIncludedByDefault Remove="Pages\Products\Index.cshtml" /> + + + + diff --git a/apps/public-web/src/EShopOnAbp.PublicWeb/EShopOnAbpPublicWebModule.cs b/apps/public-web/src/EShopOnAbp.PublicWeb/EShopOnAbpPublicWebModule.cs index 7da26e01..2bb7b7ad 100644 --- a/apps/public-web/src/EShopOnAbp.PublicWeb/EShopOnAbpPublicWebModule.cs +++ b/apps/public-web/src/EShopOnAbp.PublicWeb/EShopOnAbpPublicWebModule.cs @@ -55,6 +55,7 @@ namespace EShopOnAbp.PublicWeb public override void ConfigureServices(ServiceConfigurationContext context) { + Microsoft.IdentityModel.Logging.IdentityModelEventSource.ShowPII = true; var hostingEnvironment = context.Services.GetHostingEnvironment(); var configuration = context.Services.GetConfiguration(); @@ -104,7 +105,8 @@ namespace EShopOnAbp.PublicWeb var redis = ConnectionMultiplexer.Connect(configuration["Redis:Configuration"]); context.Services .AddDataProtection() - .PersistKeysToStackExchangeRedis(redis, "MyProjectName-Protection-Keys"); + .PersistKeysToStackExchangeRedis(redis, "EShopOnAbp-Protection-Keys") + .SetApplicationName("eShopOnAbp-PublicWeb"); Configure(options => { @@ -145,7 +147,6 @@ namespace EShopOnAbp.PublicWeb app.UseRouting(); // app.UseHttpMetrics(); app.UseAuthentication(); - app.UseMultiTenancy(); app.UseAbpSerilogEnrichers(); app.UseAuthorization(); app.UseConfiguredEndpoints(endpoints => diff --git a/apps/public-web/src/EShopOnAbp.PublicWeb/appsettings.json b/apps/public-web/src/EShopOnAbp.PublicWeb/appsettings.json index bbc66d71..9d2fea29 100644 --- a/apps/public-web/src/EShopOnAbp.PublicWeb/appsettings.json +++ b/apps/public-web/src/EShopOnAbp.PublicWeb/appsettings.json @@ -38,7 +38,7 @@ "AuthServer": { "Authority": "https://localhost:44330", "RequireHttpsMetadata": "true", - "ClientId": "EShopOnAbp_PublicWeb", + "ClientId": "PublicWeb", "ClientSecret": "1q2w3e*" } } \ No newline at end of file diff --git a/apps/public-web/src/EShopOnAbp.PublicWeb/package.json b/apps/public-web/src/EShopOnAbp.PublicWeb/package.json index b1d9804f..3ccc36c3 100644 --- a/apps/public-web/src/EShopOnAbp.PublicWeb/package.json +++ b/apps/public-web/src/EShopOnAbp.PublicWeb/package.json @@ -3,6 +3,6 @@ "name": "EShopOnAbpPublicWeb", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~5.0.0-beta.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^5.0.0-beta.2" } } \ No newline at end of file diff --git a/apps/public-web/src/EShopOnAbp.PublicWeb/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js b/apps/public-web/src/EShopOnAbp.PublicWeb/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js index 1fee6e79..d7b5d2d9 100644 --- a/apps/public-web/src/EShopOnAbp.PublicWeb/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js +++ b/apps/public-web/src/EShopOnAbp.PublicWeb/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js @@ -1,4 +1,6 @@ /* https://select2.org/troubleshooting/common-problems */ -$.fn.modal.Constructor.prototype._enforceFocus = function () { }; \ No newline at end of file +if ($.fn.modal) { + $.fn.modal.Constructor.prototype._enforceFocus = function () { }; +} diff --git a/apps/public-web/src/EShopOnAbp.PublicWeb/yarn.lock b/apps/public-web/src/EShopOnAbp.PublicWeb/yarn.lock index 5f7f660e..d2d77766 100644 --- a/apps/public-web/src/EShopOnAbp.PublicWeb/yarn.lock +++ b/apps/public-web/src/EShopOnAbp.PublicWeb/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.0.0-beta.1.tgz#2c78c2bd977a67f6c2ed77cfcd404cf9533eaaae" - integrity sha512-b8Boztxd5NbaDlXQvgHXHtw8ZNgM4tEgo14kw/bN3mcLx05fWLGd8Lzfdi7i+Ju6U3rKbgi+0MSbga93A0KSmg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~5.0.0-beta.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.0.0-beta.1.tgz#25596652bb3f7b6bac5bbd966a731144cd9646c6" - integrity sha512-N4SHu6rn8alK4jdve00IscngrfvqJNEjrwQclXNmP9c4NtPuVM9emZdxBzKF8jFb6Hz8HiwM9H3xV/SjKCS/7A== - dependencies: - "@abp/aspnetcore.mvc.ui" "~5.0.0-beta.1" - "@abp/bootstrap" "~5.0.0-beta.1" - "@abp/bootstrap-datepicker" "~5.0.0-beta.1" - "@abp/datatables.net-bs4" "~5.0.0-beta.1" - "@abp/font-awesome" "~5.0.0-beta.1" - "@abp/jquery-form" "~5.0.0-beta.1" - "@abp/jquery-validation-unobtrusive" "~5.0.0-beta.1" - "@abp/lodash" "~5.0.0-beta.1" - "@abp/luxon" "~5.0.0-beta.1" - "@abp/malihu-custom-scrollbar-plugin" "~5.0.0-beta.1" - "@abp/select2" "~5.0.0-beta.1" - "@abp/sweetalert2" "~5.0.0-beta.1" - "@abp/timeago" "~5.0.0-beta.1" - "@abp/toastr" "~5.0.0-beta.1" - -"@abp/aspnetcore.mvc.ui@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.0.0-beta.1.tgz#30c14386899596bf91e8871810dbaa1a0e51e996" - integrity sha512-pabiGHghC62eg95RfAncEt0+yGdBxdMmyqCXV+Be4JjaMz/hGZIDOPIYnaqCayZtyMmIRqG6IAwi99DqBjkQAQ== +"@abp/aspnetcore.mvc.ui.theme.basic@^5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.0.0-beta.2.tgz#077d1edd88f2f1ccb5c8227180a75e3121eece19" + integrity sha512-b7f05Fza18NYHudrHosYuCX/UJ/Y3KYJrJMHqdvAsZYu0t3dc7EMWKYTDA/+rDEO8iV/83twRYfHLf0tmVyc1Q== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~5.0.0-beta.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.0.0-beta.2.tgz#8c58d252f1a39f91c2c287b91691e5bd772f4918" + integrity sha512-l4suGM7PjGTw/MEg2f2BdbRXYzALhZQUSijzKIQTy5dwcA/JQPsLbezPzGy45fD3lXsYxBwS4QaOmofTosKkug== + dependencies: + "@abp/aspnetcore.mvc.ui" "~5.0.0-beta.2" + "@abp/bootstrap" "~5.0.0-beta.2" + "@abp/bootstrap-datepicker" "~5.0.0-beta.2" + "@abp/datatables.net-bs4" "~5.0.0-beta.2" + "@abp/font-awesome" "~5.0.0-beta.2" + "@abp/jquery-form" "~5.0.0-beta.2" + "@abp/jquery-validation-unobtrusive" "~5.0.0-beta.2" + "@abp/lodash" "~5.0.0-beta.2" + "@abp/luxon" "~5.0.0-beta.2" + "@abp/malihu-custom-scrollbar-plugin" "~5.0.0-beta.2" + "@abp/select2" "~5.0.0-beta.2" + "@abp/sweetalert2" "~5.0.0-beta.2" + "@abp/timeago" "~5.0.0-beta.2" + "@abp/toastr" "~5.0.0-beta.2" + +"@abp/aspnetcore.mvc.ui@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.0.0-beta.2.tgz#c30d9905e133451208e379f7173ed9c44dd5f487" + integrity sha512-8Dzfg5SzeVoXz/nY11o2u3y7ZQdUW/zVSYVTgbsCMC1HCe2yzptpr2XI0Goz8jQKgz0G+zg3iwfeur7vNoaoMw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,145 +41,145 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.0.0-beta.1.tgz#727e0f7305a94c95ece152ffff011bcff621f46d" - integrity sha512-txhdlJqyO2D9MkGLYgrsiDaC58cb2eCpk2uxoqqQeVWvuRPo/L+9rCBk+bu6J37FGJtU8aabtHJyR5xnYbv0TQ== +"@abp/bootstrap-datepicker@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.0.0-beta.2.tgz#dbf92485225a424f0e53e55c3ef8c993943682f0" + integrity sha512-jJWVKrkKcUMEqwBrEqhGD1zDFD8b0b3j0WdlzKuzlw26AaQkfE4LQ9Gjfjs+RnTW1LxPn8rGP8QCgdVeWMNjQQ== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.0.0-beta.1.tgz#075a15459ff8e3896b6553786e6c8f091c6ffcad" - integrity sha512-W8z6qSAsRoXmG0++xH6Bk1oRc90hFqVcjKI+5XgBQhUUCn2qBruBYOKFxPg2GeT2f1k9K5TrCEnnVrh0sOP9/A== +"@abp/bootstrap@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.0.0-beta.2.tgz#0faaa85871fd23076dd597dce83dc3020b1ff950" + integrity sha512-zy0DUcAJuX+Oeu4csw7XbyLGq/YdfonMLJt/Mkpq8CjAssD7n7aJK6PwG+akaI4giSQd7Sc1JvvnKRMRzyxy1Q== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" bootstrap "^4.6.0" bootstrap-v4-rtl "4.6.0-1" -"@abp/core@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.0.0-beta.1.tgz#6cff06b13529ab9d7a6ddc4e89dc40616e6b7739" - integrity sha512-TK1CnurJIK/SXfsNTk6HSpxdaJgVxwvqNd4F3fxCC0Uj8s5viD3TAGk39Hkp4909WGfNrRq8BEUNvTYM/rP6gg== +"@abp/core@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.0.0-beta.2.tgz#f9643d21b19128be3ad58b23083e1fc9620f2102" + integrity sha512-AHlJQF5NC+yNsj5xILHk1CF++Z93aQDNp0zdJciDqIexH9lEJ+AQCX2EKLn0yjWt4Ga00pOOmQM5vJVJjuJCEw== dependencies: - "@abp/utils" "^5.0.0-beta.1" + "@abp/utils" "^5.0.0-beta.2" -"@abp/datatables.net-bs4@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-5.0.0-beta.1.tgz#110d7d8cf1c15db7432d8f0649f4317ba8de10dd" - integrity sha512-CPodZP9pqLdwnFZ77/mcSfuhyK1WMi/c+9VWpGXFQSGaABNKPP2UIdAChwUcBRdGkZRa/IhXx3CCr1ZMLpJsMQ== +"@abp/datatables.net-bs4@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-5.0.0-beta.2.tgz#3afb32918f59b55c68d3d37b2c1f0bf49bb06fc8" + integrity sha512-t6YserKkBId7KnT46uYaGw6HJrf8tcLp4bJmGyUSnCwVlgJcha/P6fr3pKWqFz9QPGk5riCZF3hK6x1BH9u71g== dependencies: - "@abp/datatables.net" "~5.0.0-beta.1" + "@abp/datatables.net" "~5.0.0-beta.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.0.0-beta.1.tgz#8e784a011d33de154554f3239c448fcfd8adb713" - integrity sha512-mRMYqTCoYLmDLvL+CvmwUS4JqCqdkn6mxHd7zgkaR04xlGLEmNae5aGbs1wURJ86MOWrHbfkx66lQjkul3zbQw== +"@abp/datatables.net@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.0.0-beta.2.tgz#fc87be76ebec94b16c6734c2249ea8a0a04a83b8" + integrity sha512-aEAlej1wNtxsxpwlw2GFOV0tFSZ7MWA+Wpfi5QZ4VIbYHSIkhEnz0apiNMBsoB8i7VJLJKZuKvynlJWYABNk0Q== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" datatables.net "^1.10.21" -"@abp/font-awesome@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.0.0-beta.1.tgz#3ae721c447a009601226c381a20dc4adabe154e1" - integrity sha512-fsMqwApogZ1rAogStQxBX/Nh8akXPW/Alm8UayfK6TXIkPPjBz5RQSHfdlosG7M/U3mwUNGcLlaDvQXsE/nqow== +"@abp/font-awesome@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.0.0-beta.2.tgz#10a920fb20294f7ccd404ea2b302fb11f68f0705" + integrity sha512-Mmhfm7g5HdflvqbZOZDKk335IlY8ipwtKsCQ1qRaobsMpWi2AFh6/P/XX7y4H5p0wH5cluUsSzS1QB37QXp36w== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.0.0-beta.1.tgz#d13f4cffce48125547b9da57cfc407f9a35a89e6" - integrity sha512-RYE90XIDxWkvxO5ukuZ2PHk6aA/o7NQKLcR9WsN1G2xTU/frrNPgtruGRTIj7Nx3BPUeMp7EAN2rYZwglcnO5g== +"@abp/jquery-form@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.0.0-beta.2.tgz#4b685858d54eafac123995ebfea759c769e49cab" + integrity sha512-ekytRAvAUNKJAPiR5i7kxASh5j3D5jabO1GHbPwq6UzapGLMzG5r8s6/1b4eX+4Zorfy+TmERNeUsWvQwf3P1A== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.0.0-beta.1.tgz#93ff6ee92bccdde77816bfb434e967fd142f6b83" - integrity sha512-LZE1KIALGBCINdWrHzoGczekUFtKwbXbLIgb4ZgiipO5Xja7py/iVvts10QWqUzhnBk+kmbHbj+KnjdqP4Z8pQ== +"@abp/jquery-validation-unobtrusive@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.0.0-beta.2.tgz#392ab72716baea26e6f560e2369d09f8c5488d3b" + integrity sha512-PyiWj0hj5jkjcZ1oJeLXYuoVCIAg51X4y6iLbcb1SpAbqYQP23gilDJK8xkURbysGPMiDq+7tOiKAnGiHSBnWA== dependencies: - "@abp/jquery-validation" "~5.0.0-beta.1" + "@abp/jquery-validation" "~5.0.0-beta.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.0.0-beta.1.tgz#2964ca1266b087e4c4c0e768bfc4bfe0284e4ff5" - integrity sha512-ZDNdkPy2ZNu0EYDNH20Oh9R3bICCYv9CbEj4zZ8Qavixo9VTkybY3BW0nYjcu1yb1P92gZPp80W8vyfxSo//kw== +"@abp/jquery-validation@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.0.0-beta.2.tgz#233eda5998ae566daeb945d8508999da2ef75a51" + integrity sha512-jKY0yfRgM5RGlJeQCGKkkczx5qptpPkhqWr4x+ffTUzR+ywF9FHUB5zcbELpEyWuOJ9cilap2hga2lvPZ8c+Pg== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" jquery-validation "^1.19.2" -"@abp/jquery@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.0.0-beta.1.tgz#360e7a164b6b4ce615a5ad91a1c78ef6893648f3" - integrity sha512-v2t+76L45tlbpGeVR39GurZl60Rj1pR/TdUidpP6zwnpx1Y3I+CvlJNDwTESeE/ixTOT3PyFbXoMEi6hI+v39A== +"@abp/jquery@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.0.0-beta.2.tgz#62fa64fcc0bd5dca4b5e7534b24205a3f0461f08" + integrity sha512-tMzjo9qQAgJDYPvLk67YNlnOOUSTUfPWodlqfl5vvo6/NHSsB9eJhXH28txEtygX0o/Mepi9Ag87dL9VLh0DEw== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" jquery "~3.6.0" -"@abp/lodash@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.0.0-beta.1.tgz#618797bde42b17f91d7f99fdd5f24cb5e8a361b3" - integrity sha512-WsUjzHRZ6RkSMd5PTw0oWijDbbq/Wgonv8++ufUZi1WK5spZi9ohjcYM4io3Ms3fG+g4pWznaicYraMpV5tcsQ== +"@abp/lodash@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.0.0-beta.2.tgz#c821eb502de3211f94ca2f7ba8a5c0b0677c5c9b" + integrity sha512-lW8lz1JG8kweVOWVCB7jC6xxLUE0G6MJfwv4g0+eKwFLgsAO5dK6Yk4xZi+UXgST73OgGt5LIQJcS4+aCo/zmg== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" lodash "^4.17.15" -"@abp/luxon@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.0.0-beta.1.tgz#fc81fcbfb592d3baf7b9856b3cecf5b86df4bfdf" - integrity sha512-t4lhJ/wr1rAVH1/bnzmc8niZYvolTuXUB0h6A6UYaw205QyNtimzusYkTwkc+Z3xHFUrkLCoG7J2SVoCJuioaA== +"@abp/luxon@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.0.0-beta.2.tgz#64c68c3091415153c8c470fb3e5650bbc00500d1" + integrity sha512-0mSVsycWEo5hamEuR7Mqw00JnVRlhQvpy8Bks58d7bRksIQzK8iPx9advTbP2ICF3iz9zHT9MJrMXYfvUT6oIQ== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.0.0-beta.1.tgz#7af43d30af9b1f741fd9d9559d100aa4a5c52ae9" - integrity sha512-B195PC4/75W0EXjGEQUd/ZARb/eGWj8DX7hq3K+J+lUWzWu46dZy8s5bBij78HqxS91/q6nbxU35Z+E9xl6ICg== +"@abp/malihu-custom-scrollbar-plugin@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.0.0-beta.2.tgz#6c030cfe1e123be0a81f769dedd6a6b22aed9077" + integrity sha512-ZEkCMMDKe26b/sCArQjDOGEm8+lQB9Uis17FNyHDt/vA+FdtaPJjeLOqmfzMeLQYppvefH+JCpGzfaWwCNZmcw== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.0.0-beta.1.tgz#15988165fcfed2ebc2b8d097965e2dc1984af35e" - integrity sha512-SF+NkWDJNz1EeEimW5luaCMPTNN1oPzEWs47usPJo8m7HfijEvF3rymJ8jL5zWIOo05Tx3HUurLSVz0qu4vZsw== +"@abp/select2@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.0.0-beta.2.tgz#f5e74d56ccdabde61825453044f31fa183573b58" + integrity sha512-ApL7ioC4p5GguQM2KfnqtGrJ9TqBRiQh1v+y1J2Z3Lh18SJU+tsA3f9Va9ZyZNIFrpV3Bsmim2cIu7bjm7IBRw== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" select2 "^4.0.13" -"@abp/sweetalert2@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.0.0-beta.1.tgz#c6a1185f39d3207f67753e7c486eddcefc7fd0da" - integrity sha512-ADotpiMkIzHLy/ufK0q49V9hgF8oKE0rLRzVZV2dHBpmFR7YRcPdbb5AN9CiXDk6ol8nsocEEAwRmgD3eJG63w== +"@abp/sweetalert2@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.0.0-beta.2.tgz#164c1df63c2859fa5277673906f85cc8e7e2d1ef" + integrity sha512-UdENhKcfywOorjTf4+CxDO8UUet9lYAIDH2r+Kd1qjFKIDDu6w3TfJ7Gz108VG84+RsUevfVLgZ8qeYsA+drKQ== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" sweetalert2 "^11.0.18" -"@abp/timeago@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.0.0-beta.1.tgz#0f7bb8cd85b7e90d7d5c0a0940b9102e3f4f1e42" - integrity sha512-QwYZyeDRW+X8BGecBcK1SgsClVWNYfPgvct+WkQhTIRxzbP/c1c+1irj69sNdN3df2WLnmjfu3sBw2hzz5ykbg== +"@abp/timeago@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.0.0-beta.2.tgz#7a6242e6cc403addf172ebf18ffb3513d4b30f21" + integrity sha512-wdXaKd0dBJP0mawzHqE04YWUgpUYzq8vJHGH3QGf9RpB+XpMztt1KNHR6d32VylDAEoPEtB7GH4rVvlimKa48g== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" timeago "^1.6.7" -"@abp/toastr@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.0.0-beta.1.tgz#d420fc5db6b15f6d623d3928bb6913996511937f" - integrity sha512-82LfDrZQagtv4QLb643VTra4pxleOq5xYwhpOK1Ifop2K5CRgElxKfWvY2EtxdGkpCO2arvkOzjRNbxnecHB2w== +"@abp/toastr@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.0.0-beta.2.tgz#924f5315d3ade6ee41869d8809b625116c5b02f1" + integrity sha512-iqmgO/8AwORzYKf/43+Fx/478la0w+g+mrDahzokPlZFv6WUvFL3QSD/fs1mjc2yUOxEuvgprEiEfWoZcrwtNA== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" toastr "^2.1.4" -"@abp/utils@^5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.0.0-beta.1.tgz#e1bf9240738276081c89a67073d9d85205fdf14c" - integrity sha512-suzKxHUautizxt5XdlJ8ONIaVMcAHrb2dp1kEnXnFRW1ip+7ZQ9/nxJj+GtY1MhHX2yPmlUQP2K8f2upJh9aoA== +"@abp/utils@^5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.0.0-beta.2.tgz#4d120c0f930b943071b4ba27dafedf6c8b730182" + integrity sha512-EZV1P+eafVBEHO6B+Ws6iX4xyeg8B6nCPLvpaFC6mStk7SGidh2rAYYWyydyh68Ky8YdbLYQE3oPaIewOhDWTg== dependencies: just-compare "^1.3.0" diff --git a/build/build-images-locally.ps1 b/build/build-images-locally.ps1 new file mode 100644 index 00000000..cf85bc3f --- /dev/null +++ b/build/build-images-locally.ps1 @@ -0,0 +1,68 @@ +param ($version='latest') + +$currentFolder = $PSScriptRoot +$slnFolder = Join-Path $currentFolder "../" +$webAppFolder = Join-Path $slnFolder "apps/angular" +$authserverFolder = Join-Path $slnFolder "apps/auth-server/src/EShopOnAbp.AuthServer" +$publicWebFolder = Join-Path $slnFolder "apps/public-web/src/EShopOnAbp.PublicWeb" + +$webGatewayFolder = Join-Path $slnFolder "gateways/web/src/EShopOnAbp.WebGateway" +$webPublicGatewayFolder = Join-Path $slnFolder "gateways/web-public/src/EShopOnAbp.WebPublicGateway" + +$identityServiceFolder = Join-Path $slnFolder "services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host" +$administrationServiceFolder = Join-Path $slnFolder "services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host" +$saasServiceFolder = Join-Path $slnFolder "services/saas/src/EShopOnAbp.SaasService.HttpApi.Host" + +### Angular WEB App(WWW) +Write-Host "*** BUILDING WEB (WWW) ****************" -ForegroundColor Green +Set-Location $webAppFolder +yarn +# ng build --prod +npm run build:prod +docker build -t eshoponabp/app-web:$version . + +### AUTH-SERVER +Write-Host "*** BUILDING AUTH-SERVER ****************" -ForegroundColor Green +Set-Location $authserverFolder +dotnet publish -c Release +docker build -f Dockerfile.local -t eshoponabp/app-authserver:$version . + +### PUBLIC-WEB +Write-Host "*** BUILDING WEB-PUBLIC ****************" -ForegroundColor Green +Set-Location $publicWebFolder +dotnet publish -c Release +docker build -f Dockerfile.local -t eshoponabp/app-publicweb:$version . + +### WEB-GATEWAY +Write-Host "*** BUILDING WEB-GATEWAY ****************" -ForegroundColor Green +Set-Location $webGatewayFolder +dotnet publish -c Release +docker build -f Dockerfile.local -t eshoponabp/gateway-web:$version . + +### PUBLICWEB-GATEWAY +Write-Host "*** BUILDING WEB-PUBLIC-GATEWAY ****************" -ForegroundColor Green +Set-Location $webPublicGatewayFolder +dotnet publish -c Release +docker build -f Dockerfile.local -t eshoponabp/gateway-web-public:$version . + +### IDENTITY-SERVICE +Write-Host "*** BUILDING IDENTITY-SERVICE ****************" -ForegroundColor Green +Set-Location $identityServiceFolder +dotnet publish -c Release +docker build -f Dockerfile.local -t eshoponabp/service-identity:$version . + +### ADMINISTRATION-SERVICE +Write-Host "*** BUILDING ADMINISTRATION-SERVICE ****************" -ForegroundColor Green +Set-Location $administrationServiceFolder +dotnet publish -c Release +docker build -f Dockerfile.local -t eshoponabp/service-administration:$version . + +### SAAS-SERVICE +Write-Host "*** BUILDING SAAS-SERVICE ****************" -ForegroundColor Green +Set-Location $saasServiceFolder +dotnet publish -c Release +docker build -f Dockerfile.local -t eshoponabp/service-saas:$version . + +### ALL COMPLETED +Write-Host "ALL COMPLETED" -ForegroundColor Green +Set-Location $currentFolder \ No newline at end of file diff --git a/build/build-images.ps1 b/build/build-images.ps1 new file mode 100644 index 00000000..c85d615c --- /dev/null +++ b/build/build-images.ps1 @@ -0,0 +1,64 @@ +param ($version='1.0') + +$currentFolder = $PSScriptRoot +$slnFolder = Join-Path $currentFolder "../" +$webAppFolder = Join-Path $slnFolder "apps/angular" +$authserverFolder = Join-Path $slnFolder "apps/auth-server/src/EShopOnAbp.AuthServer" +$publicWebFolder = Join-Path $slnFolder "apps/public-web/src/EShopOnAbp.PublicWeb" + +$webGatewayFolder = Join-Path $slnFolder "gateways/web/src/EShopOnAbp.WebGateway" +$webPublicGatewayFolder = Join-Path $slnFolder "gateways/web-public/src/EShopOnAbp.WebPublicGateway" + +$identityServiceFolder = Join-Path $slnFolder "services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host" +$administrationServiceFolder = Join-Path $slnFolder "services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host" +$saasServiceFolder = Join-Path $slnFolder "services/saas/src/EShopOnAbp.SaasService.HttpApi.Host" + +Write-Host "===== BUILDING APPLICATIONS =====" -ForegroundColor Yellow + +### Angular WEB App +Write-Host "*** BUILDING ANGULAR WEB APPLICATION ***" -ForegroundColor Green +Set-Location $webAppFolder +docker build -f "$webAppFolder/Dockerfile" -t eshoponabp/app-web:$version . + +### AUTH-SERVER +Write-Host "**************** BUILDING AUTH-SERVER ****************" -ForegroundColor Green +Set-Location $slnFolder +docker build -f "$authserverFolder/Dockerfile" -t eshoponabp/app-authserver:$version . + +### PUBLIC-WEB +Write-Host "**************** BUILDING WEB-PUBLIC ****************" -ForegroundColor Green +Set-Location $slnFolder +docker build -f "$publicWebFolder/Dockerfile" -t eshoponabp/app-publicweb:$version . + +Write-Host "===== BUILDING GATEWAYS =====" -ForegroundColor Yellow + +### WEB-GATEWAY +Write-Host "**************** BUILDING WEB-GATEWAY ****************" -ForegroundColor Green +Set-Location $slnFolder +docker build -f "$webGatewayFolder/Dockerfile" -t eshoponabp/gateway-web:$version . + +### PUBLICWEB-GATEWAY +Write-Host "**************** BUILDING WEB-PUBLIC-GATEWAY ****************" -ForegroundColor Green +Set-Location $slnFolder +docker build -f "$webPublicGatewayFolder/Dockerfile" -t eshoponabp/gateway-web-public:$version . + +Write-Host "===== BUILDING MICROSERVICES =====" -ForegroundColor Yellow + +### IDENTITY-SERVICE +Write-Host "**************** BUILDING IDENTITY-SERVICE ****************" -ForegroundColor Green +Set-Location $slnFolder +docker build -f "$identityServiceFolder/Dockerfile" -t eshoponabp/service-identity:$version . + +### ADMINISTRATION-SERVICE +Write-Host "**************** BUILDING ADMINISTRATION-SERVICE ****************" -ForegroundColor Green +Set-Location $slnFolder +docker build -f "$administrationServiceFolder/Dockerfile" -t eshoponabp/service-administration:$version . + +### SAAS-SERVICE +Write-Host "**************** BUILDING SAAS-SERVICE ****************" -ForegroundColor Green +Set-Location $slnFolder +docker build -f "$saasServiceFolder/Dockerfile" -t eshoponabp/service-saas:$version . + +### ALL COMPLETED +Write-Host "ALL COMPLETED" -ForegroundColor Green +Set-Location $currentFolder \ No newline at end of file diff --git a/docs/roadmap/Phase_1.png b/docs/roadmap/Phase_1.png index f1b32c7e..b0085561 100644 Binary files a/docs/roadmap/Phase_1.png and b/docs/roadmap/Phase_1.png differ diff --git a/etc/k8s/README.md b/etc/README.md similarity index 65% rename from etc/k8s/README.md rename to etc/README.md index e34481e5..b1c368b7 100644 --- a/etc/k8s/README.md +++ b/etc/README.md @@ -4,7 +4,7 @@ * Install [NGINX ingress](https://kubernetes.github.io/ingress-nginx/deploy/) for k8s OR * Install NGINX ingress using helm -``` +```powershell helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx helm repo update @@ -17,17 +17,19 @@ helm install ingress-nginx ingress-nginx/ingress-nginx * Add entries to the hosts file (in Windows: `C:\Windows\System32\drivers\etc\hosts`): -```` -127.0.0.1 eshoponabp-public-web -127.0.0.1 eshoponabp-authserver -127.0.0.1 eshoponabp-identity -127.0.0.1 eshoponabp-administration -127.0.0.1 eshoponabp-saas -127.0.0.1 eshoponabp-public-webgateway +````powershell +127.0.0.1 eshop-st-web +127.0.0.1 eshop-st-public-web +127.0.0.1 eshop-st-authserver +127.0.0.1 eshop-st-identity +127.0.0.1 eshop-st-administration +127.0.0.1 eshop-st-saas +127.0.0.1 eshop-st-gateway-web +127.0.0.1 eshop-st-gateway-web-public ```` * Run `build-images.ps1` in the `scripts` directory. -* Run `deploy-staging.ps1` in the `helm-chart` directory. It is deployed with the `eventhub` namespace. +* Run `deploy-staging.ps1` in the `helm-chart` directory. It is deployed with the `eshop` namespace. * *You may wait ~30 seconds on first run for preparing the database*. -* Browse https://eshoponabp-public-web and https://eshoponabp-authserver +* Browse https://eshop-st-public-web for public and https://eshop-st-web for web application * Username: `admin`, password: `1q2w3E*`. diff --git a/etc/k8s/deploy-staging.ps1 b/etc/k8s/deploy-staging.ps1 index ad6e28ce..3b3b8f97 100644 --- a/etc/k8s/deploy-staging.ps1 +++ b/etc/k8s/deploy-staging.ps1 @@ -1,3 +1 @@ -param ($version='latest') - -helm upgrade --install eshoponabp eshoponabp --namespace eshop --create-namespace --set global.eshoponabpImageVersion=$version \ No newline at end of file +helm upgrade --install es-st eshoponabp --namespace eshop --create-namespace \ No newline at end of file diff --git a/etc/k8s/eshoponabp/charts/administration/templates/administration-deployment.yaml b/etc/k8s/eshoponabp/charts/administration/templates/administration-deployment.yaml new file mode 100644 index 00000000..26f80d03 --- /dev/null +++ b/etc/k8s/eshoponabp/charts/administration/templates/administration-deployment.yaml @@ -0,0 +1,52 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ .Release.Name }}-{{ .Chart.Name }} +spec: + selector: + matchLabels: + app: {{ .Release.Name }}-{{ .Chart.Name }} + template: + metadata: + labels: + app: {{ .Release.Name }}-{{ .Chart.Name }} + spec: + containers: + - image: {{ .Values.image.repository }}:{{ .Values.image.tag }} + imagePullPolicy: {{ .Values.image.pullPolicy }} + name: {{ .Release.Name }}-{{ .Chart.Name }} + ports: + - name: http + containerPort: 80 + - name: https + containerPort: 443 + env: + - name: App__SelfUrl + value: "{{ .Values.config.selfUrl }}" + - name: RemoteServices__Default__BaseUrl + value: "{{ .Values.config.gatewayUrl }}" + - name: App__CorsOrigins + value: "{{ .Values.config.corsOrigins }}" + - name: IdentityClients__Default__Authority + value: "{{ .Values.synchedCommunication.authority }}" + - name: "ConnectionStrings__AdministrationService" + value: "{{ .Values.config.connectionStrings.administrationService }}" + - name: "ConnectionStrings__SaasService" + value: "{{ .Values.config.connectionStrings.saasService }}" + - name: "DOTNET_ENVIRONMENT" + value: "{{ .Values.config.dotnetEnv }}" + - name: "Redis__Configuration" + value: "{{ .Values.config.redisHost }}" + - name: "AuthServer__Authority" + value: "{{ .Values.config.authServer.authority }}" + - name: "AuthServer__RequireHttpsMetadata" + value: "{{ .Values.config.authServer.requireHttpsMetadata }}" + - name: "StringEncryption__DefaultPassPhrase" + value: "{{ .Values.config.stringEncryptionDefaultPassPhrase }}" + - name: "RabbitMQ__Connections__Default__HostName" + value: "{{ .Values.config.rabbitmqHost }}" + - name: "ElasticSearch__Url" + value: "{{ .Values.config.elasticsearchHost }}" + {{- if .Values.env }} +{{ toYaml .Values.env | indent 8 }} + {{- end }} diff --git a/etc/k8s/eshoponabp/charts/administration/templates/administration-ingress.yaml b/etc/k8s/eshoponabp/charts/administration/templates/administration-ingress.yaml index 14af3ff2..e843265f 100644 --- a/etc/k8s/eshoponabp/charts/administration/templates/administration-ingress.yaml +++ b/etc/k8s/eshoponabp/charts/administration/templates/administration-ingress.yaml @@ -6,16 +6,16 @@ metadata: kubernetes.io/ingress.class: "nginx" nginx.ingress.kubernetes.io/rewrite-target: / nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - nginx.ingress.kubernetes.io/proxy-buffer-size: "{{ .Values.global.nginxProxyBufferSize }}" - nginx.ingress.kubernetes.io/proxy-buffers-number: "{{ .Values.global.nginxProxyBuffersNumber }}" + nginx.ingress.kubernetes.io/proxy-buffer-size: 32k + nginx.ingress.kubernetes.io/proxy-buffers-number: "8" cert-manager.io/cluster-issuer: letsencrypt spec: tls: - hosts: - - {{ .Values.global.administrationService.domain }} - secretName: {{ .Release.Name }}-{{ .Chart.Name }}-tls + - {{ .Values.ingress.host }} + secretName: {{ .Values.ingress.tlsSecret }} rules: - - host: "{{ .Values.global.administrationService.domain }}" + - host: "{{ .Values.ingress.host }}" http: paths: - path: / diff --git a/etc/k8s/eshoponabp/charts/administration/templates/administration.yaml b/etc/k8s/eshoponabp/charts/administration/templates/administration.yaml deleted file mode 100644 index 387b49d0..00000000 --- a/etc/k8s/eshoponabp/charts/administration/templates/administration.yaml +++ /dev/null @@ -1,31 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: {{ .Release.Name }}-{{ .Chart.Name }} -spec: - selector: - matchLabels: - app: {{ .Release.Name }}-{{ .Chart.Name }} - template: - metadata: - labels: - app: {{ .Release.Name }}-{{ .Chart.Name }} - spec: - containers: - - image: {{ .Values.global.administrationService.containerImage }}:{{ .Values.global.eshoponabpImageVersion }} - imagePullPolicy: {{ .Values.global.imagePullPolicy }} - name: {{ .Release.Name }}-{{ .Chart.Name }} - ports: - - name: http - containerPort: 80 - - name: https - containerPort: 443 - env: -{{ include "eshoponabp.global.env" . | indent 8 }} - - name: "ConnectionStrings__AdministrationService" - value: {{ .Values.global.administrationService.connString }} - - name: "ConnectionStrings__SaasService" - value: {{ .Values.global.saasService.connString }} - {{- if .Values.env }} -{{ toYaml .Values.env | indent 8 }} - {{- end }} diff --git a/etc/k8s/eshoponabp/charts/administration/values.yaml b/etc/k8s/eshoponabp/charts/administration/values.yaml index e69de29b..50b4e536 100644 --- a/etc/k8s/eshoponabp/charts/administration/values.yaml +++ b/etc/k8s/eshoponabp/charts/administration/values.yaml @@ -0,0 +1,33 @@ +config: + selfUrl: # https://eshop-st-administration + gatewayUrl: # https://eshop-st-gateway-internal/ + corsOrigins: # https://eshop-st-gateway-web,https://eshop-st-gateway-public-web,https://eshop-st-gateway-internal + connectionStrings: + administrationService: # + saasService: # + authServer: + authority: http://eshop-st-authserver + requireHttpsMetadata: "false" + dotnetEnv: Staging + redisHost: es-st-redis + rabbitmqHost: es-st-rabbitmq + elasticsearchHost: # + stringEncryptionDefaultPassPhrase: gsKnGZ041HLL4IM8 + +synchedCommunication: + grantType: # "client_credentials" + clientId: # + clientSecret: # + authority: https://eshop-st-authserver + scope: # "IdentityService" + +ingress: + host: # eshop-st-administration + tlsSecret: eshop-demo-tls + +image: + repository: eshoponabp/service-administration + tag: latest + pullPolicy: IfNotPresent + +env: {} diff --git a/etc/k8s/eshoponabp/charts/authserver/templates/authserver-deployment.yaml b/etc/k8s/eshoponabp/charts/authserver/templates/authserver-deployment.yaml new file mode 100644 index 00000000..162929db --- /dev/null +++ b/etc/k8s/eshoponabp/charts/authserver/templates/authserver-deployment.yaml @@ -0,0 +1,49 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ .Release.Name }}-{{ .Chart.Name }} +spec: + selector: + matchLabels: + app: {{ .Release.Name }}-{{ .Chart.Name }} + template: + metadata: + labels: + app: {{ .Release.Name }}-{{ .Chart.Name }} + spec: + containers: + - image: {{ .Values.image.repository }}:{{ .Values.image.tag }} + imagePullPolicy: {{ .Values.image.pullPolicy }} + name: {{ .Release.Name }}-{{ .Chart.Name }} + ports: + - name: http + containerPort: 80 + - name: https + containerPort: 443 + env: + - name: App__SelfUrl + value: "{{ .Values.config.selfUrl }}" + - name: App__CorsOrigins + value: "{{ .Values.config.corsOrigins }}" + - name: App__RedirectAllowedUrls + value: "{{ .Values.config.allowedRedirectUrls }}" + - name: "ConnectionStrings__IdentityService" + value: "{{ .Values.config.identityService.connString }}" + - name: "ConnectionStrings__AdministrationService" + value: "{{ .Values.config.administrationService.connString }}" + - name: "ConnectionStrings__SaasService" + value: "{{ .Values.config.saasService.connString }}" + - name: "DOTNET_ENVIRONMENT" + value: "{{ .Values.config.dotnetEnv }}" + - name: "Redis__Configuration" + value: "{{ .Values.config.redisHost }}" + - name: "StringEncryption__DefaultPassPhrase" + value: "{{ .Values.config.stringEncryptionDefaultPassPhrase }}" + - name: "RabbitMQ__Connections__Default__HostName" + value: "{{ .Values.config.rabbitmqHost }}" + - name: "ElasticSearch__Url" + value: "{{ .Values.config.elasticsearchHost }}" + {{- if .Values.env }} +{{ toYaml .Values.env | indent 8 }} + {{- end }} + \ No newline at end of file diff --git a/etc/k8s/eshoponabp/charts/authserver/templates/authserver-ingress.yaml b/etc/k8s/eshoponabp/charts/authserver/templates/authserver-ingress.yaml index a09b9cc5..b74c1044 100644 --- a/etc/k8s/eshoponabp/charts/authserver/templates/authserver-ingress.yaml +++ b/etc/k8s/eshoponabp/charts/authserver/templates/authserver-ingress.yaml @@ -3,21 +3,21 @@ kind: Ingress metadata: name: {{ .Release.Name }}-{{ .Chart.Name }}-ingress annotations: - kubernetes.io/ingress.class: nginx + kubernetes.io/ingress.class: "nginx" nginx.ingress.kubernetes.io/rewrite-target: / nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - nginx.ingress.kubernetes.io/proxy-buffer-size: "{{ .Values.global.nginxProxyBufferSize }}" - nginx.ingress.kubernetes.io/proxy-buffers-number: "{{ .Values.global.nginxProxyBuffersNumber }}" + nginx.ingress.kubernetes.io/proxy-buffer-size: 32k + nginx.ingress.kubernetes.io/proxy-buffers-number: "8" cert-manager.io/cluster-issuer: letsencrypt nginx.ingress.kubernetes.io/configuration-snippet: | more_set_input_headers "from-ingress: true"; spec: tls: - hosts: - - {{ .Values.global.authServer.domain }} - secretName: {{ .Release.Name }}-{{ .Chart.Name }}-tls + - {{ .Values.ingress.host }} + secretName: {{ .Values.ingress.tlsSecret }} rules: - - host: "{{ .Values.global.authServer.domain }}" + - host: "{{ .Values.ingress.host }}" http: paths: - path: / diff --git a/etc/k8s/eshoponabp/charts/authserver/templates/authserver.yaml b/etc/k8s/eshoponabp/charts/authserver/templates/authserver.yaml deleted file mode 100644 index e59d1c5a..00000000 --- a/etc/k8s/eshoponabp/charts/authserver/templates/authserver.yaml +++ /dev/null @@ -1,30 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: {{ .Release.Name }}-{{ .Chart.Name }} -spec: - selector: - matchLabels: - app: {{ .Release.Name }}-{{ .Chart.Name }} - template: - metadata: - labels: - app: {{ .Release.Name }}-{{ .Chart.Name }} - spec: - containers: - - image: {{ .Values.global.authServer.containerImage }}:{{ .Values.global.eshoponabpImageVersion }} - imagePullPolicy: {{ .Values.global.imagePullPolicy }} - name: {{ .Release.Name }}-{{ .Chart.Name }} - ports: - - name: http - containerPort: 80 - - name: https - containerPort: 443 - env: -{{ include "eshoponabp.global.env" . | indent 8 }} - - name: "ConnectionStrings__IdentityService" - value: {{ .Values.global.identityService.connString }} - - name: "ConnectionStrings__AdministrationService" - value: {{ .Values.global.administrationService.connString }} - - name: "ConnectionStrings__SaasService" - value: {{ .Values.global.saasService.connString }} \ No newline at end of file diff --git a/etc/k8s/eshoponabp/charts/authserver/values.yaml b/etc/k8s/eshoponabp/charts/authserver/values.yaml index e69de29b..7ac6934f 100644 --- a/etc/k8s/eshoponabp/charts/authserver/values.yaml +++ b/etc/k8s/eshoponabp/charts/authserver/values.yaml @@ -0,0 +1,27 @@ +config: + selfUrl: # https://eshop-st-authserver + corsOrigins: # https://eshop-st-identity,https://eshop-st-administration,https://eshop-st-saas + allowedRedirectUrls: https://eshop-st-web + identityService: + connString: # + administrationService: + connString: # + saasService: + connString: # + dotnetEnv: # + redisHost: # + rabbitmqHost: # + elasticsearchHost: # + stringEncryptionDefaultPassPhrase: gsKnGZ041HLL4IM8 + +ingress: + host: # eshop-st-authserver + tlsSecret: eshop-demo-tls + +image: + repository: eshoponabp/app-authserver + tag: latest + pullPolicy: IfNotPresent + +env: {} + \ No newline at end of file diff --git a/etc/k8s/eshoponabp/charts/consul/templates/consul-service.yaml b/etc/k8s/eshoponabp/charts/consul/templates/consul-service.yaml deleted file mode 100644 index 1af77696..00000000 --- a/etc/k8s/eshoponabp/charts/consul/templates/consul-service.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - labels: - name: {{ .Release.Name }}-{{ .Chart.Name }} - name: {{ .Release.Name }}-{{ .Chart.Name }} -spec: - type: ClusterIP - ports: - - name: consul-1 - protocol: TCP - port: 8500 - - name: consul-2 - protocol: TCP - port: 8600 - selector: - app: {{ .Release.Name }}-{{ .Chart.Name }} \ No newline at end of file diff --git a/etc/k8s/eshoponabp/charts/consul/templates/consul.yaml b/etc/k8s/eshoponabp/charts/consul/templates/consul.yaml deleted file mode 100644 index cb1cc9e1..00000000 --- a/etc/k8s/eshoponabp/charts/consul/templates/consul.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: {{ .Release.Name }}-{{ .Chart.Name }} -spec: - replicas: 1 - selector: - matchLabels: - app: {{ .Release.Name }}-{{ .Chart.Name }} - template: - metadata: - labels: - app: {{ .Release.Name }}-{{ .Chart.Name }} - spec: - containers: - - image: consul - name: {{ .Release.Name }}-{{ .Chart.Name }} - ports: - - name: consul-1 - protocol: TCP - containerPort: 8500 - - name: consul-2 - protocol: TCP - containerPort: 8600 \ No newline at end of file diff --git a/etc/k8s/eshoponabp/charts/consul/values.yaml b/etc/k8s/eshoponabp/charts/consul/values.yaml deleted file mode 100644 index e69de29b..00000000 diff --git a/etc/k8s/eshoponabp/charts/gateway-web-public/Chart.yaml b/etc/k8s/eshoponabp/charts/gateway-web-public/Chart.yaml new file mode 100644 index 00000000..50b051d8 --- /dev/null +++ b/etc/k8s/eshoponabp/charts/gateway-web-public/Chart.yaml @@ -0,0 +1,6 @@ +apiVersion: v2 +name: gateway-web-public +appVersion: "1.0" +description: eShopOnAbp Web Public Gateway Application +version: 1.0.0 +type: application diff --git a/etc/k8s/eshoponabp/charts/gateway-web-public/templates/gateway-web-public-configmap.yaml b/etc/k8s/eshoponabp/charts/gateway-web-public/templates/gateway-web-public-configmap.yaml new file mode 100644 index 00000000..88f4794e --- /dev/null +++ b/etc/k8s/eshoponabp/charts/gateway-web-public/templates/gateway-web-public-configmap.yaml @@ -0,0 +1,74 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ .Release.Name }}-{{ .Chart.Name }}-configmap +data: + appsettings.json: |- + { + "Routes": [ + { + "ServiceKey": "Identity Service", + "DownstreamPathTemplate": "/api/account/{everything}", + "DownstreamScheme": "{{ .Values.reRoutes.identityService.schema }}", + "DownstreamHostAndPorts": [ + { + "Host": "{{ .Values.reRoutes.identityService.host }}", + "Port": {{ .Values.reRoutes.identityService.port }} + } + ], + "UpstreamPathTemplate": "/api/account/{everything}", + "UpstreamHttpMethod": [ "Put", "Delete", "Get", "Post" ] + }, + { + "ServiceKey": "Administration Service", + "DownstreamPathTemplate": "/api/abp/{everything}", + "DownstreamScheme": "{{ .Values.reRoutes.administrationService.schema }}", + "DownstreamHostAndPorts": [ + { + "Host": "{{ .Values.reRoutes.administrationService.host }}", + "Port": "{{ .Values.reRoutes.administrationService.port }}", + } + ], + "UpstreamPathTemplate": "/api/abp/{everything}", + "UpstreamHttpMethod": [ "Put", "Delete", "Get", "Post" ] + }, + { + "ServiceKey": "Catalog Service", + "DownstreamPathTemplate": "/api/catalog/{everything}", + "DownstreamScheme": "{{ .Values.reRoutes.catalogService.schema }}", + "DownstreamHostAndPorts": [ + { + "Host": "{{ .Values.reRoutes.catalogService.host }}", + "Port": "{{ .Values.reRoutes.catalogService.port }}", + } + ], + "UpstreamPathTemplate": "/api/catalog/{everything}", + "UpstreamHttpMethod": [ "Put", "Delete", "Get", "Post" ] + }, + { + "ServiceKey": "Basket Service", + "DownstreamPathTemplate": "/api/basket/{everything}", + "DownstreamScheme": "{{ .Values.reRoutes.basketService.schema }}", + "DownstreamHostAndPorts": [ + { + "Host": "{{ .Values.reRoutes.basketService.host }}", + "Port": "{{ .Values.reRoutes.basketService.port }}", + } + ], + "UpstreamPathTemplate": "/api/basket/{everything}", + "UpstreamHttpMethod": [ "Put", "Delete", "Get", "Post" ] + }, + { + "ServiceKey": "Ordering Service", + "DownstreamPathTemplate": "/api/ordering/{everything}", + "DownstreamScheme": "{{ .Values.reRoutes.orderService.schema }}", + "DownstreamHostAndPorts": [ + { + "Host": "{{ .Values.reRoutes.orderService.host }}", + "Port": "{{ .Values.reRoutes.orderService.port }}", + } + ], + "UpstreamPathTemplate": "/api/ordering/{everything}", + "UpstreamHttpMethod": [ "Put", "Delete", "Get", "Post" ] + }] + } \ No newline at end of file diff --git a/etc/k8s/eshoponabp/charts/gateway-web-public/templates/gateway-web-public-deployment.yaml b/etc/k8s/eshoponabp/charts/gateway-web-public/templates/gateway-web-public-deployment.yaml new file mode 100644 index 00000000..a64d660e --- /dev/null +++ b/etc/k8s/eshoponabp/charts/gateway-web-public/templates/gateway-web-public-deployment.yaml @@ -0,0 +1,52 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ .Release.Name }}-{{ .Chart.Name }} +spec: + selector: + matchLabels: + app: {{ .Release.Name }}-{{ .Chart.Name }} + template: + metadata: + labels: + app: {{ .Release.Name }}-{{ .Chart.Name }} + spec: + containers: + - image: {{ .Values.image.repository }}:{{ .Values.image.tag }} + imagePullPolicy: {{ .Values.image.pullPolicy }} + name: {{ .Release.Name }}-{{ .Chart.Name }} + ports: + - name: http + containerPort: 80 + - name: https + containerPort: 443 + volumeMounts: + - name: config-volume + mountPath: /app/appsettings.json + subPath: appsettings.json + env: + - name: App__SelfUrl + value: "{{ .Values.config.selfUrl }}" + - name: GlobalConfiguration__BaseUrl + value: "{{ .Values.config.globalConfigurationBaseUrl }}" + - name: "DOTNET_ENVIRONMENT" + value: "{{ .Values.config.dotnetEnv }}" + - name: "Redis__Configuration" + value: "{{ .Values.config.redisHost }}" + - name: "RabbitMQ__Connections__Default__HostName" + value: "{{ .Values.config.rabbitmqHost }}" + - name: "AuthServer__Authority" + value: "{{ .Values.config.authServer.authority }}" + - name: "AuthServer__RequireHttpsMetadata" + value: "{{ .Values.config.authServer.requireHttpsMetadata }}" + - name: "ElasticSearch__Url" + value: "{{ .Values.config.elasticsearchHost }}" + - name: "StringEncryption__DefaultPassPhrase" + value: "{{ .Values.config.stringEncryptionDefaultPassPhrase }}" + {{- if .Values.env }} +{{ toYaml .Values.env | indent 8 }} + {{- end }} + volumes: + - name: config-volume + configMap: + name: {{ .Release.Name }}-{{ .Chart.Name }}-configmap \ No newline at end of file diff --git a/etc/k8s/eshoponabp/charts/gateway-web-public/templates/gateway-web-public-ingress.yaml b/etc/k8s/eshoponabp/charts/gateway-web-public/templates/gateway-web-public-ingress.yaml new file mode 100644 index 00000000..539025ac --- /dev/null +++ b/etc/k8s/eshoponabp/charts/gateway-web-public/templates/gateway-web-public-ingress.yaml @@ -0,0 +1,37 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: {{ .Release.Name }}-{{ .Chart.Name }}-ingress + annotations: + kubernetes.io/ingress.class: "nginx" + nginx.ingress.kubernetes.io/rewrite-target: / + nginx.ingress.kubernetes.io/force-ssl-redirect: "true" + nginx.ingress.kubernetes.io/proxy-buffer-size: 32k + nginx.ingress.kubernetes.io/proxy-buffers-number: "8" + cert-manager.io/cluster-issuer: letsencrypt +{{- if eq .Release.Name "es-az" }} + nginx.ingress.kubernetes.io/from-to-www-redirect: "true" +{{- end }} +spec: + tls: + - hosts: + - {{ .Values.ingress.host }} +{{- if eq .Release.Name "es-az" }} + - {{ print "www." .Values.global.ingress.host }} +{{- end }} + secretName: {{ .Values.ingress.tlsSecret }} + rules: +{{- if eq .Release.Name "es-az" }} + - host: "{{ print "www." .Values.ingress.host }}" +{{- else }} + - host: "{{ .Values.ingress.host }}" +{{- end }} + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: {{ .Release.Name }}-{{ .Chart.Name }} + port: + number: 80 \ No newline at end of file diff --git a/etc/k8s/eshoponabp/charts/public-webgateway/templates/public-webgateway-service.yaml b/etc/k8s/eshoponabp/charts/gateway-web-public/templates/gateway-web-public-service.yaml similarity index 100% rename from etc/k8s/eshoponabp/charts/public-webgateway/templates/public-webgateway-service.yaml rename to etc/k8s/eshoponabp/charts/gateway-web-public/templates/gateway-web-public-service.yaml diff --git a/etc/k8s/eshoponabp/charts/gateway-web-public/values.yaml b/etc/k8s/eshoponabp/charts/gateway-web-public/values.yaml new file mode 100644 index 00000000..321eeaca --- /dev/null +++ b/etc/k8s/eshoponabp/charts/gateway-web-public/values.yaml @@ -0,0 +1,45 @@ +config: + selfUrl: https://eshop-st-gateway-public-web + globalConfigurationBaseUrl: http://eshop-st-gateway-public-web + authServer: + authority: http://eshop-st-authserver + requireHttpsMetadata: "false" + dotnetEnv: Staging + redisHost: es-st-redis + rabbitmqHost: es-st-rabbitmq + elasticsearchHost: # + stringEncryptionDefaultPassPhrase: gsKnGZ041HLL4IM8 + +reRoutes: + identityService: + schema: http + host: eshop-st-identity + port: 80 + administrationService: + schema: http + host: eshop-st-administration + port: 80 + catalogService: + schema: http + host: eshop-st-catalog + port: 80 + basketService: + schema: http + host: eshop-st-basket + port: 80 + orderService: + schema: http + host: eshop-st-order + port: 80 + +ingress: + host: eshop-st-gateway-web-public + tlsSecret: eshop-demo-tls + +image: + repository: eshoponabp/gateway-web-public + tag: latest + pullPolicy: IfNotPresent + +env: {} + \ No newline at end of file diff --git a/etc/k8s/eshoponabp/charts/consul/Chart.yaml b/etc/k8s/eshoponabp/charts/gateway-web/Chart.yaml similarity index 50% rename from etc/k8s/eshoponabp/charts/consul/Chart.yaml rename to etc/k8s/eshoponabp/charts/gateway-web/Chart.yaml index ae174a63..d251efb7 100644 --- a/etc/k8s/eshoponabp/charts/consul/Chart.yaml +++ b/etc/k8s/eshoponabp/charts/gateway-web/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v2 -name: consul +name: gateway-web appVersion: "1.0" -description: Runs Consul instance +description: eShopOnAbp Web Gateway Application version: 1.0.0 type: application diff --git a/gateways/internal/src/EShopOnAbp.InternalGateway/appsettings.json b/etc/k8s/eshoponabp/charts/gateway-web/templates/gateway-web-configmap.yaml similarity index 56% rename from gateways/internal/src/EShopOnAbp.InternalGateway/appsettings.json rename to etc/k8s/eshoponabp/charts/gateway-web/templates/gateway-web-configmap.yaml index 8c6acb10..80b4cb7c 100644 --- a/gateways/internal/src/EShopOnAbp.InternalGateway/appsettings.json +++ b/etc/k8s/eshoponabp/charts/gateway-web/templates/gateway-web-configmap.yaml @@ -1,24 +1,19 @@ -{ - "App": { - "SelfUrl": "https://localhost:44371" - }, - "Logging": { - "LogLevel": { - "Default": "Information", - "Microsoft": "Warning", - "Microsoft.Hosting.Lifetime": "Information" - } - }, - "AllowedHosts": "*", - "Routes": [ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ .Release.Name }}-{{ .Chart.Name }}-configmap +data: + appsettings.json: |- + { + "Routes": [ { "ServiceKey": "Identity Service", "DownstreamPathTemplate": "/api/identity/{everything}", - "DownstreamScheme": "https", + "DownstreamScheme": "{{ .Values.reRoutes.identityService.schema }}", "DownstreamHostAndPorts": [ { - "Host": "localhost", - "Port": 44351 + "Host": "{{ .Values.reRoutes.identityService.host }}", + "Port": {{ .Values.reRoutes.identityService.port }} } ], "UpstreamPathTemplate": "/api/identity/{everything}", @@ -27,11 +22,11 @@ { "ServiceKey": "Identity Service", "DownstreamPathTemplate": "/api/account/{everything}", - "DownstreamScheme": "https", + "DownstreamScheme": "{{ .Values.reRoutes.identityService.schema }}", "DownstreamHostAndPorts": [ { - "Host": "localhost", - "Port": 44351 + "Host": "{{ .Values.reRoutes.identityService.host }}", + "Port": {{ .Values.reRoutes.identityService.port }} } ], "UpstreamPathTemplate": "/api/account/{everything}", @@ -40,11 +35,11 @@ { "ServiceKey": "Saas Service", "DownstreamPathTemplate": "/api/saas/{everything}", - "DownstreamScheme": "https", + "DownstreamScheme": "{{ .Values.reRoutes.saasService.schema }}", "DownstreamHostAndPorts": [ { - "Host": "localhost", - "Port": 44352 + "Host": "{{ .Values.reRoutes.saasService.host }}", + "Port": {{ .Values.reRoutes.saasService.port }} } ], "UpstreamPathTemplate": "/api/saas/{everything}", @@ -53,11 +48,11 @@ { "ServiceKey": "Administration Service", "DownstreamPathTemplate": "/api/abp/{everything}", - "DownstreamScheme": "https", + "DownstreamScheme": "{{ .Values.reRoutes.administrationService.schema }}", "DownstreamHostAndPorts": [ { - "Host": "localhost", - "Port": 44353 + "Host": "{{ .Values.reRoutes.administrationService.host }}", + "Port": "{{ .Values.reRoutes.administrationService.port }}", } ], "UpstreamPathTemplate": "/api/abp/{everything}", @@ -66,11 +61,11 @@ { "ServiceKey": "Administration Service", "DownstreamPathTemplate": "/api/feature-management/{everything}", - "DownstreamScheme": "https", + "DownstreamScheme": "{{ .Values.reRoutes.administrationService.schema }}", "DownstreamHostAndPorts": [ { - "Host": "localhost", - "Port": 44353 + "Host": "{{ .Values.reRoutes.administrationService.host }}", + "Port": "{{ .Values.reRoutes.administrationService.port }}", } ], "UpstreamPathTemplate": "/api/feature-management/{everything}", @@ -79,11 +74,11 @@ { "ServiceKey": "Administration Service", "DownstreamPathTemplate": "/api/permission-management/{everything}", - "DownstreamScheme": "https", + "DownstreamScheme": "{{ .Values.reRoutes.administrationService.schema }}", "DownstreamHostAndPorts": [ { - "Host": "localhost", - "Port": 44353 + "Host": "{{ .Values.reRoutes.administrationService.host }}", + "Port": "{{ .Values.reRoutes.administrationService.port }}", } ], "UpstreamPathTemplate": "/api/permission-management/{everything}", @@ -92,37 +87,14 @@ { "ServiceKey": "Administration Service", "DownstreamPathTemplate": "/api/setting-management/{everything}", - "DownstreamScheme": "https", + "DownstreamScheme": "{{ .Values.reRoutes.administrationService.schema }}", "DownstreamHostAndPorts": [ { - "Host": "localhost", - "Port": 44353 + "Host": "{{ .Values.reRoutes.administrationService.host }}", + "Port": "{{ .Values.reRoutes.administrationService.port }}", } ], "UpstreamPathTemplate": "/api/setting-management/{everything}", "UpstreamHttpMethod": [ "Put", "Delete", "Get", "Post" ] - }, - { - "ServiceKey": "Payment Service", - "DownstreamPathTemplate": "/api/payment/{everything}", - "DownstreamScheme": "https", - "DownstreamHostAndPorts": [ - { - "Host": "localhost", - "Port": 44357 - } - ], - "UpstreamPathTemplate": "/api/payment/{everything}", - "UpstreamHttpMethod": [ "Put", "Delete", "Get", "Post" ] - } - ], - "GlobalConfiguration": { - "BaseUrl": "https://localhost:44371" - }, - "Redis": { - "Configuration": "localhost:6379" - }, - "ElasticSearch": { - "Url": "http://localhost:9200" - } -} + }] + } \ No newline at end of file diff --git a/etc/k8s/eshoponabp/charts/gateway-web/templates/gateway-web-deployment.yaml b/etc/k8s/eshoponabp/charts/gateway-web/templates/gateway-web-deployment.yaml new file mode 100644 index 00000000..75e1f1a0 --- /dev/null +++ b/etc/k8s/eshoponabp/charts/gateway-web/templates/gateway-web-deployment.yaml @@ -0,0 +1,54 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ .Release.Name }}-{{ .Chart.Name }} +spec: + selector: + matchLabels: + app: {{ .Release.Name }}-{{ .Chart.Name }} + template: + metadata: + labels: + app: {{ .Release.Name }}-{{ .Chart.Name }} + spec: + containers: + - image: {{ .Values.image.repository }}:{{ .Values.image.tag }} + imagePullPolicy: {{ .Values.image.pullPolicy }} + name: {{ .Release.Name }}-{{ .Chart.Name }} + ports: + - name: http + containerPort: 80 + - name: https + containerPort: 443 + volumeMounts: + - name: config-volume + mountPath: /app/appsettings.json + subPath: appsettings.json + env: + - name: App__SelfUrl + value: "{{ .Values.config.selfUrl }}" + - name: App__CorsOrigins + value: "{{ .Values.config.corsOrigins }}" + - name: GlobalConfiguration__BaseUrl + value: "{{ .Values.config.globalConfigurationBaseUrl }}" + - name: "DOTNET_ENVIRONMENT" + value: "{{ .Values.config.dotnetEnv }}" + - name: "Redis__Configuration" + value: "{{ .Values.config.redisHost }}" + - name: "RabbitMQ__Connections__Default__HostName" + value: "{{ .Values.config.rabbitmqHost }}" + - name: "AuthServer__Authority" + value: "{{ .Values.config.authServer.authority }}" + - name: "AuthServer__RequireHttpsMetadata" + value: "{{ .Values.config.authServer.requireHttpsMetadata }}" + - name: "ElasticSearch__Url" + value: "{{ .Values.config.elasticsearchHost }}" + - name: "StringEncryption__DefaultPassPhrase" + value: "{{ .Values.config.stringEncryptionDefaultPassPhrase }}" + {{- if .Values.env }} +{{ toYaml .Values.env | indent 8 }} + {{- end }} + volumes: + - name: config-volume + configMap: + name: {{ .Release.Name }}-{{ .Chart.Name }}-configmap \ No newline at end of file diff --git a/etc/k8s/eshoponabp/charts/gateway-web/templates/gateway-web-ingress.yaml b/etc/k8s/eshoponabp/charts/gateway-web/templates/gateway-web-ingress.yaml new file mode 100644 index 00000000..8e106909 --- /dev/null +++ b/etc/k8s/eshoponabp/charts/gateway-web/templates/gateway-web-ingress.yaml @@ -0,0 +1,37 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: {{ .Release.Name }}-{{ .Chart.Name }}-ingress + annotations: + kubernetes.io/ingress.class: "nginx" + nginx.ingress.kubernetes.io/rewrite-target: / + nginx.ingress.kubernetes.io/force-ssl-redirect: "true" + nginx.ingress.kubernetes.io/proxy-buffer-size: 32k + nginx.ingress.kubernetes.io/proxy-buffers-number: "8" + cert-manager.io/cluster-issuer: letsencrypt +{{- if eq .Release.Name "es-az" }} + nginx.ingress.kubernetes.io/from-to-www-redirect: "true" +{{- end }} +spec: + tls: + - hosts: + - {{ .Values.ingress.host }} +{{- if eq .Release.Name "es-az" }} + - {{ print "www." .Values.ingress.host }} +{{- end }} + secretName: {{ .Values.ingress.tlsSecret }} + rules: +{{- if eq .Release.Name "es-az" }} + - host: "{{ print "www." .Values.ingress.host }}" +{{- else }} + - host: "{{ .Values.ingress.host }}" +{{- end }} + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: {{ .Release.Name }}-{{ .Chart.Name }} + port: + number: 80 \ No newline at end of file diff --git a/etc/k8s/eshoponabp/charts/gateway-web/templates/gateway-web-service.yaml b/etc/k8s/eshoponabp/charts/gateway-web/templates/gateway-web-service.yaml new file mode 100644 index 00000000..ee157c01 --- /dev/null +++ b/etc/k8s/eshoponabp/charts/gateway-web/templates/gateway-web-service.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + name: {{ .Release.Name }}-{{ .Chart.Name }} + name: {{ .Release.Name }}-{{ .Chart.Name }} +spec: + ports: + - name: "80" + port: 80 + - name: "443" + port: 443 + selector: + app: {{ .Release.Name }}-{{ .Chart.Name }} diff --git a/etc/k8s/eshoponabp/charts/gateway-web/values.yaml b/etc/k8s/eshoponabp/charts/gateway-web/values.yaml new file mode 100644 index 00000000..68d4588f --- /dev/null +++ b/etc/k8s/eshoponabp/charts/gateway-web/values.yaml @@ -0,0 +1,35 @@ +config: + selfUrl: # https://eshop-st-gateway-web + corsOrigins: # localhost:4200 + globalConfigurationBaseUrl: # http://eshop-st-gateway-web + authServer: + authority: http://eshop-st-authserver + requireHttpsMetadata: "false" + dotnetEnv: # + redisHost: # + rabbitmqHost: # + elasticsearchHost: # + stringEncryptionDefaultPassPhrase: gsKnGZ041HLL4IM8 +reRoutes: + identityService: + schema: http + host: eshop-st-identity + port: 80 + administrationService: + schema: http + host: eshop-st-administration + port: 80 + saasService: + schema: # http + host: # eshop-st-saas + port: # 80 +ingress: + host: # eshop-st-gateway-web + tlsSecret: eshop-demo-tls + +image: + repository: eshoponabp/gateway-web + tag: latest + pullPolicy: IfNotPresent + +env: {} \ No newline at end of file diff --git a/etc/k8s/eshoponabp/charts/identity/templates/identity-deployment.yaml b/etc/k8s/eshoponabp/charts/identity/templates/identity-deployment.yaml new file mode 100644 index 00000000..072eb431 --- /dev/null +++ b/etc/k8s/eshoponabp/charts/identity/templates/identity-deployment.yaml @@ -0,0 +1,67 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ .Release.Name }}-{{ .Chart.Name }} +spec: + selector: + matchLabels: + app: {{ .Release.Name }}-{{ .Chart.Name }} + template: + metadata: + labels: + app: {{ .Release.Name }}-{{ .Chart.Name }} + spec: + containers: + - image: {{ .Values.image.repository }}:{{ .Values.image.tag }} + imagePullPolicy: {{ .Values.image.pullPolicy }} + name: {{ .Release.Name }}-{{ .Chart.Name }} + ports: + - name: http + containerPort: 80 + - name: https + containerPort: 443 + env: + - name: App__SelfUrl + value: "{{ .Values.config.selfUrl }}" + - name: App__CorsOrigins + value: "{{ .Values.config.corsOrigins }}" + - name: "ConnectionStrings__IdentityService" + value: {{ .Values.config.connectionStrings.identityService }} + - name: "ConnectionStrings__AdministrationService" + value: {{ .Values.config.connectionStrings.administrationService }} + - name: "ConnectionStrings__SaasService" + value: {{ .Values.config.connectionStrings.saasService }} + - name: "DOTNET_ENVIRONMENT" + value: "{{ .Values.config.dotnetEnv }}" + - name: "Redis__Configuration" + value: "{{ .Values.config.redisHost }}" + - name: "RabbitMQ__Connections__Default__HostName" + value: "{{ .Values.config.rabbitmqHost }}" + - name: "ElasticSearch__Url" + value: "{{ .Values.config.elasticsearchHost }}" + - name: "AuthServer__Authority" + value: "{{ .Values.config.authServer.authority }}" + - name: "AuthServer__RequireHttpsMetadata" + value: "{{ .Values.config.authServer.requireHttpsMetadata }}" + - name: "StringEncryption__DefaultPassPhrase" + value: "{{ .Values.config.stringEncryptionDefaultPassPhrase }}" + - name: "IdentityServerClients__Web__RootUrl" + value: {{ .Values.identityServerClients.webRootUrl }} + - name: "IdentityServerClients__PublicWeb__RootUrl" + value: {{ .Values.identityServerClients.publicWebRootUrl }} + - name: "IdentityServerClients__IdentityService__RootUrl" + value: {{ .Values.identityServerClients.identityServiceRootUrl }} + - name: "IdentityServerClients__SaasService__RootUrl" + value: {{ .Values.identityServerClients.saasServiceRootUrl }} + - name: "IdentityServerClients__AdministrationService__RootUrl" + value: {{ .Values.identityServerClients.administrationServiceRootUrl }} + - name: "IdentityServerClients__InternalGateway__RootUrl" + value: {{ .Values.identityServerClients.webRootUrl }} + - name: "IdentityServerClients__PublicWebGateway__RootUrl" + value: {{ .Values.identityServerClients.publicWebRootUrl }} + - name: "IdentityServerClients__WebGateway__RootUrl" + value: {{ .Values.identityServerClients.webGatewayRootUrl }} + {{- if .Values.env }} +{{ toYaml .Values.env | indent 8 }} + {{- end }} + diff --git a/etc/k8s/eshoponabp/charts/identity/templates/identity-ingress.yaml b/etc/k8s/eshoponabp/charts/identity/templates/identity-ingress.yaml index 3e8002eb..e843265f 100644 --- a/etc/k8s/eshoponabp/charts/identity/templates/identity-ingress.yaml +++ b/etc/k8s/eshoponabp/charts/identity/templates/identity-ingress.yaml @@ -6,16 +6,16 @@ metadata: kubernetes.io/ingress.class: "nginx" nginx.ingress.kubernetes.io/rewrite-target: / nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - nginx.ingress.kubernetes.io/proxy-buffer-size: "{{ .Values.global.nginxProxyBufferSize }}" - nginx.ingress.kubernetes.io/proxy-buffers-number: "{{ .Values.global.nginxProxyBuffersNumber }}" + nginx.ingress.kubernetes.io/proxy-buffer-size: 32k + nginx.ingress.kubernetes.io/proxy-buffers-number: "8" cert-manager.io/cluster-issuer: letsencrypt spec: tls: - hosts: - - {{ .Values.global.identityService.domain }} - secretName: {{ .Release.Name }}-{{ .Chart.Name }}-tls + - {{ .Values.ingress.host }} + secretName: {{ .Values.ingress.tlsSecret }} rules: - - host: "{{ .Values.global.identityService.domain }}" + - host: "{{ .Values.ingress.host }}" http: paths: - path: / diff --git a/etc/k8s/eshoponabp/charts/identity/templates/identity.yaml b/etc/k8s/eshoponabp/charts/identity/templates/identity.yaml deleted file mode 100644 index 89128bd8..00000000 --- a/etc/k8s/eshoponabp/charts/identity/templates/identity.yaml +++ /dev/null @@ -1,31 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: {{ .Release.Name }}-{{ .Chart.Name }} -spec: - selector: - matchLabels: - app: {{ .Release.Name }}-{{ .Chart.Name }} - template: - metadata: - labels: - app: {{ .Release.Name }}-{{ .Chart.Name }} - spec: - containers: - - image: {{ .Values.global.identityService.containerImage }}:{{ .Values.global.eshoponabpImageVersion }} - imagePullPolicy: {{ .Values.global.imagePullPolicy }} - name: {{ .Release.Name }}-{{ .Chart.Name }} - ports: - - name: http - containerPort: 80 - - name: https - containerPort: 443 - env: -{{ include "eshoponabp.global.env" . | indent 8 }} - - name: "ConnectionStrings__IdentityService" - value: {{ .Values.global.identityService.connString }} - - name: "ConnectionStrings__AdministrationService" - value: {{ .Values.global.administrationService.connString }} - - name: "ConnectionStrings__SaasService" - value: {{ .Values.global.saasService.connString }} - diff --git a/etc/k8s/eshoponabp/charts/identity/values.yaml b/etc/k8s/eshoponabp/charts/identity/values.yaml index e69de29b..fb40c806 100644 --- a/etc/k8s/eshoponabp/charts/identity/values.yaml +++ b/etc/k8s/eshoponabp/charts/identity/values.yaml @@ -0,0 +1,37 @@ +config: + selfUrl: # https://eshop-st-identity + corsOrigins: # https://eshop-st-gateway-web,https://eshop-st-gateway-public-web,https://eshop-st-gateway-internal + connectionStrings: + identityService: # + administrationService: # + saasService: # + authServer: + authority: http://eshop-st-authserver + requireHttpsMetadata: "false" + dotnetEnv: Staging + redisHost: es-st-redis + rabbitmqHost: es-st-rabbitmq + elasticsearchHost: es-st-elasticsearch + stringEncryptionDefaultPassPhrase: gsKnGZ041HLL4IM8 + +# Seeded clients +identityServerClients: + webRootUrl: # + publicWebRootUrl: # + webGatewayRootUrl: # + publicWebGatewayRootUrl: # + identityServiceRootUrl: # + administrationServiceRootUrl: # + saasServiceRootUrl: # + +ingress: + host: eshop-st-identity + tlsSecret: eshop-demo-tls + +image: + repository: eshoponabp/service-identity + tag: latest + pullPolicy: IfNotPresent + +env: {} + \ No newline at end of file diff --git a/etc/k8s/eshoponabp/charts/public-web/templates/public-web-deployment.yaml b/etc/k8s/eshoponabp/charts/public-web/templates/public-web-deployment.yaml new file mode 100644 index 00000000..0faddf89 --- /dev/null +++ b/etc/k8s/eshoponabp/charts/public-web/templates/public-web-deployment.yaml @@ -0,0 +1,44 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ .Release.Name }}-{{ .Chart.Name }} +spec: + selector: + matchLabels: + app: {{ .Release.Name }}-{{ .Chart.Name }} + template: + metadata: + labels: + app: {{ .Release.Name }}-{{ .Chart.Name }} + spec: + containers: + - image: {{ .Values.image.repository }}:{{ .Values.image.tag }} + imagePullPolicy: {{ .Values.image.pullPolicy }} + name: {{ .Release.Name }}-{{ .Chart.Name }} + ports: + - name: http + containerPort: 80 + - name: https + containerPort: 443 + env: + - name: App__SelfUrl + value: {{ .Values.config.selfUrl}} + - name: RemoteServices__Default__BaseUrl + value: {{ .Values.config.gatewayUrl}} + - name: "AuthServer__Authority" + value: {{ .Values.config.authServer.authority }} + - name: "AuthServer__RequireHttpsMetadata" + value: "{{ .Values.config.authServer.requireHttpsMetadata }}" + - name: "DOTNET_ENVIRONMENT" + value: {{ .Values.config.dotnetEnv }} + - name: "Redis__Configuration" + value: {{ .Values.config.redisHost }} + - name: "StringEncryption__DefaultPassPhrase" + value: {{ .Values.config.stringEncryptionDefaultPassPhrase }} + - name: "RabbitMQ__Connections__Default__HostName" + value: {{ .Values.config.rabbitmqHost }} + - name: "ElasticSearch__Url" + value: {{ .Values.config.elasticsearchHost }} + {{- if .Values.env }} +{{ toYaml .Values.env | indent 8 }} + {{- end }} \ No newline at end of file diff --git a/etc/k8s/eshoponabp/charts/public-web/templates/public-web-ingress.yaml b/etc/k8s/eshoponabp/charts/public-web/templates/public-web-ingress.yaml index 8211a13b..ec4080bc 100644 --- a/etc/k8s/eshoponabp/charts/public-web/templates/public-web-ingress.yaml +++ b/etc/k8s/eshoponabp/charts/public-web/templates/public-web-ingress.yaml @@ -3,28 +3,28 @@ kind: Ingress metadata: name: {{ .Release.Name }}-{{ .Chart.Name }}-ingress annotations: - kubernetes.io/ingress.class: nginx + kubernetes.io/ingress.class: "nginx" nginx.ingress.kubernetes.io/rewrite-target: / nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - nginx.ingress.kubernetes.io/proxy-buffer-size: "{{ .Values.global.nginxProxyBufferSize }}" - nginx.ingress.kubernetes.io/proxy-buffers-number: "{{ .Values.global.nginxProxyBuffersNumber }}" -{{- if eq .Release.Name "eh-az" }} + nginx.ingress.kubernetes.io/proxy-buffer-size: 32k + nginx.ingress.kubernetes.io/proxy-buffers-number: "8" + cert-manager.io/cluster-issuer: letsencrypt +{{- if eq .Release.Name "es-az" }} nginx.ingress.kubernetes.io/from-to-www-redirect: "true" {{- end }} - cert-manager.io/cluster-issuer: letsencrypt spec: tls: - hosts: - - {{ .Values.global.publicWeb.domain }} -{{- if eq .Release.Name "eh-az" }} - - {{ print "www." .Values.global.publicWeb.domain }} + - {{ .Values.ingress.host }} +{{- if eq .Release.Name "es-az" }} + - {{ print "www." .Values.ingress.host }} {{- end }} - secretName: {{ .Release.Name }}-{{ .Chart.Name }}-tls + secretName: {{ .Values.ingress.tlsSecret }} rules: -{{- if eq .Release.Name "eh-az" }} - - host: "{{ print "www." .Values.global.publicWeb.domain }}" +{{- if eq .Release.Name "es-az" }} + - host: "{{ print "www." .Values.ingress.host }}" {{- else }} - - host: "{{ .Values.global.publicWeb.domain }}" + - host: "{{ .Values.ingress.host }}" {{- end }} http: paths: diff --git a/etc/k8s/eshoponabp/charts/public-web/values.yaml b/etc/k8s/eshoponabp/charts/public-web/values.yaml index e69de29b..72542a20 100644 --- a/etc/k8s/eshoponabp/charts/public-web/values.yaml +++ b/etc/k8s/eshoponabp/charts/public-web/values.yaml @@ -0,0 +1,22 @@ +config: + selfUrl: https://eshop-st-public-web + gatewayUrl: "http://eshop-st-gateway-web-public/" + authServer: + authority: http://eshop-st-authserver + requireHttpsMetadata: "false" + dotnetEnv: Staging + redisHost: es-st-redis + rabbitmqHost: es-st-rabbitmq + elasticsearchHost: es-st-elasticsearch + stringEncryptionDefaultPassPhrase: gsKnGZ041HLL4IM8 + +ingress: + host: # eshop-st-public-web + tlsSecret: eshop-demo-tls + +image: + repository: eshoponabp/app-publicweb + tag: latest + pullPolicy: IfNotPresent + +env: {} diff --git a/etc/k8s/eshoponabp/charts/public-webgateway/Chart.yaml b/etc/k8s/eshoponabp/charts/public-webgateway/Chart.yaml deleted file mode 100644 index b2cd0e01..00000000 --- a/etc/k8s/eshoponabp/charts/public-webgateway/Chart.yaml +++ /dev/null @@ -1,6 +0,0 @@ -apiVersion: v2 -name: public-webgateway -appVersion: "1.0" -description: eShopOnAbp Public Web Gateway Application -version: 1.0.0 -type: application \ No newline at end of file diff --git a/etc/k8s/eshoponabp/charts/public-webgateway/templates/public-webgateway-ingress.yaml b/etc/k8s/eshoponabp/charts/public-webgateway/templates/public-webgateway-ingress.yaml deleted file mode 100644 index 0a24b78c..00000000 --- a/etc/k8s/eshoponabp/charts/public-webgateway/templates/public-webgateway-ingress.yaml +++ /dev/null @@ -1,37 +0,0 @@ -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: {{ .Release.Name }}-{{ .Chart.Name }}-ingress - annotations: - kubernetes.io/ingress.class: nginx - nginx.ingress.kubernetes.io/rewrite-target: / - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - nginx.ingress.kubernetes.io/proxy-buffer-size: "{{ .Values.global.nginxProxyBufferSize }}" - nginx.ingress.kubernetes.io/proxy-buffers-number: "{{ .Values.global.nginxProxyBuffersNumber }}" -{{- if eq .Release.Name "eh-az" }} - nginx.ingress.kubernetes.io/from-to-www-redirect: "true" -{{- end }} - cert-manager.io/cluster-issuer: letsencrypt -spec: - tls: - - hosts: - - {{ .Values.global.publicWebGateway.domain }} -{{- if eq .Release.Name "eh-az" }} - - {{ print "www." .Values.global.publicWebGateway.domain }} -{{- end }} - secretName: {{ .Release.Name }}-{{ .Chart.Name }}-tls - rules: -{{- if eq .Release.Name "eh-az" }} - - host: "{{ print "www." .Values.global.publicWebGateway.domain }}" -{{- else }} - - host: "{{ .Values.global.publicWebGateway.domain }}" -{{- end }} - http: - paths: - - path: / - pathType: Prefix - backend: - service: - name: {{ .Release.Name }}-{{ .Chart.Name }} - port: - number: 80 \ No newline at end of file diff --git a/etc/k8s/eshoponabp/charts/public-webgateway/templates/public-webgateway.yaml b/etc/k8s/eshoponabp/charts/public-webgateway/templates/public-webgateway.yaml deleted file mode 100644 index 470e520d..00000000 --- a/etc/k8s/eshoponabp/charts/public-webgateway/templates/public-webgateway.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: {{ .Release.Name }}-{{ .Chart.Name }} -spec: - selector: - matchLabels: - app: {{ .Release.Name }}-{{ .Chart.Name }} - template: - metadata: - labels: - app: {{ .Release.Name }}-{{ .Chart.Name }} - spec: - containers: - - image: {{ .Values.global.publicWebGateway.containerImage }}:{{ .Values.global.eshoponabpImageVersion }} - imagePullPolicy: {{ .Values.global.imagePullPolicy }} - name: {{ .Release.Name }}-{{ .Chart.Name }} - ports: - - name: http - containerPort: 80 - - name: https - containerPort: 443 - env: -{{ include "eshoponabp.global.env" . | indent 8 }} diff --git a/etc/k8s/eshoponabp/charts/public-webgateway/values.yaml b/etc/k8s/eshoponabp/charts/public-webgateway/values.yaml deleted file mode 100644 index e69de29b..00000000 diff --git a/etc/k8s/eshoponabp/charts/saas/templates/saas-ingress.yaml b/etc/k8s/eshoponabp/charts/saas/templates/saas-ingress.yaml index 3e8002eb..e843265f 100644 --- a/etc/k8s/eshoponabp/charts/saas/templates/saas-ingress.yaml +++ b/etc/k8s/eshoponabp/charts/saas/templates/saas-ingress.yaml @@ -6,16 +6,16 @@ metadata: kubernetes.io/ingress.class: "nginx" nginx.ingress.kubernetes.io/rewrite-target: / nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - nginx.ingress.kubernetes.io/proxy-buffer-size: "{{ .Values.global.nginxProxyBufferSize }}" - nginx.ingress.kubernetes.io/proxy-buffers-number: "{{ .Values.global.nginxProxyBuffersNumber }}" + nginx.ingress.kubernetes.io/proxy-buffer-size: 32k + nginx.ingress.kubernetes.io/proxy-buffers-number: "8" cert-manager.io/cluster-issuer: letsencrypt spec: tls: - hosts: - - {{ .Values.global.identityService.domain }} - secretName: {{ .Release.Name }}-{{ .Chart.Name }}-tls + - {{ .Values.ingress.host }} + secretName: {{ .Values.ingress.tlsSecret }} rules: - - host: "{{ .Values.global.identityService.domain }}" + - host: "{{ .Values.ingress.host }}" http: paths: - path: / diff --git a/etc/k8s/eshoponabp/charts/saas/templates/saas.yaml b/etc/k8s/eshoponabp/charts/saas/templates/saas.yaml index 58845209..52b83826 100644 --- a/etc/k8s/eshoponabp/charts/saas/templates/saas.yaml +++ b/etc/k8s/eshoponabp/charts/saas/templates/saas.yaml @@ -12,8 +12,8 @@ spec: app: {{ .Release.Name }}-{{ .Chart.Name }} spec: containers: - - image: {{ .Values.global.saasService.containerImage }}:{{ .Values.global.eshoponabpImageVersion }} - imagePullPolicy: {{ .Values.global.imagePullPolicy }} + - image: {{ .Values.image.repository }}:{{ .Values.image.tag }} + imagePullPolicy: {{ .Values.image.pullPolicy }} name: {{ .Release.Name }}-{{ .Chart.Name }} ports: - name: http @@ -21,9 +21,29 @@ spec: - name: https containerPort: 443 env: -{{ include "eshoponabp.global.env" . | indent 8 }} + - name: App__SelfUrl + value: "{{ .Values.config.selfUrl }}" + - name: App__CorsOrigins + value: "{{ .Values.config.corsOrigins }}" - name: "ConnectionStrings__AdministrationService" - value: {{ .Values.global.administrationService.connString }} + value: {{ .Values.config.connectionStrings.administrationService }} - name: "ConnectionStrings__SaasService" - value: {{ .Values.global.saasService.connString }} + value: {{ .Values.config.connectionStrings.saasService }} + - name: "DOTNET_ENVIRONMENT" + value: "{{ .Values.config.dotnetEnv }}" + - name: "Redis__Configuration" + value: "{{ .Values.config.redisHost }}" + - name: "RabbitMQ__Connections__Default__HostName" + value: "{{ .Values.config.rabbitmqHost }}" + - name: "ElasticSearch__Url" + value: "{{ .Values.config.elasticsearchHost }}" + - name: "AuthServer__Authority" + value: "{{ .Values.config.authServer.authority }}" + - name: "AuthServer__RequireHttpsMetadata" + value: "{{ .Values.config.authServer.requireHttpsMetadata }}" + - name: "StringEncryption__DefaultPassPhrase" + value: "{{ .Values.config.stringEncryptionDefaultPassPhrase }}" + {{- if .Values.env }} +{{ toYaml .Values.env | indent 8 }} + {{- end }} diff --git a/etc/k8s/eshoponabp/charts/saas/values.yaml b/etc/k8s/eshoponabp/charts/saas/values.yaml index e69de29b..badbfdf7 100644 --- a/etc/k8s/eshoponabp/charts/saas/values.yaml +++ b/etc/k8s/eshoponabp/charts/saas/values.yaml @@ -0,0 +1,25 @@ +config: + selfUrl: https://eshop-st-saas + corsOrigins: https://eshop-st-gateway-web,https://eshop-st-gateway-public-web,https://eshop-st-gateway-internal + connectionStrings: + administrationService: "Server=es-st-sqldb,1433;Database=EShopOnAbp_Administration;User Id=sa;password=myPassw@rd;MultipleActiveResultSets=true" + saasService: "Server=es-st-sqldb,1433;Database=EShopOnAbp_Saas;User Id=sa;password=myPassw@rd;MultipleActiveResultSets=true" + authServer: + authority: http://eshop-st-authserver + requireHttpsMetadata: "false" + dotnetEnv: Staging + redisHost: es-st-redis + rabbitmqHost: es-st-rabbitmq + elasticsearchHost: es-st-elasticsearch + stringEncryptionDefaultPassPhrase: gsKnGZ041HLL4IM8 + +ingress: + host: eshop-st-saas + tlsSecret: eshop-demo-tls + +image: + repository: eshoponabp/service-saas + tag: latest + pullPolicy: IfNotPresent + +env: {} \ No newline at end of file diff --git a/etc/k8s/eshoponabp/charts/sqlserver/templates/sqlserver.yaml b/etc/k8s/eshoponabp/charts/sqlserver/templates/sqlserver.yaml index 57a5bcac..dfe41eb8 100644 --- a/etc/k8s/eshoponabp/charts/sqlserver/templates/sqlserver.yaml +++ b/etc/k8s/eshoponabp/charts/sqlserver/templates/sqlserver.yaml @@ -16,7 +16,7 @@ spec: containers: - image: mcr.microsoft.com/mssql/server name: {{ .Release.Name }}-{{ .Chart.Name }} -{{- if eq .Release.Name "eh-az" }} +{{- if eq .Release.Name "es-az" }} volumeMounts: - mountPath: "/var/opt/mssql" name: {{ .Release.Name }}-{{ .Chart.Name }}-database-volume @@ -30,7 +30,7 @@ spec: value: "myPassw@rd" - name: ACCEPT_EULA value: "Y" -{{- if eq .Release.Name "eh-az" }} +{{- if eq .Release.Name "es-az" }} volumeClaimTemplates: - metadata: name: {{ .Release.Name }}-{{ .Chart.Name }}-database-volume diff --git a/etc/k8s/eshoponabp/charts/web/Chart.yaml b/etc/k8s/eshoponabp/charts/web/Chart.yaml new file mode 100644 index 00000000..3a66440f --- /dev/null +++ b/etc/k8s/eshoponabp/charts/web/Chart.yaml @@ -0,0 +1,6 @@ +apiVersion: v2 +name: web +appVersion: "1.0" +description: eShopOnAbp BackOffice Web Application +version: 1.0.0 +type: application \ No newline at end of file diff --git a/etc/k8s/eshoponabp/charts/public-web/templates/public-web.yaml b/etc/k8s/eshoponabp/charts/web/templates/web-deployment.yaml similarity index 56% rename from etc/k8s/eshoponabp/charts/public-web/templates/public-web.yaml rename to etc/k8s/eshoponabp/charts/web/templates/web-deployment.yaml index 8e688a21..cbe7b699 100644 --- a/etc/k8s/eshoponabp/charts/public-web/templates/public-web.yaml +++ b/etc/k8s/eshoponabp/charts/web/templates/web-deployment.yaml @@ -12,8 +12,8 @@ spec: app: {{ .Release.Name }}-{{ .Chart.Name }} spec: containers: - - image: {{ .Values.global.publicWeb.containerImage }}:{{ .Values.global.eshoponabpImageVersion }} - imagePullPolicy: {{ .Values.global.imagePullPolicy }} + - image: {{ .Values.image.repository }}:{{ .Values.image.tag }} + imagePullPolicy: {{ .Values.image.pullPolicy }} name: {{ .Release.Name }}-{{ .Chart.Name }} ports: - name: http @@ -21,6 +21,10 @@ spec: - name: https containerPort: 443 env: -{{ include "eshoponabp.global.env" . | indent 8 }} - - name: "RemoteServices__Default__BaseUrl" - value: {{ .Values.global.publicWeb.remoteServiceUrl }} \ No newline at end of file + - name: BASE_URL + value: {{ .Values.config.selfUrl}} + - name: API_URL + value: {{ .Values.config.gatewayUrl}} + {{- if .Values.env }} +{{ toYaml .Values.env | indent 8 }} + {{- end }} \ No newline at end of file diff --git a/etc/k8s/eshoponabp/charts/web/templates/web-ingress.yaml b/etc/k8s/eshoponabp/charts/web/templates/web-ingress.yaml new file mode 100644 index 00000000..54a62c3c --- /dev/null +++ b/etc/k8s/eshoponabp/charts/web/templates/web-ingress.yaml @@ -0,0 +1,37 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: {{ .Release.Name }}-{{ .Chart.Name }}-ingress + annotations: + kubernetes.io/ingress.class: "nginx" + nginx.ingress.kubernetes.io/rewrite-target: / + nginx.ingress.kubernetes.io/force-ssl-redirect: "true" + nginx.ingress.kubernetes.io/proxy-buffer-size: 32k + nginx.ingress.kubernetes.io/proxy-buffers-number: "8" + cert-manager.io/cluster-issuer: letsencrypt +{{- if eq .Release.Name "es-az" }} + nginx.ingress.kubernetes.io/from-to-www-redirect: "true" +{{- end }} +spec: + tls: + - hosts: + - {{ .Values.ingress.host }} +{{- if eq .Release.Name "eh-es" }} + - {{ print "www." .Values.ingress.host }} +{{- end }} + secretName: {{ .Values.ingress.tlsSecret }} + rules: +{{- if eq .Release.Name "eh-es" }} + - host: "{{ print "www." .Values.ingress.host }}" +{{- else }} + - host: "{{ .Values.ingress.host }}" +{{- end }} + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: {{ .Release.Name }}-{{ .Chart.Name }} + port: + number: 80 \ No newline at end of file diff --git a/etc/k8s/eshoponabp/charts/web/templates/web-service.yaml b/etc/k8s/eshoponabp/charts/web/templates/web-service.yaml new file mode 100644 index 00000000..ee157c01 --- /dev/null +++ b/etc/k8s/eshoponabp/charts/web/templates/web-service.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + name: {{ .Release.Name }}-{{ .Chart.Name }} + name: {{ .Release.Name }}-{{ .Chart.Name }} +spec: + ports: + - name: "80" + port: 80 + - name: "443" + port: 443 + selector: + app: {{ .Release.Name }}-{{ .Chart.Name }} diff --git a/etc/k8s/eshoponabp/charts/web/values.yaml b/etc/k8s/eshoponabp/charts/web/values.yaml new file mode 100644 index 00000000..db30b07e --- /dev/null +++ b/etc/k8s/eshoponabp/charts/web/values.yaml @@ -0,0 +1,15 @@ +config: + selfUrl: https://eshop-st-web + gatewayUrl: "https://eshop-st-gateway-web/" + +ingress: + host: eshop-st-web + tlsSecret: eshop-demo-tls + +image: + repository: eshoponabp/app-web + tag: latest + pullPolicy: IfNotPresent + +# Extra environment variables or configurations +env: {} diff --git a/etc/k8s/eshoponabp/templates/NOTES.txt b/etc/k8s/eshoponabp/templates/NOTES.txt index c9abfbdb..044f1a72 100644 --- a/etc/k8s/eshoponabp/templates/NOTES.txt +++ b/etc/k8s/eshoponabp/templates/NOTES.txt @@ -1,5 +1,10 @@ -1. Get the application URL by running these commands: -{{- if .Values.ingress.enabled }} +1. Web (Back Office) angular application URL:{{- if .Values.web.config.selfUrl }} {{ .Values.web.config.selfUrl }} {{- end }} +2. Public Web mvc application URL:{{- if index .Values "public-web" "config" "selfUrl" }} {{ index .Values "public-web" "config" "selfUrl" }} {{- end }} +3. Authentication Server URL:{{- if .Values.authserver.config.selfUrl }} {{ .Values.authserver.config.selfUrl }} + +For RabbitMq Administration use: +"kubectl port-forward services/{{ .Release.Name }}-rabbitmq 15672:15672 -n {{ .Release.Namespace }}" +{{- else if .Values.ingress.enabled }} {{- range $host := .Values.ingress.hosts }} {{- range .paths }} http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ .path }} diff --git a/etc/k8s/eshoponabp/templates/_helpers.tpl b/etc/k8s/eshoponabp/templates/_helpers.tpl index c9dd2693..901e5bb0 100644 --- a/etc/k8s/eshoponabp/templates/_helpers.tpl +++ b/etc/k8s/eshoponabp/templates/_helpers.tpl @@ -60,22 +60,3 @@ Create the name of the service account to use {{- default "default" .Values.serviceAccount.name }} {{- end }} {{- end }} - -{{- define "eshoponabp.global.env" -}} -- name: "DOTNET_ENVIRONMENT" - value: "{{ .Values.global.dotnetEnvironment }}" -- name: "AppUrls__ApiInternal" - value: "{{ .Values.global.apiUrlInternal }}" -- name: "Redis__Configuration" - value: "{{ .Values.global.redisConfiguration }}" -- name: "AuthServer__Authority" - value: "{{ .Values.global.internalAuthServerAuthority }}" -- name: "AuthServer__RequireHttpsMetadata" - value: "{{ .Values.global.internalAuthServerRequireHttpsMetadata }}" -- name: "StringEncryption__DefaultPassPhrase" - value: "{{ .Values.global.stringEncryptionDefaultPassPhrase }}" -- name: "RabbitMQ__Connections__Default__HostName" - value: "{{ .Values.global.rabbitMqHostName }}" -- name: "Consul__Host" - value: "{{ .Values.global.consulHostname }}" -{{- end }} diff --git a/etc/k8s/eshoponabp/templates/tests/test-connection.yaml b/etc/k8s/eshoponabp/templates/tests/test-connection.yaml deleted file mode 100644 index 9ca7d87c..00000000 --- a/etc/k8s/eshoponabp/templates/tests/test-connection.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: v1 -kind: Pod -metadata: - name: "{{ include "eshoponabp.fullname" . }}-test-connection" - labels: - {{- include "eshoponabp.labels" . | nindent 4 }} - annotations: - "helm.sh/hook": test -spec: - containers: - - name: wget - image: busybox - command: ['wget'] - args: ['{{ include "eshoponabp.fullname" . }}:{{ .Values.service.port }}'] - restartPolicy: Never diff --git a/etc/k8s/eshoponabp/values.yaml b/etc/k8s/eshoponabp/values.yaml index 16d8a212..514c90ac 100644 --- a/etc/k8s/eshoponabp/values.yaml +++ b/etc/k8s/eshoponabp/values.yaml @@ -1,3 +1,182 @@ +# auth-server sub-chart override +authserver: + config: + selfUrl: https://eshop-st-authserver + corsOrigins: https://eshop-st-gateway-web,https://eshop-st-gateway-web-public,https://eshop-st-gateway-internal + allowedRedirectUrls: https://eshop-st-web + identityService: + connString: "Server=es-st-sqldb,1433;Database=EShopOnAbp_Identity;User Id=sa;password=myPassw@rd;MultipleActiveResultSets=true" + administrationService: + connString: "Server=es-st-sqldb,1433;Database=EShopOnAbp_Administration;User Id=sa;password=myPassw@rd;MultipleActiveResultSets=true" + saasService: + connString: "Server=es-st-sqldb,1433;Database=EShopOnAbp_Saas;User Id=sa;password=myPassw@rd;MultipleActiveResultSets=true" + dotnetEnv: Staging + redisHost: es-st-redis + rabbitmqHost: es-st-rabbitmq + elasticsearchHost: es-st-elasticsearch + ingress: + host: eshop-st-authserver + image: + repository: "eshoponabp/app-authserver" + tag: latest + +# web sub-chart override +web: + config: + selfUrl: https://eshop-st-web + gatewayUrl: "https://eshop-st-gateway-web/" + ingress: + host: eshop-st-web + image: + repository: "eshoponabp/app-web" + tag: latest + +# public-web sub-chart override +public-web: + config: + selfUrl: https://eshop-st-public-web + gatewayUrl: "http://eshop-st-gateway-web-public/" + authServer: + authority: http://eshop-st-authserver + requireHttpsMetadata: "false" + dotnetEnv: Staging + redisHost: es-st-redis + rabbitmqHost: es-st-rabbitmq + elasticsearchHost: es-st-elasticsearch + ingress: + host: eshop-st-public-web + image: + repository: "eshoponabp/app-publicweb" + tag: latest + +# identity-service sub-chart override +identity: + config: + selfUrl: https://eshop-st-identity + corsOrigins: https://eshop-st-gateway-web,https://eshop-st-gateway-web-public + connectionStrings: + identityService: "Server=es-st-sqldb,1433;Database=EShopOnAbp_Identity;User Id=sa;password=myPassw@rd;MultipleActiveResultSets=true" + administrationService: "Server=es-st-sqldb,1433;Database=EShopOnAbp_Administration;User Id=sa;password=myPassw@rd;MultipleActiveResultSets=true" + saasService: "Server=es-st-sqldb,1433;Database=EShopOnAbp_Saas;User Id=sa;password=myPassw@rd;MultipleActiveResultSets=true" + authServer: + authority: http://eshop-st-authserver + requireHttpsMetadata: "false" + dotnetEnv: Staging + redisHost: es-st-redis + rabbitmqHost: es-st-rabbitmq + elasticsearchHost: es-st-elasticsearch + identityServerClients: # Seeded Clients + webRootUrl: https://eshop-st-web/ + publicWebRootUrl: https://eshop-st-public-web/ + webGatewayRootUrl: https://eshop-st-gateway-web/ + publicWebGatewayRootUrl: https://eshop-st-gateway-web-public/ + identityServiceRootUrl: https://eshop-st-identity/ + administrationServiceRootUrl: https://eshop-st-administration/ + saasServiceRootUrl: https://eshop-st-saas/ + ingress: + host: eshop-st-identity + image: + repository: "eshoponabp/service-identity" + tag: latest + +# administration sub-chart override +administration: + config: + selfUrl: https://eshop-st-administration + gatewayUrl: https://eshop-st-gateway-internal/ + corsOrigins: https://eshop-st-gateway-web,https://eshop-st-gateway-web-public,https://eshop-st-gateway-internal + connectionStrings: + administrationService: "Server=es-st-sqldb,1433;Database=EShopOnAbp_Administration;User Id=sa;password=myPassw@rd;MultipleActiveResultSets=true" + saasService: "Server=es-st-sqldb,1433;Database=EShopOnAbp_Saas;User Id=sa;password=myPassw@rd;MultipleActiveResultSets=true" + authServer: + authority: http://eshop-st-authserver + requireHttpsMetadata: "false" + dotnetEnv: Staging + redisHost: es-st-redis + rabbitmqHost: es-st-rabbitmq + elasticsearchHost: es-st-elasticsearch + synchedCommunication: # Used for server-to-server (client-credentials) communication with identityService for user permissions + authority: https://eshop-st-authserver + ingress: + host: eshop-st-administration + image: + repository: "eshoponabp/service-administration" + tag: latest + +# gateway-web sub-chart override +gateway-web: + config: + selfUrl: https://eshop-st-gateway-web + corsOrigins: https://eshop-st-web + globalConfigurationBaseUrl: http://eshop-st-gateway-public + authServer: + authority: http://eshop-st-authserver + requireHttpsMetadata: "false" + dotnetEnv: Staging + redisHost: es-st-redis + rabbitmqHost: es-st-rabbitmq + elasticsearchHost: es-st-elasticsearch + stringEncryptionDefaultPassPhrase: gsKnGZ041HLL4IM8 + ingress: + host: eshop-st-gateway-web + image: + repository: "eshoponabp/gateway-web" + tag: latest + reRoutes: + identityService: + schema: http + host: eshop-st-identity + port: 80 + administrationService: + schema: http + host: eshop-st-administration + port: 80 + saasService: + schema: http + host: eshop-st-saas + port: 80 + +# gateway-web-public sub-chart override +gateway-web-public: + config: + selfUrl: https://eshop-st-gateway-web-public + globalConfigurationBaseUrl: http://eshop-st-gateway-public-web + authServer: + authority: http://eshop-st-AUTHSERVER + requireHttpsMetadata: "false" + dotnetEnv: Staging + redisHost: es-st-redis + rabbitmqHost: es-st-rabbitmq + elasticsearchHost: es-st-elasticsearch + stringEncryptionDefaultPassPhrase: gsKnGZ041HLL4IM8 + ingress: + host: eshop-st-gateway-web-public + image: + repository: "eshoponabp/gateway-web-public" + tag: latest + reRoutes: + identityService: + schema: http + host: eshop-st-identity + port: 80 + administrationService: + schema: http + host: eshop-st-administration + port: 80 + catalogService: + schema: http + host: eshop-st-catalog + port: 80 + basketService: + schema: http + host: eshop-st-basket + port: 80 + orderService: + schema: http + host: eshop-st-order + port: 80 + + # Default values for eshoponabp. # This is a YAML-formatted file. # Declare variables to be passed into your templates. @@ -10,11 +189,6 @@ image: # Overrides the image tag whose default is the chart appVersion. tag: "" -administration: - env: - # - name: "ADMIN_SPECIFIC_ENV_NAME" - # value: "ADMIN_SPECIFIC_ENV_VALUE" - imagePullSecrets: [] nameOverride: "" fullnameOverride: "" @@ -84,45 +258,4 @@ nodeSelector: {} tolerations: [] -affinity: {} - -global: - dotnetEnvironment: "Staging" - imagePullPolicy: Never - eshoponabpImageVersion: latest - publicWeb: - domain: eshoponabp-public-web - url: https://eshoponabp-public-web - containerImage: "eshoponabp/app-publicweb" - remoteServiceUrl: http://eshoponabp-public-webgateway - authServer: - domain: eshoponabp-authserver - url: https://eshoponabp-authserver - containerImage: "eshoponabp/app-authserver" - identityService: - domain: eshoponabp-identity - url: https://eshoponabp-identity - containerImage: "eshoponabp/service-identity" - connString: "Server=eshoponabp-sqldb,1433;Database=EShopOnAbp_Identity;User Id=sa;password=myPassw@rd;MultipleActiveResultSets=true" - administrationService: - domain: eshoponabp-administration - url: https://eshoponabp-administration - containerImage: "eshoponabp/service-administration" - connString: "Server=eshoponabp-sqldb,1433;Database=EShopOnAbp_Administration;User Id=sa;password=myPassw@rd;MultipleActiveResultSets=true" - saasService: - domain: eshoponabp-saas - url: https://eshoponabp-saas - containerImage: "eshoponabp/service-saas" - connString: "Server=eshoponabp-sqldb,1433;Database=EShopOnAbp_Saas;User Id=sa;password=myPassw@rd;MultipleActiveResultSets=true" - publicWebGateway: - domain: eshoponabp-public-webgateway - url: https://eshoponabp-public-webgateway - containerImage: "eshoponabp/gateway-publicweb" - redisConfiguration: "eshoponabp-redis" - rabbitMqHostName: "eshoponabp-rabbitmq" - consulHostname: "http://eshoponabp-consul" - nginxProxyBufferSize: "32k" - nginxProxyBuffersNumber: "8" - internalAuthServerAuthority: "http://eshoponabp-authserver" - internalAuthServerRequireHttpsMetadata: "false" - stringEncryptionDefaultPassPhrase: "gsKnGZ041HLL4IM8" \ No newline at end of file +affinity: {} \ No newline at end of file diff --git a/etc/k8s/tls-cert/eshop-st-cert.pem b/etc/k8s/tls-cert/eshop-st-cert.pem new file mode 100644 index 00000000..45649b42 --- /dev/null +++ b/etc/k8s/tls-cert/eshop-st-cert.pem @@ -0,0 +1,31 @@ +-----BEGIN CERTIFICATE----- +MIIFQzCCA6ugAwIBAgIRANj5oNi+QQIoyV51y/ZIJlYwDQYJKoZIhvcNAQELBQAw +gZ8xHjAcBgNVBAoTFW1rY2VydCBkZXZlbG9wbWVudCBDQTE6MDgGA1UECwwxZ3Nl +bmd1bkBHb2toYW5zLU1hY0Jvb2stUHJvLmxvY2FsIChHb2toYW4gU2VuZ3VuKTFB +MD8GA1UEAww4bWtjZXJ0IGdzZW5ndW5AR29raGFucy1NYWNCb29rLVByby5sb2Nh +bCAoR29raGFuIFNlbmd1bikwHhcNMTkwNjAxMDAwMDAwWhcNMzExMTA0MDgyNjUw +WjBlMScwJQYDVQQKEx5ta2NlcnQgZGV2ZWxvcG1lbnQgY2VydGlmaWNhdGUxOjA4 +BgNVBAsMMWdzZW5ndW5AR29raGFucy1NYWNCb29rLVByby5sb2NhbCAoR29raGFu +IFNlbmd1bikwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDKu7X3b2Cg +dpBnz90KboUnpWRcCK96oq97pAEbR9sirN3+3jT0JRBY2TYKLDPW8i50QJFbdYE7 +zky58c+RWPrxVDoeqRC8E1+TLsuW+TdMmOL746k36X1VtKy3rqUG9IS6MXjH/MX8 +H1kgldHvE9mFEpyp3q/8cUPHSBUE+M0CA05wlDm8qgkGXcp43qrNElWg5Y2WWWIp +WUm8r5obktSAxhA+ZxFX4cJHFmxKymMqSRStDpTFCIW9C3kx5ierPNQS6g5sSMtW +OuPuh0Uhc0Q0lJBoA7Mj1CGvtO5nld0+6kAK1GMB7Vbigoqd00eqKMYaA3Aa5QZm +bf84wZjofJx1AgMBAAGjggExMIIBLTAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0lBAww +CgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBR6TnYaWT+NPghb +dQnZ+MAbx9UB2DCB1gYDVR0RBIHOMIHLgghlc2hvcC1zdIIXZXNob3Atc3QtYWRt +aW5pc3RyYXRpb26CE2VzaG9wLXN0LWF1dGhzZXJ2ZXKCGWVzaG9wLXN0LWdhdGV3 +YXktaW50ZXJuYWyCG2VzaG9wLXN0LWdhdGV3YXktcHVibGljLXdlYoIUZXNob3At +c3QtZ2F0ZXdheS13ZWKCEWVzaG9wLXN0LWlkZW50aXR5ghNlc2hvcC1zdC1wdWJs +aWMtd2Vigg1lc2hvcC1zdC1zYWFzggxlc2hvcC1zdC13ZWIwDQYJKoZIhvcNAQEL +BQADggGBADjQroM3gD7g56S8bxlUbt1sJYfvo0VCIDPH9aHE3WwhGCOn18SRDOpM +mNw4c0HO+P1+rlCfn2pvN2oQ6v731fQZPpGcE0ljeVrixqfyVvoggGMbOwegvWPh +dPK/cxLi9wYfQtFw5vy8YxsinowSRCQ3KJGxI4fsyjEQu939WvYSPDdEUPx952LR +2pG8yRSso7dixDW4rDCoI/QKM/ImnqsNtZSpGa93HLgjkJr/PsOVMogt8dOsDOkC +vHq9F6TJKTDb7WizMJcE0qfisJgtTC2isvYA3u7kiyfxW26kd1h7s4m3njn+0Sks +0xGcXiYPZm8y/lVrxcF3/QlgOfWfRmls3D17yX28QwuwvNkUv2aSP/WGOMWEtgPD +9WYPk1OhOGFxT3IKu8iw6ITTCKXpcBeQ/QiEuFjo/khDGE4NMSkrp16nVebkAWal +/eufFWZJTzO7kgCmApS2SAhRdsM+JEsioHF/gM2chzV+eP4CCKv3pw5z07eemhx2 +HnEbhDFHEA== +-----END CERTIFICATE----- diff --git a/etc/k8s/tls-cert/eshop-st-key.pem b/etc/k8s/tls-cert/eshop-st-key.pem new file mode 100644 index 00000000..146780f7 --- /dev/null +++ b/etc/k8s/tls-cert/eshop-st-key.pem @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDKu7X3b2CgdpBn +z90KboUnpWRcCK96oq97pAEbR9sirN3+3jT0JRBY2TYKLDPW8i50QJFbdYE7zky5 +8c+RWPrxVDoeqRC8E1+TLsuW+TdMmOL746k36X1VtKy3rqUG9IS6MXjH/MX8H1kg +ldHvE9mFEpyp3q/8cUPHSBUE+M0CA05wlDm8qgkGXcp43qrNElWg5Y2WWWIpWUm8 +r5obktSAxhA+ZxFX4cJHFmxKymMqSRStDpTFCIW9C3kx5ierPNQS6g5sSMtWOuPu +h0Uhc0Q0lJBoA7Mj1CGvtO5nld0+6kAK1GMB7Vbigoqd00eqKMYaA3Aa5QZmbf84 +wZjofJx1AgMBAAECggEBALvJLd9ZInbf/Bi8uLFt+BbmI1UAkpKU2Nk86+16HKg8 +2ZC4APLY1hCGeoDnusjyIUd7e2jtKdzc1cMzEiI++orJiuBVl/OuOkxZ/ykEBU4F +G9NYaKkqtPbLWWT291O+8KaLJqaQJE/KNcNyIzhB+a1CtSy/4eGChNa1lQq67yJZ +iTFPNSHT1RTzjv2BAuUASq1gK+bX4F65otVYQBMg3JGsfkAdhWPbzEX0XLVpgbh/ +jtyAHSsiWIkyVjXvA3Zjp+3Gmf3dbd/86Uwd4XowPfcSOP4iyd76FS4iTlthsF5D +M0psBOgotVl5RHv2ljOy7fUzrudnSQ0HepgdHed4Em0CgYEA7q+j7cbcb43ZW5Rx +p2pMuuuEeFY+L2Ns8N4t26OoURQCzyACR5H4KgFtrrdqTwQPs7L8SWAjU8SoP2jX +j+4+TJnK/Grt0YQ2pLpEM8j7kjGWfskHDfQhrL3o4VhdCm/1URWYSn7nzdNnX1Fk +ZlKjUJWBXGTvthCUVY9Jk30hU4sCgYEA2XBupvyIpmjoNdsEdwxxSebLyIYu2FA/ +sjI5gdzXIOo9DsFfn9HTNbXyEsiQm9StNXS585jRhyht9OF7SYajrJ/E3O086tf4 +2MmDbUdFdvMdPdGxxTU2mXa9Vd6JASnFG+fSsRhABk57iNzcUE4+PNW1ztLmRyLx +diW9cXjXz/8CgYBxGF43U0utu+uqvgqgRfj3dJL/JfYvJBBBjTTzZndhe3bdR5Bs +8xhAZw7eg1/m8six3/Q0nE4A6iTCbt38/+kbCKAqvEvVQ61UnkGku+2f1sk1Z/Fk +xjGSlSWcaO8k++mkMvRHEByr5SiM/Jby+OMTUtPJwLXocbCnXc6CCP9agwKBgEe7 +I4XLAXmEWjaKDisH28e5b7izK3kI4Dp0/yusIvwkyge4G0ep/LdXUoiHyczemFVu +MHoAC/8+gyepyvYyiIRGILeRO+ttXBaIQ+ck//GBuj/OkYqxR1XRKhzN0PylPvU5 +wPPTQCvUcERyN+v2I+oFxnh4cqc9C9MiGCD68JcZAoGBAIi1RxcWKZUCjSETT1PY +V7j5FIyMzBdUo0RN44eUdeu0CWAOnMG2s26z6fXl7EZp+Em5ee7dYEmSP49X69n9 +T9ueN1LRJaqko45Eo3uPl6rolz5vXcTr2Tooc3yqE3XbRxe2jOeczq06nj06kjuf +hPPdSqjjOwWPy63DWboSkh+0 +-----END PRIVATE KEY----- diff --git a/etc/k8s/tls-cert/notes.md b/etc/k8s/tls-cert/notes.md new file mode 100644 index 00000000..d10840d4 --- /dev/null +++ b/etc/k8s/tls-cert/notes.md @@ -0,0 +1,9 @@ +# Notes + +## Creating demo tls cert + +``` +kubectl create secret tls eshop-demo-tls \ + --cert=eshop-st-cert.pem \ + --key=eshop-st-key.pem +``` diff --git a/etc/scripts/build-images.ps1 b/etc/scripts/build-images.ps1 index 4e5b07f6..592bef60 100644 --- a/etc/scripts/build-images.ps1 +++ b/etc/scripts/build-images.ps1 @@ -7,7 +7,7 @@ $authserverFolder = Join-Path $slnFolder "apps/auth-server/src/EShopOnAbp.AuthSe $publicWebFolder = Join-Path $slnFolder "apps/public-web/src/EShopOnAbp.PublicWeb" $webGatewayFolder = Join-Path $slnFolder "gateways/web/src/EShopOnAbp.WebGateway" -$publicWebGatewayFolder = Join-Path $slnFolder "gateways/web-public/src/EShopOnAbp.WebPublicGateway" +$webPublicGatewayFolder = Join-Path $slnFolder "gateways/web-public/src/EShopOnAbp.WebPublicGateway" $internalGatewayFolder = Join-Path $slnFolder "gateways/internal/src/EShopOnAbp.InternalGateway" $identityServiceFolder = Join-Path $slnFolder "services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host" @@ -18,7 +18,8 @@ $saasServiceFolder = Join-Path $slnFolder "services/saas/src/EShopOnAbp.SaasServ Write-Host "*** BUILDING WEB (WWW) ****************" -ForegroundColor Green Set-Location $webAppFolder yarn -ng build --prod +# ng build --prod +npm run build:prod docker build -t eshoponabp/app-web:$version . ### AUTH-SERVER @@ -28,7 +29,7 @@ dotnet publish -c Release docker build -t eshoponabp/app-authserver:$version . ### PUBLIC-WEB -Write-Host "*** BUILDING PUBLIC-WEB ****************" -ForegroundColor Green +Write-Host "*** BUILDING WEB-PUBLIC ****************" -ForegroundColor Green Set-Location $publicWebFolder dotnet publish -c Release docker build -t eshoponabp/app-publicweb:$version . @@ -40,10 +41,10 @@ dotnet publish -c Release docker build -t eshoponabp/gateway-web:$version . ### PUBLICWEB-GATEWAY -Write-Host "*** BUILDING PUBLICWEB-GATEWAY ****************" -ForegroundColor Green -Set-Location $publicWebGatewayFolder +Write-Host "*** BUILDING WEB-PUBLIC-GATEWAY ****************" -ForegroundColor Green +Set-Location $webPublicGatewayFolder dotnet publish -c Release -docker build -t eshoponabp/gateway-publicweb:$version . +docker build -t eshoponabp/gateway-web-public:$version . ### INTERNAL-GATEWAY Write-Host "*** BUILDING INTERNAL-GATEWAY ****************" -ForegroundColor Green diff --git a/gateways/internal/EShopOnAbp.InternalGateway.sln b/gateways/internal/EShopOnAbp.InternalGateway.sln deleted file mode 100644 index e04495b7..00000000 --- a/gateways/internal/EShopOnAbp.InternalGateway.sln +++ /dev/null @@ -1,32 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.31320.298 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{138BBFFC-09B9-49FB-9C57-E25327CCE0C1}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{A5E7F07B-7A5D-416D-A9E0-2009A48CBE2A}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EShopOnAbp.InternalGateway", "src\EShopOnAbp.InternalGateway\EShopOnAbp.InternalGateway.csproj", "{EB7B7C24-2A6D-4500-B8E0-2988EF65DC8C}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {EB7B7C24-2A6D-4500-B8E0-2988EF65DC8C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EB7B7C24-2A6D-4500-B8E0-2988EF65DC8C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EB7B7C24-2A6D-4500-B8E0-2988EF65DC8C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EB7B7C24-2A6D-4500-B8E0-2988EF65DC8C}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {EB7B7C24-2A6D-4500-B8E0-2988EF65DC8C} = {138BBFFC-09B9-49FB-9C57-E25327CCE0C1} - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {1753A143-A9EF-43ED-970D-C71BAD179AE6} - EndGlobalSection -EndGlobal diff --git a/gateways/internal/src/EShopOnAbp.InternalGateway/Controllers/HomeController.cs b/gateways/internal/src/EShopOnAbp.InternalGateway/Controllers/HomeController.cs deleted file mode 100644 index a577ae25..00000000 --- a/gateways/internal/src/EShopOnAbp.InternalGateway/Controllers/HomeController.cs +++ /dev/null @@ -1,13 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Volo.Abp.AspNetCore.Mvc; - -namespace EShopOnAbp.InternalGateway.Controllers -{ - public class HomeController : AbpController - { - public ActionResult Index() - { - return Redirect("/swagger"); - } - } -} diff --git a/gateways/internal/src/EShopOnAbp.InternalGateway/EShopOnAbp.InternalGateway.csproj b/gateways/internal/src/EShopOnAbp.InternalGateway/EShopOnAbp.InternalGateway.csproj deleted file mode 100644 index 5e292444..00000000 --- a/gateways/internal/src/EShopOnAbp.InternalGateway/EShopOnAbp.InternalGateway.csproj +++ /dev/null @@ -1,19 +0,0 @@ - - - - net6.0 - - - - - - - - - - - - - - - diff --git a/gateways/internal/src/EShopOnAbp.InternalGateway/EShopOnAbpInternalGatewayModule.cs b/gateways/internal/src/EShopOnAbp.InternalGateway/EShopOnAbpInternalGatewayModule.cs deleted file mode 100644 index d1d65f16..00000000 --- a/gateways/internal/src/EShopOnAbp.InternalGateway/EShopOnAbpInternalGatewayModule.cs +++ /dev/null @@ -1,67 +0,0 @@ -using EShopOnAbp.Shared.Hosting.Gateways; -using Microsoft.AspNetCore.Builder; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Hosting; -using Ocelot.Middleware; -using System.Collections.Generic; -using System.Linq; -using EShopOnAbp.Shared.Hosting.AspNetCore; -using Volo.Abp; -using Volo.Abp.Modularity; - -namespace EShopOnAbp.InternalGateway -{ - [DependsOn( - typeof(EShopOnAbpSharedHostingGatewaysModule) -)] - public class EShopOnAbpInternalGatewayModule : AbpModule - { - public override void ConfigureServices(ServiceConfigurationContext context) - { - var configuration = context.Services.GetConfiguration(); - var hostingEnvironment = context.Services.GetHostingEnvironment(); - SwaggerConfigurationHelper.Configure(context, "Internal Gateway"); - } - - public override void OnApplicationInitialization(ApplicationInitializationContext context) - { - var app = context.GetApplicationBuilder(); - var env = context.GetEnvironment(); - - if (env.IsDevelopment()) - { - app.UseDeveloperExceptionPage(); - } - - app.UseCorrelationId(); - app.UseSwagger(); - app.UseSwaggerUI(options => - { - var configuration = context.ServiceProvider.GetRequiredService(); - var routes = configuration.GetSection("Routes").Get>(); - - foreach (var config in routes.GroupBy(t => t.ServiceKey).Select(r => r.First()).Distinct()) - { - var url = - $"{config.DownstreamScheme}://{config.DownstreamHostAndPorts.FirstOrDefault()?.Host}:{config.DownstreamHostAndPorts.FirstOrDefault()?.Port}"; - - options.SwaggerEndpoint($"{url}/swagger/v1/swagger.json", $"{config.ServiceKey} API"); - options.OAuthClientId(configuration["AuthServer:SwaggerClientId"]); - options.OAuthClientSecret(configuration["AuthServer:SwaggerClientSecret"]); - } - }); - app.UseAbpSerilogEnrichers(); - app.MapWhen( - ctx => ctx.Request.Path.ToString().StartsWith("/api/abp/api-definition") || - ctx.Request.Path.ToString().TrimEnd('/').Equals(""), - app2 => - { - app2.UseRouting(); - app2.UseConfiguredEndpoints(); - } - ); - app.UseOcelot().Wait(); - } - } -} diff --git a/gateways/internal/src/EShopOnAbp.InternalGateway/Program.cs b/gateways/internal/src/EShopOnAbp.InternalGateway/Program.cs deleted file mode 100644 index be086550..00000000 --- a/gateways/internal/src/EShopOnAbp.InternalGateway/Program.cs +++ /dev/null @@ -1,46 +0,0 @@ -using EShopOnAbp.Shared.Hosting.AspNetCore; -using Microsoft.AspNetCore.Hosting; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.Hosting; -using Serilog; -using System; -using System.Threading.Tasks; - -namespace EShopOnAbp.InternalGateway -{ - public class Program - { - public static async Task Main(string[] args) - { - var assemblyName = typeof(Program).Assembly.GetName().Name; - - SerilogConfigurationHelper.Configure(assemblyName); - - try - { - Log.Information($"Starting {assemblyName}."); - await CreateHostBuilder(args).Build().RunAsync(); - return 0; - } - catch (Exception ex) - { - Log.Fatal(ex, $"{assemblyName} terminated unexpectedly!"); - return 1; - } - finally - { - Log.CloseAndFlush(); - } - } - - internal static IHostBuilder CreateHostBuilder(string[] args) => - Host.CreateDefaultBuilder(args) - .ConfigureAppConfiguration(build => - { - build.AddJsonFile("appsettings.secrets.json", optional: true); - }) - .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup(); }) - .UseAutofac() - .UseSerilog(); - } -} diff --git a/gateways/internal/src/EShopOnAbp.InternalGateway/Properties/launchSettings.json b/gateways/internal/src/EShopOnAbp.InternalGateway/Properties/launchSettings.json deleted file mode 100644 index ee03a415..00000000 --- a/gateways/internal/src/EShopOnAbp.InternalGateway/Properties/launchSettings.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "$schema": "http://json.schemastore.org/launchsettings.json", - "iisSettings": { - "windowsAuthentication": false, - "anonymousAuthentication": true, - "iisExpress": { - "applicationUrl": "https://localhost:44371", - "sslPort": 0 - } - }, - "profiles": { - "IIS Express": { - "commandName": "IISExpress", - "launchBrowser": true, - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } - }, - "EShopOnAbp.InternalGateway": { - "commandName": "Project", - "dotnetRunMessages": "true", - "launchBrowser": true, - "applicationUrl": "https://localhost:44371", - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } - } - } -} diff --git a/gateways/internal/src/EShopOnAbp.InternalGateway/Startup.cs b/gateways/internal/src/EShopOnAbp.InternalGateway/Startup.cs deleted file mode 100644 index 11f3388c..00000000 --- a/gateways/internal/src/EShopOnAbp.InternalGateway/Startup.cs +++ /dev/null @@ -1,19 +0,0 @@ -using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Hosting; -using Microsoft.Extensions.DependencyInjection; - -namespace EShopOnAbp.InternalGateway -{ - public class Startup - { - public void ConfigureServices(IServiceCollection services) - { - services.AddApplication(); - } - - public void Configure(IApplicationBuilder app, IWebHostEnvironment env) - { - app.InitializeApplication(); - } - } -} diff --git a/gateways/internal/src/EShopOnAbp.InternalGateway/appsettings.Development.json b/gateways/internal/src/EShopOnAbp.InternalGateway/appsettings.Development.json deleted file mode 100644 index 8983e0fc..00000000 --- a/gateways/internal/src/EShopOnAbp.InternalGateway/appsettings.Development.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "Logging": { - "LogLevel": { - "Default": "Information", - "Microsoft": "Warning", - "Microsoft.Hosting.Lifetime": "Information" - } - } -} diff --git a/gateways/web-public/src/EShopOnAbp.WebPublicGateway/Dockerfile b/gateways/web-public/src/EShopOnAbp.WebPublicGateway/Dockerfile index 2d3b43d9..ea373981 100644 --- a/gateways/web-public/src/EShopOnAbp.WebPublicGateway/Dockerfile +++ b/gateways/web-public/src/EShopOnAbp.WebPublicGateway/Dockerfile @@ -1,4 +1,52 @@ - FROM mcr.microsoft.com/dotnet/aspnet:6.0 - COPY bin/Release/net6.0/publish/ app/ - WORKDIR /app - ENTRYPOINT ["dotnet", "EShopOnAbp.WebPublicGateway.dll"] \ No newline at end of file +FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base +WORKDIR /app +EXPOSE 80 +EXPOSE 443 + +FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build +WORKDIR /src + +# It's important to keep lines from here down to "COPY . ." identical in all Dockerfiles +# to take advantage of Docker's build cache, to speed up local container builds +COPY "EShopOnAbp.sln" "EShopOnAbp.sln" + +# Applications +COPY "apps/auth-server/src/EShopOnAbp.AuthServer/EShopOnAbp.AuthServer.csproj" "apps/auth-server/src/EShopOnAbp.AuthServer/EShopOnAbp.AuthServer.csproj" +COPY "apps/public-web/src/EShopOnAbp.PublicWeb/EShopOnAbp.PublicWeb.csproj" "apps/public-web/src/EShopOnAbp.PublicWeb/EShopOnAbp.PublicWeb.csproj" + +# Shared +COPY "shared/EShopOnAbp.Shared.Hosting/EShopOnAbp.Shared.Hosting.csproj" "shared/EShopOnAbp.Shared.Hosting/EShopOnAbp.Shared.Hosting.csproj" +COPY "shared/EShopOnAbp.Shared.Hosting.AspNetCore/EShopOnAbp.Shared.Hosting.AspNetCore.csproj" "shared/EShopOnAbp.Shared.Hosting.AspNetCore/EShopOnAbp.Shared.Hosting.AspNetCore.csproj" +COPY "shared/EShopOnAbp.Shared.Hosting.Gateways/EShopOnAbp.Shared.Hosting.Gateways.csproj" "shared/EShopOnAbp.Shared.Hosting.Gateways/EShopOnAbp.Shared.Hosting.Gateways.csproj" +COPY "shared/EShopOnAbp.Shared.Hosting.Microservices/EShopOnAbp.Shared.Hosting.Microservices.csproj" "shared/EShopOnAbp.Shared.Hosting.Microservices/EShopOnAbp.Shared.Hosting.Microservices.csproj" +COPY "shared/EShopOnAbp.Shared.Localization/EShopOnAbp.Shared.Localization.csproj" "shared/EShopOnAbp.Shared.Localization/EShopOnAbp.Shared.Localization.csproj" + +# Microservices +COPY "services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/EShopOnAbp.AdministrationService.HttpApi.Host.csproj" "services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/EShopOnAbp.AdministrationService.HttpApi.Host.csproj" +COPY "services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/EShopOnAbp.IdentityService.HttpApi.Host.csproj" "services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/EShopOnAbp.IdentityService.HttpApi.Host.csproj" +COPY *"services/saas/src/EShopOnAbp.SaasService.HttpApi.Host/EShopOnAbp.SaasService.HttpApi.Host.csproj" "services/saas/src/EShopOnAbp.SaasService.HttpApi.Host/EShopOnAbp.SaasService.HttpApi.Host.csproj" +COPY *"services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/EShopOnAbp.BasketService.HttpApi.Host.csproj" "services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/EShopOnAbp.BasketService.HttpApi.Host.csproj" +COPY *"services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/EShopOnAbp.OrderingService.HttpApi.Host.csproj" "services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/EShopOnAbp.OrderingService.HttpApi.Host.csproj" +COPY *"services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/EShopOnAbp.CatalogService.HttpApi.Host.csproj" "services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/EShopOnAbp.CatalogService.HttpApi.Host.csproj" +COPY *"services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/EShopOnAbp.PaymentService.HttpApi.Host.csproj" "services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/EShopOnAbp.PaymentService.HttpApi.Host.csproj" + +# Gateways +COPY "gateways/web/src/EShopOnAbp.WebGateway/EShopOnAbp.WebGateway.csproj" "gateways/web/src/EShopOnAbp.WebGateway/EShopOnAbp.WebGateway.csproj" +COPY "gateways/web-public/src/EShopOnAbp.WebPublicGateway/EShopOnAbp.WebPublicGateway.csproj" "gateways/web-public/src/EShopOnAbp.WebPublicGateway/EShopOnAbp.WebPublicGateway.csproj" + +COPY "NuGet.Config" "NuGet.Config" + +RUN dotnet restore "EShopOnAbp.sln" +COPY . . + +WORKDIR "/src/gateways/web-public/src/EShopOnAbp.WebPublicGateway" +RUN dotnet publish -c Release -o /app +# Should be used after .net6 is out of preview for better performance +# RUN dotnet publish --no-restore -c Release -o /app + +FROM build AS publish + +FROM base AS final +WORKDIR /app +COPY --from=publish /app . +ENTRYPOINT ["dotnet", "EShopOnAbp.WebPublicGateway.dll"] \ No newline at end of file diff --git a/gateways/web-public/src/EShopOnAbp.WebPublicGateway/Dockerfile.local b/gateways/web-public/src/EShopOnAbp.WebPublicGateway/Dockerfile.local new file mode 100644 index 00000000..2d3b43d9 --- /dev/null +++ b/gateways/web-public/src/EShopOnAbp.WebPublicGateway/Dockerfile.local @@ -0,0 +1,4 @@ + FROM mcr.microsoft.com/dotnet/aspnet:6.0 + COPY bin/Release/net6.0/publish/ app/ + WORKDIR /app + ENTRYPOINT ["dotnet", "EShopOnAbp.WebPublicGateway.dll"] \ No newline at end of file diff --git a/gateways/web-public/src/EShopOnAbp.WebPublicGateway/EShopOnAbpWebPublicGatewayModule.cs b/gateways/web-public/src/EShopOnAbp.WebPublicGateway/EShopOnAbpWebPublicGatewayModule.cs index cf71cce0..ec322373 100644 --- a/gateways/web-public/src/EShopOnAbp.WebPublicGateway/EShopOnAbpWebPublicGatewayModule.cs +++ b/gateways/web-public/src/EShopOnAbp.WebPublicGateway/EShopOnAbpWebPublicGatewayModule.cs @@ -45,6 +45,10 @@ namespace EShopOnAbp.WebPublicGateway { var url = $"{config.DownstreamScheme}://{config.DownstreamHostAndPorts.FirstOrDefault()?.Host}:{config.DownstreamHostAndPorts.FirstOrDefault()?.Port}"; + if (!env.IsDevelopment()) + { + url = $"https://{config.DownstreamHostAndPorts.FirstOrDefault()?.Host}"; + } options.SwaggerEndpoint($"{url}/swagger/v1/swagger.json", $"{config.ServiceKey} API"); options.OAuthClientId(configuration["AuthServer:SwaggerClientId"]); diff --git a/gateways/web-public/src/EShopOnAbp.WebPublicGateway/Program.cs b/gateways/web-public/src/EShopOnAbp.WebPublicGateway/Program.cs index cd7274fa..7e4b70f7 100644 --- a/gateways/web-public/src/EShopOnAbp.WebPublicGateway/Program.cs +++ b/gateways/web-public/src/EShopOnAbp.WebPublicGateway/Program.cs @@ -37,7 +37,7 @@ namespace EShopOnAbp.WebPublicGateway Host.CreateDefaultBuilder(args) .ConfigureAppConfiguration(build => { - build.AddJsonFile("appsettings.secrets.json", optional: true); + build.AddJsonFile("appsettings.secrets.json", optional: true, reloadOnChange:true); }) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup(); }) .UseAutofac() diff --git a/gateways/web-public/src/EShopOnAbp.WebPublicGateway/appsettings.json b/gateways/web-public/src/EShopOnAbp.WebPublicGateway/appsettings.json index 312cbe61..fceda57f 100644 --- a/gateways/web-public/src/EShopOnAbp.WebPublicGateway/appsettings.json +++ b/gateways/web-public/src/EShopOnAbp.WebPublicGateway/appsettings.json @@ -42,7 +42,12 @@ } ], "UpstreamPathTemplate": "/api/abp/{everything}", - "UpstreamHttpMethod": [ "Put", "Delete", "Get", "Post" ] + "UpstreamHttpMethod": [ "Put", "Delete", "Get", "Post" ], + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 3, + "DurationOfBreak": 3000, + "TimeoutValue": 2500 + } }, { "ServiceKey": "Catalog Service", diff --git a/gateways/web/src/EShopOnAbp.WebGateway/Dockerfile b/gateways/web/src/EShopOnAbp.WebGateway/Dockerfile index 26009670..9ad062f6 100644 --- a/gateways/web/src/EShopOnAbp.WebGateway/Dockerfile +++ b/gateways/web/src/EShopOnAbp.WebGateway/Dockerfile @@ -1,4 +1,52 @@ - FROM mcr.microsoft.com/dotnet/aspnet:6.0 - COPY bin/Release/net6.0/publish/ app/ - WORKDIR /app - ENTRYPOINT ["dotnet", "EShopOnAbp.WebGateway.dll"] \ No newline at end of file +FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base +WORKDIR /app +EXPOSE 80 +EXPOSE 443 + +FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build +WORKDIR /src + +# It's important to keep lines from here down to "COPY . ." identical in all Dockerfiles +# to take advantage of Docker's build cache, to speed up local container builds +COPY "EShopOnAbp.sln" "EShopOnAbp.sln" + +# Applications +COPY "apps/auth-server/src/EShopOnAbp.AuthServer/EShopOnAbp.AuthServer.csproj" "apps/auth-server/src/EShopOnAbp.AuthServer/EShopOnAbp.AuthServer.csproj" +COPY "apps/public-web/src/EShopOnAbp.PublicWeb/EShopOnAbp.PublicWeb.csproj" "apps/public-web/src/EShopOnAbp.PublicWeb/EShopOnAbp.PublicWeb.csproj" + +# Shared +COPY "shared/EShopOnAbp.Shared.Hosting/EShopOnAbp.Shared.Hosting.csproj" "shared/EShopOnAbp.Shared.Hosting/EShopOnAbp.Shared.Hosting.csproj" +COPY "shared/EShopOnAbp.Shared.Hosting.AspNetCore/EShopOnAbp.Shared.Hosting.AspNetCore.csproj" "shared/EShopOnAbp.Shared.Hosting.AspNetCore/EShopOnAbp.Shared.Hosting.AspNetCore.csproj" +COPY "shared/EShopOnAbp.Shared.Hosting.Gateways/EShopOnAbp.Shared.Hosting.Gateways.csproj" "shared/EShopOnAbp.Shared.Hosting.Gateways/EShopOnAbp.Shared.Hosting.Gateways.csproj" +COPY "shared/EShopOnAbp.Shared.Hosting.Microservices/EShopOnAbp.Shared.Hosting.Microservices.csproj" "shared/EShopOnAbp.Shared.Hosting.Microservices/EShopOnAbp.Shared.Hosting.Microservices.csproj" +COPY "shared/EShopOnAbp.Shared.Localization/EShopOnAbp.Shared.Localization.csproj" "shared/EShopOnAbp.Shared.Localization/EShopOnAbp.Shared.Localization.csproj" + +# Microservices +COPY "services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/EShopOnAbp.AdministrationService.HttpApi.Host.csproj" "services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/EShopOnAbp.AdministrationService.HttpApi.Host.csproj" +COPY "services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/EShopOnAbp.IdentityService.HttpApi.Host.csproj" "services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/EShopOnAbp.IdentityService.HttpApi.Host.csproj" +COPY *"services/saas/src/EShopOnAbp.SaasService.HttpApi.Host/EShopOnAbp.SaasService.HttpApi.Host.csproj" "services/saas/src/EShopOnAbp.SaasService.HttpApi.Host/EShopOnAbp.SaasService.HttpApi.Host.csproj" +COPY *"services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/EShopOnAbp.BasketService.HttpApi.Host.csproj" "services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/EShopOnAbp.BasketService.HttpApi.Host.csproj" +COPY *"services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/EShopOnAbp.OrderingService.HttpApi.Host.csproj" "services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/EShopOnAbp.OrderingService.HttpApi.Host.csproj" +COPY *"services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/EShopOnAbp.CatalogService.HttpApi.Host.csproj" "services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/EShopOnAbp.CatalogService.HttpApi.Host.csproj" +COPY *"services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/EShopOnAbp.PaymentService.HttpApi.Host.csproj" "services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/EShopOnAbp.PaymentService.HttpApi.Host.csproj" + +# Gateways +COPY "gateways/web/src/EShopOnAbp.WebGateway/EShopOnAbp.WebGateway.csproj" "gateways/web/src/EShopOnAbp.WebGateway/EShopOnAbp.WebGateway.csproj" +COPY "gateways/web-public/src/EShopOnAbp.WebPublicGateway/EShopOnAbp.WebPublicGateway.csproj" "gateways/web-public/src/EShopOnAbp.WebPublicGateway/EShopOnAbp.WebPublicGateway.csproj" + +COPY "NuGet.Config" "NuGet.Config" + +RUN dotnet restore "EShopOnAbp.sln" +COPY . . + +WORKDIR "/src/gateways/web/src/EShopOnAbp.WebGateway" +RUN dotnet publish -c Release -o /app +# Should be used after .net6 is out of preview for better performance +# RUN dotnet publish --no-restore -c Release -o /app + +FROM build AS publish + +FROM base AS final +WORKDIR /app +COPY --from=publish /app . +ENTRYPOINT ["dotnet", "EShopOnAbp.WebGateway.dll"] \ No newline at end of file diff --git a/gateways/web/src/EShopOnAbp.WebGateway/Dockerfile.local b/gateways/web/src/EShopOnAbp.WebGateway/Dockerfile.local new file mode 100644 index 00000000..26009670 --- /dev/null +++ b/gateways/web/src/EShopOnAbp.WebGateway/Dockerfile.local @@ -0,0 +1,4 @@ + FROM mcr.microsoft.com/dotnet/aspnet:6.0 + COPY bin/Release/net6.0/publish/ app/ + WORKDIR /app + ENTRYPOINT ["dotnet", "EShopOnAbp.WebGateway.dll"] \ No newline at end of file diff --git a/gateways/web/src/EShopOnAbp.WebGateway/EShopOnAbpWebGatewayModule.cs b/gateways/web/src/EShopOnAbp.WebGateway/EShopOnAbpWebGatewayModule.cs index 119ed7b5..0e89339c 100644 --- a/gateways/web/src/EShopOnAbp.WebGateway/EShopOnAbpWebGatewayModule.cs +++ b/gateways/web/src/EShopOnAbp.WebGateway/EShopOnAbpWebGatewayModule.cs @@ -25,6 +25,25 @@ namespace EShopOnAbp.WebGateway var configuration = context.Services.GetConfiguration(); var hostingEnvironment = context.Services.GetHostingEnvironment(); SwaggerConfigurationHelper.Configure(context, "Web Gateway"); + + context.Services.AddCors(options => + { + options.AddDefaultPolicy(builder => + { + builder + .WithOrigins( + configuration["App:CorsOrigins"] + .Split(",", StringSplitOptions.RemoveEmptyEntries) + .Select(o => o.Trim().RemovePostFix("/")) + .ToArray() + ) + .WithAbpExposedHeaders() + .SetIsOriginAllowedToAllowWildcardSubdomains() + .AllowAnyHeader() + .AllowAnyMethod() + .AllowCredentials(); + }); + }); } public override void OnApplicationInitialization(ApplicationInitializationContext context) @@ -38,6 +57,7 @@ namespace EShopOnAbp.WebGateway } app.UseCorrelationId(); + app.UseCors(); app.UseSwagger(); app.UseSwaggerUI(options => { @@ -48,6 +68,10 @@ namespace EShopOnAbp.WebGateway { var url = $"{config.DownstreamScheme}://{config.DownstreamHostAndPorts.FirstOrDefault()?.Host}:{config.DownstreamHostAndPorts.FirstOrDefault()?.Port}"; + if (!env.IsDevelopment()) + { + url = $"https://{config.DownstreamHostAndPorts.FirstOrDefault()?.Host}"; + } options.SwaggerEndpoint($"{url}/swagger/v1/swagger.json", $"{config.ServiceKey} API"); options.OAuthClientId(configuration["AuthServer:SwaggerClientId"]); diff --git a/gateways/web/src/EShopOnAbp.WebGateway/appsettings.json b/gateways/web/src/EShopOnAbp.WebGateway/appsettings.json index 13fb37e6..e7b9ea22 100644 --- a/gateways/web/src/EShopOnAbp.WebGateway/appsettings.json +++ b/gateways/web/src/EShopOnAbp.WebGateway/appsettings.json @@ -68,7 +68,12 @@ } ], "UpstreamPathTemplate": "/api/abp/{everything}", - "UpstreamHttpMethod": [ "Put", "Delete", "Get", "Post" ] + "UpstreamHttpMethod": [ "Put", "Delete", "Get", "Post" ], + "QoSOptions": { + "ExceptionsAllowedBeforeBreaking": 3, + "DurationOfBreak": 5000, + "TimeoutValue": 2500 + } }, { "ServiceKey": "Administration Service", diff --git a/services/administration/src/EShopOnAbp.AdministrationService.Application.Contracts/EShopOnAbp.AdministrationService.Application.Contracts.csproj b/services/administration/src/EShopOnAbp.AdministrationService.Application.Contracts/EShopOnAbp.AdministrationService.Application.Contracts.csproj index 93532fcb..06b9c85e 100644 --- a/services/administration/src/EShopOnAbp.AdministrationService.Application.Contracts/EShopOnAbp.AdministrationService.Application.Contracts.csproj +++ b/services/administration/src/EShopOnAbp.AdministrationService.Application.Contracts/EShopOnAbp.AdministrationService.Application.Contracts.csproj @@ -10,9 +10,9 @@ - - - + + + diff --git a/services/administration/src/EShopOnAbp.AdministrationService.Application/EShopOnAbp.AdministrationService.Application.csproj b/services/administration/src/EShopOnAbp.AdministrationService.Application/EShopOnAbp.AdministrationService.Application.csproj index b923426f..f8daf35c 100644 --- a/services/administration/src/EShopOnAbp.AdministrationService.Application/EShopOnAbp.AdministrationService.Application.csproj +++ b/services/administration/src/EShopOnAbp.AdministrationService.Application/EShopOnAbp.AdministrationService.Application.csproj @@ -11,9 +11,9 @@ - - - + + + diff --git a/services/administration/src/EShopOnAbp.AdministrationService.Domain.Shared/EShopOnAbp.AdministrationService.Domain.Shared.csproj b/services/administration/src/EShopOnAbp.AdministrationService.Domain.Shared/EShopOnAbp.AdministrationService.Domain.Shared.csproj index 3afaea58..d0966243 100644 --- a/services/administration/src/EShopOnAbp.AdministrationService.Domain.Shared/EShopOnAbp.AdministrationService.Domain.Shared.csproj +++ b/services/administration/src/EShopOnAbp.AdministrationService.Domain.Shared/EShopOnAbp.AdministrationService.Domain.Shared.csproj @@ -7,14 +7,14 @@ - + - - - - + + + + diff --git a/services/administration/src/EShopOnAbp.AdministrationService.Domain/EShopOnAbp.AdministrationService.Domain.csproj b/services/administration/src/EShopOnAbp.AdministrationService.Domain/EShopOnAbp.AdministrationService.Domain.csproj index 8a781f41..83245074 100644 --- a/services/administration/src/EShopOnAbp.AdministrationService.Domain/EShopOnAbp.AdministrationService.Domain.csproj +++ b/services/administration/src/EShopOnAbp.AdministrationService.Domain/EShopOnAbp.AdministrationService.Domain.csproj @@ -10,12 +10,12 @@ - - - - - - + + + + + + diff --git a/services/administration/src/EShopOnAbp.AdministrationService.EntityFrameworkCore/EShopOnAbp.AdministrationService.EntityFrameworkCore.csproj b/services/administration/src/EShopOnAbp.AdministrationService.EntityFrameworkCore/EShopOnAbp.AdministrationService.EntityFrameworkCore.csproj index b312a680..65e8cbe4 100644 --- a/services/administration/src/EShopOnAbp.AdministrationService.EntityFrameworkCore/EShopOnAbp.AdministrationService.EntityFrameworkCore.csproj +++ b/services/administration/src/EShopOnAbp.AdministrationService.EntityFrameworkCore/EShopOnAbp.AdministrationService.EntityFrameworkCore.csproj @@ -6,19 +6,19 @@ - + runtime; build; native; contentfiles; analyzers; buildtransitive - - - - - - + + + + + + diff --git a/services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Client/EShopOnAbp.AdministrationService.HttpApi.Client.csproj b/services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Client/EShopOnAbp.AdministrationService.HttpApi.Client.csproj index 27140ae7..29a4d997 100644 --- a/services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Client/EShopOnAbp.AdministrationService.HttpApi.Client.csproj +++ b/services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Client/EShopOnAbp.AdministrationService.HttpApi.Client.csproj @@ -10,9 +10,9 @@ - - - + + + diff --git a/services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/AdministrationServiceHttpApiHostModule.cs b/services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/AdministrationServiceHttpApiHostModule.cs index 2e64a6ab..8253bf1e 100644 --- a/services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/AdministrationServiceHttpApiHostModule.cs +++ b/services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/AdministrationServiceHttpApiHostModule.cs @@ -3,7 +3,6 @@ using System.Collections.Generic; using System.Linq; using EShopOnAbp.AdministrationService.DbMigrations; using EShopOnAbp.AdministrationService.EntityFrameworkCore; -using EShopOnAbp.SaasService; using EShopOnAbp.Shared.Hosting.AspNetCore; using EShopOnAbp.Shared.Hosting.Microservices; using Microsoft.AspNetCore.Builder; @@ -12,7 +11,6 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Volo.Abp; using Volo.Abp.Account; -using Volo.Abp.AspNetCore.Mvc; using Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy; using Volo.Abp.Http.Client.IdentityModel.Web; using Volo.Abp.Identity; @@ -29,7 +27,6 @@ namespace EShopOnAbp.AdministrationService typeof(AbpAccountApplicationContractsModule), typeof(AbpHttpClientIdentityModelWebModule), typeof(AbpAspNetCoreMvcUiMultiTenancyModule), - typeof(SaasServiceApplicationContractsModule), typeof(AbpIdentityHttpApiClientModule) )] public class AdministrationServiceHttpApiHostModule : AbpModule @@ -88,7 +85,6 @@ namespace EShopOnAbp.AdministrationService //app.UseHttpMetrics(); app.UseAuthentication(); app.UseAbpClaimsMap(); - app.UseMultiTenancy(); app.UseAuthorization(); app.UseSwagger(); app.UseSwaggerUI(options => diff --git a/services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/DbMigrations/AdministrationServiceDatabaseMigrationEventHandler.cs b/services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/DbMigrations/AdministrationServiceDatabaseMigrationEventHandler.cs index 148befce..b5f8c7d8 100644 --- a/services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/DbMigrations/AdministrationServiceDatabaseMigrationEventHandler.cs +++ b/services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/DbMigrations/AdministrationServiceDatabaseMigrationEventHandler.cs @@ -8,7 +8,6 @@ using Volo.Abp.Data; using Volo.Abp.EventBus.Distributed; using Volo.Abp.MultiTenancy; using Volo.Abp.PermissionManagement; -using Volo.Abp.TenantManagement; using Volo.Abp.Uow; namespace EShopOnAbp.AdministrationService.DbMigrations @@ -27,13 +26,11 @@ namespace EShopOnAbp.AdministrationService.DbMigrations ITenantStore tenantStore, IPermissionDefinitionManager permissionDefinitionManager, IPermissionDataSeeder permissionDataSeeder, - ITenantRepository tenantRepository, IDistributedEventBus distributedEventBus ) : base( currentTenant, unitOfWorkManager, tenantStore, - tenantRepository, distributedEventBus, AdministrationServiceDbProperties.ConnectionStringName) { @@ -52,12 +49,6 @@ namespace EShopOnAbp.AdministrationService.DbMigrations { var schemaMigrated = await MigrateDatabaseSchemaAsync(eventData.TenantId); await SeedDataAsync(eventData.TenantId); - - if (eventData.TenantId == null && schemaMigrated) - { - /* Migrate tenant databases after host migration */ - await QueueTenantMigrationsAsync(); - } } catch (Exception ex) { diff --git a/services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/Dockerfile b/services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/Dockerfile index 6767ed03..d498afbf 100644 --- a/services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/Dockerfile +++ b/services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/Dockerfile @@ -1,4 +1,52 @@ - FROM mcr.microsoft.com/dotnet/aspnet:6.0 - COPY bin/Release/net6.0/publish/ app/ - WORKDIR /app - ENTRYPOINT ["dotnet", "EShopOnAbp.AdministrationService.HttpApi.Host.dll"] \ No newline at end of file +FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base +WORKDIR /app +EXPOSE 80 +EXPOSE 443 + +FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build +WORKDIR /src + +# It's important to keep lines from here down to "COPY . ." identical in all Dockerfiles +# to take advantage of Docker's build cache, to speed up local container builds +COPY "EShopOnAbp.sln" "EShopOnAbp.sln" + +# Applications +COPY "apps/auth-server/src/EShopOnAbp.AuthServer/EShopOnAbp.AuthServer.csproj" "apps/auth-server/src/EShopOnAbp.AuthServer/EShopOnAbp.AuthServer.csproj" +COPY "apps/public-web/src/EShopOnAbp.PublicWeb/EShopOnAbp.PublicWeb.csproj" "apps/public-web/src/EShopOnAbp.PublicWeb/EShopOnAbp.PublicWeb.csproj" + +# Shared +COPY "shared/EShopOnAbp.Shared.Hosting/EShopOnAbp.Shared.Hosting.csproj" "shared/EShopOnAbp.Shared.Hosting/EShopOnAbp.Shared.Hosting.csproj" +COPY "shared/EShopOnAbp.Shared.Hosting.AspNetCore/EShopOnAbp.Shared.Hosting.AspNetCore.csproj" "shared/EShopOnAbp.Shared.Hosting.AspNetCore/EShopOnAbp.Shared.Hosting.AspNetCore.csproj" +COPY "shared/EShopOnAbp.Shared.Hosting.Gateways/EShopOnAbp.Shared.Hosting.Gateways.csproj" "shared/EShopOnAbp.Shared.Hosting.Gateways/EShopOnAbp.Shared.Hosting.Gateways.csproj" +COPY "shared/EShopOnAbp.Shared.Hosting.Microservices/EShopOnAbp.Shared.Hosting.Microservices.csproj" "shared/EShopOnAbp.Shared.Hosting.Microservices/EShopOnAbp.Shared.Hosting.Microservices.csproj" +COPY "shared/EShopOnAbp.Shared.Localization/EShopOnAbp.Shared.Localization.csproj" "shared/EShopOnAbp.Shared.Localization/EShopOnAbp.Shared.Localization.csproj" + +# Microservices +COPY "services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/EShopOnAbp.AdministrationService.HttpApi.Host.csproj" "services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/EShopOnAbp.AdministrationService.HttpApi.Host.csproj" +COPY "services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/EShopOnAbp.IdentityService.HttpApi.Host.csproj" "services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/EShopOnAbp.IdentityService.HttpApi.Host.csproj" +COPY *"services/saas/src/EShopOnAbp.SaasService.HttpApi.Host/EShopOnAbp.SaasService.HttpApi.Host.csproj" "services/saas/src/EShopOnAbp.SaasService.HttpApi.Host/EShopOnAbp.SaasService.HttpApi.Host.csproj" +COPY *"services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/EShopOnAbp.BasketService.HttpApi.Host.csproj" "services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/EShopOnAbp.BasketService.HttpApi.Host.csproj" +COPY *"services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/EShopOnAbp.OrderingService.HttpApi.Host.csproj" "services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/EShopOnAbp.OrderingService.HttpApi.Host.csproj" +COPY *"services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/EShopOnAbp.CatalogService.HttpApi.Host.csproj" "services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/EShopOnAbp.CatalogService.HttpApi.Host.csproj" +COPY *"services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/EShopOnAbp.PaymentService.HttpApi.Host.csproj" "services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/EShopOnAbp.PaymentService.HttpApi.Host.csproj" + +# Gateways +COPY "gateways/web/src/EShopOnAbp.WebGateway/EShopOnAbp.WebGateway.csproj" "gateways/web/src/EShopOnAbp.WebGateway/EShopOnAbp.WebGateway.csproj" +COPY "gateways/web-public/src/EShopOnAbp.WebPublicGateway/EShopOnAbp.WebPublicGateway.csproj" "gateways/web-public/src/EShopOnAbp.WebPublicGateway/EShopOnAbp.WebPublicGateway.csproj" + +COPY "NuGet.Config" "NuGet.Config" + +RUN dotnet restore "EShopOnAbp.sln" +COPY . . + +WORKDIR "/src/services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host" +RUN dotnet publish -c Release -o /app +# Should be used after .net6 is out of preview for better performance +# RUN dotnet publish --no-restore -c Release -o /app + +FROM build AS publish + +FROM base AS final +WORKDIR /app +COPY --from=publish /app . +ENTRYPOINT ["dotnet", "EShopOnAbp.AdministrationService.HttpApi.Host.dll"] \ No newline at end of file diff --git a/services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/Dockerfile.local b/services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/Dockerfile.local new file mode 100644 index 00000000..6767ed03 --- /dev/null +++ b/services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/Dockerfile.local @@ -0,0 +1,4 @@ + FROM mcr.microsoft.com/dotnet/aspnet:6.0 + COPY bin/Release/net6.0/publish/ app/ + WORKDIR /app + ENTRYPOINT ["dotnet", "EShopOnAbp.AdministrationService.HttpApi.Host.dll"] \ No newline at end of file diff --git a/services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/EShopOnAbp.AdministrationService.HttpApi.Host.csproj b/services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/EShopOnAbp.AdministrationService.HttpApi.Host.csproj index e9fc35dc..2e78e8f8 100644 --- a/services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/EShopOnAbp.AdministrationService.HttpApi.Host.csproj +++ b/services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/EShopOnAbp.AdministrationService.HttpApi.Host.csproj @@ -7,16 +7,16 @@ - + runtime; build; native; contentfiles; analyzers; buildtransitive - - - - + + + + @@ -27,7 +27,6 @@ - diff --git a/services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/appsettings.json b/services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/appsettings.json index ba5d742b..12fbc8fa 100644 --- a/services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/appsettings.json +++ b/services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/appsettings.json @@ -1,7 +1,7 @@ { "App": { "SelfUrl": "https://localhost:44353", - "CorsOrigins": "https://localhost:44371,https://localhost:44372,https://localhost:44373" + "CorsOrigins": "https://localhost:44372,https://localhost:44373" }, "AuthServer": { "Authority": "https://localhost:44330", @@ -10,8 +10,8 @@ "SwaggerClientSecret": "1q2w3e*" }, "RemoteServices": { - "Default": { - "BaseUrl": "https://localhost:44371/", + "AbpIdentity": { + "BaseUrl": "https://localhost:44351/", "UseCurrentAccessToken": "false" } }, @@ -33,7 +33,6 @@ }, "AllowedHosts": "*", "ConnectionStrings": { - "SaasService": "Server=localhost,1434;Database=EShopOnAbp_Saas;User Id=sa;password=myPassw0rd;MultipleActiveResultSets=true", "AdministrationService": "Server=localhost,1434;Database=EShopOnAbp_Administration;User Id=sa;password=myPassw0rd;MultipleActiveResultSets=true" }, "StringEncryption": { @@ -55,10 +54,5 @@ }, "ElasticSearch": { "Url": "http://localhost:9200" - }, - "Consul": { - "Enabled": true, - "Host": "http://localhost:8500", - "Service": "Administration Service" } } diff --git a/services/administration/src/EShopOnAbp.AdministrationService.HttpApi/EShopOnAbp.AdministrationService.HttpApi.csproj b/services/administration/src/EShopOnAbp.AdministrationService.HttpApi/EShopOnAbp.AdministrationService.HttpApi.csproj index a26486a5..fd3bed46 100644 --- a/services/administration/src/EShopOnAbp.AdministrationService.HttpApi/EShopOnAbp.AdministrationService.HttpApi.csproj +++ b/services/administration/src/EShopOnAbp.AdministrationService.HttpApi/EShopOnAbp.AdministrationService.HttpApi.csproj @@ -10,9 +10,9 @@ - - - + + + diff --git a/services/administration/test/EShopOnAbp.AdministrationService.EntityFrameworkCore.Tests/EShopOnAbp.AdministrationService.EntityFrameworkCore.Tests.csproj b/services/administration/test/EShopOnAbp.AdministrationService.EntityFrameworkCore.Tests/EShopOnAbp.AdministrationService.EntityFrameworkCore.Tests.csproj index 6622994c..334dcdb1 100644 --- a/services/administration/test/EShopOnAbp.AdministrationService.EntityFrameworkCore.Tests/EShopOnAbp.AdministrationService.EntityFrameworkCore.Tests.csproj +++ b/services/administration/test/EShopOnAbp.AdministrationService.EntityFrameworkCore.Tests/EShopOnAbp.AdministrationService.EntityFrameworkCore.Tests.csproj @@ -8,7 +8,7 @@ - + diff --git a/services/administration/test/EShopOnAbp.AdministrationService.TestBase/EShopOnAbp.AdministrationService.TestBase.csproj b/services/administration/test/EShopOnAbp.AdministrationService.TestBase/EShopOnAbp.AdministrationService.TestBase.csproj index 1dd01683..2331afec 100644 --- a/services/administration/test/EShopOnAbp.AdministrationService.TestBase/EShopOnAbp.AdministrationService.TestBase.csproj +++ b/services/administration/test/EShopOnAbp.AdministrationService.TestBase/EShopOnAbp.AdministrationService.TestBase.csproj @@ -5,9 +5,9 @@ - - - + + + diff --git a/services/basket/src/EShopOnAbp.BasketService.Application.Contracts/EShopOnAbp.BasketService.Application.Contracts.csproj b/services/basket/src/EShopOnAbp.BasketService.Application.Contracts/EShopOnAbp.BasketService.Application.Contracts.csproj index 34df95cf..b065b98e 100644 --- a/services/basket/src/EShopOnAbp.BasketService.Application.Contracts/EShopOnAbp.BasketService.Application.Contracts.csproj +++ b/services/basket/src/EShopOnAbp.BasketService.Application.Contracts/EShopOnAbp.BasketService.Application.Contracts.csproj @@ -12,8 +12,8 @@ - - + + diff --git a/services/basket/src/EShopOnAbp.BasketService.Application/EShopOnAbp.BasketService.Application.csproj b/services/basket/src/EShopOnAbp.BasketService.Application/EShopOnAbp.BasketService.Application.csproj index 4115bcd4..8b43963d 100644 --- a/services/basket/src/EShopOnAbp.BasketService.Application/EShopOnAbp.BasketService.Application.csproj +++ b/services/basket/src/EShopOnAbp.BasketService.Application/EShopOnAbp.BasketService.Application.csproj @@ -13,8 +13,8 @@ - - + + diff --git a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/EShopOnAbp.BasketService.Domain.Shared.csproj b/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/EShopOnAbp.BasketService.Domain.Shared.csproj index e3dcf348..0e7c2f6c 100644 --- a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/EShopOnAbp.BasketService.Domain.Shared.csproj +++ b/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/EShopOnAbp.BasketService.Domain.Shared.csproj @@ -9,7 +9,7 @@ - + diff --git a/services/basket/src/EShopOnAbp.BasketService.Domain/EShopOnAbp.BasketService.Domain.csproj b/services/basket/src/EShopOnAbp.BasketService.Domain/EShopOnAbp.BasketService.Domain.csproj index effd4663..215dc225 100644 --- a/services/basket/src/EShopOnAbp.BasketService.Domain/EShopOnAbp.BasketService.Domain.csproj +++ b/services/basket/src/EShopOnAbp.BasketService.Domain/EShopOnAbp.BasketService.Domain.csproj @@ -12,7 +12,7 @@ - + diff --git a/services/basket/src/EShopOnAbp.BasketService.HttpApi.Client/EShopOnAbp.BasketService.HttpApi.Client.csproj b/services/basket/src/EShopOnAbp.BasketService.HttpApi.Client/EShopOnAbp.BasketService.HttpApi.Client.csproj index 06af9966..7363ea9c 100644 --- a/services/basket/src/EShopOnAbp.BasketService.HttpApi.Client/EShopOnAbp.BasketService.HttpApi.Client.csproj +++ b/services/basket/src/EShopOnAbp.BasketService.HttpApi.Client/EShopOnAbp.BasketService.HttpApi.Client.csproj @@ -12,7 +12,7 @@ - + diff --git a/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/BasketServiceHttpApiHostModule.cs b/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/BasketServiceHttpApiHostModule.cs index b3118a87..aa2e62ce 100644 --- a/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/BasketServiceHttpApiHostModule.cs +++ b/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/BasketServiceHttpApiHostModule.cs @@ -75,7 +75,6 @@ namespace EShopOnAbp.BasketService // app.UseHttpMetrics(); app.UseAuthentication(); app.UseAbpClaimsMap(); - app.UseMultiTenancy(); app.UseAuthorization(); app.UseSwagger(); app.UseSwaggerUI(options => { options.SwaggerEndpoint("/swagger/v1/swagger.json", "Saas Service API"); }); diff --git a/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/Dockerfile.local b/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/Dockerfile.local new file mode 100644 index 00000000..c9ac1070 --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/Dockerfile.local @@ -0,0 +1,4 @@ + FROM mcr.microsoft.com/dotnet/aspnet:6.0 + COPY bin/Release/net6.0/publish/ app/ + WORKDIR /app + ENTRYPOINT ["dotnet", "EShopOnAbp.BasketService.HttpApi.Host.dll"] \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/appsettings.json b/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/appsettings.json index 74b8e977..31fc1e23 100644 --- a/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/appsettings.json +++ b/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/appsettings.json @@ -1,7 +1,7 @@ { "App": { "SelfUrl": "https://localhost:44355", - "CorsOrigins": "https://localhost:44371,https://localhost:44372,https://localhost:44373" + "CorsOrigins": "https://localhost:44372,https://localhost:44373" }, "AuthServer": { "Authority": "https://localhost:44330", diff --git a/services/basket/src/EShopOnAbp.BasketService.HttpApi/EShopOnAbp.BasketService.HttpApi.csproj b/services/basket/src/EShopOnAbp.BasketService.HttpApi/EShopOnAbp.BasketService.HttpApi.csproj index b3caff61..446e1cb4 100644 --- a/services/basket/src/EShopOnAbp.BasketService.HttpApi/EShopOnAbp.BasketService.HttpApi.csproj +++ b/services/basket/src/EShopOnAbp.BasketService.HttpApi/EShopOnAbp.BasketService.HttpApi.csproj @@ -12,7 +12,7 @@ - + diff --git a/services/basket/test/EShopOnAbp.BasketService.EntityFrameworkCore.Tests/EShopOnAbp.BasketService.EntityFrameworkCore.Tests.csproj b/services/basket/test/EShopOnAbp.BasketService.EntityFrameworkCore.Tests/EShopOnAbp.BasketService.EntityFrameworkCore.Tests.csproj index 2117ba35..cea4da3b 100644 --- a/services/basket/test/EShopOnAbp.BasketService.EntityFrameworkCore.Tests/EShopOnAbp.BasketService.EntityFrameworkCore.Tests.csproj +++ b/services/basket/test/EShopOnAbp.BasketService.EntityFrameworkCore.Tests/EShopOnAbp.BasketService.EntityFrameworkCore.Tests.csproj @@ -9,7 +9,7 @@ - + diff --git a/services/basket/test/EShopOnAbp.BasketService.HttpApi.Client.ConsoleTestApp/EShopOnAbp.BasketService.HttpApi.Client.ConsoleTestApp.csproj b/services/basket/test/EShopOnAbp.BasketService.HttpApi.Client.ConsoleTestApp/EShopOnAbp.BasketService.HttpApi.Client.ConsoleTestApp.csproj index 6c184840..08207a00 100644 --- a/services/basket/test/EShopOnAbp.BasketService.HttpApi.Client.ConsoleTestApp/EShopOnAbp.BasketService.HttpApi.Client.ConsoleTestApp.csproj +++ b/services/basket/test/EShopOnAbp.BasketService.HttpApi.Client.ConsoleTestApp/EShopOnAbp.BasketService.HttpApi.Client.ConsoleTestApp.csproj @@ -19,7 +19,7 @@ - + diff --git a/services/basket/test/EShopOnAbp.BasketService.TestBase/EShopOnAbp.BasketService.TestBase.csproj b/services/basket/test/EShopOnAbp.BasketService.TestBase/EShopOnAbp.BasketService.TestBase.csproj index fd68828f..02ad5e36 100644 --- a/services/basket/test/EShopOnAbp.BasketService.TestBase/EShopOnAbp.BasketService.TestBase.csproj +++ b/services/basket/test/EShopOnAbp.BasketService.TestBase/EShopOnAbp.BasketService.TestBase.csproj @@ -8,9 +8,9 @@ - - - + + + diff --git a/services/catalog/src/EShopOnAbp.CatalogService.Application.Contracts/EShopOnAbp.CatalogService.Application.Contracts.csproj b/services/catalog/src/EShopOnAbp.CatalogService.Application.Contracts/EShopOnAbp.CatalogService.Application.Contracts.csproj index ea927ba1..cb747838 100644 --- a/services/catalog/src/EShopOnAbp.CatalogService.Application.Contracts/EShopOnAbp.CatalogService.Application.Contracts.csproj +++ b/services/catalog/src/EShopOnAbp.CatalogService.Application.Contracts/EShopOnAbp.CatalogService.Application.Contracts.csproj @@ -12,8 +12,8 @@ - - + + diff --git a/services/catalog/src/EShopOnAbp.CatalogService.Application/EShopOnAbp.CatalogService.Application.csproj b/services/catalog/src/EShopOnAbp.CatalogService.Application/EShopOnAbp.CatalogService.Application.csproj index 075b1252..a1bb8507 100644 --- a/services/catalog/src/EShopOnAbp.CatalogService.Application/EShopOnAbp.CatalogService.Application.csproj +++ b/services/catalog/src/EShopOnAbp.CatalogService.Application/EShopOnAbp.CatalogService.Application.csproj @@ -13,8 +13,8 @@ - - + + diff --git a/services/catalog/src/EShopOnAbp.CatalogService.Domain.Shared/EShopOnAbp.CatalogService.Domain.Shared.csproj b/services/catalog/src/EShopOnAbp.CatalogService.Domain.Shared/EShopOnAbp.CatalogService.Domain.Shared.csproj index 83acf82b..791705ee 100644 --- a/services/catalog/src/EShopOnAbp.CatalogService.Domain.Shared/EShopOnAbp.CatalogService.Domain.Shared.csproj +++ b/services/catalog/src/EShopOnAbp.CatalogService.Domain.Shared/EShopOnAbp.CatalogService.Domain.Shared.csproj @@ -9,7 +9,7 @@ - + diff --git a/services/catalog/src/EShopOnAbp.CatalogService.Domain/EShopOnAbp.CatalogService.Domain.csproj b/services/catalog/src/EShopOnAbp.CatalogService.Domain/EShopOnAbp.CatalogService.Domain.csproj index 6f4f0a19..149f5c27 100644 --- a/services/catalog/src/EShopOnAbp.CatalogService.Domain/EShopOnAbp.CatalogService.Domain.csproj +++ b/services/catalog/src/EShopOnAbp.CatalogService.Domain/EShopOnAbp.CatalogService.Domain.csproj @@ -12,7 +12,7 @@ - + diff --git a/services/catalog/src/EShopOnAbp.CatalogService.EntityFrameworkCore/EShopOnAbp.CatalogService.EntityFrameworkCore.csproj b/services/catalog/src/EShopOnAbp.CatalogService.EntityFrameworkCore/EShopOnAbp.CatalogService.EntityFrameworkCore.csproj index 1a240394..1edca607 100644 --- a/services/catalog/src/EShopOnAbp.CatalogService.EntityFrameworkCore/EShopOnAbp.CatalogService.EntityFrameworkCore.csproj +++ b/services/catalog/src/EShopOnAbp.CatalogService.EntityFrameworkCore/EShopOnAbp.CatalogService.EntityFrameworkCore.csproj @@ -12,7 +12,7 @@ - + diff --git a/services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Client/EShopOnAbp.CatalogService.HttpApi.Client.csproj b/services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Client/EShopOnAbp.CatalogService.HttpApi.Client.csproj index b1bf5614..7fdf29d2 100644 --- a/services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Client/EShopOnAbp.CatalogService.HttpApi.Client.csproj +++ b/services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Client/EShopOnAbp.CatalogService.HttpApi.Client.csproj @@ -12,7 +12,7 @@ - + diff --git a/services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/CatalogServiceHttpApiHostModule.cs b/services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/CatalogServiceHttpApiHostModule.cs index 8cadceea..78d3ea91 100644 --- a/services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/CatalogServiceHttpApiHostModule.cs +++ b/services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/CatalogServiceHttpApiHostModule.cs @@ -80,7 +80,6 @@ namespace EShopOnAbp.CatalogService // app.UseHttpMetrics(); app.UseAuthentication(); app.UseAbpClaimsMap(); - app.UseMultiTenancy(); app.UseAuthorization(); app.UseSwagger(); app.UseSwaggerUI(options => { options.SwaggerEndpoint("/swagger/v1/swagger.json", "Saas Service API"); }); diff --git a/services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/DbMigrations/CatalogServiceDatabaseMigrationEventHandler.cs b/services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/DbMigrations/CatalogServiceDatabaseMigrationEventHandler.cs index 59f04153..ee8cda8c 100644 --- a/services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/DbMigrations/CatalogServiceDatabaseMigrationEventHandler.cs +++ b/services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/DbMigrations/CatalogServiceDatabaseMigrationEventHandler.cs @@ -5,7 +5,6 @@ using System.Threading.Tasks; using Volo.Abp.Data; using Volo.Abp.EventBus.Distributed; using Volo.Abp.MultiTenancy; -using Volo.Abp.TenantManagement; using Volo.Abp.Uow; namespace EShopOnAbp.CatalogService.DbMigrations @@ -18,13 +17,11 @@ namespace EShopOnAbp.CatalogService.DbMigrations ICurrentTenant currentTenant, IUnitOfWorkManager unitOfWorkManager, ITenantStore tenantStore, - ITenantRepository tenantRepository, IDistributedEventBus distributedEventBus ) : base( currentTenant, unitOfWorkManager, tenantStore, - tenantRepository, distributedEventBus, CatalogServiceDbProperties.ConnectionStringName) { diff --git a/services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/Dockerfile.local b/services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/Dockerfile.local new file mode 100644 index 00000000..28dcb67f --- /dev/null +++ b/services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/Dockerfile.local @@ -0,0 +1,4 @@ + FROM mcr.microsoft.com/dotnet/aspnet:6.0 + COPY bin/Release/net6.0/publish/ app/ + WORKDIR /app + ENTRYPOINT ["dotnet", "EShopOnAbp.CatalogService.HttpApi.Host.dll"] \ No newline at end of file diff --git a/services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/EShopOnAbp.CatalogService.HttpApi.Host.csproj b/services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/EShopOnAbp.CatalogService.HttpApi.Host.csproj index 76b13b19..5024ad55 100644 --- a/services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/EShopOnAbp.CatalogService.HttpApi.Host.csproj +++ b/services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/EShopOnAbp.CatalogService.HttpApi.Host.csproj @@ -1,4 +1,4 @@ - + diff --git a/services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/appsettings.json b/services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/appsettings.json index 3455109c..7d8efd15 100644 --- a/services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/appsettings.json +++ b/services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/appsettings.json @@ -1,7 +1,7 @@ { "App": { "SelfUrl": "https://localhost:44354", - "CorsOrigins": "https://localhost:44371,https://localhost:44372,https://localhost:44373" + "CorsOrigins": "https://localhost:44372,https://localhost:44373" }, "AuthServer": { "Authority": "https://localhost:44330", diff --git a/services/catalog/src/EShopOnAbp.CatalogService.HttpApi/EShopOnAbp.CatalogService.HttpApi.csproj b/services/catalog/src/EShopOnAbp.CatalogService.HttpApi/EShopOnAbp.CatalogService.HttpApi.csproj index 4309057e..17a9093e 100644 --- a/services/catalog/src/EShopOnAbp.CatalogService.HttpApi/EShopOnAbp.CatalogService.HttpApi.csproj +++ b/services/catalog/src/EShopOnAbp.CatalogService.HttpApi/EShopOnAbp.CatalogService.HttpApi.csproj @@ -12,7 +12,7 @@ - + diff --git a/services/catalog/test/EShopOnAbp.CatalogService.EntityFrameworkCore.Tests/EShopOnAbp.CatalogService.EntityFrameworkCore.Tests.csproj b/services/catalog/test/EShopOnAbp.CatalogService.EntityFrameworkCore.Tests/EShopOnAbp.CatalogService.EntityFrameworkCore.Tests.csproj index 4bd6a924..db0600fe 100644 --- a/services/catalog/test/EShopOnAbp.CatalogService.EntityFrameworkCore.Tests/EShopOnAbp.CatalogService.EntityFrameworkCore.Tests.csproj +++ b/services/catalog/test/EShopOnAbp.CatalogService.EntityFrameworkCore.Tests/EShopOnAbp.CatalogService.EntityFrameworkCore.Tests.csproj @@ -10,7 +10,7 @@ - + diff --git a/services/catalog/test/EShopOnAbp.CatalogService.HttpApi.Client.ConsoleTestApp/EShopOnAbp.CatalogService.HttpApi.Client.ConsoleTestApp.csproj b/services/catalog/test/EShopOnAbp.CatalogService.HttpApi.Client.ConsoleTestApp/EShopOnAbp.CatalogService.HttpApi.Client.ConsoleTestApp.csproj index 18bb15b7..3af3a3fc 100644 --- a/services/catalog/test/EShopOnAbp.CatalogService.HttpApi.Client.ConsoleTestApp/EShopOnAbp.CatalogService.HttpApi.Client.ConsoleTestApp.csproj +++ b/services/catalog/test/EShopOnAbp.CatalogService.HttpApi.Client.ConsoleTestApp/EShopOnAbp.CatalogService.HttpApi.Client.ConsoleTestApp.csproj @@ -19,7 +19,7 @@ - + diff --git a/services/catalog/test/EShopOnAbp.CatalogService.TestBase/EShopOnAbp.CatalogService.TestBase.csproj b/services/catalog/test/EShopOnAbp.CatalogService.TestBase/EShopOnAbp.CatalogService.TestBase.csproj index f6cc6f10..2c627dcb 100644 --- a/services/catalog/test/EShopOnAbp.CatalogService.TestBase/EShopOnAbp.CatalogService.TestBase.csproj +++ b/services/catalog/test/EShopOnAbp.CatalogService.TestBase/EShopOnAbp.CatalogService.TestBase.csproj @@ -8,9 +8,9 @@ - - - + + + diff --git a/services/identity/src/EShopOnAbp.IdentityService.Application.Contracts/EShopOnAbp.IdentityService.Application.Contracts.csproj b/services/identity/src/EShopOnAbp.IdentityService.Application.Contracts/EShopOnAbp.IdentityService.Application.Contracts.csproj index 47eae2b5..170a9483 100644 --- a/services/identity/src/EShopOnAbp.IdentityService.Application.Contracts/EShopOnAbp.IdentityService.Application.Contracts.csproj +++ b/services/identity/src/EShopOnAbp.IdentityService.Application.Contracts/EShopOnAbp.IdentityService.Application.Contracts.csproj @@ -10,8 +10,8 @@ - - + + diff --git a/services/identity/src/EShopOnAbp.IdentityService.Application/EShopOnAbp.IdentityService.Application.csproj b/services/identity/src/EShopOnAbp.IdentityService.Application/EShopOnAbp.IdentityService.Application.csproj index 7b962d30..626e51d6 100644 --- a/services/identity/src/EShopOnAbp.IdentityService.Application/EShopOnAbp.IdentityService.Application.csproj +++ b/services/identity/src/EShopOnAbp.IdentityService.Application/EShopOnAbp.IdentityService.Application.csproj @@ -11,8 +11,8 @@ - - + + diff --git a/services/identity/src/EShopOnAbp.IdentityService.Domain.Shared/EShopOnAbp.IdentityService.Domain.Shared.csproj b/services/identity/src/EShopOnAbp.IdentityService.Domain.Shared/EShopOnAbp.IdentityService.Domain.Shared.csproj index a53ca62b..47f771d3 100644 --- a/services/identity/src/EShopOnAbp.IdentityService.Domain.Shared/EShopOnAbp.IdentityService.Domain.Shared.csproj +++ b/services/identity/src/EShopOnAbp.IdentityService.Domain.Shared/EShopOnAbp.IdentityService.Domain.Shared.csproj @@ -6,12 +6,12 @@ - + - - + + diff --git a/services/identity/src/EShopOnAbp.IdentityService.Domain/EShopOnAbp.IdentityService.Domain.csproj b/services/identity/src/EShopOnAbp.IdentityService.Domain/EShopOnAbp.IdentityService.Domain.csproj index 36259867..dcf27f56 100644 --- a/services/identity/src/EShopOnAbp.IdentityService.Domain/EShopOnAbp.IdentityService.Domain.csproj +++ b/services/identity/src/EShopOnAbp.IdentityService.Domain/EShopOnAbp.IdentityService.Domain.csproj @@ -10,8 +10,8 @@ - - + + diff --git a/services/identity/src/EShopOnAbp.IdentityService.EntityFrameworkCore/EShopOnAbp.IdentityService.EntityFrameworkCore.csproj b/services/identity/src/EShopOnAbp.IdentityService.EntityFrameworkCore/EShopOnAbp.IdentityService.EntityFrameworkCore.csproj index 7d565779..18b0d148 100644 --- a/services/identity/src/EShopOnAbp.IdentityService.EntityFrameworkCore/EShopOnAbp.IdentityService.EntityFrameworkCore.csproj +++ b/services/identity/src/EShopOnAbp.IdentityService.EntityFrameworkCore/EShopOnAbp.IdentityService.EntityFrameworkCore.csproj @@ -6,7 +6,7 @@ - + runtime; build; native; contentfiles; analyzers; buildtransitive @@ -16,9 +16,9 @@ - - - + + + diff --git a/services/identity/src/EShopOnAbp.IdentityService.HttpApi.Client/EShopOnAbp.IdentityService.HttpApi.Client.csproj b/services/identity/src/EShopOnAbp.IdentityService.HttpApi.Client/EShopOnAbp.IdentityService.HttpApi.Client.csproj index 0fddd41a..2817d504 100644 --- a/services/identity/src/EShopOnAbp.IdentityService.HttpApi.Client/EShopOnAbp.IdentityService.HttpApi.Client.csproj +++ b/services/identity/src/EShopOnAbp.IdentityService.HttpApi.Client/EShopOnAbp.IdentityService.HttpApi.Client.csproj @@ -10,8 +10,8 @@ - - + + diff --git a/services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/DbMigrations/IdentityServerDataSeeder.cs b/services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/DbMigrations/IdentityServerDataSeeder.cs index 504be8b6..98b4cb84 100644 --- a/services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/DbMigrations/IdentityServerDataSeeder.cs +++ b/services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/DbMigrations/IdentityServerDataSeeder.cs @@ -215,10 +215,10 @@ namespace EShopOnAbp.IdentityService.DbMigrations }; //Public Web Client - var publicWebClientRootUrl = _configuration["IdentityServerClients:EShopOnAbp_PublicWeb:RootUrl"] + var publicWebClientRootUrl = _configuration["IdentityServerClients:PublicWeb:RootUrl"] .EnsureEndsWith('/'); await CreateClientAsync( - name: "EShopOnAbp_PublicWeb", + name: "PublicWeb", scopes: commonScopes.Union(new[] { "AdministrationService" @@ -233,9 +233,9 @@ namespace EShopOnAbp.IdentityService.DbMigrations //Angular Client var angularClientRootUrl = - _configuration["IdentityServerClients:EShopOnAbp_Angular:RootUrl"].TrimEnd('/'); + _configuration["IdentityServerClients:Web:RootUrl"].TrimEnd('/'); await CreateClientAsync( - name: "EShopOnAbp_Angular", + name: "Web", scopes: commonScopes.Union(new[] { "IdentityService", diff --git a/services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/DbMigrations/IdentityServiceDatabaseMigrationEventHandler.cs b/services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/DbMigrations/IdentityServiceDatabaseMigrationEventHandler.cs index c63ec2f5..f028b895 100644 --- a/services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/DbMigrations/IdentityServiceDatabaseMigrationEventHandler.cs +++ b/services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/DbMigrations/IdentityServiceDatabaseMigrationEventHandler.cs @@ -9,7 +9,6 @@ using Volo.Abp.EventBus.Distributed; using Volo.Abp.EventBus.Local; using Volo.Abp.Identity; using Volo.Abp.MultiTenancy; -using Volo.Abp.TenantManagement; using Volo.Abp.Uow; namespace EShopOnAbp.IdentityService.DbMigrations @@ -29,14 +28,12 @@ namespace EShopOnAbp.IdentityService.DbMigrations ITenantStore tenantStore, IIdentityDataSeeder identityDataSeeder, IdentityServerDataSeeder identityServerDataSeeder, - ITenantRepository tenantRepository, IDistributedEventBus distributedEventBus, ILocalEventBus localEventBus ) : base( currentTenant, unitOfWorkManager, tenantStore, - tenantRepository, distributedEventBus, IdentityServiceDbProperties.ConnectionStringName) { @@ -61,12 +58,6 @@ namespace EShopOnAbp.IdentityService.DbMigrations adminPassword: IdentityServiceDbProperties.DefaultAdminPassword ); - if (eventData.TenantId == null && schemaMigrated) - { - /* Migrate tenant databases after host migration */ - await QueueTenantMigrationsAsync(); - } - await _localEventBus.PublishAsync(new ApplyDatabaseSeedsEto()); } catch (Exception ex) diff --git a/services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/Dockerfile b/services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/Dockerfile index b9c94610..a2a86593 100644 --- a/services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/Dockerfile +++ b/services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/Dockerfile @@ -1,4 +1,52 @@ - FROM mcr.microsoft.com/dotnet/aspnet:6.0 - COPY bin/Release/net6.0/publish/ app/ - WORKDIR /app - ENTRYPOINT ["dotnet", "EShopOnAbp.IdentityService.HttpApi.Host.dll"] \ No newline at end of file +FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base +WORKDIR /app +EXPOSE 80 +EXPOSE 443 + +FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build +WORKDIR /src + +# It's important to keep lines from here down to "COPY . ." identical in all Dockerfiles +# to take advantage of Docker's build cache, to speed up local container builds +COPY "EShopOnAbp.sln" "EShopOnAbp.sln" + +# Applications +COPY "apps/auth-server/src/EShopOnAbp.AuthServer/EShopOnAbp.AuthServer.csproj" "apps/auth-server/src/EShopOnAbp.AuthServer/EShopOnAbp.AuthServer.csproj" +COPY "apps/public-web/src/EShopOnAbp.PublicWeb/EShopOnAbp.PublicWeb.csproj" "apps/public-web/src/EShopOnAbp.PublicWeb/EShopOnAbp.PublicWeb.csproj" + +# Shared +COPY "shared/EShopOnAbp.Shared.Hosting/EShopOnAbp.Shared.Hosting.csproj" "shared/EShopOnAbp.Shared.Hosting/EShopOnAbp.Shared.Hosting.csproj" +COPY "shared/EShopOnAbp.Shared.Hosting.AspNetCore/EShopOnAbp.Shared.Hosting.AspNetCore.csproj" "shared/EShopOnAbp.Shared.Hosting.AspNetCore/EShopOnAbp.Shared.Hosting.AspNetCore.csproj" +COPY "shared/EShopOnAbp.Shared.Hosting.Gateways/EShopOnAbp.Shared.Hosting.Gateways.csproj" "shared/EShopOnAbp.Shared.Hosting.Gateways/EShopOnAbp.Shared.Hosting.Gateways.csproj" +COPY "shared/EShopOnAbp.Shared.Hosting.Microservices/EShopOnAbp.Shared.Hosting.Microservices.csproj" "shared/EShopOnAbp.Shared.Hosting.Microservices/EShopOnAbp.Shared.Hosting.Microservices.csproj" +COPY "shared/EShopOnAbp.Shared.Localization/EShopOnAbp.Shared.Localization.csproj" "shared/EShopOnAbp.Shared.Localization/EShopOnAbp.Shared.Localization.csproj" + +# Microservices +COPY "services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/EShopOnAbp.AdministrationService.HttpApi.Host.csproj" "services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/EShopOnAbp.AdministrationService.HttpApi.Host.csproj" +COPY "services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/EShopOnAbp.IdentityService.HttpApi.Host.csproj" "services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/EShopOnAbp.IdentityService.HttpApi.Host.csproj" +COPY *"services/saas/src/EShopOnAbp.SaasService.HttpApi.Host/EShopOnAbp.SaasService.HttpApi.Host.csproj" "services/saas/src/EShopOnAbp.SaasService.HttpApi.Host/EShopOnAbp.SaasService.HttpApi.Host.csproj" +COPY *"services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/EShopOnAbp.BasketService.HttpApi.Host.csproj" "services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/EShopOnAbp.BasketService.HttpApi.Host.csproj" +COPY *"services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/EShopOnAbp.OrderingService.HttpApi.Host.csproj" "services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/EShopOnAbp.OrderingService.HttpApi.Host.csproj" +COPY *"services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/EShopOnAbp.CatalogService.HttpApi.Host.csproj" "services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/EShopOnAbp.CatalogService.HttpApi.Host.csproj" +COPY *"services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/EShopOnAbp.PaymentService.HttpApi.Host.csproj" "services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/EShopOnAbp.PaymentService.HttpApi.Host.csproj" + +# Gateways +COPY "gateways/web/src/EShopOnAbp.WebGateway/EShopOnAbp.WebGateway.csproj" "gateways/web/src/EShopOnAbp.WebGateway/EShopOnAbp.WebGateway.csproj" +COPY "gateways/web-public/src/EShopOnAbp.WebPublicGateway/EShopOnAbp.WebPublicGateway.csproj" "gateways/web-public/src/EShopOnAbp.WebPublicGateway/EShopOnAbp.WebPublicGateway.csproj" + +COPY "NuGet.Config" "NuGet.Config" + +RUN dotnet restore "EShopOnAbp.sln" +COPY . . + +WORKDIR "/src/services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host" +RUN dotnet publish -c Release -o /app +# Should be used after .net6 is out of preview for better performance +# RUN dotnet publish --no-restore -c Release -o /app + +FROM build AS publish + +FROM base AS final +WORKDIR /app +COPY --from=publish /app . +ENTRYPOINT ["dotnet", "EShopOnAbp.IdentityService.HttpApi.Host.dll"] \ No newline at end of file diff --git a/services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/Dockerfile.local b/services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/Dockerfile.local new file mode 100644 index 00000000..b9c94610 --- /dev/null +++ b/services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/Dockerfile.local @@ -0,0 +1,4 @@ + FROM mcr.microsoft.com/dotnet/aspnet:6.0 + COPY bin/Release/net6.0/publish/ app/ + WORKDIR /app + ENTRYPOINT ["dotnet", "EShopOnAbp.IdentityService.HttpApi.Host.dll"] \ No newline at end of file diff --git a/services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/EShopOnAbp.IdentityService.HttpApi.Host.csproj b/services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/EShopOnAbp.IdentityService.HttpApi.Host.csproj index c3b1a16f..98858afd 100644 --- a/services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/EShopOnAbp.IdentityService.HttpApi.Host.csproj +++ b/services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/EShopOnAbp.IdentityService.HttpApi.Host.csproj @@ -6,8 +6,7 @@ - - all + runtime; build; native; contentfiles; analyzers; buildtransitive @@ -26,351 +25,5 @@ - - - <_ContentIncludedByDefault Remove="wwwroot\global-styles.css" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\@fortawesome\fontawesome-free\css\all.css" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\@fortawesome\fontawesome-free\css\v4-shims.css" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\@fortawesome\fontawesome-free\webfonts\fa-brands-400.eot" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\@fortawesome\fontawesome-free\webfonts\fa-brands-400.svg" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\@fortawesome\fontawesome-free\webfonts\fa-brands-400.ttf" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\@fortawesome\fontawesome-free\webfonts\fa-brands-400.woff" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\@fortawesome\fontawesome-free\webfonts\fa-brands-400.woff2" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\@fortawesome\fontawesome-free\webfonts\fa-regular-400.eot" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\@fortawesome\fontawesome-free\webfonts\fa-regular-400.svg" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\@fortawesome\fontawesome-free\webfonts\fa-regular-400.ttf" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\@fortawesome\fontawesome-free\webfonts\fa-regular-400.woff" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\@fortawesome\fontawesome-free\webfonts\fa-regular-400.woff2" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\@fortawesome\fontawesome-free\webfonts\fa-solid-900.eot" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\@fortawesome\fontawesome-free\webfonts\fa-solid-900.svg" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\@fortawesome\fontawesome-free\webfonts\fa-solid-900.ttf" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\@fortawesome\fontawesome-free\webfonts\fa-solid-900.woff" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\@fortawesome\fontawesome-free\webfonts\fa-solid-900.woff2" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\abp\core\abp.css" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\abp\core\abp.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\abp\jquery\abp.jquery.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\abp\luxon\abp.luxon.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\abp\utils\abp-utils.umd.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\abp\utils\abp-utils.umd.js.map" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\abp\utils\abp-utils.umd.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\abp\utils\abp-utils.umd.min.js.map" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\bootstrap-datepicker.css.map" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\bootstrap-datepicker.min.css" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\bootstrap-datepicker.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker-en-CA.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.ar-tn.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.ar.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.az.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.bg.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.bm.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.bn.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.br.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.bs.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.ca.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.cs.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.cy.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.da.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.de.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.el.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.en-AU.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.en-CA.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.en-GB.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.en-IE.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.en-NZ.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.en-ZA.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.eo.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.es.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.et.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.eu.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.fa.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.fi.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.fo.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.fr-CH.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.fr.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.gl.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.he.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.hi.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.hr.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.hu.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.hy.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.id.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.is.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.it-CH.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.it.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.ja.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.ka.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.kh.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.kk.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.km.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.ko.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.kr.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.lt.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.lv.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.me.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.mk.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.mn.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.ms.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.nl-BE.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.nl.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.no.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.oc.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.pl.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.pt-BR.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.pt.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.ro.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.rs-latin.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.rs.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.ru.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.si.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.sk.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.sl.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.sq.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.sr-latin.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.sr.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.sv.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.sw.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.ta.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.tg.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.th.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.tk.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.tr.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.uk.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.uz-cyrl.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.uz-latn.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.vi.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.zh-CN.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap-datepicker\locales\bootstrap-datepicker.zh-TW.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap\css\bootstrap-rtl.css" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap\css\bootstrap-rtl.css.map" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap\css\bootstrap-rtl.min.css" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap\css\bootstrap-rtl.min.css.map" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap\css\bootstrap.css" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap\css\bootstrap.css.map" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap\css\bootstrap.min.css" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap\css\bootstrap.min.css.map" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap\js\bootstrap.bundle.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap\js\bootstrap.bundle.js.map" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap\js\bootstrap.bundle.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\bootstrap\js\bootstrap.bundle.min.js.map" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\datatables.net-bs4\css\dataTables.bootstrap4.css" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\datatables.net-bs4\js\dataTables.bootstrap4.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\datatables.net\js\jquery.dataTables.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-form\jquery.form.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-form\jquery.form.min.js.map" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation-unobtrusive\jquery.validate.unobtrusive.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\jquery.validate.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_ar.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_az.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_bg.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_bn_BD.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_ca.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_cs.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_da.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_de.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_el.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_es.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_es_AR.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_es_PE.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_et.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_eu.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_fa.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_fi.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_fr.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_ge.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_gl.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_he.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_hr.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_hu.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_hy_AM.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_id.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_is.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_it.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_ja.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_ka.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_kk.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_ko.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_lt.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_lv.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_mk.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_my.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_nl.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_no.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_pl.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_pt_BR.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_pt_PT.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_ro.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_ru.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_sd.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_si.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_sk.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_sl.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_sr.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_sr_lat.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_sv.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_th.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_tj.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_tr.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_uk.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_ur.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_vi.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_zh.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\messages_zh_TW.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\methods_de.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\methods_es_CL.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\methods_fi.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\methods_nl.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery-validation\localization\methods_pt.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\jquery\jquery.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\lodash\lodash.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\luxon\luxon.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\luxon\luxon.js.map" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\luxon\luxon.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\luxon\luxon.min.js.map" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\malihu-custom-scrollbar-plugin\jquery.mCustomScrollbar.concat.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\malihu-custom-scrollbar-plugin\jquery.mCustomScrollbar.css" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\malihu-custom-scrollbar-plugin\jquery.mCustomScrollbar.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\malihu-custom-scrollbar-plugin\mCSB_buttons.png" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\malihu-custom-scrollbar-plugin\package.json" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\malihu-custom-scrollbar-plugin\readme.md" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\css\select2.min.css" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\af.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\ar.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\az.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\bg.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\bn.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\bs.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\ca.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\cs.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\da.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\de.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\dsb.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\el.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\en.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\es.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\et.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\eu.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\fa.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\fi.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\fr.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\gl.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\he.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\hi.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\hr.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\hsb.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\hu.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\hy.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\id.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\is.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\it.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\ja.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\ka.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\km.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\ko.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\lt.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\lv.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\mk.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\ms.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\nb.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\ne.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\nl.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\pl.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\ps.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\pt-BR.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\pt.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\ro.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\ru.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\sk.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\sl.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\sq.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\sr-Cyrl.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\sr.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\sv.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\th.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\tk.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\tr.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\uk.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\vi.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\zh-CN.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\i18n\zh-TW.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\select2-bootstrap-modal-patch.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\select2.full.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\select2\js\select2.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\sweetalert\sweetalert.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\jquery.timeago.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.af.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.am.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.ar.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.az-short.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.az.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.be.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.bg.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.bs.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.ca.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.cs.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.cy.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.da.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.de-short.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.de.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.dv.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.el.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.en-short.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.en.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.es-short.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.es.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.et.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.eu.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.fa-short.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.fa.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.fi.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.fr-short.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.fr.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.gl.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.he.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.hr.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.hu.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.hy.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.id.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.is.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.it-short.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.it.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.ja.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.jv.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.ko.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.ky.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.lt.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.lv.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.mk.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.nl.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.no.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.pl.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.pt-br-short.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.pt-br.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.pt-short.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.pt.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.ro.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.rs.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.ru.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.rw.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.si.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.sk.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.sl.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.sq.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.sr.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.sv.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.th.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.tr-short.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.tr.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.uk.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.ur.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.uz.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.vi.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.zh-CN.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\jquery.timeago.zh-TW.js" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\timeago\locales\README.md" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\toastr\toastr.css" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\toastr\toastr.js.map" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\toastr\toastr.min.css" /> - <_ContentIncludedByDefault Remove="wwwroot\libs\toastr\toastr.min.js" /> - - + diff --git a/services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/IdentityServiceHttpApiHostModule.cs b/services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/IdentityServiceHttpApiHostModule.cs index 80122c46..44e5a01f 100644 --- a/services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/IdentityServiceHttpApiHostModule.cs +++ b/services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/IdentityServiceHttpApiHostModule.cs @@ -81,7 +81,6 @@ namespace EShopOnAbp.IdentityService // app.UseHttpMetrics(); app.UseAuthentication(); app.UseAbpClaimsMap(); - app.UseMultiTenancy(); app.UseAuthorization(); app.UseSwagger(); app.UseSwaggerUI(options => diff --git a/services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/appsettings.json b/services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/appsettings.json index f6ddc93a..4b03f5f5 100644 --- a/services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/appsettings.json +++ b/services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/appsettings.json @@ -1,7 +1,7 @@ { "App": { "SelfUrl": "https://localhost:44351", - "CorsOrigins": "https://localhost:44371,https://localhost:44372,https://localhost:44373" + "CorsOrigins": "https://localhost:44372,https://localhost:44373" }, "AuthServer": { "Authority": "https://localhost:44330", @@ -42,18 +42,19 @@ "ElasticSearch": { "Url": "http://localhost:9200" }, - "Consul": { - "Enabled": true, - "Host": "http://localhost:8500", - "Service": "Identity Service" - }, "IdentityServerClients": { - "EShopOnAbp_Angular": { + "Web": { "RootUrl": "http://localhost:4200" }, - "EShopOnAbp_PublicWeb": { + "PublicWeb": { "RootUrl": "https://localhost:44335/" }, + "WebGateway": { + "RootUrl": "https://localhost:44372" + }, + "PublicWebGateway": { + "RootUrl": "https://localhost:44373" + }, "IdentityService": { "RootUrl": "https://localhost:44351" }, diff --git a/services/identity/src/EShopOnAbp.IdentityService.HttpApi/EShopOnAbp.IdentityService.HttpApi.csproj b/services/identity/src/EShopOnAbp.IdentityService.HttpApi/EShopOnAbp.IdentityService.HttpApi.csproj index c0c3bc84..760450a4 100644 --- a/services/identity/src/EShopOnAbp.IdentityService.HttpApi/EShopOnAbp.IdentityService.HttpApi.csproj +++ b/services/identity/src/EShopOnAbp.IdentityService.HttpApi/EShopOnAbp.IdentityService.HttpApi.csproj @@ -10,8 +10,8 @@ - - + + diff --git a/services/identity/test/EShopOnAbp.IdentityService.EntityFrameworkCore.Tests/EShopOnAbp.IdentityService.EntityFrameworkCore.Tests.csproj b/services/identity/test/EShopOnAbp.IdentityService.EntityFrameworkCore.Tests/EShopOnAbp.IdentityService.EntityFrameworkCore.Tests.csproj index f0ac2cde..945c3612 100644 --- a/services/identity/test/EShopOnAbp.IdentityService.EntityFrameworkCore.Tests/EShopOnAbp.IdentityService.EntityFrameworkCore.Tests.csproj +++ b/services/identity/test/EShopOnAbp.IdentityService.EntityFrameworkCore.Tests/EShopOnAbp.IdentityService.EntityFrameworkCore.Tests.csproj @@ -8,7 +8,7 @@ - + diff --git a/services/identity/test/EShopOnAbp.IdentityService.TestBase/EShopOnAbp.IdentityService.TestBase.csproj b/services/identity/test/EShopOnAbp.IdentityService.TestBase/EShopOnAbp.IdentityService.TestBase.csproj index 9bd2dc3f..c72dab2c 100644 --- a/services/identity/test/EShopOnAbp.IdentityService.TestBase/EShopOnAbp.IdentityService.TestBase.csproj +++ b/services/identity/test/EShopOnAbp.IdentityService.TestBase/EShopOnAbp.IdentityService.TestBase.csproj @@ -6,9 +6,9 @@ - - - + + + diff --git a/services/ordering/src/EShopOnAbp.OrderingService.Application.Contracts/EShopOnAbp.OrderingService.Application.Contracts.csproj b/services/ordering/src/EShopOnAbp.OrderingService.Application.Contracts/EShopOnAbp.OrderingService.Application.Contracts.csproj index dbd7eb07..518b1cdf 100644 --- a/services/ordering/src/EShopOnAbp.OrderingService.Application.Contracts/EShopOnAbp.OrderingService.Application.Contracts.csproj +++ b/services/ordering/src/EShopOnAbp.OrderingService.Application.Contracts/EShopOnAbp.OrderingService.Application.Contracts.csproj @@ -8,8 +8,8 @@ - - + + diff --git a/services/ordering/src/EShopOnAbp.OrderingService.Application/EShopOnAbp.OrderingService.Application.csproj b/services/ordering/src/EShopOnAbp.OrderingService.Application/EShopOnAbp.OrderingService.Application.csproj index c352dca2..39b139e4 100644 --- a/services/ordering/src/EShopOnAbp.OrderingService.Application/EShopOnAbp.OrderingService.Application.csproj +++ b/services/ordering/src/EShopOnAbp.OrderingService.Application/EShopOnAbp.OrderingService.Application.csproj @@ -8,8 +8,8 @@ - - + + diff --git a/services/ordering/src/EShopOnAbp.OrderingService.Domain.Shared/EShopOnAbp.OrderingService.Domain.Shared.csproj b/services/ordering/src/EShopOnAbp.OrderingService.Domain.Shared/EShopOnAbp.OrderingService.Domain.Shared.csproj index e238c380..311a68f3 100644 --- a/services/ordering/src/EShopOnAbp.OrderingService.Domain.Shared/EShopOnAbp.OrderingService.Domain.Shared.csproj +++ b/services/ordering/src/EShopOnAbp.OrderingService.Domain.Shared/EShopOnAbp.OrderingService.Domain.Shared.csproj @@ -9,7 +9,7 @@ - + diff --git a/services/ordering/src/EShopOnAbp.OrderingService.Domain/EShopOnAbp.OrderingService.Domain.csproj b/services/ordering/src/EShopOnAbp.OrderingService.Domain/EShopOnAbp.OrderingService.Domain.csproj index d213e41d..86088977 100644 --- a/services/ordering/src/EShopOnAbp.OrderingService.Domain/EShopOnAbp.OrderingService.Domain.csproj +++ b/services/ordering/src/EShopOnAbp.OrderingService.Domain/EShopOnAbp.OrderingService.Domain.csproj @@ -8,7 +8,7 @@ - + diff --git a/services/ordering/src/EShopOnAbp.OrderingService.EntityFrameworkCore/EShopOnAbp.OrderingService.EntityFrameworkCore.csproj b/services/ordering/src/EShopOnAbp.OrderingService.EntityFrameworkCore/EShopOnAbp.OrderingService.EntityFrameworkCore.csproj index 61fb80d3..41acf5c4 100644 --- a/services/ordering/src/EShopOnAbp.OrderingService.EntityFrameworkCore/EShopOnAbp.OrderingService.EntityFrameworkCore.csproj +++ b/services/ordering/src/EShopOnAbp.OrderingService.EntityFrameworkCore/EShopOnAbp.OrderingService.EntityFrameworkCore.csproj @@ -1,4 +1,4 @@ - + @@ -9,7 +9,7 @@ - + diff --git a/services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Client/EShopOnAbp.OrderingService.HttpApi.Client.csproj b/services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Client/EShopOnAbp.OrderingService.HttpApi.Client.csproj index 0352b247..27e9e75b 100644 --- a/services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Client/EShopOnAbp.OrderingService.HttpApi.Client.csproj +++ b/services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Client/EShopOnAbp.OrderingService.HttpApi.Client.csproj @@ -8,7 +8,7 @@ - + diff --git a/services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/DbMigrations/OrderingServiceDatabaseMigrationEventHandler.cs b/services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/DbMigrations/OrderingServiceDatabaseMigrationEventHandler.cs index 65caa81f..a6c61851 100644 --- a/services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/DbMigrations/OrderingServiceDatabaseMigrationEventHandler.cs +++ b/services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/DbMigrations/OrderingServiceDatabaseMigrationEventHandler.cs @@ -1,14 +1,10 @@ using EShopOnAbp.OrderingService.EntityFrameworkCore; using EShopOnAbp.Shared.Hosting.Microservices.DbMigrations; using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; using System.Threading.Tasks; using Volo.Abp.Data; using Volo.Abp.EventBus.Distributed; using Volo.Abp.MultiTenancy; -using Volo.Abp.TenantManagement; using Volo.Abp.Uow; namespace EShopOnAbp.OrderingService.DbMigrations @@ -21,13 +17,11 @@ namespace EShopOnAbp.OrderingService.DbMigrations ICurrentTenant currentTenant, IUnitOfWorkManager unitOfWorkManager, ITenantStore tenantStore, - ITenantRepository tenantRepository, IDistributedEventBus distributedEventBus) : base( currentTenant, unitOfWorkManager, tenantStore, - tenantRepository, distributedEventBus, OrderingServiceDbProperties.ConnectionStringName) { diff --git a/services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/Dockerfile.local b/services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/Dockerfile.local new file mode 100644 index 00000000..a4e919b7 --- /dev/null +++ b/services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/Dockerfile.local @@ -0,0 +1,4 @@ + FROM mcr.microsoft.com/dotnet/aspnet:6.0 + COPY bin/Release/net6.0/publish/ app/ + WORKDIR /app + ENTRYPOINT ["dotnet", "EShopOnAbp.OrderingService.HttpApi.Host.dll"] \ No newline at end of file diff --git a/services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/EShopOnAbp.OrderingService.HttpApi.Host.csproj b/services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/EShopOnAbp.OrderingService.HttpApi.Host.csproj index 79434b15..a7610d8f 100644 --- a/services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/EShopOnAbp.OrderingService.HttpApi.Host.csproj +++ b/services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/EShopOnAbp.OrderingService.HttpApi.Host.csproj @@ -1,4 +1,4 @@ - + @@ -10,9 +10,9 @@ - - - + + + diff --git a/services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/OrderingServiceHttpApiHostModule.cs b/services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/OrderingServiceHttpApiHostModule.cs index 61941110..2fbed780 100644 --- a/services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/OrderingServiceHttpApiHostModule.cs +++ b/services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/OrderingServiceHttpApiHostModule.cs @@ -80,7 +80,6 @@ namespace EShopOnAbp.OrderingService // app.UseHttpMetrics(); app.UseAuthentication(); app.UseAbpClaimsMap(); - app.UseMultiTenancy(); app.UseAuthorization(); app.UseSwagger(); app.UseSwaggerUI(options => { options.SwaggerEndpoint("/swagger/v1/swagger.json", "Saas Service API"); }); diff --git a/services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/appsettings.json b/services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/appsettings.json index fbec0f06..450518aa 100644 --- a/services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/appsettings.json +++ b/services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/appsettings.json @@ -1,7 +1,7 @@ { "App": { "SelfUrl": "https://localhost:44356", - "CorsOrigins": "https://localhost:44371,https://localhost:44372,https://localhost:44373" + "CorsOrigins": "https://localhost:44372,https://localhost:44373" }, "AuthServer": { "Authority": "https://localhost:44330", diff --git a/services/ordering/src/EShopOnAbp.OrderingService.HttpApi/EShopOnAbp.OrderingService.HttpApi.csproj b/services/ordering/src/EShopOnAbp.OrderingService.HttpApi/EShopOnAbp.OrderingService.HttpApi.csproj index 93da1eab..d227847c 100644 --- a/services/ordering/src/EShopOnAbp.OrderingService.HttpApi/EShopOnAbp.OrderingService.HttpApi.csproj +++ b/services/ordering/src/EShopOnAbp.OrderingService.HttpApi/EShopOnAbp.OrderingService.HttpApi.csproj @@ -8,7 +8,7 @@ - + diff --git a/services/ordering/test/EShopOnAbp.OrderingService.EntityFrameworkCore.Tests/EShopOnAbp.OrderingService.EntityFrameworkCore.Tests.csproj b/services/ordering/test/EShopOnAbp.OrderingService.EntityFrameworkCore.Tests/EShopOnAbp.OrderingService.EntityFrameworkCore.Tests.csproj index b49efe8b..d0c22871 100644 --- a/services/ordering/test/EShopOnAbp.OrderingService.EntityFrameworkCore.Tests/EShopOnAbp.OrderingService.EntityFrameworkCore.Tests.csproj +++ b/services/ordering/test/EShopOnAbp.OrderingService.EntityFrameworkCore.Tests/EShopOnAbp.OrderingService.EntityFrameworkCore.Tests.csproj @@ -12,7 +12,7 @@ - + diff --git a/services/ordering/test/EShopOnAbp.OrderingService.HttpApi.Client.ConsoleTestApp/EShopOnAbp.OrderingService.HttpApi.Client.ConsoleTestApp.csproj b/services/ordering/test/EShopOnAbp.OrderingService.HttpApi.Client.ConsoleTestApp/EShopOnAbp.OrderingService.HttpApi.Client.ConsoleTestApp.csproj index 884fe289..1f1ee24f 100644 --- a/services/ordering/test/EShopOnAbp.OrderingService.HttpApi.Client.ConsoleTestApp/EShopOnAbp.OrderingService.HttpApi.Client.ConsoleTestApp.csproj +++ b/services/ordering/test/EShopOnAbp.OrderingService.HttpApi.Client.ConsoleTestApp/EShopOnAbp.OrderingService.HttpApi.Client.ConsoleTestApp.csproj @@ -7,7 +7,7 @@ - + diff --git a/services/ordering/test/EShopOnAbp.OrderingService.TestBase/EShopOnAbp.OrderingService.TestBase.csproj b/services/ordering/test/EShopOnAbp.OrderingService.TestBase/EShopOnAbp.OrderingService.TestBase.csproj index f0bdf6fb..e92ad921 100644 --- a/services/ordering/test/EShopOnAbp.OrderingService.TestBase/EShopOnAbp.OrderingService.TestBase.csproj +++ b/services/ordering/test/EShopOnAbp.OrderingService.TestBase/EShopOnAbp.OrderingService.TestBase.csproj @@ -14,9 +14,9 @@ - - - + + + diff --git a/services/payment/src/EShopOnAbp.PaymentService.Application.Contracts/EShopOnAbp.PaymentService.Application.Contracts.csproj b/services/payment/src/EShopOnAbp.PaymentService.Application.Contracts/EShopOnAbp.PaymentService.Application.Contracts.csproj index 6ce4b39a..6018ef83 100644 --- a/services/payment/src/EShopOnAbp.PaymentService.Application.Contracts/EShopOnAbp.PaymentService.Application.Contracts.csproj +++ b/services/payment/src/EShopOnAbp.PaymentService.Application.Contracts/EShopOnAbp.PaymentService.Application.Contracts.csproj @@ -8,8 +8,8 @@ - - + + diff --git a/services/payment/src/EShopOnAbp.PaymentService.Application/EShopOnAbp.PaymentService.Application.csproj b/services/payment/src/EShopOnAbp.PaymentService.Application/EShopOnAbp.PaymentService.Application.csproj index 730ad0d1..dd628a6b 100644 --- a/services/payment/src/EShopOnAbp.PaymentService.Application/EShopOnAbp.PaymentService.Application.csproj +++ b/services/payment/src/EShopOnAbp.PaymentService.Application/EShopOnAbp.PaymentService.Application.csproj @@ -1,4 +1,4 @@ - + @@ -9,8 +9,8 @@ - - + + diff --git a/services/payment/src/EShopOnAbp.PaymentService.Domain.Shared/EShopOnAbp.PaymentService.Domain.Shared.csproj b/services/payment/src/EShopOnAbp.PaymentService.Domain.Shared/EShopOnAbp.PaymentService.Domain.Shared.csproj index de87538d..5cd3f273 100644 --- a/services/payment/src/EShopOnAbp.PaymentService.Domain.Shared/EShopOnAbp.PaymentService.Domain.Shared.csproj +++ b/services/payment/src/EShopOnAbp.PaymentService.Domain.Shared/EShopOnAbp.PaymentService.Domain.Shared.csproj @@ -1,4 +1,4 @@ - + @@ -9,7 +9,7 @@ - + diff --git a/services/payment/src/EShopOnAbp.PaymentService.Domain/EShopOnAbp.PaymentService.Domain.csproj b/services/payment/src/EShopOnAbp.PaymentService.Domain/EShopOnAbp.PaymentService.Domain.csproj index 96a20f9e..08712ddb 100644 --- a/services/payment/src/EShopOnAbp.PaymentService.Domain/EShopOnAbp.PaymentService.Domain.csproj +++ b/services/payment/src/EShopOnAbp.PaymentService.Domain/EShopOnAbp.PaymentService.Domain.csproj @@ -1,4 +1,4 @@ - + @@ -8,7 +8,7 @@ - + diff --git a/services/payment/src/EShopOnAbp.PaymentService.EntityFrameworkCore/EShopOnAbp.PaymentService.EntityFrameworkCore.csproj b/services/payment/src/EShopOnAbp.PaymentService.EntityFrameworkCore/EShopOnAbp.PaymentService.EntityFrameworkCore.csproj index 9fc8d5fd..c4a3ccca 100644 --- a/services/payment/src/EShopOnAbp.PaymentService.EntityFrameworkCore/EShopOnAbp.PaymentService.EntityFrameworkCore.csproj +++ b/services/payment/src/EShopOnAbp.PaymentService.EntityFrameworkCore/EShopOnAbp.PaymentService.EntityFrameworkCore.csproj @@ -1,4 +1,4 @@ - + @@ -9,7 +9,7 @@ - + diff --git a/services/payment/src/EShopOnAbp.PaymentService.HttpApi.Client/EShopOnAbp.PaymentService.HttpApi.Client.csproj b/services/payment/src/EShopOnAbp.PaymentService.HttpApi.Client/EShopOnAbp.PaymentService.HttpApi.Client.csproj index 7fe1af2d..fe175183 100644 --- a/services/payment/src/EShopOnAbp.PaymentService.HttpApi.Client/EShopOnAbp.PaymentService.HttpApi.Client.csproj +++ b/services/payment/src/EShopOnAbp.PaymentService.HttpApi.Client/EShopOnAbp.PaymentService.HttpApi.Client.csproj @@ -1,4 +1,4 @@ - + @@ -8,7 +8,7 @@ - + diff --git a/services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/DbMigrations/PaymentServiceDatabaseMigrationEventHandler.cs b/services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/DbMigrations/PaymentServiceDatabaseMigrationEventHandler.cs index 1974b789..6b06f8b5 100644 --- a/services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/DbMigrations/PaymentServiceDatabaseMigrationEventHandler.cs +++ b/services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/DbMigrations/PaymentServiceDatabaseMigrationEventHandler.cs @@ -5,7 +5,6 @@ using System.Threading.Tasks; using Volo.Abp.Data; using Volo.Abp.EventBus.Distributed; using Volo.Abp.MultiTenancy; -using Volo.Abp.TenantManagement; using Volo.Abp.Uow; namespace EShopOnAbp.PaymentService.DbMigrations @@ -18,13 +17,11 @@ namespace EShopOnAbp.PaymentService.DbMigrations ICurrentTenant currentTenant, IUnitOfWorkManager unitOfWorkManager, ITenantStore tenantStore, - ITenantRepository tenantRepository, IDistributedEventBus distributedEventBus) : base( currentTenant, unitOfWorkManager, tenantStore, - tenantRepository, distributedEventBus, PaymentServiceDbProperties.ConnectionStringName) { diff --git a/services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/Dockerfile.local b/services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/Dockerfile.local new file mode 100644 index 00000000..07db2a8c --- /dev/null +++ b/services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/Dockerfile.local @@ -0,0 +1,4 @@ + FROM mcr.microsoft.com/dotnet/aspnet:6.0 + COPY bin/Release/net6.0/publish/ app/ + WORKDIR /app + ENTRYPOINT ["dotnet", "EShopOnAbp.PaymentService.HttpApi.Host.dll"] \ No newline at end of file diff --git a/services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/EShopOnAbp.PaymentService.HttpApi.Host.csproj b/services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/EShopOnAbp.PaymentService.HttpApi.Host.csproj index c1c7f3e1..405c7a06 100644 --- a/services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/EShopOnAbp.PaymentService.HttpApi.Host.csproj +++ b/services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/EShopOnAbp.PaymentService.HttpApi.Host.csproj @@ -1,4 +1,4 @@ - + diff --git a/services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/PaymentServiceHttpApiHostModule.cs b/services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/PaymentServiceHttpApiHostModule.cs index 530aa5c2..1ebad85e 100644 --- a/services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/PaymentServiceHttpApiHostModule.cs +++ b/services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/PaymentServiceHttpApiHostModule.cs @@ -79,7 +79,6 @@ namespace EShopOnAbp.PaymentService // app.UseHttpMetrics(); app.UseAuthentication(); app.UseAbpClaimsMap(); - app.UseMultiTenancy(); app.UseAuthorization(); app.UseSwagger(); app.UseSwaggerUI(options => { options.SwaggerEndpoint("/swagger/v1/swagger.json", "Saas Service API"); }); diff --git a/services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/appsettings.json b/services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/appsettings.json index 017c3fc5..e26f48a0 100644 --- a/services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/appsettings.json +++ b/services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/appsettings.json @@ -1,7 +1,7 @@ { "App": { "SelfUrl": "https://localhost:44357", - "CorsOrigins": "https://localhost:44371,https://localhost:44372,https://localhost:44373" + "CorsOrigins": "https://localhost:44372,https://localhost:44373" }, "AuthServer": { "Authority": "https://localhost:44330", diff --git a/services/payment/src/EShopOnAbp.PaymentService.HttpApi/EShopOnAbp.PaymentService.HttpApi.csproj b/services/payment/src/EShopOnAbp.PaymentService.HttpApi/EShopOnAbp.PaymentService.HttpApi.csproj index 9c5888d6..01f8407d 100644 --- a/services/payment/src/EShopOnAbp.PaymentService.HttpApi/EShopOnAbp.PaymentService.HttpApi.csproj +++ b/services/payment/src/EShopOnAbp.PaymentService.HttpApi/EShopOnAbp.PaymentService.HttpApi.csproj @@ -1,4 +1,4 @@ - + @@ -8,7 +8,7 @@ - + diff --git a/services/payment/test/EShopOnAbp.PaymentService.Application.Tests/EShopOnAbp.PaymentService.Application.Tests.csproj b/services/payment/test/EShopOnAbp.PaymentService.Application.Tests/EShopOnAbp.PaymentService.Application.Tests.csproj index 110632e8..e68c6249 100644 --- a/services/payment/test/EShopOnAbp.PaymentService.Application.Tests/EShopOnAbp.PaymentService.Application.Tests.csproj +++ b/services/payment/test/EShopOnAbp.PaymentService.Application.Tests/EShopOnAbp.PaymentService.Application.Tests.csproj @@ -1,4 +1,4 @@ - + diff --git a/services/payment/test/EShopOnAbp.PaymentService.Domain.Tests/EShopOnAbp.PaymentService.Domain.Tests.csproj b/services/payment/test/EShopOnAbp.PaymentService.Domain.Tests/EShopOnAbp.PaymentService.Domain.Tests.csproj index feb9fd14..5a3199d5 100644 --- a/services/payment/test/EShopOnAbp.PaymentService.Domain.Tests/EShopOnAbp.PaymentService.Domain.Tests.csproj +++ b/services/payment/test/EShopOnAbp.PaymentService.Domain.Tests/EShopOnAbp.PaymentService.Domain.Tests.csproj @@ -1,4 +1,4 @@ - + diff --git a/services/payment/test/EShopOnAbp.PaymentService.EntityFrameworkCore.Tests/EShopOnAbp.PaymentService.EntityFrameworkCore.Tests.csproj b/services/payment/test/EShopOnAbp.PaymentService.EntityFrameworkCore.Tests/EShopOnAbp.PaymentService.EntityFrameworkCore.Tests.csproj index 1b92399b..4ddb42c4 100644 --- a/services/payment/test/EShopOnAbp.PaymentService.EntityFrameworkCore.Tests/EShopOnAbp.PaymentService.EntityFrameworkCore.Tests.csproj +++ b/services/payment/test/EShopOnAbp.PaymentService.EntityFrameworkCore.Tests/EShopOnAbp.PaymentService.EntityFrameworkCore.Tests.csproj @@ -1,4 +1,4 @@ - + @@ -12,7 +12,7 @@ - + diff --git a/services/payment/test/EShopOnAbp.PaymentService.HttpApi.Client.ConsoleTestApp/EShopOnAbp.PaymentService.HttpApi.Client.ConsoleTestApp.csproj b/services/payment/test/EShopOnAbp.PaymentService.HttpApi.Client.ConsoleTestApp/EShopOnAbp.PaymentService.HttpApi.Client.ConsoleTestApp.csproj index d18fdb86..2559f0cf 100644 --- a/services/payment/test/EShopOnAbp.PaymentService.HttpApi.Client.ConsoleTestApp/EShopOnAbp.PaymentService.HttpApi.Client.ConsoleTestApp.csproj +++ b/services/payment/test/EShopOnAbp.PaymentService.HttpApi.Client.ConsoleTestApp/EShopOnAbp.PaymentService.HttpApi.Client.ConsoleTestApp.csproj @@ -7,7 +7,7 @@ - + diff --git a/services/payment/test/EShopOnAbp.PaymentService.TestBase/EShopOnAbp.PaymentService.TestBase.csproj b/services/payment/test/EShopOnAbp.PaymentService.TestBase/EShopOnAbp.PaymentService.TestBase.csproj index 3bc97cd7..7c9b3ae7 100644 --- a/services/payment/test/EShopOnAbp.PaymentService.TestBase/EShopOnAbp.PaymentService.TestBase.csproj +++ b/services/payment/test/EShopOnAbp.PaymentService.TestBase/EShopOnAbp.PaymentService.TestBase.csproj @@ -1,4 +1,4 @@ - + @@ -14,9 +14,9 @@ - - - + + + diff --git a/services/saas/.gitattributes b/services/saas/.gitattributes deleted file mode 100644 index c941e526..00000000 --- a/services/saas/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -**/wwwroot/libs/** linguist-vendored diff --git a/services/saas/.gitignore b/services/saas/.gitignore deleted file mode 100644 index 62278a88..00000000 --- a/services/saas/.gitignore +++ /dev/null @@ -1,258 +0,0 @@ -## Ignore Visual Studio temporary files, build results, and -## files generated by popular Visual Studio add-ons. - -# User-specific files -*.suo -*.user -*.userosscache -*.sln.docstates - -# User-specific files (MonoDevelop/Xamarin Studio) -*.userprefs - -# Build results -[Dd]ebug/ -[Dd]ebugPublic/ -[Rr]elease/ -[Rr]eleases/ -x64/ -x86/ -bld/ -[Bb]in/ -[Oo]bj/ -[Ll]og/ - -# Visual Studio 2015 cache/options directory -.vs/ -# Uncomment if you have tasks that create the project's static files in wwwroot -#wwwroot/ - -# MSTest test Results -[Tt]est[Rr]esult*/ -[Bb]uild[Ll]og.* - -# NUNIT -*.VisualState.xml -TestResult.xml - -# Build Results of an ATL Project -[Dd]ebugPS/ -[Rr]eleasePS/ -dlldata.c - -# DNX -project.lock.json -artifacts/ - -*_i.c -*_p.c -*_i.h -*.ilk -*.meta -*.obj -*.pch -*.pdb -*.pgc -*.pgd -*.rsp -*.sbr -*.tlb -*.tli -*.tlh -*.tmp -*.tmp_proj -*.log -*.vspscc -*.vssscc -.builds -*.pidb -*.svclog -*.scc - -# Chutzpah Test files -_Chutzpah* - -# Visual C++ cache files -ipch/ -*.aps -*.ncb -*.opendb -*.opensdf -*.sdf -*.cachefile -*.VC.db -*.VC.VC.opendb - -# Visual Studio profiler -*.psess -*.vsp -*.vspx -*.sap - -# TFS 2012 Local Workspace -$tf/ - -# Guidance Automation Toolkit -*.gpState - -# ReSharper is a .NET coding add-in -_ReSharper*/ -*.[Rr]e[Ss]harper -*.DotSettings.user - -# JustCode is a .NET coding add-in -.JustCode - -# TeamCity is a build add-in -_TeamCity* - -# DotCover is a Code Coverage Tool -*.dotCover - -# NCrunch -_NCrunch_* -.*crunch*.local.xml -nCrunchTemp_* - -# MightyMoose -*.mm.* -AutoTest.Net/ - -# Web workbench (sass) -.sass-cache/ - -# Installshield output folder -[Ee]xpress/ - -# DocProject is a documentation generator add-in -DocProject/buildhelp/ -DocProject/Help/*.HxT -DocProject/Help/*.HxC -DocProject/Help/*.hhc -DocProject/Help/*.hhk -DocProject/Help/*.hhp -DocProject/Help/Html2 -DocProject/Help/html - -# Click-Once directory -publish/ - -# Publish Web Output -*.[Pp]ublish.xml -*.azurePubxml -# TODO: Comment the next line if you want to checkin your web deploy settings -# but database connection strings (with potential passwords) will be unencrypted -*.pubxml -*.publishproj - -# Microsoft Azure Web App publish settings. Comment the next line if you want to -# checkin your Azure Web App publish settings, but sensitive information contained -# in these scripts will be unencrypted -PublishScripts/ - -# NuGet Packages -*.nupkg -# The packages folder can be ignored because of Package Restore -**/packages/* -# except build/, which is used as an MSBuild target. -!**/packages/build/ -# Uncomment if necessary however generally it will be regenerated when needed -#!**/packages/repositories.config -# NuGet v3's project.json files produces more ignoreable files -*.nuget.props -*.nuget.targets - -# Microsoft Azure Build Output -csx/ -*.build.csdef - -# Microsoft Azure Emulator -ecf/ -rcf/ - -# Windows Store app package directories and files -AppPackages/ -BundleArtifacts/ -Package.StoreAssociation.xml -_pkginfo.txt - -# Visual Studio cache files -# files ending in .cache can be ignored -*.[Cc]ache -# but keep track of directories ending in .cache -!*.[Cc]ache/ - -# Others -ClientBin/ -~$* -*~ -*.dbmdl -*.dbproj.schemaview -*.pfx -*.publishsettings -node_modules/ -orleans.codegen.cs - -# Since there are multiple workflows, uncomment next line to ignore bower_components -# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) -#bower_components/ - -# RIA/Silverlight projects -Generated_Code/ - -# Backup & report files from converting an old project file -# to a newer Visual Studio version. Backup files are not needed, -# because we have git ;-) -_UpgradeReport_Files/ -Backup*/ -UpgradeLog*.XML -UpgradeLog*.htm - -# SQL Server files -*.mdf -*.ldf - -# Business Intelligence projects -*.rdl.data -*.bim.layout -*.bim_*.settings - -# Microsoft Fakes -FakesAssemblies/ - -# GhostDoc plugin setting file -*.GhostDoc.xml - -# Node.js Tools for Visual Studio -.ntvs_analysis.dat - -# Visual Studio 6 build log -*.plg - -# Visual Studio 6 workspace options file -*.opt - -# Visual Studio LightSwitch build output -**/*.HTMLClient/GeneratedArtifacts -**/*.DesktopClient/GeneratedArtifacts -**/*.DesktopClient/ModelManifest.xml -**/*.Server/GeneratedArtifacts -**/*.Server/ModelManifest.xml -_Pvt_Extensions - -# Paket dependency manager -.paket/paket.exe -paket-files/ - -# FAKE - F# Make -.fake/ - -# JetBrains Rider -.idea/ -*.sln.iml - -# SaasService -host/EShopOnAbp.SaasService.IdentityServer/Logs/logs.txt -host/EShopOnAbp.SaasService.HttpApi.Host/Logs/logs.txt -host/EShopOnAbp.SaasService.Web.Host/Logs/logs.txt -host/EShopOnAbp.SaasService.Web.Unified/Logs/logs.txt diff --git a/services/saas/EShopOnAbp.SaasService.sln b/services/saas/EShopOnAbp.SaasService.sln deleted file mode 100644 index 070e943a..00000000 --- a/services/saas/EShopOnAbp.SaasService.sln +++ /dev/null @@ -1,116 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29001.49 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EShopOnAbp.SaasService.Domain.Shared", "src\EShopOnAbp.SaasService.Domain.Shared\EShopOnAbp.SaasService.Domain.Shared.csproj", "{D64C1577-4929-4B60-939E-96DE1534891A}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EShopOnAbp.SaasService.Domain", "src\EShopOnAbp.SaasService.Domain\EShopOnAbp.SaasService.Domain.csproj", "{F2840BC7-0188-4606-9126-DADD0F5ABF7A}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EShopOnAbp.SaasService.Application.Contracts", "src\EShopOnAbp.SaasService.Application.Contracts\EShopOnAbp.SaasService.Application.Contracts.csproj", "{BD65D04F-08D5-40C1-8C24-77CA0BACB877}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EShopOnAbp.SaasService.Application", "src\EShopOnAbp.SaasService.Application\EShopOnAbp.SaasService.Application.csproj", "{78040F9E-3501-4A40-82DF-00A597710F35}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{649A3FFA-182F-4E56-9717-E6A9A2BEC545}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EShopOnAbp.SaasService.EntityFrameworkCore", "src\EShopOnAbp.SaasService.EntityFrameworkCore\EShopOnAbp.SaasService.EntityFrameworkCore.csproj", "{0CE86223-D31D-4315-A1F5-87BA3EE1B844}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EShopOnAbp.SaasService.HttpApi", "src\EShopOnAbp.SaasService.HttpApi\EShopOnAbp.SaasService.HttpApi.csproj", "{077AA5F8-8B61-420C-A6B5-0150A66FDB34}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EShopOnAbp.SaasService.HttpApi.Client", "src\EShopOnAbp.SaasService.HttpApi.Client\EShopOnAbp.SaasService.HttpApi.Client.csproj", "{36E2735F-CEAB-44C8-A6D1-2CDAFF399751}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EShopOnAbp.SaasService.TestBase", "test\EShopOnAbp.SaasService.TestBase\EShopOnAbp.SaasService.TestBase.csproj", "{C5BB573D-3030-4BCB-88B7-F6A85C32766C}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EShopOnAbp.SaasService.EntityFrameworkCore.Tests", "test\EShopOnAbp.SaasService.EntityFrameworkCore.Tests\EShopOnAbp.SaasService.EntityFrameworkCore.Tests.csproj", "{527F645C-C1FC-406E-8479-81386C8ECF13}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EShopOnAbp.SaasService.Domain.Tests", "test\EShopOnAbp.SaasService.Domain.Tests\EShopOnAbp.SaasService.Domain.Tests.csproj", "{E60895E5-79C4-447D-88B7-85CB5BA336A4}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EShopOnAbp.SaasService.Application.Tests", "test\EShopOnAbp.SaasService.Application.Tests\EShopOnAbp.SaasService.Application.Tests.csproj", "{90CB5DC4-C040-45C7-8900-9688B26405BC}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EShopOnAbp.SaasService.Blazor", "src\EShopOnAbp.SaasService.Blazor\EShopOnAbp.SaasService.Blazor.csproj", "{827FCC18-A22B-4175-82CD-1233F6DEE8FB}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EShopOnAbp.SaasService.HttpApi.Host", "src\EShopOnAbp.SaasService.HttpApi.Host\EShopOnAbp.SaasService.HttpApi.Host.csproj", "{D651FE09-CF19-472F-819C-47FECD4A697E}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {D64C1577-4929-4B60-939E-96DE1534891A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D64C1577-4929-4B60-939E-96DE1534891A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D64C1577-4929-4B60-939E-96DE1534891A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D64C1577-4929-4B60-939E-96DE1534891A}.Release|Any CPU.Build.0 = Release|Any CPU - {F2840BC7-0188-4606-9126-DADD0F5ABF7A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F2840BC7-0188-4606-9126-DADD0F5ABF7A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F2840BC7-0188-4606-9126-DADD0F5ABF7A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F2840BC7-0188-4606-9126-DADD0F5ABF7A}.Release|Any CPU.Build.0 = Release|Any CPU - {BD65D04F-08D5-40C1-8C24-77CA0BACB877}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BD65D04F-08D5-40C1-8C24-77CA0BACB877}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BD65D04F-08D5-40C1-8C24-77CA0BACB877}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BD65D04F-08D5-40C1-8C24-77CA0BACB877}.Release|Any CPU.Build.0 = Release|Any CPU - {78040F9E-3501-4A40-82DF-00A597710F35}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {78040F9E-3501-4A40-82DF-00A597710F35}.Debug|Any CPU.Build.0 = Debug|Any CPU - {78040F9E-3501-4A40-82DF-00A597710F35}.Release|Any CPU.ActiveCfg = Release|Any CPU - {78040F9E-3501-4A40-82DF-00A597710F35}.Release|Any CPU.Build.0 = Release|Any CPU - {0CE86223-D31D-4315-A1F5-87BA3EE1B844}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0CE86223-D31D-4315-A1F5-87BA3EE1B844}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0CE86223-D31D-4315-A1F5-87BA3EE1B844}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0CE86223-D31D-4315-A1F5-87BA3EE1B844}.Release|Any CPU.Build.0 = Release|Any CPU - {077AA5F8-8B61-420C-A6B5-0150A66FDB34}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {077AA5F8-8B61-420C-A6B5-0150A66FDB34}.Debug|Any CPU.Build.0 = Debug|Any CPU - {077AA5F8-8B61-420C-A6B5-0150A66FDB34}.Release|Any CPU.ActiveCfg = Release|Any CPU - {077AA5F8-8B61-420C-A6B5-0150A66FDB34}.Release|Any CPU.Build.0 = Release|Any CPU - {36E2735F-CEAB-44C8-A6D1-2CDAFF399751}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {36E2735F-CEAB-44C8-A6D1-2CDAFF399751}.Debug|Any CPU.Build.0 = Debug|Any CPU - {36E2735F-CEAB-44C8-A6D1-2CDAFF399751}.Release|Any CPU.ActiveCfg = Release|Any CPU - {36E2735F-CEAB-44C8-A6D1-2CDAFF399751}.Release|Any CPU.Build.0 = Release|Any CPU - {C5BB573D-3030-4BCB-88B7-F6A85C32766C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C5BB573D-3030-4BCB-88B7-F6A85C32766C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C5BB573D-3030-4BCB-88B7-F6A85C32766C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C5BB573D-3030-4BCB-88B7-F6A85C32766C}.Release|Any CPU.Build.0 = Release|Any CPU - {527F645C-C1FC-406E-8479-81386C8ECF13}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {527F645C-C1FC-406E-8479-81386C8ECF13}.Debug|Any CPU.Build.0 = Debug|Any CPU - {527F645C-C1FC-406E-8479-81386C8ECF13}.Release|Any CPU.ActiveCfg = Release|Any CPU - {527F645C-C1FC-406E-8479-81386C8ECF13}.Release|Any CPU.Build.0 = Release|Any CPU - {E60895E5-79C4-447D-88B7-85CB5BA336A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E60895E5-79C4-447D-88B7-85CB5BA336A4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E60895E5-79C4-447D-88B7-85CB5BA336A4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E60895E5-79C4-447D-88B7-85CB5BA336A4}.Release|Any CPU.Build.0 = Release|Any CPU - {90CB5DC4-C040-45C7-8900-9688B26405BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {90CB5DC4-C040-45C7-8900-9688B26405BC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {90CB5DC4-C040-45C7-8900-9688B26405BC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {90CB5DC4-C040-45C7-8900-9688B26405BC}.Release|Any CPU.Build.0 = Release|Any CPU - {827FCC18-A22B-4175-82CD-1233F6DEE8FB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {827FCC18-A22B-4175-82CD-1233F6DEE8FB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {827FCC18-A22B-4175-82CD-1233F6DEE8FB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {827FCC18-A22B-4175-82CD-1233F6DEE8FB}.Release|Any CPU.Build.0 = Release|Any CPU - {D651FE09-CF19-472F-819C-47FECD4A697E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D651FE09-CF19-472F-819C-47FECD4A697E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D651FE09-CF19-472F-819C-47FECD4A697E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D651FE09-CF19-472F-819C-47FECD4A697E}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {D64C1577-4929-4B60-939E-96DE1534891A} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545} - {F2840BC7-0188-4606-9126-DADD0F5ABF7A} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545} - {BD65D04F-08D5-40C1-8C24-77CA0BACB877} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545} - {78040F9E-3501-4A40-82DF-00A597710F35} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545} - {0CE86223-D31D-4315-A1F5-87BA3EE1B844} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545} - {077AA5F8-8B61-420C-A6B5-0150A66FDB34} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545} - {36E2735F-CEAB-44C8-A6D1-2CDAFF399751} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545} - {C5BB573D-3030-4BCB-88B7-F6A85C32766C} = {CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D} - {527F645C-C1FC-406E-8479-81386C8ECF13} = {CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D} - {E60895E5-79C4-447D-88B7-85CB5BA336A4} = {CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D} - {90CB5DC4-C040-45C7-8900-9688B26405BC} = {CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D} - {827FCC18-A22B-4175-82CD-1233F6DEE8FB} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545} - {D651FE09-CF19-472F-819C-47FECD4A697E} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545} - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {6AAFA1C6-603E-13FA-45E5-7910AA9F661D} - EndGlobalSection -EndGlobal diff --git a/services/saas/EShopOnAbp.SaasService.sln.DotSettings b/services/saas/EShopOnAbp.SaasService.sln.DotSettings deleted file mode 100644 index cb0b2c91..00000000 --- a/services/saas/EShopOnAbp.SaasService.sln.DotSettings +++ /dev/null @@ -1,23 +0,0 @@ - - True - WARNING - WARNING - WARNING - WARNING - WARNING - WARNING - WARNING - WARNING - Required - Required - Required - Required - False - True - False - False - True - False - False - SQL - \ No newline at end of file diff --git a/services/saas/NuGet.Config b/services/saas/NuGet.Config deleted file mode 100644 index 5e43251e..00000000 --- a/services/saas/NuGet.Config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/services/saas/src/EShopOnAbp.SaasService.Application.Contracts/EShopOnAbp.SaasService.Application.Contracts.csproj b/services/saas/src/EShopOnAbp.SaasService.Application.Contracts/EShopOnAbp.SaasService.Application.Contracts.csproj deleted file mode 100644 index 26f3610d..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.Application.Contracts/EShopOnAbp.SaasService.Application.Contracts.csproj +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - netstandard2.0 - EShopOnAbp.SaasService - - - - - - - - diff --git a/services/saas/src/EShopOnAbp.SaasService.Application.Contracts/SaasServiceApplicationContractsModule.cs b/services/saas/src/EShopOnAbp.SaasService.Application.Contracts/SaasServiceApplicationContractsModule.cs deleted file mode 100644 index c00751f3..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.Application.Contracts/SaasServiceApplicationContractsModule.cs +++ /dev/null @@ -1,14 +0,0 @@ -using Volo.Abp.Modularity; -using Volo.Abp.TenantManagement; - -namespace EShopOnAbp.SaasService -{ - [DependsOn( - typeof(SaasServiceDomainSharedModule), - typeof(AbpTenantManagementApplicationContractsModule) - )] - public class SaasServiceApplicationContractsModule : AbpModule - { - - } -} diff --git a/services/saas/src/EShopOnAbp.SaasService.Application.Contracts/SaasServiceRemoteServiceConsts.cs b/services/saas/src/EShopOnAbp.SaasService.Application.Contracts/SaasServiceRemoteServiceConsts.cs deleted file mode 100644 index 829eb199..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.Application.Contracts/SaasServiceRemoteServiceConsts.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace EShopOnAbp.SaasService -{ - public static class SaasServiceRemoteServiceConsts - { - public const string RemoteServiceName = "SaasService"; - } -} \ No newline at end of file diff --git a/services/saas/src/EShopOnAbp.SaasService.Application/EShopOnAbp.SaasService.Application.csproj b/services/saas/src/EShopOnAbp.SaasService.Application/EShopOnAbp.SaasService.Application.csproj deleted file mode 100644 index 02c914db..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.Application/EShopOnAbp.SaasService.Application.csproj +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - netstandard2.0 - EShopOnAbp.SaasService - - - - - - - - - diff --git a/services/saas/src/EShopOnAbp.SaasService.Application/SaasServiceApplicationAutoMapperProfile.cs b/services/saas/src/EShopOnAbp.SaasService.Application/SaasServiceApplicationAutoMapperProfile.cs deleted file mode 100644 index 90a7a253..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.Application/SaasServiceApplicationAutoMapperProfile.cs +++ /dev/null @@ -1,14 +0,0 @@ -using AutoMapper; - -namespace EShopOnAbp.SaasService -{ - public class SaasServiceApplicationAutoMapperProfile : Profile - { - public SaasServiceApplicationAutoMapperProfile() - { - /* You can configure your AutoMapper mapping configuration here. - * Alternatively, you can split your mapping configurations - * into multiple profile classes for a better organization. */ - } - } -} \ No newline at end of file diff --git a/services/saas/src/EShopOnAbp.SaasService.Application/SaasServiceApplicationModule.cs b/services/saas/src/EShopOnAbp.SaasService.Application/SaasServiceApplicationModule.cs deleted file mode 100644 index 7ae95482..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.Application/SaasServiceApplicationModule.cs +++ /dev/null @@ -1,23 +0,0 @@ -using Microsoft.Extensions.DependencyInjection; -using Volo.Abp.AutoMapper; -using Volo.Abp.Modularity; -using Volo.Abp.TenantManagement; - -namespace EShopOnAbp.SaasService -{ - [DependsOn( - typeof(SaasServiceDomainModule), - typeof(AbpTenantManagementApplicationModule) - )] - public class SaasServiceApplicationModule : AbpModule - { - public override void ConfigureServices(ServiceConfigurationContext context) - { - context.Services.AddAutoMapperObjectMapper(); - Configure(options => - { - options.AddMaps(validate: true); - }); - } - } -} diff --git a/services/saas/src/EShopOnAbp.SaasService.Application/SaasTenantAppService.cs b/services/saas/src/EShopOnAbp.SaasService.Application/SaasTenantAppService.cs deleted file mode 100644 index 96df4063..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.Application/SaasTenantAppService.cs +++ /dev/null @@ -1,49 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Volo.Abp.Data; -using Volo.Abp.DependencyInjection; -using Volo.Abp.EventBus.Distributed; -using Volo.Abp.MultiTenancy; -using Volo.Abp.ObjectExtending; -using Volo.Abp.TenantManagement; - -namespace EShopOnAbp.SaasService -{ - [Dependency(ReplaceServices = true)] - public class SaasTenantAppService : TenantAppService, ITenantAppService - { - public SaasTenantAppService( - ITenantRepository tenantRepository, - ITenantManager tenantManager, - IDataSeeder dataSeeder, - IDistributedEventBus distributedEventBus) : base(tenantRepository, tenantManager, dataSeeder, distributedEventBus) - { - } - - public override async Task CreateAsync(TenantCreateDto input) - { - var tenant = await TenantManager.CreateAsync(input.Name); - input.MapExtraPropertiesTo(tenant); - - await TenantRepository.InsertAsync(tenant); - - await CurrentUnitOfWork.SaveChangesAsync(); - - await DistributedEventBus.PublishAsync(new TenantCreatedEto - { - Id = tenant.Id, - Name = tenant.Name, - Properties = new Dictionary - { - { "AdminEmail", input.AdminEmailAddress }, - { "AdminPassword", input.AdminPassword } - } - }); - - return ObjectMapper.Map(tenant); - } - } -} diff --git a/services/saas/src/EShopOnAbp.SaasService.Blazor/EShopOnAbp.SaasService.Blazor.csproj b/services/saas/src/EShopOnAbp.SaasService.Blazor/EShopOnAbp.SaasService.Blazor.csproj deleted file mode 100644 index ae80715b..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.Blazor/EShopOnAbp.SaasService.Blazor.csproj +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - net6.0 - - - - - - - - - - diff --git a/services/saas/src/EShopOnAbp.SaasService.Blazor/Menus/SaasServiceMenuContributor.cs b/services/saas/src/EShopOnAbp.SaasService.Blazor/Menus/SaasServiceMenuContributor.cs deleted file mode 100644 index 9e713779..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.Blazor/Menus/SaasServiceMenuContributor.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System.Threading.Tasks; -using Volo.Abp.UI.Navigation; - -namespace EShopOnAbp.SaasService.Blazor.Menus -{ - public class SaasServiceMenuContributor : IMenuContributor - { - public async Task ConfigureMenuAsync(MenuConfigurationContext context) - { - if (context.Menu.Name == StandardMenus.Main) - { - await ConfigureMainMenuAsync(context); - } - } - - private Task ConfigureMainMenuAsync(MenuConfigurationContext context) - { - //Add main menu items. - context.Menu.AddItem(new ApplicationMenuItem(SaasServiceMenus.Prefix, displayName: "SaasService", "/SaasService", icon: "fa fa-globe")); - - return Task.CompletedTask; - } - } -} \ No newline at end of file diff --git a/services/saas/src/EShopOnAbp.SaasService.Blazor/Menus/SaasServiceMenus.cs b/services/saas/src/EShopOnAbp.SaasService.Blazor/Menus/SaasServiceMenus.cs deleted file mode 100644 index 8f62b8e4..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.Blazor/Menus/SaasServiceMenus.cs +++ /dev/null @@ -1,11 +0,0 @@ -namespace EShopOnAbp.SaasService.Blazor.Menus -{ - public class SaasServiceMenus - { - public const string Prefix = "SaasService"; - - //Add your menu items here... - //public const string Home = Prefix + ".MyNewMenuItem"; - - } -} \ No newline at end of file diff --git a/services/saas/src/EShopOnAbp.SaasService.Blazor/Pages/SaasService/Index.razor b/services/saas/src/EShopOnAbp.SaasService.Blazor/Pages/SaasService/Index.razor deleted file mode 100644 index 3e23821a..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.Blazor/Pages/SaasService/Index.razor +++ /dev/null @@ -1,8 +0,0 @@ -@page "/SaasService" -@using Microsoft.Extensions.Localization -@using global::EShopOnAbp.SaasService.Localization -@inject IStringLocalizer L -@{ -} -

SaasService

-

@L["SamplePageMessage"]

\ No newline at end of file diff --git a/services/saas/src/EShopOnAbp.SaasService.Blazor/SaasServiceBlazorAutoMapperProfile.cs b/services/saas/src/EShopOnAbp.SaasService.Blazor/SaasServiceBlazorAutoMapperProfile.cs deleted file mode 100644 index b43eb0cc..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.Blazor/SaasServiceBlazorAutoMapperProfile.cs +++ /dev/null @@ -1,14 +0,0 @@ -using AutoMapper; - -namespace EShopOnAbp.SaasService.Blazor -{ - public class SaasServiceBlazorAutoMapperProfile : Profile - { - public SaasServiceBlazorAutoMapperProfile() - { - /* You can configure your AutoMapper mapping configuration here. - * Alternatively, you can split your mapping configurations - * into multiple profile classes for a better organization. */ - } - } -} \ No newline at end of file diff --git a/services/saas/src/EShopOnAbp.SaasService.Blazor/SaasServiceBlazorModule.cs b/services/saas/src/EShopOnAbp.SaasService.Blazor/SaasServiceBlazorModule.cs deleted file mode 100644 index f200a264..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.Blazor/SaasServiceBlazorModule.cs +++ /dev/null @@ -1,37 +0,0 @@ -using Microsoft.Extensions.DependencyInjection; -using EShopOnAbp.SaasService.Blazor.Menus; -using Volo.Abp.AspNetCore.Components.Web.Theming.Routing; -using Volo.Abp.AutoMapper; -using Volo.Abp.Modularity; -using Volo.Abp.TenantManagement.Blazor; -using Volo.Abp.UI.Navigation; - -namespace EShopOnAbp.SaasService.Blazor -{ - [DependsOn( - typeof(SaasServiceApplicationContractsModule), - typeof(AbpTenantManagementBlazorModule) - )] - public class SaasServiceBlazorModule : AbpModule - { - public override void ConfigureServices(ServiceConfigurationContext context) - { - context.Services.AddAutoMapperObjectMapper(); - - Configure(options => - { - options.AddProfile(validate: true); - }); - - Configure(options => - { - options.MenuContributors.Add(new SaasServiceMenuContributor()); - }); - - Configure(options => - { - options.AdditionalAssemblies.Add(typeof(SaasServiceBlazorModule).Assembly); - }); - } - } -} \ No newline at end of file diff --git a/services/saas/src/EShopOnAbp.SaasService.Blazor/_Imports.razor b/services/saas/src/EShopOnAbp.SaasService.Blazor/_Imports.razor deleted file mode 100644 index 43b30f84..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.Blazor/_Imports.razor +++ /dev/null @@ -1,5 +0,0 @@ -@using Microsoft.AspNetCore.Components.Web -@using Volo.Abp.AspNetCore.Components.Web -@using Volo.Abp.BlazoriseUI -@using Blazorise -@using Blazorise.DataGrid \ No newline at end of file diff --git a/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/EShopOnAbp.SaasService.Domain.Shared.csproj b/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/EShopOnAbp.SaasService.Domain.Shared.csproj deleted file mode 100644 index 10c19f98..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/EShopOnAbp.SaasService.Domain.Shared.csproj +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - netstandard2.0 - EShopOnAbp.SaasService - true - - - - - - - - - - - - - - - - diff --git a/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasService/ar.json b/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasService/ar.json deleted file mode 100644 index 5ccc8f3a..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasService/ar.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "culture": "ar", - "texts": { - "ManageYourProfile": "إدارة ملفى", - "SamplePageMessage": "صفحة نموذجية للوحدة النمطية SaasService" - } -} \ No newline at end of file diff --git a/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasService/cs.json b/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasService/cs.json deleted file mode 100644 index b0a6f7d1..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasService/cs.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "culture": "cs", - "texts": { - "ManageYourProfile": "Spravovat profil", - "SamplePageMessage": "Ukázková stránka pro modul SaasService" - } -} diff --git a/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasService/de-DE.json b/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasService/de-DE.json deleted file mode 100644 index dcc43783..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasService/de-DE.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "culture": "de-DE", - "texts": { - "ManageYourProfile": "Verwalten Sie Ihr Profil", - "SamplePageMessage": "Eine Beispielseite für das Modul SaasServiceModul" - } -} \ No newline at end of file diff --git a/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasService/en-GB.json b/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasService/en-GB.json deleted file mode 100644 index bdcbb257..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasService/en-GB.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "culture": "en-GB", - "texts": { - "ManageYourProfile": "Manage your profile", - "SamplePageMessage": "A sample page for the SaasService module" - } -} \ No newline at end of file diff --git a/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasService/en.json b/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasService/en.json deleted file mode 100644 index 04d74cc8..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasService/en.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "culture": "en", - "texts": { - "ManageYourProfile": "Manage your profile", - "SamplePageMessage": "A sample page for the SaasService module" - } -} \ No newline at end of file diff --git a/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasService/es.json b/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasService/es.json deleted file mode 100644 index 23c7fdcb..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasService/es.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "culture": "es", - "texts": { - "ManageYourProfile": "Gestiona tu perfil", - "SamplePageMessage": "Una página de ejemplo para el módulo SaasService " - } -} \ No newline at end of file diff --git a/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasService/fr.json b/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasService/fr.json deleted file mode 100644 index 30a05899..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasService/fr.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "culture": "fr", - "texts": { - "ManageYourProfile": "Gérer votre profil", - "SamplePageMessage": "Exemple de page pour le module SaasService" - } -} \ No newline at end of file diff --git a/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasService/hu.json b/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasService/hu.json deleted file mode 100644 index 32afd66f..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasService/hu.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "culture": "hu", - "texts": { - "ManageYourProfile": "Kezelje a profilját", - "SamplePageMessage": "Mintaoldal a SaasService modulhoz" - } -} \ No newline at end of file diff --git a/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasService/nl.json b/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasService/nl.json deleted file mode 100644 index 20c34052..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasService/nl.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "culture": "nl", - "texts": { - "ManageYourProfile": "Beheer uw profiel", - "SamplePageMessage": "Een voorbeeldpagina voor de SaasService module" - } -} \ No newline at end of file diff --git a/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasService/pl-PL.json b/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasService/pl-PL.json deleted file mode 100644 index 3ea7b190..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasService/pl-PL.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "culture": "pl-PL", - "texts": { - - } -} \ No newline at end of file diff --git a/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasService/pt-BR.json b/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasService/pt-BR.json deleted file mode 100644 index 6d746df0..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasService/pt-BR.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "culture": "pt-BR", - "texts": { - - } -} \ No newline at end of file diff --git a/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasService/sl.json b/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasService/sl.json deleted file mode 100644 index 687d4257..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasService/sl.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "culture": "sl", - "texts": { - "ManageYourProfile": "Upravljajte svojim profilom" - } -} \ No newline at end of file diff --git a/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasService/tr.json b/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasService/tr.json deleted file mode 100644 index ff8a8f04..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasService/tr.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "culture": "tr", - "texts": { - "ManageYourProfile": "Profil yönetimi", - "SamplePageMessage": "SaasService modulünden örnek bir sayfa" - } -} \ No newline at end of file diff --git a/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasService/vi.json b/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasService/vi.json deleted file mode 100644 index d8eb5f3c..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasService/vi.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "culture": "vi", - "texts": { - - } -} diff --git a/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasService/zh-Hans.json b/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasService/zh-Hans.json deleted file mode 100644 index ee4550f7..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasService/zh-Hans.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "culture": "zh-Hans", - "texts": { - "ManageYourProfile": "管理个人资料", - "SamplePageMessage": "SaasService模块的示例页面" - } -} \ No newline at end of file diff --git a/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasService/zh-Hant.json b/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasService/zh-Hant.json deleted file mode 100644 index ceea0555..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasService/zh-Hant.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "culture": "zh-Hant", - "texts": { - "ManageYourProfile": "管理個人資料" - } -} \ No newline at end of file diff --git a/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasServiceResource.cs b/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasServiceResource.cs deleted file mode 100644 index ed1e2ccd..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/Localization/SaasServiceResource.cs +++ /dev/null @@ -1,10 +0,0 @@ -using Volo.Abp.Localization; - -namespace EShopOnAbp.SaasService.Localization -{ - [LocalizationResourceName("SaasService")] - public class SaasServiceResource - { - - } -} diff --git a/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/SaasServiceDomainSharedModule.cs b/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/SaasServiceDomainSharedModule.cs deleted file mode 100644 index e46ee866..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/SaasServiceDomainSharedModule.cs +++ /dev/null @@ -1,31 +0,0 @@ -using Volo.Abp.Modularity; -using Volo.Abp.Localization; -using EShopOnAbp.SaasService.Localization; -using Volo.Abp.TenantManagement; -using Volo.Abp.Validation.Localization; -using Volo.Abp.VirtualFileSystem; - -namespace EShopOnAbp.SaasService -{ - [DependsOn( - typeof(AbpTenantManagementDomainSharedModule) - )] - public class SaasServiceDomainSharedModule : AbpModule - { - public override void ConfigureServices(ServiceConfigurationContext context) - { - Configure(options => - { - options.FileSets.AddEmbedded(); - }); - - Configure(options => - { - options.Resources - .Add("en") - .AddBaseTypes(typeof(AbpValidationResource)) - .AddVirtualJson("/Localization/SaasService"); - }); - } - } -} diff --git a/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/SaasServiceErrorCodes.cs b/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/SaasServiceErrorCodes.cs deleted file mode 100644 index b828e45f..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.Domain.Shared/SaasServiceErrorCodes.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace EShopOnAbp.SaasService -{ - public static class SaasServiceErrorCodes - { - //Add your business exception error codes here... - } -} diff --git a/services/saas/src/EShopOnAbp.SaasService.Domain/EShopOnAbp.SaasService.Domain.csproj b/services/saas/src/EShopOnAbp.SaasService.Domain/EShopOnAbp.SaasService.Domain.csproj deleted file mode 100644 index 7ee7df1f..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.Domain/EShopOnAbp.SaasService.Domain.csproj +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - netstandard2.0 - EShopOnAbp.SaasService - - - - - - - - diff --git a/services/saas/src/EShopOnAbp.SaasService.Domain/SaasServiceDbProperties.cs b/services/saas/src/EShopOnAbp.SaasService.Domain/SaasServiceDbProperties.cs deleted file mode 100644 index 530651ee..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.Domain/SaasServiceDbProperties.cs +++ /dev/null @@ -1,11 +0,0 @@ -namespace EShopOnAbp.SaasService -{ - public static class SaasServiceDbProperties - { - public static string DbTablePrefix { get; set; } = ""; - - public static string DbSchema { get; set; } = null; - - public const string ConnectionStringName = "SaasService"; - } -} diff --git a/services/saas/src/EShopOnAbp.SaasService.Domain/SaasServiceDomainModule.cs b/services/saas/src/EShopOnAbp.SaasService.Domain/SaasServiceDomainModule.cs deleted file mode 100644 index 02121b47..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.Domain/SaasServiceDomainModule.cs +++ /dev/null @@ -1,14 +0,0 @@ -using Volo.Abp.Modularity; -using Volo.Abp.TenantManagement; - -namespace EShopOnAbp.SaasService -{ - [DependsOn( - typeof(AbpTenantManagementDomainModule), - typeof(SaasServiceDomainSharedModule) - )] - public class SaasServiceDomainModule : AbpModule - { - - } -} diff --git a/services/saas/src/EShopOnAbp.SaasService.EntityFrameworkCore/EShopOnAbp.SaasService.EntityFrameworkCore.csproj b/services/saas/src/EShopOnAbp.SaasService.EntityFrameworkCore/EShopOnAbp.SaasService.EntityFrameworkCore.csproj deleted file mode 100644 index 5b07aa6c..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.EntityFrameworkCore/EShopOnAbp.SaasService.EntityFrameworkCore.csproj +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - net6.0 - EShopOnAbp.SaasService - - - - - runtime; build; native; contentfiles; analyzers; buildtransitive - - - - - - - - - - - - - diff --git a/services/saas/src/EShopOnAbp.SaasService.EntityFrameworkCore/EntityFrameworkCore/SaasServiceDbContext.cs b/services/saas/src/EShopOnAbp.SaasService.EntityFrameworkCore/EntityFrameworkCore/SaasServiceDbContext.cs deleted file mode 100644 index dbea6e2c..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.EntityFrameworkCore/EntityFrameworkCore/SaasServiceDbContext.cs +++ /dev/null @@ -1,27 +0,0 @@ -using Microsoft.EntityFrameworkCore; -using Volo.Abp.Data; -using Volo.Abp.EntityFrameworkCore; -using Volo.Abp.TenantManagement; -using Volo.Abp.TenantManagement.EntityFrameworkCore; - -namespace EShopOnAbp.SaasService.EntityFrameworkCore -{ - [ConnectionStringName(SaasServiceDbProperties.ConnectionStringName)] - public class SaasServiceDbContext : AbpDbContext, ITenantManagementDbContext - { - public DbSet Tenants { get; set; } - public DbSet TenantConnectionStrings { get; set; } - - public SaasServiceDbContext(DbContextOptions options) - : base(options) - { - } - - protected override void OnModelCreating(ModelBuilder builder) - { - base.OnModelCreating(builder); - - builder.ConfigureTenantManagement(); - } - } -} \ No newline at end of file diff --git a/services/saas/src/EShopOnAbp.SaasService.EntityFrameworkCore/EntityFrameworkCore/SaasServiceDbContextFactory.cs b/services/saas/src/EShopOnAbp.SaasService.EntityFrameworkCore/EntityFrameworkCore/SaasServiceDbContextFactory.cs deleted file mode 100644 index c3197f11..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.EntityFrameworkCore/EntityFrameworkCore/SaasServiceDbContextFactory.cs +++ /dev/null @@ -1,44 +0,0 @@ -using System.IO; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Design; -using Microsoft.Extensions.Configuration; - -namespace EShopOnAbp.SaasService.EntityFrameworkCore -{ - /* This class is needed for EF Core console commands - * (like Add-Migration and Update-Database commands) - * */ - public class SaasServiceDbContextFactory : IDesignTimeDbContextFactory - { - public SaasServiceDbContext CreateDbContext(string[] args) - { - var builder = new DbContextOptionsBuilder() - .UseSqlServer(GetConnectionStringFromConfiguration(), b => - { - b.MigrationsHistoryTable("__SaasService_Migrations"); - }); - - return new SaasServiceDbContext(builder.Options); - } - - private static string GetConnectionStringFromConfiguration() - { - return BuildConfiguration() - .GetConnectionString(SaasServiceDbProperties.ConnectionStringName); - } - - private static IConfigurationRoot BuildConfiguration() - { - var builder = new ConfigurationBuilder() - .SetBasePath( - Path.Combine( - Directory.GetCurrentDirectory(), - $"..{Path.DirectorySeparatorChar}EShopOnAbp.SaasService.HttpApi.Host" - ) - ) - .AddJsonFile("appsettings.json", optional: false); - - return builder.Build(); - } - } -} \ No newline at end of file diff --git a/services/saas/src/EShopOnAbp.SaasService.EntityFrameworkCore/EntityFrameworkCore/SaasServiceEntityFrameworkCoreModule.cs b/services/saas/src/EShopOnAbp.SaasService.EntityFrameworkCore/EntityFrameworkCore/SaasServiceEntityFrameworkCoreModule.cs deleted file mode 100644 index 2a2efe1d..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.EntityFrameworkCore/EntityFrameworkCore/SaasServiceEntityFrameworkCoreModule.cs +++ /dev/null @@ -1,39 +0,0 @@ -using Microsoft.Extensions.DependencyInjection; -using Volo.Abp.EntityFrameworkCore; -using Volo.Abp.EntityFrameworkCore.SqlServer; -using Volo.Abp.Modularity; -using Volo.Abp.TenantManagement; -using Volo.Abp.TenantManagement.EntityFrameworkCore; - -namespace EShopOnAbp.SaasService.EntityFrameworkCore -{ - [DependsOn( - typeof(SaasServiceDomainModule), - typeof(AbpTenantManagementEntityFrameworkCoreModule), - typeof(AbpEntityFrameworkCoreSqlServerModule) - )] - public class SaasServiceEntityFrameworkCoreModule : AbpModule - { - public override void ConfigureServices(ServiceConfigurationContext context) - { - context.Services.AddAbpDbContext(options => - { - options.ReplaceDbContext(); - - /* includeAllEntities: true allows to use IRepository also for non aggregate root entities */ - options.AddDefaultRepositories(includeAllEntities: true); - }); - - Configure(options => - { - options.Configure(c => - { - c.UseSqlServer(b => - { - b.MigrationsHistoryTable("__SaasService_Migrations"); - }); - }); - }); - } - } -} \ No newline at end of file diff --git a/services/saas/src/EShopOnAbp.SaasService.EntityFrameworkCore/Migrations/20211006102216_Initial.Designer.cs b/services/saas/src/EShopOnAbp.SaasService.EntityFrameworkCore/Migrations/20211006102216_Initial.Designer.cs deleted file mode 100644 index db151b35..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.EntityFrameworkCore/Migrations/20211006102216_Initial.Designer.cs +++ /dev/null @@ -1,121 +0,0 @@ -// -using System; -using EShopOnAbp.SaasService.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; -using Volo.Abp.EntityFrameworkCore; - -#nullable disable - -namespace EShopOnAbp.SaasService.Migrations -{ - [DbContext(typeof(SaasServiceDbContext))] - [Migration("20211006102216_Initial")] - partial class Initial - { - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) - .HasAnnotation("ProductVersion", "6.0.0-rc.1.21452.10") - .HasAnnotation("Relational:MaxIdentifierLength", 128); - - SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1); - - modelBuilder.Entity("Volo.Abp.TenantManagement.Tenant", b => - { - b.Property("Id") - .HasColumnType("uniqueidentifier"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasMaxLength(40) - .HasColumnType("nvarchar(40)") - .HasColumnName("ConcurrencyStamp"); - - b.Property("CreationTime") - .HasColumnType("datetime2") - .HasColumnName("CreationTime"); - - b.Property("CreatorId") - .HasColumnType("uniqueidentifier") - .HasColumnName("CreatorId"); - - b.Property("DeleterId") - .HasColumnType("uniqueidentifier") - .HasColumnName("DeleterId"); - - b.Property("DeletionTime") - .HasColumnType("datetime2") - .HasColumnName("DeletionTime"); - - b.Property("ExtraProperties") - .HasColumnType("nvarchar(max)") - .HasColumnName("ExtraProperties"); - - b.Property("IsDeleted") - .ValueGeneratedOnAdd() - .HasColumnType("bit") - .HasDefaultValue(false) - .HasColumnName("IsDeleted"); - - b.Property("LastModificationTime") - .HasColumnType("datetime2") - .HasColumnName("LastModificationTime"); - - b.Property("LastModifierId") - .HasColumnType("uniqueidentifier") - .HasColumnName("LastModifierId"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(64) - .HasColumnType("nvarchar(64)"); - - b.HasKey("Id"); - - b.HasIndex("Name"); - - b.ToTable("AbpTenants", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.TenantManagement.TenantConnectionString", b => - { - b.Property("TenantId") - .HasColumnType("uniqueidentifier"); - - b.Property("Name") - .HasMaxLength(64) - .HasColumnType("nvarchar(64)"); - - b.Property("Value") - .IsRequired() - .HasMaxLength(1024) - .HasColumnType("nvarchar(1024)"); - - b.HasKey("TenantId", "Name"); - - b.ToTable("AbpTenantConnectionStrings", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.TenantManagement.TenantConnectionString", b => - { - b.HasOne("Volo.Abp.TenantManagement.Tenant", null) - .WithMany("ConnectionStrings") - .HasForeignKey("TenantId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.TenantManagement.Tenant", b => - { - b.Navigation("ConnectionStrings"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/services/saas/src/EShopOnAbp.SaasService.EntityFrameworkCore/Migrations/20211006102216_Initial.cs b/services/saas/src/EShopOnAbp.SaasService.EntityFrameworkCore/Migrations/20211006102216_Initial.cs deleted file mode 100644 index 10f8a4cc..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.EntityFrameworkCore/Migrations/20211006102216_Initial.cs +++ /dev/null @@ -1,67 +0,0 @@ -using System; -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace EShopOnAbp.SaasService.Migrations -{ - public partial class Initial : Migration - { - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.CreateTable( - name: "AbpTenants", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - Name = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), - ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), - ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true), - LastModificationTime = table.Column(type: "datetime2", nullable: true), - LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), - IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), - DeleterId = table.Column(type: "uniqueidentifier", nullable: true), - DeletionTime = table.Column(type: "datetime2", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_AbpTenants", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "AbpTenantConnectionStrings", - columns: table => new - { - TenantId = table.Column(type: "uniqueidentifier", nullable: false), - Name = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), - Value = table.Column(type: "nvarchar(1024)", maxLength: 1024, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_AbpTenantConnectionStrings", x => new { x.TenantId, x.Name }); - table.ForeignKey( - name: "FK_AbpTenantConnectionStrings_AbpTenants_TenantId", - column: x => x.TenantId, - principalTable: "AbpTenants", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateIndex( - name: "IX_AbpTenants_Name", - table: "AbpTenants", - column: "Name"); - } - - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropTable( - name: "AbpTenantConnectionStrings"); - - migrationBuilder.DropTable( - name: "AbpTenants"); - } - } -} diff --git a/services/saas/src/EShopOnAbp.SaasService.EntityFrameworkCore/Migrations/SaasServiceDbContextModelSnapshot.cs b/services/saas/src/EShopOnAbp.SaasService.EntityFrameworkCore/Migrations/SaasServiceDbContextModelSnapshot.cs deleted file mode 100644 index dd67b090..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.EntityFrameworkCore/Migrations/SaasServiceDbContextModelSnapshot.cs +++ /dev/null @@ -1,119 +0,0 @@ -// -using System; -using EShopOnAbp.SaasService.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; -using Volo.Abp.EntityFrameworkCore; - -#nullable disable - -namespace EShopOnAbp.SaasService.Migrations -{ - [DbContext(typeof(SaasServiceDbContext))] - partial class SaasServiceDbContextModelSnapshot : ModelSnapshot - { - protected override void BuildModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) - .HasAnnotation("ProductVersion", "6.0.0-rc.1.21452.10") - .HasAnnotation("Relational:MaxIdentifierLength", 128); - - SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1); - - modelBuilder.Entity("Volo.Abp.TenantManagement.Tenant", b => - { - b.Property("Id") - .HasColumnType("uniqueidentifier"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasMaxLength(40) - .HasColumnType("nvarchar(40)") - .HasColumnName("ConcurrencyStamp"); - - b.Property("CreationTime") - .HasColumnType("datetime2") - .HasColumnName("CreationTime"); - - b.Property("CreatorId") - .HasColumnType("uniqueidentifier") - .HasColumnName("CreatorId"); - - b.Property("DeleterId") - .HasColumnType("uniqueidentifier") - .HasColumnName("DeleterId"); - - b.Property("DeletionTime") - .HasColumnType("datetime2") - .HasColumnName("DeletionTime"); - - b.Property("ExtraProperties") - .HasColumnType("nvarchar(max)") - .HasColumnName("ExtraProperties"); - - b.Property("IsDeleted") - .ValueGeneratedOnAdd() - .HasColumnType("bit") - .HasDefaultValue(false) - .HasColumnName("IsDeleted"); - - b.Property("LastModificationTime") - .HasColumnType("datetime2") - .HasColumnName("LastModificationTime"); - - b.Property("LastModifierId") - .HasColumnType("uniqueidentifier") - .HasColumnName("LastModifierId"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(64) - .HasColumnType("nvarchar(64)"); - - b.HasKey("Id"); - - b.HasIndex("Name"); - - b.ToTable("AbpTenants", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.TenantManagement.TenantConnectionString", b => - { - b.Property("TenantId") - .HasColumnType("uniqueidentifier"); - - b.Property("Name") - .HasMaxLength(64) - .HasColumnType("nvarchar(64)"); - - b.Property("Value") - .IsRequired() - .HasMaxLength(1024) - .HasColumnType("nvarchar(1024)"); - - b.HasKey("TenantId", "Name"); - - b.ToTable("AbpTenantConnectionStrings", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.TenantManagement.TenantConnectionString", b => - { - b.HasOne("Volo.Abp.TenantManagement.Tenant", null) - .WithMany("ConnectionStrings") - .HasForeignKey("TenantId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.TenantManagement.Tenant", b => - { - b.Navigation("ConnectionStrings"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/services/saas/src/EShopOnAbp.SaasService.HttpApi.Client/EShopOnAbp.SaasService.HttpApi.Client.csproj b/services/saas/src/EShopOnAbp.SaasService.HttpApi.Client/EShopOnAbp.SaasService.HttpApi.Client.csproj deleted file mode 100644 index 72ad00de..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.HttpApi.Client/EShopOnAbp.SaasService.HttpApi.Client.csproj +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - netstandard2.0 - EShopOnAbp.SaasService - - - - - - - - - - - diff --git a/services/saas/src/EShopOnAbp.SaasService.HttpApi.Client/SaasServiceHttpApiClientModule.cs b/services/saas/src/EShopOnAbp.SaasService.HttpApi.Client/SaasServiceHttpApiClientModule.cs deleted file mode 100644 index 37c71bab..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.HttpApi.Client/SaasServiceHttpApiClientModule.cs +++ /dev/null @@ -1,20 +0,0 @@ -using Microsoft.Extensions.DependencyInjection; -using Volo.Abp.Modularity; -using Volo.Abp.TenantManagement; - -namespace EShopOnAbp.SaasService -{ - [DependsOn( - typeof(SaasServiceApplicationContractsModule), - typeof(AbpTenantManagementHttpApiClientModule))] - public class SaasServiceHttpApiClientModule : AbpModule - { - public override void ConfigureServices(ServiceConfigurationContext context) - { - context.Services.AddHttpClientProxies( - typeof(SaasServiceApplicationContractsModule).Assembly, - SaasServiceRemoteServiceConsts.RemoteServiceName - ); - } - } -} \ No newline at end of file diff --git a/services/saas/src/EShopOnAbp.SaasService.HttpApi.Host/Controllers/HomeController.cs b/services/saas/src/EShopOnAbp.SaasService.HttpApi.Host/Controllers/HomeController.cs deleted file mode 100644 index 8621c7da..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.HttpApi.Host/Controllers/HomeController.cs +++ /dev/null @@ -1,13 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Volo.Abp.AspNetCore.Mvc; - -namespace EShopOnAbp.SaasService.Controllers -{ - public class HomeController : AbpController - { - public ActionResult Index() - { - return Redirect("~/swagger"); - } - } -} diff --git a/services/saas/src/EShopOnAbp.SaasService.HttpApi.Host/DbMigrations/SaasServiceDatabaseMigrationChecker.cs b/services/saas/src/EShopOnAbp.SaasService.HttpApi.Host/DbMigrations/SaasServiceDatabaseMigrationChecker.cs deleted file mode 100644 index ab9fe41c..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.HttpApi.Host/DbMigrations/SaasServiceDatabaseMigrationChecker.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System; -using EShopOnAbp.SaasService.EntityFrameworkCore; -using EShopOnAbp.Shared.Hosting.Microservices.DbMigrations; -using Volo.Abp.EventBus.Distributed; -using Volo.Abp.MultiTenancy; -using Volo.Abp.Uow; - -namespace EShopOnAbp.SaasService.DbMigrations -{ - public class SaasServiceDatabaseMigrationChecker : PendingMigrationsCheckerBase - { - public SaasServiceDatabaseMigrationChecker( - IUnitOfWorkManager unitOfWorkManager, - IServiceProvider serviceProvider, - ICurrentTenant currentTenant, - IDistributedEventBus distributedEventBus) - : base( - unitOfWorkManager, - serviceProvider, - currentTenant, - distributedEventBus, - SaasServiceDbProperties.ConnectionStringName) - { - - } - } -} \ No newline at end of file diff --git a/services/saas/src/EShopOnAbp.SaasService.HttpApi.Host/DbMigrations/SaasServiceDatabaseMigrationEventHandler.cs b/services/saas/src/EShopOnAbp.SaasService.HttpApi.Host/DbMigrations/SaasServiceDatabaseMigrationEventHandler.cs deleted file mode 100644 index 036d133a..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.HttpApi.Host/DbMigrations/SaasServiceDatabaseMigrationEventHandler.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System; -using System.Threading.Tasks; -using EShopOnAbp.SaasService.EntityFrameworkCore; -using EShopOnAbp.Shared.Hosting.Microservices.DbMigrations; -using Volo.Abp.Data; -using Volo.Abp.EventBus.Distributed; -using Volo.Abp.MultiTenancy; -using Volo.Abp.TenantManagement; -using Volo.Abp.Uow; - -namespace EShopOnAbp.SaasService.DbMigrations -{ - public class SaasServiceDatabaseMigrationEventHandler - : DatabaseMigrationEventHandlerBase, - IDistributedEventHandler - { - public SaasServiceDatabaseMigrationEventHandler( - ICurrentTenant currentTenant, - IUnitOfWorkManager unitOfWorkManager, - ITenantStore tenantStore, - ITenantRepository tenantRepository, - IDistributedEventBus distributedEventBus - ) : base( - currentTenant, - unitOfWorkManager, - tenantStore, - tenantRepository, - distributedEventBus, - SaasServiceDbProperties.ConnectionStringName) - { - } - - public async Task HandleEventAsync(ApplyDatabaseMigrationsEto eventData) - { - if (eventData.DatabaseName != DatabaseName) - { - return; - } - - if (eventData.TenantId != null) - { - return; - } - - try - { - await MigrateDatabaseSchemaAsync(null); - } - catch (Exception ex) - { - await HandleErrorOnApplyDatabaseMigrationAsync(eventData, ex); - } - } - } -} \ No newline at end of file diff --git a/services/saas/src/EShopOnAbp.SaasService.HttpApi.Host/EShopOnAbp.SaasService.HttpApi.Host.csproj b/services/saas/src/EShopOnAbp.SaasService.HttpApi.Host/EShopOnAbp.SaasService.HttpApi.Host.csproj deleted file mode 100644 index cc63d851..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.HttpApi.Host/EShopOnAbp.SaasService.HttpApi.Host.csproj +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - net6.0 - EShopOnAbp.SaasService - - - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - - - - - - - - - - - - - - - - diff --git a/services/saas/src/EShopOnAbp.SaasService.HttpApi.Host/Program.cs b/services/saas/src/EShopOnAbp.SaasService.HttpApi.Host/Program.cs deleted file mode 100644 index 7a5a417c..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.HttpApi.Host/Program.cs +++ /dev/null @@ -1,48 +0,0 @@ -using System; -using System.IO; -using System.Threading.Tasks; -using EShopOnAbp.Shared.Hosting.AspNetCore; -using Microsoft.AspNetCore.Hosting; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.Hosting; -using Serilog; -using Serilog.Events; - -namespace EShopOnAbp.SaasService -{ - public class Program - { - public static async Task Main(string[] args) - { - var assemblyName = typeof(Program).Assembly.GetName().Name; - - SerilogConfigurationHelper.Configure(assemblyName); - - try - { - Log.Information($"Starting {assemblyName}."); - await CreateHostBuilder(args).Build().RunAsync(); - return 0; - } - catch (Exception ex) - { - Log.Fatal(ex, $"{assemblyName} terminated unexpectedly!"); - return 1; - } - finally - { - Log.CloseAndFlush(); - } - } - - internal static IHostBuilder CreateHostBuilder(string[] args) => - Host.CreateDefaultBuilder(args) - .ConfigureAppConfiguration(build => - { - build.AddJsonFile("appsettings.secrets.json", optional: true); - }) - .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup(); }) - .UseAutofac() - .UseSerilog(); - } -} diff --git a/services/saas/src/EShopOnAbp.SaasService.HttpApi.Host/Properties/launchSettings.json b/services/saas/src/EShopOnAbp.SaasService.HttpApi.Host/Properties/launchSettings.json deleted file mode 100644 index c5a9f401..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.HttpApi.Host/Properties/launchSettings.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "iisSettings": { - "windowsAuthentication": false, - "anonymousAuthentication": true, - "iisExpress": { - "applicationUrl": "https://localhost:44352", - "sslPort": 44396 - } - }, - "profiles": { - "IIS Express": { - "commandName": "IISExpress", - "launchBrowser": true, - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } - }, - "EShopOnAbp.SaasService.DemoApp": { - "commandName": "Project", - "launchBrowser": true, - "applicationUrl": "https://localhost:44352", - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } - } - } -} \ No newline at end of file diff --git a/services/saas/src/EShopOnAbp.SaasService.HttpApi.Host/SaasServiceHttpApiHostModule.cs b/services/saas/src/EShopOnAbp.SaasService.HttpApi.Host/SaasServiceHttpApiHostModule.cs deleted file mode 100644 index 72a2cf94..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.HttpApi.Host/SaasServiceHttpApiHostModule.cs +++ /dev/null @@ -1,125 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using EShopOnAbp.SaasService.DbMigrations; -using Microsoft.AspNetCore.Authentication.JwtBearer; -using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Cors; -using Microsoft.AspNetCore.DataProtection; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Hosting; -using EShopOnAbp.SaasService.EntityFrameworkCore; -using EShopOnAbp.Shared.Hosting.AspNetCore; -using EShopOnAbp.Shared.Hosting.Microservices; -using Microsoft.Extensions.Options; -using StackExchange.Redis; -using Microsoft.OpenApi.Models; -using Volo.Abp; -using Volo.Abp.Caching; -using Volo.Abp.EntityFrameworkCore; -using Volo.Abp.Localization; -using Volo.Abp.Modularity; -using Volo.Abp.MultiTenancy; -using Volo.Abp.Threading; -using Volo.Abp.VirtualFileSystem; - -namespace EShopOnAbp.SaasService -{ - [DependsOn( - typeof(EShopOnAbpSharedHostingMicroservicesModule), - typeof(SaasServiceEntityFrameworkCoreModule), - typeof(SaasServiceApplicationModule), - typeof(SaasServiceHttpApiModule) - )] - public class SaasServiceHttpApiHostModule : AbpModule - { - public override void ConfigureServices(ServiceConfigurationContext context) - { - var configuration = context.Services.GetConfiguration(); - context.Services.AddAbpDbContext(); - - JwtBearerConfigurationHelper.Configure(context, "SaasService"); - // SwaggerConfigurationHelper.Configure(context, "Saas Service API"); - - SwaggerWithAuthConfigurationHelper.Configure( - context: context, - authority: configuration["AuthServer:Authority"], - scopes: new - Dictionary /* Requested scopes for authorization code request and descriptions for swagger UI only */ - { - { "SaasService", "Saas Service API" }, - }, - apiTitle: "Saas Service API" - ); - - context.Services.AddCors(options => - { - options.AddDefaultPolicy(builder => - { - builder - .WithOrigins( - configuration["App:CorsOrigins"] - .Split(",", StringSplitOptions.RemoveEmptyEntries) - .Select(o => o.Trim().RemovePostFix("/")) - .ToArray() - ) - .WithAbpExposedHeaders() - .SetIsOriginAllowedToAllowWildcardSubdomains() - .AllowAnyHeader() - .AllowAnyMethod() - .AllowCredentials(); - }); - }); - } - - public override void OnApplicationInitialization(ApplicationInitializationContext context) - { - var app = context.GetApplicationBuilder(); - var env = context.GetEnvironment(); - - if (env.IsDevelopment()) - { - app.UseDeveloperExceptionPage(); - } - - app.UseCorrelationId(); - app.UseCors(); - app.UseAbpRequestLocalization(); - app.UseStaticFiles(); - app.UseRouting(); - // app.UseHttpMetrics(); - app.UseAuthentication(); - app.UseAbpClaimsMap(); - app.UseMultiTenancy(); - app.UseAuthorization(); - app.UseSwagger(); - app.UseSwaggerUI(options => { options.SwaggerEndpoint("/swagger/v1/swagger.json", "Saas Service API"); }); - app.UseAbpSerilogEnrichers(); - app.UseAuditing(); - app.UseUnitOfWork(); - app.UseConfiguredEndpoints(endpoints => - { - // endpoints.MapMetrics(); - }); - } - - public override void OnPostApplicationInitialization(ApplicationInitializationContext context) - { - using (var scope = context.ServiceProvider.CreateScope()) - { - AsyncHelper.RunSync( - () => scope.ServiceProvider - .GetRequiredService() - .CheckAsync() - ); - } - } - } - - public class Test - { - public string ID { get; set; } - public string Name { get; set; } - } -} \ No newline at end of file diff --git a/services/saas/src/EShopOnAbp.SaasService.HttpApi.Host/Startup.cs b/services/saas/src/EShopOnAbp.SaasService.HttpApi.Host/Startup.cs deleted file mode 100644 index ca4789d5..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.HttpApi.Host/Startup.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System; -using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Hosting; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Logging; - -namespace EShopOnAbp.SaasService -{ - public class Startup - { - public void ConfigureServices(IServiceCollection services) - { - services.AddApplication(); - } - - public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory) - { - app.InitializeApplication(); - } - } -} diff --git a/services/saas/src/EShopOnAbp.SaasService.HttpApi.Host/appsettings.json b/services/saas/src/EShopOnAbp.SaasService.HttpApi.Host/appsettings.json deleted file mode 100644 index e0acb96a..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.HttpApi.Host/appsettings.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "App": { - "SelfUrl": "https://localhost:44352", - "CorsOrigins": "https://localhost:44371,https://localhost:44372,https://localhost:44373" - }, - "AuthServer": { - "Authority": "https://localhost:44330", - "RequireHttpsMetadata": "true", - "SwaggerClientId": "SaasService_Swagger", - "SwaggerClientSecret": "1q2w3e*" - }, - "Logging": { - "LogLevel": { - "Default": "Information", - "Microsoft": "Warning", - "Microsoft.Hosting.Lifetime": "Information" - } - }, - "AllowedHosts": "*", - "ConnectionStrings": { - "SaasService": "Server=localhost,1434;Database=EShopOnAbp_Saas;User Id=sa;password=myPassw0rd;MultipleActiveResultSets=true", - "AdministrationService": "Server=localhost,1434;Database=EShopOnAbp_Administration;User Id=sa;password=myPassw0rd;MultipleActiveResultSets=true" - }, - "StringEncryption": { - "DefaultPassPhrase": "gsKnGZ041HLL4IM8" - }, - "Redis": { - "Configuration": "localhost:6379" - }, - "RabbitMQ": { - "Connections": { - "Default": { - "HostName": "localhost" - } - }, - "EventBus": { - "ClientName": "EShopOnAbp_SaasService", - "ExchangeName": "EShopOnAbp" - } - }, - "ElasticSearch": { - "Url": "http://localhost:9200" - }, - "Consul": { - "Enabled": true, - "Host": "http://localhost:8500", - "Service": "Saas Service" - } -} diff --git a/services/saas/src/EShopOnAbp.SaasService.HttpApi/EShopOnAbp.SaasService.HttpApi.csproj b/services/saas/src/EShopOnAbp.SaasService.HttpApi/EShopOnAbp.SaasService.HttpApi.csproj deleted file mode 100644 index c41021e1..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.HttpApi/EShopOnAbp.SaasService.HttpApi.csproj +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - net6.0 - EShopOnAbp.SaasService - - - - - - - - - - - diff --git a/services/saas/src/EShopOnAbp.SaasService.HttpApi/SaasServiceHttpApiModule.cs b/services/saas/src/EShopOnAbp.SaasService.HttpApi/SaasServiceHttpApiModule.cs deleted file mode 100644 index bbe5c187..00000000 --- a/services/saas/src/EShopOnAbp.SaasService.HttpApi/SaasServiceHttpApiModule.cs +++ /dev/null @@ -1,13 +0,0 @@ -using Volo.Abp.Modularity; -using Volo.Abp.TenantManagement; - -namespace EShopOnAbp.SaasService -{ - [DependsOn( - typeof(SaasServiceApplicationContractsModule), - typeof(AbpTenantManagementHttpApiModule) - )] - public class SaasServiceHttpApiModule : AbpModule - { - } -} diff --git a/services/saas/test/EShopOnAbp.SaasService.Application.Tests/EShopOnAbp.SaasService.Application.Tests.csproj b/services/saas/test/EShopOnAbp.SaasService.Application.Tests/EShopOnAbp.SaasService.Application.Tests.csproj deleted file mode 100644 index e70a26a4..00000000 --- a/services/saas/test/EShopOnAbp.SaasService.Application.Tests/EShopOnAbp.SaasService.Application.Tests.csproj +++ /dev/null @@ -1,14 +0,0 @@ - - - - net6.0 - EShopOnAbp.SaasService - - - - - - - - - diff --git a/services/saas/test/EShopOnAbp.SaasService.Application.Tests/FodyWeavers.xml b/services/saas/test/EShopOnAbp.SaasService.Application.Tests/FodyWeavers.xml deleted file mode 100644 index be0de3a9..00000000 --- a/services/saas/test/EShopOnAbp.SaasService.Application.Tests/FodyWeavers.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/services/saas/test/EShopOnAbp.SaasService.Application.Tests/FodyWeavers.xsd b/services/saas/test/EShopOnAbp.SaasService.Application.Tests/FodyWeavers.xsd deleted file mode 100644 index 3f3946e2..00000000 --- a/services/saas/test/EShopOnAbp.SaasService.Application.Tests/FodyWeavers.xsd +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed. - - - - - A comma-separated list of error codes that can be safely ignored in assembly verification. - - - - - 'false' to turn off automatic generation of the XML Schema file. - - - - - \ No newline at end of file diff --git a/services/saas/test/EShopOnAbp.SaasService.Application.Tests/SaasServiceApplicationTestBase.cs b/services/saas/test/EShopOnAbp.SaasService.Application.Tests/SaasServiceApplicationTestBase.cs deleted file mode 100644 index 55b75d6a..00000000 --- a/services/saas/test/EShopOnAbp.SaasService.Application.Tests/SaasServiceApplicationTestBase.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace EShopOnAbp.SaasService -{ - /* Inherit from this class for your application layer tests. - * See SampleAppService_Tests for example. - */ - public abstract class SaasServiceApplicationTestBase : SaasServiceTestBase - { - - } -} \ No newline at end of file diff --git a/services/saas/test/EShopOnAbp.SaasService.Application.Tests/SaasServiceApplicationTestModule.cs b/services/saas/test/EShopOnAbp.SaasService.Application.Tests/SaasServiceApplicationTestModule.cs deleted file mode 100644 index 168741d3..00000000 --- a/services/saas/test/EShopOnAbp.SaasService.Application.Tests/SaasServiceApplicationTestModule.cs +++ /dev/null @@ -1,13 +0,0 @@ -using Volo.Abp.Modularity; - -namespace EShopOnAbp.SaasService -{ - [DependsOn( - typeof(SaasServiceApplicationModule), - typeof(SaasServiceDomainTestModule) - )] - public class SaasServiceApplicationTestModule : AbpModule - { - - } -} diff --git a/services/saas/test/EShopOnAbp.SaasService.Domain.Tests/EShopOnAbp.SaasService.Domain.Tests.csproj b/services/saas/test/EShopOnAbp.SaasService.Domain.Tests/EShopOnAbp.SaasService.Domain.Tests.csproj deleted file mode 100644 index 21c517e7..00000000 --- a/services/saas/test/EShopOnAbp.SaasService.Domain.Tests/EShopOnAbp.SaasService.Domain.Tests.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - - net6.0 - EShopOnAbp.SaasService - - - - - - - - diff --git a/services/saas/test/EShopOnAbp.SaasService.Domain.Tests/FodyWeavers.xml b/services/saas/test/EShopOnAbp.SaasService.Domain.Tests/FodyWeavers.xml deleted file mode 100644 index be0de3a9..00000000 --- a/services/saas/test/EShopOnAbp.SaasService.Domain.Tests/FodyWeavers.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/services/saas/test/EShopOnAbp.SaasService.Domain.Tests/FodyWeavers.xsd b/services/saas/test/EShopOnAbp.SaasService.Domain.Tests/FodyWeavers.xsd deleted file mode 100644 index 3f3946e2..00000000 --- a/services/saas/test/EShopOnAbp.SaasService.Domain.Tests/FodyWeavers.xsd +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed. - - - - - A comma-separated list of error codes that can be safely ignored in assembly verification. - - - - - 'false' to turn off automatic generation of the XML Schema file. - - - - - \ No newline at end of file diff --git a/services/saas/test/EShopOnAbp.SaasService.Domain.Tests/SaasServiceDomainTestBase.cs b/services/saas/test/EShopOnAbp.SaasService.Domain.Tests/SaasServiceDomainTestBase.cs deleted file mode 100644 index 735c0660..00000000 --- a/services/saas/test/EShopOnAbp.SaasService.Domain.Tests/SaasServiceDomainTestBase.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace EShopOnAbp.SaasService -{ - /* Inherit from this class for your domain layer tests. - * See SampleManager_Tests for example. - */ - public abstract class SaasServiceDomainTestBase : SaasServiceTestBase - { - - } -} \ No newline at end of file diff --git a/services/saas/test/EShopOnAbp.SaasService.Domain.Tests/SaasServiceDomainTestModule.cs b/services/saas/test/EShopOnAbp.SaasService.Domain.Tests/SaasServiceDomainTestModule.cs deleted file mode 100644 index c2f6a70f..00000000 --- a/services/saas/test/EShopOnAbp.SaasService.Domain.Tests/SaasServiceDomainTestModule.cs +++ /dev/null @@ -1,17 +0,0 @@ -using EShopOnAbp.SaasService.EntityFrameworkCore; -using Volo.Abp.Modularity; - -namespace EShopOnAbp.SaasService -{ - /* Domain tests are configured to use the EF Core provider. - * You can switch to MongoDB, however your domain tests should be - * database independent anyway. - */ - [DependsOn( - typeof(SaasServiceEntityFrameworkCoreTestModule) - )] - public class SaasServiceDomainTestModule : AbpModule - { - - } -} diff --git a/services/saas/test/EShopOnAbp.SaasService.Domain.Tests/Samples/SampleManager_Tests.cs b/services/saas/test/EShopOnAbp.SaasService.Domain.Tests/Samples/SampleManager_Tests.cs deleted file mode 100644 index 07c05832..00000000 --- a/services/saas/test/EShopOnAbp.SaasService.Domain.Tests/Samples/SampleManager_Tests.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System.Threading.Tasks; -using Xunit; - -namespace EShopOnAbp.SaasService.Samples -{ - public class SampleManager_Tests : SaasServiceDomainTestBase - { - //private readonly SampleManager _sampleManager; - - public SampleManager_Tests() - { - //_sampleManager = GetRequiredService(); - } - - [Fact] - public async Task Method1Async() - { - - } - } -} diff --git a/services/saas/test/EShopOnAbp.SaasService.EntityFrameworkCore.Tests/EShopOnAbp.SaasService.EntityFrameworkCore.Tests.csproj b/services/saas/test/EShopOnAbp.SaasService.EntityFrameworkCore.Tests/EShopOnAbp.SaasService.EntityFrameworkCore.Tests.csproj deleted file mode 100644 index abb6666d..00000000 --- a/services/saas/test/EShopOnAbp.SaasService.EntityFrameworkCore.Tests/EShopOnAbp.SaasService.EntityFrameworkCore.Tests.csproj +++ /dev/null @@ -1,16 +0,0 @@ - - - - net6.0 - EShopOnAbp.SaasService - - - - - - - - - - - diff --git a/services/saas/test/EShopOnAbp.SaasService.EntityFrameworkCore.Tests/EntityFrameworkCore/SaasServiceEntityFrameworkCoreTestBase.cs b/services/saas/test/EShopOnAbp.SaasService.EntityFrameworkCore.Tests/EntityFrameworkCore/SaasServiceEntityFrameworkCoreTestBase.cs deleted file mode 100644 index 91af3458..00000000 --- a/services/saas/test/EShopOnAbp.SaasService.EntityFrameworkCore.Tests/EntityFrameworkCore/SaasServiceEntityFrameworkCoreTestBase.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace EShopOnAbp.SaasService.EntityFrameworkCore -{ - /* This class can be used as a base class for EF Core integration tests, - * while SampleRepository_Tests uses a different approach. - */ - public abstract class SaasServiceEntityFrameworkCoreTestBase : SaasServiceTestBase - { - - } -} \ No newline at end of file diff --git a/services/saas/test/EShopOnAbp.SaasService.EntityFrameworkCore.Tests/EntityFrameworkCore/SaasServiceEntityFrameworkCoreTestModule.cs b/services/saas/test/EShopOnAbp.SaasService.EntityFrameworkCore.Tests/EntityFrameworkCore/SaasServiceEntityFrameworkCoreTestModule.cs deleted file mode 100644 index eaf068d9..00000000 --- a/services/saas/test/EShopOnAbp.SaasService.EntityFrameworkCore.Tests/EntityFrameworkCore/SaasServiceEntityFrameworkCoreTestModule.cs +++ /dev/null @@ -1,43 +0,0 @@ -using Microsoft.Data.Sqlite; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Storage; -using Volo.Abp.EntityFrameworkCore; -using Volo.Abp.EntityFrameworkCore.Sqlite; -using Volo.Abp.Modularity; - -namespace EShopOnAbp.SaasService.EntityFrameworkCore -{ - [DependsOn( - typeof(SaasServiceTestBaseModule), - typeof(SaasServiceEntityFrameworkCoreModule), - typeof(AbpEntityFrameworkCoreSqliteModule) - )] - public class SaasServiceEntityFrameworkCoreTestModule : AbpModule - { - public override void ConfigureServices(ServiceConfigurationContext context) - { - var sqliteConnection = CreateDatabaseAndGetConnection(); - - Configure(options => - { - options.Configure(abpDbContextConfigurationContext => - { - abpDbContextConfigurationContext.DbContextOptions.UseSqlite(sqliteConnection); - }); - }); - } - - private static SqliteConnection CreateDatabaseAndGetConnection() - { - var connection = new SqliteConnection("Data Source=:memory:"); - connection.Open(); - - new SaasServiceDbContext( - new DbContextOptionsBuilder().UseSqlite(connection).Options - ).GetService().CreateTables(); - - return connection; - } - } -} diff --git a/services/saas/test/EShopOnAbp.SaasService.EntityFrameworkCore.Tests/FodyWeavers.xml b/services/saas/test/EShopOnAbp.SaasService.EntityFrameworkCore.Tests/FodyWeavers.xml deleted file mode 100644 index be0de3a9..00000000 --- a/services/saas/test/EShopOnAbp.SaasService.EntityFrameworkCore.Tests/FodyWeavers.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/services/saas/test/EShopOnAbp.SaasService.EntityFrameworkCore.Tests/FodyWeavers.xsd b/services/saas/test/EShopOnAbp.SaasService.EntityFrameworkCore.Tests/FodyWeavers.xsd deleted file mode 100644 index 3f3946e2..00000000 --- a/services/saas/test/EShopOnAbp.SaasService.EntityFrameworkCore.Tests/FodyWeavers.xsd +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed. - - - - - A comma-separated list of error codes that can be safely ignored in assembly verification. - - - - - 'false' to turn off automatic generation of the XML Schema file. - - - - - \ No newline at end of file diff --git a/services/saas/test/EShopOnAbp.SaasService.HttpApi.Client.ConsoleTestApp/ClientDemoService.cs b/services/saas/test/EShopOnAbp.SaasService.HttpApi.Client.ConsoleTestApp/ClientDemoService.cs deleted file mode 100644 index 7f91e5f7..00000000 --- a/services/saas/test/EShopOnAbp.SaasService.HttpApi.Client.ConsoleTestApp/ClientDemoService.cs +++ /dev/null @@ -1,156 +0,0 @@ -using System; -using System.Net.Http; -using System.Threading.Tasks; -using IdentityModel.Client; -using Microsoft.Extensions.Configuration; -using EShopOnAbp.SaasService.Samples; -using Volo.Abp.DependencyInjection; -using Volo.Abp.IdentityModel; - -namespace EShopOnAbp.SaasService -{ - public class ClientDemoService : ITransientDependency - { - private readonly ISampleAppService _sampleAppService; - private readonly IIdentityModelAuthenticationService _authenticationService; - private readonly IConfiguration _configuration; - - public ClientDemoService( - ISampleAppService sampleAppService, - IIdentityModelAuthenticationService authenticationService, - IConfiguration configuration) - { - _sampleAppService = sampleAppService; - _authenticationService = authenticationService; - _configuration = configuration; - } - - public async Task RunAsync() - { - await TestWithDynamicProxiesAsync(); - await TestWithHttpClientAndIdentityModelAuthenticationServiceAsync(); - await TestAllManuallyAsync(); - } - - /* Shows how to perform an HTTP request to the API using ABP's dynamic c# proxy - * feature. It is just simple as calling a local service method. - * Authorization and HTTP request details are handled by the ABP framework. - */ - private async Task TestWithDynamicProxiesAsync() - { - Console.WriteLine(); - Console.WriteLine($"***** {nameof(TestWithDynamicProxiesAsync)} *****"); - - var result = await _sampleAppService.GetAsync(); - Console.WriteLine("Result: " + result.Value); - - result = await _sampleAppService.GetAuthorizedAsync(); - Console.WriteLine("Result (authorized): " + result.Value); - } - - /* Shows how to use HttpClient to perform a request to the HTTP API. - * It uses ABP's IIdentityModelAuthenticationService to simplify obtaining access tokens. - */ - private async Task TestWithHttpClientAndIdentityModelAuthenticationServiceAsync() - { - Console.WriteLine(); - Console.WriteLine($"***** {nameof(TestWithHttpClientAndIdentityModelAuthenticationServiceAsync)} *****"); - - //Get access token using ABP's IIdentityModelAuthenticationService - - var accessToken = await _authenticationService.GetAccessTokenAsync( - new IdentityClientConfiguration( - _configuration["IdentityClients:Default:Authority"], - _configuration["IdentityClients:Default:Scope"], - _configuration["IdentityClients:Default:ClientId"], - _configuration["IdentityClients:Default:ClientSecret"], - _configuration["IdentityClients:Default:GrantType"], - _configuration["IdentityClients:Default:UserName"], - _configuration["IdentityClients:Default:UserPassword"] - ) - ); - - //Perform the actual HTTP request - - using (var httpClient = new HttpClient()) - { - httpClient.SetBearerToken(accessToken); - - var url = _configuration["RemoteServices:SaasService:BaseUrl"] + - "api/SaasService/sample/authorized"; - - var responseMessage = await httpClient.GetAsync(url); - if (responseMessage.IsSuccessStatusCode) - { - var responseString = await responseMessage.Content.ReadAsStringAsync(); - Console.WriteLine("Result: " + responseString); - } - else - { - throw new Exception("Remote server returns error code: " + responseMessage.StatusCode); - } - } - } - - /* Shows how to use HttpClient to perform a request to the HTTP API. - * It obtains access token using IdentityServer's API. See its documentation: - * https://identityserver4.readthedocs.io/en/latest/quickstarts/2_resource_owner_passwords.html - */ - private async Task TestAllManuallyAsync() - { - Console.WriteLine(); - Console.WriteLine($"***** {nameof(TestAllManuallyAsync)} *****"); - - //Obtain access token from the IDS4 server - - // discover endpoints from metadata - var client = new HttpClient(); - var disco = await client.GetDiscoveryDocumentAsync(_configuration["IdentityClients:Default:Authority"]); - if (disco.IsError) - { - Console.WriteLine(disco.Error); - return; - } - - // request token - var tokenResponse = await client.RequestPasswordTokenAsync(new PasswordTokenRequest - { - Address = disco.TokenEndpoint, - ClientId = _configuration["IdentityClients:Default:ClientId"], - ClientSecret = _configuration["IdentityClients:Default:ClientSecret"], - UserName = _configuration["IdentityClients:Default:UserName"], - Password = _configuration["IdentityClients:Default:UserPassword"], - Scope = _configuration["IdentityClients:Default:Scope"] - }); - - if (tokenResponse.IsError) - { - Console.WriteLine(tokenResponse.Error); - return; - } - - Console.WriteLine(tokenResponse.Json); - - //Perform the actual HTTP request - - using (var httpClient = new HttpClient()) - { - httpClient.SetBearerToken(tokenResponse.AccessToken); - - var url = _configuration["RemoteServices:SaasService:BaseUrl"] + - "api/SaasService/sample/authorized"; - - var responseMessage = await httpClient.GetAsync(url); - if (responseMessage.IsSuccessStatusCode) - { - var responseString = await responseMessage.Content.ReadAsStringAsync(); - Console.WriteLine("Result: " + responseString); - } - else - { - throw new Exception("Remote server returns error code: " + responseMessage.StatusCode); - } - } - } - } -} \ No newline at end of file diff --git a/services/saas/test/EShopOnAbp.SaasService.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs b/services/saas/test/EShopOnAbp.SaasService.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs deleted file mode 100644 index cdefeb11..00000000 --- a/services/saas/test/EShopOnAbp.SaasService.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs +++ /dev/null @@ -1,26 +0,0 @@ -using Microsoft.Extensions.Hosting; -using System.Threading; -using System.Threading.Tasks; -using Microsoft.Extensions.DependencyInjection; -using Volo.Abp; - -namespace EShopOnAbp.SaasService.HttpApi.Client.ConsoleTestApp -{ - public class ConsoleTestAppHostedService : IHostedService - { - public async Task StartAsync(CancellationToken cancellationToken) - { - using (var application = AbpApplicationFactory.Create()) - { - application.Initialize(); - - var demo = application.ServiceProvider.GetRequiredService(); - await demo.RunAsync(); - - application.Shutdown(); - } - } - - public Task StopAsync(CancellationToken cancellationToken) => Task.CompletedTask; - } -} diff --git a/services/saas/test/EShopOnAbp.SaasService.HttpApi.Client.ConsoleTestApp/EShopOnAbp.SaasService.HttpApi.Client.ConsoleTestApp.csproj b/services/saas/test/EShopOnAbp.SaasService.HttpApi.Client.ConsoleTestApp/EShopOnAbp.SaasService.HttpApi.Client.ConsoleTestApp.csproj deleted file mode 100644 index 7feb1dac..00000000 --- a/services/saas/test/EShopOnAbp.SaasService.HttpApi.Client.ConsoleTestApp/EShopOnAbp.SaasService.HttpApi.Client.ConsoleTestApp.csproj +++ /dev/null @@ -1,26 +0,0 @@ - - - - Exe - net6.0 - EShopOnAbp.SaasService - - - - - - - - - - - PreserveNewest - Always - - - - - - - - diff --git a/services/saas/test/EShopOnAbp.SaasService.HttpApi.Client.ConsoleTestApp/Program.cs b/services/saas/test/EShopOnAbp.SaasService.HttpApi.Client.ConsoleTestApp/Program.cs deleted file mode 100644 index 23dbdc98..00000000 --- a/services/saas/test/EShopOnAbp.SaasService.HttpApi.Client.ConsoleTestApp/Program.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System.Threading.Tasks; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Hosting; - -namespace EShopOnAbp.SaasService.HttpApi.Client.ConsoleTestApp -{ - class Program - { - static async Task Main(string[] args) - { - await CreateHostBuilder(args).RunConsoleAsync(); - } - - public static IHostBuilder CreateHostBuilder(string[] args) => - Host.CreateDefaultBuilder(args) - .ConfigureServices((hostContext, services) => - { - services.AddHostedService(); - }); - } -} diff --git a/services/saas/test/EShopOnAbp.SaasService.HttpApi.Client.ConsoleTestApp/SaasServiceConsoleApiClientModule.cs b/services/saas/test/EShopOnAbp.SaasService.HttpApi.Client.ConsoleTestApp/SaasServiceConsoleApiClientModule.cs deleted file mode 100644 index 79b77d25..00000000 --- a/services/saas/test/EShopOnAbp.SaasService.HttpApi.Client.ConsoleTestApp/SaasServiceConsoleApiClientModule.cs +++ /dev/null @@ -1,14 +0,0 @@ -using Volo.Abp.Http.Client.IdentityModel; -using Volo.Abp.Modularity; - -namespace EShopOnAbp.SaasService -{ - [DependsOn( - typeof(SaasServiceHttpApiClientModule), - typeof(AbpHttpClientIdentityModelModule) - )] - public class SaasServiceConsoleApiClientModule : AbpModule - { - - } -} diff --git a/services/saas/test/EShopOnAbp.SaasService.HttpApi.Client.ConsoleTestApp/appsettings.json b/services/saas/test/EShopOnAbp.SaasService.HttpApi.Client.ConsoleTestApp/appsettings.json deleted file mode 100644 index eb9f7326..00000000 --- a/services/saas/test/EShopOnAbp.SaasService.HttpApi.Client.ConsoleTestApp/appsettings.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "RemoteServices": { - "Default": { - "BaseUrl": "https://localhost:44348/" - }, - "SaasService": { - "BaseUrl": "https://localhost:44396/" - } - }, - "IdentityClients": { - "Default": { - "GrantType": "password", - "ClientId": "SaasService_App", - "ClientSecret": "1q2w3e*", - "UserName": "admin", - "UserPassword": "1q2w3E*", - "Authority": "https://localhost:44348/", - "Scope": "SaasService" - } - } -} diff --git a/services/saas/test/EShopOnAbp.SaasService.MongoDB.Tests/EShopOnAbp.SaasService.MongoDB.Tests.csproj b/services/saas/test/EShopOnAbp.SaasService.MongoDB.Tests/EShopOnAbp.SaasService.MongoDB.Tests.csproj deleted file mode 100644 index 51fa392b..00000000 --- a/services/saas/test/EShopOnAbp.SaasService.MongoDB.Tests/EShopOnAbp.SaasService.MongoDB.Tests.csproj +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - net6.0 - EShopOnAbp.SaasService - - - - - - - - - - diff --git a/services/saas/test/EShopOnAbp.SaasService.MongoDB.Tests/FodyWeavers.xml b/services/saas/test/EShopOnAbp.SaasService.MongoDB.Tests/FodyWeavers.xml deleted file mode 100644 index be0de3a9..00000000 --- a/services/saas/test/EShopOnAbp.SaasService.MongoDB.Tests/FodyWeavers.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/services/saas/test/EShopOnAbp.SaasService.MongoDB.Tests/FodyWeavers.xsd b/services/saas/test/EShopOnAbp.SaasService.MongoDB.Tests/FodyWeavers.xsd deleted file mode 100644 index 3f3946e2..00000000 --- a/services/saas/test/EShopOnAbp.SaasService.MongoDB.Tests/FodyWeavers.xsd +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed. - - - - - A comma-separated list of error codes that can be safely ignored in assembly verification. - - - - - 'false' to turn off automatic generation of the XML Schema file. - - - - - \ No newline at end of file diff --git a/services/saas/test/EShopOnAbp.SaasService.MongoDB.Tests/MongoDB/MongoDbFixture.cs b/services/saas/test/EShopOnAbp.SaasService.MongoDB.Tests/MongoDB/MongoDbFixture.cs deleted file mode 100644 index 5e7949d2..00000000 --- a/services/saas/test/EShopOnAbp.SaasService.MongoDB.Tests/MongoDB/MongoDbFixture.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; -using Mongo2Go; - -namespace EShopOnAbp.SaasService.MongoDB -{ - public class MongoDbFixture : IDisposable - { - private static readonly MongoDbRunner MongoDbRunner; - public static readonly string ConnectionString; - - static MongoDbFixture() - { - MongoDbRunner = MongoDbRunner.Start(singleNodeReplSet: true, singleNodeReplSetWaitTimeout: 20); - ConnectionString = MongoDbRunner.ConnectionString; - } - - public void Dispose() - { - MongoDbRunner?.Dispose(); - } - } -} diff --git a/services/saas/test/EShopOnAbp.SaasService.MongoDB.Tests/MongoDB/MongoTestCollection.cs b/services/saas/test/EShopOnAbp.SaasService.MongoDB.Tests/MongoDB/MongoTestCollection.cs deleted file mode 100644 index d2af9690..00000000 --- a/services/saas/test/EShopOnAbp.SaasService.MongoDB.Tests/MongoDB/MongoTestCollection.cs +++ /dev/null @@ -1,10 +0,0 @@ -using Xunit; - -namespace EShopOnAbp.SaasService.MongoDB -{ - [CollectionDefinition(Name)] - public class MongoTestCollection : ICollectionFixture - { - public const string Name = "MongoDB Collection"; - } -} \ No newline at end of file diff --git a/services/saas/test/EShopOnAbp.SaasService.MongoDB.Tests/MongoDB/SaasServiceMongoDbTestBase.cs b/services/saas/test/EShopOnAbp.SaasService.MongoDB.Tests/MongoDB/SaasServiceMongoDbTestBase.cs deleted file mode 100644 index 2cc693a5..00000000 --- a/services/saas/test/EShopOnAbp.SaasService.MongoDB.Tests/MongoDB/SaasServiceMongoDbTestBase.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace EShopOnAbp.SaasService.MongoDB -{ - /* This class can be used as a base class for MongoDB integration tests, - * while SampleRepository_Tests uses a different approach. - */ - public abstract class SaasServiceMongoDbTestBase : SaasServiceTestBase - { - - } -} \ No newline at end of file diff --git a/services/saas/test/EShopOnAbp.SaasService.MongoDB.Tests/MongoDB/SaasServiceMongoDbTestModule.cs b/services/saas/test/EShopOnAbp.SaasService.MongoDB.Tests/MongoDB/SaasServiceMongoDbTestModule.cs deleted file mode 100644 index 020c9335..00000000 --- a/services/saas/test/EShopOnAbp.SaasService.MongoDB.Tests/MongoDB/SaasServiceMongoDbTestModule.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System; -using Volo.Abp.Data; -using Volo.Abp.Modularity; -using Volo.Abp.Uow; - -namespace EShopOnAbp.SaasService.MongoDB -{ - [DependsOn( - typeof(SaasServiceTestBaseModule), - typeof(SaasServiceMongoDbModule) - )] - public class SaasServiceMongoDbTestModule : AbpModule - { - public override void ConfigureServices(ServiceConfigurationContext context) - { - var stringArray = MongoDbFixture.ConnectionString.Split('?'); - var connectionString = stringArray[0].EnsureEndsWith('/') + - "Db_" + - Guid.NewGuid().ToString("N") + "/?" + stringArray[1]; - - Configure(options => - { - options.ConnectionStrings.Default = connectionString; - }); - } - } -} diff --git a/services/saas/test/EShopOnAbp.SaasService.MongoDB.Tests/MongoDB/Samples/SampleRepository_Tests.cs b/services/saas/test/EShopOnAbp.SaasService.MongoDB.Tests/MongoDB/Samples/SampleRepository_Tests.cs deleted file mode 100644 index f2368643..00000000 --- a/services/saas/test/EShopOnAbp.SaasService.MongoDB.Tests/MongoDB/Samples/SampleRepository_Tests.cs +++ /dev/null @@ -1,14 +0,0 @@ -using EShopOnAbp.SaasService.Samples; -using Xunit; - -namespace EShopOnAbp.SaasService.MongoDB.Samples -{ - [Collection(MongoTestCollection.Name)] - public class SampleRepository_Tests : SampleRepository_Tests - { - /* Don't write custom repository tests here, instead write to - * the base class. - * One exception can be some specific tests related to MongoDB. - */ - } -} diff --git a/services/saas/test/EShopOnAbp.SaasService.TestBase/EShopOnAbp.SaasService.TestBase.csproj b/services/saas/test/EShopOnAbp.SaasService.TestBase/EShopOnAbp.SaasService.TestBase.csproj deleted file mode 100644 index d78b1552..00000000 --- a/services/saas/test/EShopOnAbp.SaasService.TestBase/EShopOnAbp.SaasService.TestBase.csproj +++ /dev/null @@ -1,21 +0,0 @@ - - - - net6.0 - EShopOnAbp.SaasService - - - - - - - - - - - - - - - - diff --git a/services/saas/test/EShopOnAbp.SaasService.TestBase/FodyWeavers.xml b/services/saas/test/EShopOnAbp.SaasService.TestBase/FodyWeavers.xml deleted file mode 100644 index be0de3a9..00000000 --- a/services/saas/test/EShopOnAbp.SaasService.TestBase/FodyWeavers.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/services/saas/test/EShopOnAbp.SaasService.TestBase/FodyWeavers.xsd b/services/saas/test/EShopOnAbp.SaasService.TestBase/FodyWeavers.xsd deleted file mode 100644 index 3f3946e2..00000000 --- a/services/saas/test/EShopOnAbp.SaasService.TestBase/FodyWeavers.xsd +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed. - - - - - A comma-separated list of error codes that can be safely ignored in assembly verification. - - - - - 'false' to turn off automatic generation of the XML Schema file. - - - - - \ No newline at end of file diff --git a/services/saas/test/EShopOnAbp.SaasService.TestBase/SaasServiceDataSeedContributor.cs b/services/saas/test/EShopOnAbp.SaasService.TestBase/SaasServiceDataSeedContributor.cs deleted file mode 100644 index a880915f..00000000 --- a/services/saas/test/EShopOnAbp.SaasService.TestBase/SaasServiceDataSeedContributor.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Threading.Tasks; -using Volo.Abp.Data; -using Volo.Abp.DependencyInjection; -using Volo.Abp.Guids; -using Volo.Abp.MultiTenancy; - -namespace EShopOnAbp.SaasService -{ - public class SaasServiceDataSeedContributor : IDataSeedContributor, ITransientDependency - { - private readonly IGuidGenerator _guidGenerator; - private readonly ICurrentTenant _currentTenant; - - public SaasServiceDataSeedContributor( - IGuidGenerator guidGenerator, ICurrentTenant currentTenant) - { - _guidGenerator = guidGenerator; - _currentTenant = currentTenant; - } - - public Task SeedAsync(DataSeedContext context) - { - /* Instead of returning the Task.CompletedTask, you can insert your test data - * at this point! - */ - - using (_currentTenant.Change(context?.TenantId)) - { - return Task.CompletedTask; - } - } - } -} diff --git a/services/saas/test/EShopOnAbp.SaasService.TestBase/SaasServiceTestBase.cs b/services/saas/test/EShopOnAbp.SaasService.TestBase/SaasServiceTestBase.cs deleted file mode 100644 index 40be418b..00000000 --- a/services/saas/test/EShopOnAbp.SaasService.TestBase/SaasServiceTestBase.cs +++ /dev/null @@ -1,60 +0,0 @@ -using System; -using System.Threading.Tasks; -using Microsoft.Extensions.DependencyInjection; -using Volo.Abp; -using Volo.Abp.Modularity; -using Volo.Abp.Uow; -using Volo.Abp.Testing; - -namespace EShopOnAbp.SaasService -{ - /* All test classes are derived from this class, directly or indirectly. */ - public abstract class SaasServiceTestBase : AbpIntegratedTest - where TStartupModule : IAbpModule - { - protected override void SetAbpApplicationCreationOptions(AbpApplicationCreationOptions options) - { - options.UseAutofac(); - } - - protected virtual Task WithUnitOfWorkAsync(Func func) - { - return WithUnitOfWorkAsync(new AbpUnitOfWorkOptions(), func); - } - - protected virtual async Task WithUnitOfWorkAsync(AbpUnitOfWorkOptions options, Func action) - { - using (var scope = ServiceProvider.CreateScope()) - { - var uowManager = scope.ServiceProvider.GetRequiredService(); - - using (var uow = uowManager.Begin(options)) - { - await action(); - - await uow.CompleteAsync(); - } - } - } - - protected virtual Task WithUnitOfWorkAsync(Func> func) - { - return WithUnitOfWorkAsync(new AbpUnitOfWorkOptions(), func); - } - - protected virtual async Task WithUnitOfWorkAsync(AbpUnitOfWorkOptions options, Func> func) - { - using (var scope = ServiceProvider.CreateScope()) - { - var uowManager = scope.ServiceProvider.GetRequiredService(); - - using (var uow = uowManager.Begin(options)) - { - var result = await func(); - await uow.CompleteAsync(); - return result; - } - } - } - } -} diff --git a/services/saas/test/EShopOnAbp.SaasService.TestBase/SaasServiceTestBaseModule.cs b/services/saas/test/EShopOnAbp.SaasService.TestBase/SaasServiceTestBaseModule.cs deleted file mode 100644 index 1cfa754c..00000000 --- a/services/saas/test/EShopOnAbp.SaasService.TestBase/SaasServiceTestBaseModule.cs +++ /dev/null @@ -1,42 +0,0 @@ -using Microsoft.Extensions.DependencyInjection; -using Volo.Abp; -using Volo.Abp.Authorization; -using Volo.Abp.Autofac; -using Volo.Abp.Data; -using Volo.Abp.Modularity; -using Volo.Abp.Threading; - -namespace EShopOnAbp.SaasService -{ - [DependsOn( - typeof(AbpAutofacModule), - typeof(AbpTestBaseModule), - typeof(AbpAuthorizationModule), - typeof(SaasServiceDomainModule) - )] - public class SaasServiceTestBaseModule : AbpModule - { - public override void ConfigureServices(ServiceConfigurationContext context) - { - context.Services.AddAlwaysAllowAuthorization(); - } - - public override void OnApplicationInitialization(ApplicationInitializationContext context) - { - SeedTestData(context); - } - - private static void SeedTestData(ApplicationInitializationContext context) - { - AsyncHelper.RunSync(async () => - { - using (var scope = context.ServiceProvider.CreateScope()) - { - await scope.ServiceProvider - .GetRequiredService() - .SeedAsync(); - } - }); - } - } -} diff --git a/services/saas/test/EShopOnAbp.SaasService.TestBase/Samples/SampleRepository_Tests.cs b/services/saas/test/EShopOnAbp.SaasService.TestBase/Samples/SampleRepository_Tests.cs deleted file mode 100644 index ce04462a..00000000 --- a/services/saas/test/EShopOnAbp.SaasService.TestBase/Samples/SampleRepository_Tests.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System.Threading.Tasks; -using Volo.Abp.Modularity; -using Xunit; - -namespace EShopOnAbp.SaasService.Samples -{ - /* Write your custom repository tests like that, in this project, as abstract classes. - * Then inherit these abstract classes from EF Core & MongoDB test projects. - * In this way, both database providers are tests with the same set tests. - */ - public abstract class SampleRepository_Tests : SaasServiceTestBase - where TStartupModule : IAbpModule - { - //private readonly ISampleRepository _sampleRepository; - - protected SampleRepository_Tests() - { - //_sampleRepository = GetRequiredService(); - } - - [Fact] - public async Task Method1Async() - { - - } - } -} diff --git a/services/saas/test/EShopOnAbp.SaasService.TestBase/Security/FakeCurrentPrincipalAccessor.cs b/services/saas/test/EShopOnAbp.SaasService.TestBase/Security/FakeCurrentPrincipalAccessor.cs deleted file mode 100644 index 3453561b..00000000 --- a/services/saas/test/EShopOnAbp.SaasService.TestBase/Security/FakeCurrentPrincipalAccessor.cs +++ /dev/null @@ -1,43 +0,0 @@ -using System.Collections.Generic; -using System.Security.Claims; -using Volo.Abp.DependencyInjection; -using Volo.Abp.Security.Claims; - -namespace EShopOnAbp.SaasService.Security -{ - [Dependency(ReplaceServices = true)] - public class FakeCurrentPrincipalAccessor : ThreadCurrentPrincipalAccessor - { - protected override ClaimsPrincipal GetClaimsPrincipal() - { - return GetPrincipal(); - } - - private ClaimsPrincipal _principal; - - private ClaimsPrincipal GetPrincipal() - { - if (_principal == null) - { - lock (this) - { - if (_principal == null) - { - _principal = new ClaimsPrincipal( - new ClaimsIdentity( - new List - { - new Claim(AbpClaimTypes.UserId,"2e701e62-0953-4dd3-910b-dc6cc93ccb0d"), - new Claim(AbpClaimTypes.UserName,"admin"), - new Claim(AbpClaimTypes.Email,"admin@abp.io") - } - ) - ); - } - } - } - - return _principal; - } - } -} diff --git a/shared/EShopOnAbp.Shared.Hosting.AspNetCore/EShopOnAbp.Shared.Hosting.AspNetCore.csproj b/shared/EShopOnAbp.Shared.Hosting.AspNetCore/EShopOnAbp.Shared.Hosting.AspNetCore.csproj index 78d9f098..2ceafacb 100644 --- a/shared/EShopOnAbp.Shared.Hosting.AspNetCore/EShopOnAbp.Shared.Hosting.AspNetCore.csproj +++ b/shared/EShopOnAbp.Shared.Hosting.AspNetCore/EShopOnAbp.Shared.Hosting.AspNetCore.csproj @@ -8,8 +8,8 @@ - - + + diff --git a/shared/EShopOnAbp.Shared.Hosting.Gateways/EShopOnAbp.Shared.Hosting.Gateways.csproj b/shared/EShopOnAbp.Shared.Hosting.Gateways/EShopOnAbp.Shared.Hosting.Gateways.csproj index 2621e58c..f4163f23 100644 --- a/shared/EShopOnAbp.Shared.Hosting.Gateways/EShopOnAbp.Shared.Hosting.Gateways.csproj +++ b/shared/EShopOnAbp.Shared.Hosting.Gateways/EShopOnAbp.Shared.Hosting.Gateways.csproj @@ -10,7 +10,7 @@ - + diff --git a/shared/EShopOnAbp.Shared.Hosting.Microservices/DbMigrations/DatabaseMigrationEventHandlerBase.cs b/shared/EShopOnAbp.Shared.Hosting.Microservices/DbMigrations/DatabaseMigrationEventHandlerBase.cs index 2fde12ba..694c6479 100644 --- a/shared/EShopOnAbp.Shared.Hosting.Microservices/DbMigrations/DatabaseMigrationEventHandlerBase.cs +++ b/shared/EShopOnAbp.Shared.Hosting.Microservices/DbMigrations/DatabaseMigrationEventHandlerBase.cs @@ -14,7 +14,6 @@ using Volo.Abp.Domain.Entities.Events.Distributed; using Volo.Abp.EntityFrameworkCore; using Volo.Abp.EventBus.Distributed; using Volo.Abp.MultiTenancy; -using Volo.Abp.TenantManagement; using Volo.Abp.Uow; namespace EShopOnAbp.Shared.Hosting.Microservices.DbMigrations @@ -29,7 +28,6 @@ namespace EShopOnAbp.Shared.Hosting.Microservices.DbMigrations protected ICurrentTenant CurrentTenant { get; } protected IUnitOfWorkManager UnitOfWorkManager { get; } protected ITenantStore TenantStore { get; } - protected ITenantRepository TenantRepository { get; } protected IDistributedEventBus DistributedEventBus { get; } protected ILogger> Logger { get; set; } protected string DatabaseName { get; } @@ -38,7 +36,6 @@ namespace EShopOnAbp.Shared.Hosting.Microservices.DbMigrations ICurrentTenant currentTenant, IUnitOfWorkManager unitOfWorkManager, ITenantStore tenantStore, - ITenantRepository tenantRepository, IDistributedEventBus distributedEventBus, string databaseName) { @@ -47,7 +44,6 @@ namespace EShopOnAbp.Shared.Hosting.Microservices.DbMigrations TenantStore = tenantStore; DatabaseName = databaseName; DistributedEventBus = distributedEventBus; - TenantRepository = tenantRepository; Logger = NullLogger>.Instance; } @@ -163,21 +159,6 @@ namespace EShopOnAbp.Shared.Hosting.Microservices.DbMigrations } } - protected virtual async Task QueueTenantMigrationsAsync() - { - var tenants = await TenantRepository.GetListAsync(); // .GetListWithSeparateConnectionStringAsync(); - foreach (var tenant in tenants) - { - await DistributedEventBus.PublishAsync( - new ApplyDatabaseMigrationsEto - { - DatabaseName = DatabaseName, - TenantId = tenant.Id - } - ); - } - } - private static int GetEventTryCount(EtoBase eventData) { var tryCountAsString = eventData.Properties.GetOrDefault(TryCountPropertyName); diff --git a/shared/EShopOnAbp.Shared.Hosting.Microservices/EShopOnAbp.Shared.Hosting.Microservices.csproj b/shared/EShopOnAbp.Shared.Hosting.Microservices/EShopOnAbp.Shared.Hosting.Microservices.csproj index 8edbb281..102b91cc 100644 --- a/shared/EShopOnAbp.Shared.Hosting.Microservices/EShopOnAbp.Shared.Hosting.Microservices.csproj +++ b/shared/EShopOnAbp.Shared.Hosting.Microservices/EShopOnAbp.Shared.Hosting.Microservices.csproj @@ -9,21 +9,20 @@ - - + + - - - - + + + + - - +
diff --git a/shared/EShopOnAbp.Shared.Hosting.Microservices/EShopOnAbpSharedHostingMicroservicesModule.cs b/shared/EShopOnAbp.Shared.Hosting.Microservices/EShopOnAbpSharedHostingMicroservicesModule.cs index f2554fb3..1e9fcfe6 100644 --- a/shared/EShopOnAbp.Shared.Hosting.Microservices/EShopOnAbpSharedHostingMicroservicesModule.cs +++ b/shared/EShopOnAbp.Shared.Hosting.Microservices/EShopOnAbpSharedHostingMicroservicesModule.cs @@ -1,5 +1,4 @@ using EShopOnAbp.AdministrationService.EntityFrameworkCore; -using EShopOnAbp.SaasService.EntityFrameworkCore; using EShopOnAbp.Shared.Hosting.AspNetCore; using Microsoft.AspNetCore.DataProtection; using Microsoft.Extensions.DependencyInjection; @@ -20,7 +19,6 @@ namespace EShopOnAbp.Shared.Hosting.Microservices typeof(AbpAspNetCoreMultiTenancyModule), typeof(AbpEventBusRabbitMqModule), typeof(AbpCachingStackExchangeRedisModule), - typeof(SaasServiceEntityFrameworkCoreModule), typeof(AdministrationServiceEntityFrameworkCoreModule) )] public class EShopOnAbpSharedHostingMicroservicesModule : AbpModule diff --git a/shared/EShopOnAbp.Shared.Hosting/EShopOnAbp.Shared.Hosting.csproj b/shared/EShopOnAbp.Shared.Hosting/EShopOnAbp.Shared.Hosting.csproj index ce0fdce5..70d6b1c4 100644 --- a/shared/EShopOnAbp.Shared.Hosting/EShopOnAbp.Shared.Hosting.csproj +++ b/shared/EShopOnAbp.Shared.Hosting/EShopOnAbp.Shared.Hosting.csproj @@ -13,8 +13,8 @@
- - + + diff --git a/shared/EShopOnAbp.Shared.Localization/EShopOnAbp.Shared.Localization.csproj b/shared/EShopOnAbp.Shared.Localization/EShopOnAbp.Shared.Localization.csproj index e5bbb3df..430d60c3 100644 --- a/shared/EShopOnAbp.Shared.Localization/EShopOnAbp.Shared.Localization.csproj +++ b/shared/EShopOnAbp.Shared.Localization/EShopOnAbp.Shared.Localization.csproj @@ -7,8 +7,8 @@ - - + + diff --git a/tye.yaml b/tye.yaml index 091b631f..22ba6cb3 100644 --- a/tye.yaml +++ b/tye.yaml @@ -18,15 +18,6 @@ services: - Kestrel__Certificates__Default__Path=../../../../etc/dev-cert/localhost.pfx - Kestrel__Certificates__Default__Password=8b6039b6-c67a-448b-977b-0ce6d3fcfd49 -- name: saas-service - project: services/saas/src/EShopOnAbp.SaasService.HttpApi.Host/EShopOnAbp.SaasService.HttpApi.Host.csproj - bindings: - - protocol: https - port: 44352 - env: - - Kestrel__Certificates__Default__Path=../../../../etc/dev-cert/localhost.pfx - - Kestrel__Certificates__Default__Password=8b6039b6-c67a-448b-977b-0ce6d3fcfd49 - - name: administration-service project: services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/EShopOnAbp.AdministrationService.HttpApi.Host.csproj bindings: @@ -90,15 +81,6 @@ services: - Kestrel__Certificates__Default__Path=../../../../etc/dev-cert/localhost.pfx - Kestrel__Certificates__Default__Password=8b6039b6-c67a-448b-977b-0ce6d3fcfd49 -- name: internal-gateway - project: gateways/internal/src/EShopOnAbp.InternalGateway/EShopOnAbp.InternalGateway.csproj - bindings: - - protocol: https - port: 44371 - env: - - Kestrel__Certificates__Default__Path=../../../../etc/dev-cert/localhost.pfx - - Kestrel__Certificates__Default__Password=8b6039b6-c67a-448b-977b-0ce6d3fcfd49 - - name: public-web project: apps/public-web/src/EShopOnAbp.PublicWeb/EShopOnAbp.PublicWeb.csproj bindings: