diff --git a/Dockerfile b/Dockerfile index 1a5abe4c7..5aecd6a0b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # # Stage 1, Prebuild # -FROM squidex/dotnet:2.1-sdk-chromium-phantomjs-node as builder +FROM squidex/dotnet:2.2-sdk-chromium-phantomjs-node as builder COPY src/Squidex/package.json /tmp/package.json @@ -33,7 +33,7 @@ RUN dotnet publish src/Squidex/Squidex.csproj --output /out/alpine --configurati # # Stage 2, Build runtime # -FROM microsoft/dotnet:2.1-runtime-deps-alpine +FROM microsoft/dotnet:2.2-runtime-deps-alpine # Default AspNetCore directory WORKDIR /app diff --git a/Dockerfile.build b/Dockerfile.build index 1474e9c8c..71df4fafa 100644 --- a/Dockerfile.build +++ b/Dockerfile.build @@ -1,4 +1,4 @@ -FROM squidex/dotnet:2.1-sdk-chromium-phantomjs-node as builder +FROM squidex/dotnet:2.2-sdk-chromium-phantomjs-node as builder COPY src/Squidex/package.json /tmp/package.json diff --git a/Squidex.ruleset b/Squidex.ruleset index 20a67c5f9..67c5937b8 100644 --- a/Squidex.ruleset +++ b/Squidex.ruleset @@ -84,4 +84,10 @@ + + + + + + \ No newline at end of file diff --git a/extensions/Squidex.Extensions/Squidex.Extensions.csproj b/extensions/Squidex.Extensions/Squidex.Extensions.csproj index 03e447870..50361886d 100644 --- a/extensions/Squidex.Extensions/Squidex.Extensions.csproj +++ b/extensions/Squidex.Extensions/Squidex.Extensions.csproj @@ -10,19 +10,19 @@ - + - + - + - + ..\..\Squidex.ruleset diff --git a/libs/Dockerfile b/libs/Dockerfile new file mode 100644 index 000000000..33fb70728 --- /dev/null +++ b/libs/Dockerfile @@ -0,0 +1,58 @@ +FROM microsoft/dotnet:2.2-sdk + +# Install runtime dependencies +RUN apt-get update \ + && apt-get install -y --no-install-recommends ca-certificates bzip2 libfontconfig \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + +# Install official PhantomJS release +RUN set -x \ + && apt-get update \ + && apt-get install -y --no-install-recommends \ + && mkdir /srv/var \ + && mkdir /tmp/phantomjs \ + # Download Phantom JS + && curl -L https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2 | tar -xj --strip-components=1 -C /tmp/phantomjs \ + # Copy binaries only + && mv /tmp/phantomjs/bin/phantomjs /usr/local/bin \ + # Create symbol link + # Clean up + && apt-get autoremove -y \ + && apt-get clean all \ + && rm -rf /tmp/* /var/lib/apt/lists/* + +RUN phantomjs --version + +# Install Node +ENV NODE_VERSION 8.9.4 +ENV NODE_DOWNLOAD_SHA 21fb4690e349f82d708ae766def01d7fec1b085ce1f5ab30d9bda8ee126ca8fc +RUN curl -SL "https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.gz" --output nodejs.tar.gz \ + && echo "$NODE_DOWNLOAD_SHA nodejs.tar.gz" | sha256sum -c - \ + && tar -xzf "nodejs.tar.gz" -C /usr/local --strip-components=1 \ + && rm nodejs.tar.gz \ + && ln -s /usr/local/bin/node /usr/local/bin/nodejs + +# Install Google Chrome + +# See https://crbug.com/795759 +RUN apt-get update && apt-get install -yq libgconf-2-4 + +# Install latest chrome dev package and fonts to support major charsets (Chinese, Japanese, Arabic, Hebrew, Thai and a few others) +RUN apt-get update && apt-get install -y wget --no-install-recommends \ + && wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - \ + && sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list' \ + && apt-get update \ + && apt-get install -y google-chrome-unstable fonts-ipafont-gothic fonts-wqy-zenhei fonts-thai-tlwg fonts-kacst ttf-freefont \ + --no-install-recommends \ + && rm -rf /var/lib/apt/lists/* \ + && apt-get autoremove -y \ + && rm -rf /src/*.deb + +# It's a good idea to use dumb-init to help prevent zombie chrome processes. +ADD https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64 /usr/local/bin/dumb-init + +RUN chmod +x /usr/local/bin/dumb-init + +# Install puppeteer so it's available in the container. +RUN npm i puppeteer \ No newline at end of file diff --git a/src/Squidex.Domain.Apps.Core.Model/FodyWeavers.xsd b/src/Squidex.Domain.Apps.Core.Model/FodyWeavers.xsd index 216cf10fd..74e66c0cc 100644 --- a/src/Squidex.Domain.Apps.Core.Model/FodyWeavers.xsd +++ b/src/Squidex.Domain.Apps.Core.Model/FodyWeavers.xsd @@ -1,6 +1,6 @@  - + @@ -8,12 +8,17 @@ - 'true' to run assembly verification on the target assembly after all weavers have been finished. + '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. + 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. diff --git a/src/Squidex.Domain.Apps.Core.Model/Squidex.Domain.Apps.Core.Model.csproj b/src/Squidex.Domain.Apps.Core.Model/Squidex.Domain.Apps.Core.Model.csproj index 224170444..366672e5b 100644 --- a/src/Squidex.Domain.Apps.Core.Model/Squidex.Domain.Apps.Core.Model.csproj +++ b/src/Squidex.Domain.Apps.Core.Model/Squidex.Domain.Apps.Core.Model.csproj @@ -8,7 +8,7 @@ True - + all runtime; build; native; contentfiles; analyzers diff --git a/src/Squidex.Domain.Apps.Core.Operations/Squidex.Domain.Apps.Core.Operations.csproj b/src/Squidex.Domain.Apps.Core.Operations/Squidex.Domain.Apps.Core.Operations.csproj index 20d04013e..73e3a75a6 100644 --- a/src/Squidex.Domain.Apps.Core.Operations/Squidex.Domain.Apps.Core.Operations.csproj +++ b/src/Squidex.Domain.Apps.Core.Operations/Squidex.Domain.Apps.Core.Operations.csproj @@ -16,7 +16,7 @@ - + diff --git a/src/Squidex.Domain.Apps.Events/Squidex.Domain.Apps.Events.csproj b/src/Squidex.Domain.Apps.Events/Squidex.Domain.Apps.Events.csproj index f93dbb6e2..e679181fb 100644 --- a/src/Squidex.Domain.Apps.Events/Squidex.Domain.Apps.Events.csproj +++ b/src/Squidex.Domain.Apps.Events/Squidex.Domain.Apps.Events.csproj @@ -11,7 +11,7 @@ - + diff --git a/src/Squidex.Domain.Users.MongoDb/Squidex.Domain.Users.MongoDb.csproj b/src/Squidex.Domain.Users.MongoDb/Squidex.Domain.Users.MongoDb.csproj index 69c1ebe2f..3d084a38f 100644 --- a/src/Squidex.Domain.Users.MongoDb/Squidex.Domain.Users.MongoDb.csproj +++ b/src/Squidex.Domain.Users.MongoDb/Squidex.Domain.Users.MongoDb.csproj @@ -13,8 +13,8 @@ - - + + diff --git a/src/Squidex.Domain.Users/Squidex.Domain.Users.csproj b/src/Squidex.Domain.Users/Squidex.Domain.Users.csproj index 84aa8e93f..c58f7d3d7 100644 --- a/src/Squidex.Domain.Users/Squidex.Domain.Users.csproj +++ b/src/Squidex.Domain.Users/Squidex.Domain.Users.csproj @@ -11,8 +11,8 @@ - - + + diff --git a/src/Squidex.Infrastructure.Azure/Squidex.Infrastructure.Azure.csproj b/src/Squidex.Infrastructure.Azure/Squidex.Infrastructure.Azure.csproj index 047715eb6..b2becef2f 100644 --- a/src/Squidex.Infrastructure.Azure/Squidex.Infrastructure.Azure.csproj +++ b/src/Squidex.Infrastructure.Azure/Squidex.Infrastructure.Azure.csproj @@ -6,7 +6,7 @@ - + diff --git a/src/Squidex.Infrastructure/Squidex.Infrastructure.csproj b/src/Squidex.Infrastructure/Squidex.Infrastructure.csproj index 17e3c17c1..359fa7caa 100644 --- a/src/Squidex.Infrastructure/Squidex.Infrastructure.csproj +++ b/src/Squidex.Infrastructure/Squidex.Infrastructure.csproj @@ -8,8 +8,8 @@ True - - + + all @@ -17,7 +17,7 @@ - + diff --git a/src/Squidex/Areas/Api/Config/Swagger/SecurityProcessor.cs b/src/Squidex/Areas/Api/Config/Swagger/SecurityProcessor.cs index 988f78e05..97e4b4efd 100644 --- a/src/Squidex/Areas/Api/Config/Swagger/SecurityProcessor.cs +++ b/src/Squidex/Areas/Api/Config/Swagger/SecurityProcessor.cs @@ -6,12 +6,11 @@ // ========================================================================== using System.Collections.Generic; -using System.IO; -using System.Reflection; using Microsoft.Extensions.Options; using NSwag; using NSwag.SwaggerGeneration.Processors.Security; using Squidex.Config; +using Squidex.Pipeline.Swagger; namespace Squidex.Areas.Api.Config.Swagger { @@ -30,7 +29,7 @@ namespace Squidex.Areas.Api.Config.Swagger securityScheme.TokenUrl = tokenUrl; - var securityDocs = LoadDocs("security"); + var securityDocs = SwaggerHelper.LoadDocs("security"); var securityText = securityDocs.Replace("", tokenUrl); securityScheme.Description = securityText; @@ -45,18 +44,5 @@ namespace Squidex.Areas.Api.Config.Swagger return securityScheme; } - - private static string LoadDocs(string name) - { - var assembly = typeof(SecurityProcessor).GetTypeInfo().Assembly; - - using (var resourceStream = assembly.GetManifestResourceStream($"Squidex.Docs.{name}.md")) - { - using (var streamReader = new StreamReader(resourceStream)) - { - return streamReader.ReadToEnd(); - } - } - } } } diff --git a/src/Squidex/Areas/Api/Config/Swagger/SwaggerServices.cs b/src/Squidex/Areas/Api/Config/Swagger/SwaggerServices.cs index 768ce6518..18ef0603b 100644 --- a/src/Squidex/Areas/Api/Config/Swagger/SwaggerServices.cs +++ b/src/Squidex/Areas/Api/Config/Swagger/SwaggerServices.cs @@ -59,9 +59,6 @@ namespace Squidex.Areas.Api.Config.Swagger public static void ConfigureSchemaSettings(this T settings) where T : SwaggerGeneratorSettings { - settings.DefaultEnumHandling = EnumHandling.String; - settings.DefaultPropertyNameHandling = PropertyNameHandling.CamelCase; - settings.TypeMappers = new List { new PrimitiveTypeMapper(typeof(Instant), schema => diff --git a/src/Squidex/Dockerfile b/src/Squidex/Dockerfile index e98d47290..fc00bfa8c 100644 --- a/src/Squidex/Dockerfile +++ b/src/Squidex/Dockerfile @@ -1,4 +1,4 @@ -FROM microsoft/dotnet:2.1.0-aspnetcore-runtime +FROM microsoft/dotnet:2.2.0-aspnetcore-runtime WORKDIR /app diff --git a/src/Squidex/Pipeline/Swagger/SwaggerHelper.cs b/src/Squidex/Pipeline/Swagger/SwaggerHelper.cs index 4ac6acbd5..034f8604f 100644 --- a/src/Squidex/Pipeline/Swagger/SwaggerHelper.cs +++ b/src/Squidex/Pipeline/Swagger/SwaggerHelper.cs @@ -7,7 +7,9 @@ using System; using System.Collections.Generic; +using System.IO; using System.Linq; +using System.Reflection; using System.Threading.Tasks; using Microsoft.AspNetCore.Http; using NJsonSchema; @@ -19,6 +21,19 @@ namespace Squidex.Pipeline.Swagger { public static class SwaggerHelper { + public static string LoadDocs(string name) + { + var assembly = typeof(SwaggerHelper).GetTypeInfo().Assembly; + + using (var resourceStream = assembly.GetManifestResourceStream($"Squidex.Docs.{name}.md")) + { + using (var streamReader = new StreamReader(resourceStream)) + { + return streamReader.ReadToEnd(); + } + } + } + public static SwaggerDocument CreateApiDocument(HttpContext context, MyUrlsOptions urlOptions, string appName) { var scheme = diff --git a/src/Squidex/Squidex.csproj b/src/Squidex/Squidex.csproj index 52bd714c8..5df66c4c9 100644 --- a/src/Squidex/Squidex.csproj +++ b/src/Squidex/Squidex.csproj @@ -5,7 +5,7 @@ $(NoWarn);CS1591;1591;1573;1572;NU1605 Squidex true - netcoreapp2.1 + netcoreapp2.2 2.1.1 Latest true @@ -55,23 +55,24 @@ - + - + - - - - - - - - - + + + + + + + + + + - + @@ -79,8 +80,8 @@ - - + + diff --git a/tests/Squidex.Domain.Apps.Core.Tests/Squidex.Domain.Apps.Core.Tests.csproj b/tests/Squidex.Domain.Apps.Core.Tests/Squidex.Domain.Apps.Core.Tests.csproj index 26480bfba..c68aff69b 100644 --- a/tests/Squidex.Domain.Apps.Core.Tests/Squidex.Domain.Apps.Core.Tests.csproj +++ b/tests/Squidex.Domain.Apps.Core.Tests/Squidex.Domain.Apps.Core.Tests.csproj @@ -1,7 +1,7 @@  Exe - netcoreapp2.1 + netcoreapp2.2 2.1.1 Squidex.Domain.Apps.Core diff --git a/tests/Squidex.Domain.Apps.Entities.Tests/Squidex.Domain.Apps.Entities.Tests.csproj b/tests/Squidex.Domain.Apps.Entities.Tests/Squidex.Domain.Apps.Entities.Tests.csproj index a854342e8..c3cd39700 100644 --- a/tests/Squidex.Domain.Apps.Entities.Tests/Squidex.Domain.Apps.Entities.Tests.csproj +++ b/tests/Squidex.Domain.Apps.Entities.Tests/Squidex.Domain.Apps.Entities.Tests.csproj @@ -1,7 +1,7 @@  Exe - netcoreapp2.1 + netcoreapp2.2 2.1.1 Squidex.Domain.Apps.Entities diff --git a/tests/Squidex.Domain.Users.Tests/Squidex.Domain.Users.Tests.csproj b/tests/Squidex.Domain.Users.Tests/Squidex.Domain.Users.Tests.csproj index 776c496ef..6a0f7b16e 100644 --- a/tests/Squidex.Domain.Users.Tests/Squidex.Domain.Users.Tests.csproj +++ b/tests/Squidex.Domain.Users.Tests/Squidex.Domain.Users.Tests.csproj @@ -1,7 +1,7 @@  Exe - netcoreapp2.1 + netcoreapp2.2 2.1.1 Squidex.Domain.Users diff --git a/tests/Squidex.Infrastructure.Tests/Squidex.Infrastructure.Tests.csproj b/tests/Squidex.Infrastructure.Tests/Squidex.Infrastructure.Tests.csproj index 82e6f2b91..576a53a5c 100644 --- a/tests/Squidex.Infrastructure.Tests/Squidex.Infrastructure.Tests.csproj +++ b/tests/Squidex.Infrastructure.Tests/Squidex.Infrastructure.Tests.csproj @@ -1,7 +1,7 @@  Exe - netcoreapp2.1 + netcoreapp2.2 2.1.1 Squidex.Infrastructure @@ -15,8 +15,8 @@ - - + + diff --git a/tests/Squidex.Tests/Squidex.Tests.csproj b/tests/Squidex.Tests/Squidex.Tests.csproj index 8dcffd260..d1c85aa9d 100644 --- a/tests/Squidex.Tests/Squidex.Tests.csproj +++ b/tests/Squidex.Tests/Squidex.Tests.csproj @@ -1,7 +1,7 @@  Exe - netcoreapp2.1 + netcoreapp2.2 2.1.1 Squidex $(NoWarn);NU1605 @@ -12,10 +12,10 @@ - + - + diff --git a/tools/GenerateLanguages/GenerateLanguages.csproj b/tools/GenerateLanguages/GenerateLanguages.csproj index c205ac353..135a6c0d0 100644 --- a/tools/GenerateLanguages/GenerateLanguages.csproj +++ b/tools/GenerateLanguages/GenerateLanguages.csproj @@ -1,6 +1,6 @@  - netcoreapp2.1 + netcoreapp2.2 Exe diff --git a/tools/Migrate_00/Migrate_00.csproj b/tools/Migrate_00/Migrate_00.csproj index c6a26e3cf..d109b70e8 100644 --- a/tools/Migrate_00/Migrate_00.csproj +++ b/tools/Migrate_00/Migrate_00.csproj @@ -1,7 +1,7 @@  Exe - netcoreapp2.1 + netcoreapp2.2 2.1.1