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