diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 266b7cbb20..e6a705e341 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -14,7 +14,7 @@ }, "ghcr.io/devcontainers/features/node:1": { "version": "24" } }, - "image": "mcr.microsoft.com/dotnet/nightly/sdk:10.0.102", + "image": "mcr.microsoft.com/dotnet/nightly/sdk:10.0.103", "postStartCommand": "dotnet workload install wasm-tools && dotnet dev-certs https --trust", "waitFor": "onCreateCommand", "customizations": { diff --git a/.github/workflows/bit.ci.release.yml b/.github/workflows/bit.ci.release.yml index 602331f849..f56f9c341c 100644 --- a/.github/workflows/bit.ci.release.yml +++ b/.github/workflows/bit.ci.release.yml @@ -43,7 +43,7 @@ jobs: - name: InstallNodejsDependencies continue-on-error: true # Error MSB4057, not all csproj files have InstallNodejsDependencies target. - run: dotnet build src/bit.ci.release.slnx -t:InstallNodejsDependencies -m:1 -f net10.0 + run: dotnet build src/Bit.CI.Release.slnx -t:InstallNodejsDependencies -m:1 -f net10.0 - name: dotnet build - run: dotnet build src/bit.ci.release.slnx -c Release + run: dotnet build src/Bit.CI.Release.slnx -c Release diff --git a/src/Besql/Demo/Bit.Besql.Demo.Client/Bit.Besql.Demo.Client.csproj b/src/Besql/Demo/Bit.Besql.Demo.Client/Bit.Besql.Demo.Client.csproj index 3aa2fcaeab..2412eb6867 100644 --- a/src/Besql/Demo/Bit.Besql.Demo.Client/Bit.Besql.Demo.Client.csproj +++ b/src/Besql/Demo/Bit.Besql.Demo.Client/Bit.Besql.Demo.Client.csproj @@ -10,7 +10,7 @@ - + diff --git a/src/Besql/Demo/Bit.Besql.Demo/Bit.Besql.Demo.csproj b/src/Besql/Demo/Bit.Besql.Demo/Bit.Besql.Demo.csproj index 5036530f2d..32e6e7210f 100644 --- a/src/Besql/Demo/Bit.Besql.Demo/Bit.Besql.Demo.csproj +++ b/src/Besql/Demo/Bit.Besql.Demo/Bit.Besql.Demo.csproj @@ -8,7 +8,7 @@ - + @@ -17,11 +17,11 @@ and open Nuget Package Manager Console, and select `Bit.Besql.Demo.Client` project as default project Then run either Add-Migration MigrationName -OutputDir Data\Migrations or Optimize-DbContext -OutputDir Data\CompiledModel commands. --> - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/bit.ci.release.slnx b/src/Bit.CI.Release.slnx similarity index 100% rename from src/bit.ci.release.slnx rename to src/Bit.CI.Release.slnx diff --git a/src/BlazorUI/Bit.BlazorUI.Extras/Bit.BlazorUI.Extras.csproj b/src/BlazorUI/Bit.BlazorUI.Extras/Bit.BlazorUI.Extras.csproj index effcab97e6..8058b3aeab 100644 --- a/src/BlazorUI/Bit.BlazorUI.Extras/Bit.BlazorUI.Extras.csproj +++ b/src/BlazorUI/Bit.BlazorUI.Extras/Bit.BlazorUI.Extras.csproj @@ -25,7 +25,7 @@ - + diff --git a/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj b/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj index e2bb419dd5..c632fa51f3 100644 --- a/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj +++ b/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj @@ -19,19 +19,19 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - + - + - + - - + + diff --git a/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Shared/Bit.BlazorUI.Demo.Shared.csproj b/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Shared/Bit.BlazorUI.Demo.Shared.csproj index 54f6a7f05b..e61071063b 100644 --- a/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Shared/Bit.BlazorUI.Demo.Shared.csproj +++ b/src/BlazorUI/Demo/Bit.BlazorUI.Demo.Shared/Bit.BlazorUI.Demo.Shared.csproj @@ -13,10 +13,10 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - - - - + + + + compile; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj index 95f80042b1..eea6f1316d 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj @@ -24,10 +24,10 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - - - - + + + + diff --git a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj index 3d36f486cd..1f811d8706 100644 --- a/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj +++ b/src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj @@ -117,8 +117,8 @@ - - + + - - + + - - + + - + - - - + + + - - - + + + @@ -81,70 +81,70 @@ - - - + + + - - - + + + - - - - - + + + + + - - - + + + - + - - + + - - + + - - + + - - - + + + - - - + + + - - - - + + + + - + diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Features/Attachments/AttachmentController.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Features/Attachments/AttachmentController.cs index 4415b87859..61ff38e47c 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Features/Attachments/AttachmentController.cs +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Features/Attachments/AttachmentController.cs @@ -68,6 +68,10 @@ public async Task UploadProductPrimaryImage(Guid productId, IForm [AppResponseCache(MaxAge = 3600 * 24 * 7, UserAgnostic = true)] public async Task GetAttachment(Guid attachmentId, AttachmentKind kind, CancellationToken cancellationToken = default) { + // If the backend is hosted behind a CDN (which is recommended for production), the GetAttachment method's returned stream will be cached on CDN edge servers. + // Alternatively, you can generate URLs that allow clients to download files directly from the file storage, further reducing the load on the backend. + // If security is a concern, you can generate short-lived signed URLs for the file storage. These signed URLs can be validated either at the CDN edge or on the file storage server, ensuring that only authorized users can access the files. + var filePath = GetFilePath(attachmentId, kind); if (await blobStorage.ExistsAsync(filePath, cancellationToken) is false) diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Program.Services.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Program.Services.cs index f4919370fc..eeeb833a63 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Program.Services.cs +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Program.Services.cs @@ -517,7 +517,7 @@ void AddDbContext(DbContextOptionsBuilder options) }).AsIChatClient()) .UseLogging() .UseFunctionInvocation() - .UseOpenTelemetry(); + .UseOpenTelemetry(configure: c => c.EnableSensitiveData = env.IsDevelopment()); // .UseDistributedCache() } else if (string.IsNullOrEmpty(appSettings.AI?.AzureOpenAI?.ChatApiKey) is false) @@ -531,7 +531,7 @@ void AddDbContext(DbContextOptionsBuilder options) }).AsIChatClient(appSettings.AI.AzureOpenAI.ChatModel)) .UseLogging() .UseFunctionInvocation() - .UseOpenTelemetry(); + .UseOpenTelemetry(configure: c => c.EnableSensitiveData = env.IsDevelopment()); // .UseDistributedCache() } @@ -543,7 +543,7 @@ void AddDbContext(DbContextOptionsBuilder options) Transport = new HttpClientPipelineTransport(sp.GetRequiredService().CreateClient("AI")) }).AsIEmbeddingGenerator()) .UseLogging() - .UseOpenTelemetry(); + .UseOpenTelemetry(configure: c => c.EnableSensitiveData = env.IsDevelopment()); // .UseDistributedCache() } else if (string.IsNullOrEmpty(appSettings.AI?.AzureOpenAI?.EmbeddingApiKey) is false) @@ -555,7 +555,7 @@ void AddDbContext(DbContextOptionsBuilder options) Transport = new Azure.Core.Pipeline.HttpClientTransport(sp.GetRequiredService().CreateClient("AI")) }).AsIEmbeddingGenerator(appSettings.AI.AzureOpenAI.EmbeddingModel)) .UseLogging() - .UseOpenTelemetry(); + .UseOpenTelemetry(configure: c => c.EnableSensitiveData = env.IsDevelopment()); // .UseDistributedCache() } else if (string.IsNullOrEmpty(appSettings.AI?.HuggingFace?.EmbeddingEndpoint) is false) @@ -565,7 +565,7 @@ void AddDbContext(DbContextOptionsBuilder options) apiKey: appSettings.AI.HuggingFace.EmbeddingApiKey, httpClient: sp.GetRequiredService().CreateClient("AI"), loggerFactory: sp.GetRequiredService())) .UseLogging() - .UseOpenTelemetry(); + .UseOpenTelemetry(configure: c => c.EnableSensitiveData = env.IsDevelopment()); // .UseDistributedCache() } //#endif diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.AppHost/Boilerplate.Server.AppHost.csproj b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.AppHost/Boilerplate.Server.AppHost.csproj index aa4a612288..1036039851 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.AppHost/Boilerplate.Server.AppHost.csproj +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.AppHost/Boilerplate.Server.AppHost.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Shared/Infrastructure/Extensions/WebApplicationBuilderExtensions.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Shared/Infrastructure/Extensions/WebApplicationBuilderExtensions.cs index fc007f5edf..eece28d0fd 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Shared/Infrastructure/Extensions/WebApplicationBuilderExtensions.cs +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Shared/Infrastructure/Extensions/WebApplicationBuilderExtensions.cs @@ -159,7 +159,8 @@ private static TBuilder ConfigureOpenTelemetry(this TBuilder builder) .AddHttpClientInstrumentation() .AddRuntimeInstrumentation(); - metrics.AddMeter(ActivitySource.Current.Name); + metrics.AddMeter(ActivitySource.Current.Name) + .AddMeter("Experimental.Microsoft.Extensions.AI"); }) .WithTracing(tracing => { @@ -189,7 +190,8 @@ private static TBuilder ConfigureOpenTelemetry(this TBuilder builder) .AddEntityFrameworkCoreInstrumentation(options => options.Filter = (providerName, command) => command?.CommandText?.Contains("Hangfire") is false /* Ignore Hangfire */) .AddHangfireInstrumentation(); - tracing.AddSource(ActivitySource.Current.Name); + tracing.AddSource(ActivitySource.Current.Name) + .AddSource("Experimental.Microsoft.Extensions.AI"); }) .ConfigureResource(resource => { diff --git a/src/Websites/Careers/src/Bit.Websites.Careers.Client/Bit.Websites.Careers.Client.csproj b/src/Websites/Careers/src/Bit.Websites.Careers.Client/Bit.Websites.Careers.Client.csproj index 21438e2cb7..a43d07da74 100644 --- a/src/Websites/Careers/src/Bit.Websites.Careers.Client/Bit.Websites.Careers.Client.csproj +++ b/src/Websites/Careers/src/Bit.Websites.Careers.Client/Bit.Websites.Careers.Client.csproj @@ -20,7 +20,7 @@ - + @@ -41,7 +41,7 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj b/src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj index 958380bbdd..ceb05d456a 100644 --- a/src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj +++ b/src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj @@ -20,11 +20,11 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - - - + + + - + diff --git a/src/Websites/Careers/src/Bit.Websites.Careers.Shared/Bit.Websites.Careers.Shared.csproj b/src/Websites/Careers/src/Bit.Websites.Careers.Shared/Bit.Websites.Careers.Shared.csproj index c4702d1294..2e96e00658 100644 --- a/src/Websites/Careers/src/Bit.Websites.Careers.Shared/Bit.Websites.Careers.Shared.csproj +++ b/src/Websites/Careers/src/Bit.Websites.Careers.Shared/Bit.Websites.Careers.Shared.csproj @@ -14,9 +14,9 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - - - + + + compile; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Platform/src/Bit.Websites.Platform.Client/Bit.Websites.Platform.Client.csproj b/src/Websites/Platform/src/Bit.Websites.Platform.Client/Bit.Websites.Platform.Client.csproj index 4505c77d9a..8ea0b336e8 100644 --- a/src/Websites/Platform/src/Bit.Websites.Platform.Client/Bit.Websites.Platform.Client.csproj +++ b/src/Websites/Platform/src/Bit.Websites.Platform.Client/Bit.Websites.Platform.Client.csproj @@ -23,7 +23,7 @@ - + @@ -45,8 +45,8 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - - + + diff --git a/src/Websites/Platform/src/Bit.Websites.Platform.Client/Pages/Templates/Templates03GettingStartedPage.razor b/src/Websites/Platform/src/Bit.Websites.Platform.Client/Pages/Templates/Templates03GettingStartedPage.razor index 9bd50023ad..42557c5cca 100644 --- a/src/Websites/Platform/src/Bit.Websites.Platform.Client/Pages/Templates/Templates03GettingStartedPage.razor +++ b/src/Websites/Platform/src/Bit.Websites.Platform.Client/Pages/Templates/Templates03GettingStartedPage.razor @@ -99,7 +99,7 @@ {
- wget https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.102/dotnet-sdk-10.0.102-linux-x64.tar.gz -O $HOME/dotnet.tar.gz + wget https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.103/dotnet-sdk-10.0.103-linux-x64.tar.gz -O $HOME/dotnet.tar.gz mkdir -p $HOME/.dotnet tar zxf $HOME/dotnet.tar.gz -C "$HOME/.dotnet" echo 'PATH=$HOME/.dotnet:$HOME/.dotnet/tools:$PATH' >> ~/.bashrc diff --git a/src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj b/src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj index ee6cbed402..9b2c250a4c 100644 --- a/src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj +++ b/src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj @@ -21,15 +21,15 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive
- - - - - + + + + + - + diff --git a/src/Websites/Platform/src/Bit.Websites.Platform.Shared/Bit.Websites.Platform.Shared.csproj b/src/Websites/Platform/src/Bit.Websites.Platform.Shared/Bit.Websites.Platform.Shared.csproj index c4702d1294..2e96e00658 100644 --- a/src/Websites/Platform/src/Bit.Websites.Platform.Shared/Bit.Websites.Platform.Shared.csproj +++ b/src/Websites/Platform/src/Bit.Websites.Platform.Shared/Bit.Websites.Platform.Shared.csproj @@ -14,9 +14,9 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - - - + + + compile; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Websites/Sales/src/Bit.Websites.Sales.Client/Bit.Websites.Sales.Client.csproj b/src/Websites/Sales/src/Bit.Websites.Sales.Client/Bit.Websites.Sales.Client.csproj index 4499d38421..b9580c72e0 100644 --- a/src/Websites/Sales/src/Bit.Websites.Sales.Client/Bit.Websites.Sales.Client.csproj +++ b/src/Websites/Sales/src/Bit.Websites.Sales.Client/Bit.Websites.Sales.Client.csproj @@ -20,7 +20,7 @@ - + @@ -41,7 +41,7 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj b/src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj index 7aa9301c7c..c7ddc328dc 100644 --- a/src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj +++ b/src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj @@ -20,11 +20,11 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - - - + + + - + diff --git a/src/Websites/Sales/src/Bit.Websites.Sales.Shared/Bit.Websites.Sales.Shared.csproj b/src/Websites/Sales/src/Bit.Websites.Sales.Shared/Bit.Websites.Sales.Shared.csproj index c4702d1294..2e96e00658 100644 --- a/src/Websites/Sales/src/Bit.Websites.Sales.Shared/Bit.Websites.Sales.Shared.csproj +++ b/src/Websites/Sales/src/Bit.Websites.Sales.Shared/Bit.Websites.Sales.Shared.csproj @@ -14,9 +14,9 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - - - + + + compile; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/global.json b/src/global.json index 17c722f72d..eceef3a7a6 100644 --- a/src/global.json +++ b/src/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "10.0.102", + "version": "10.0.103", "rollForward": "disable" }, "test": {