diff --git a/src/Dockerfile b/src/Dockerfile index 9fdb617..a83c0c8 100644 --- a/src/Dockerfile +++ b/src/Dockerfile @@ -22,7 +22,7 @@ COPY ./Docker/plainTextNamedConnections.template.json /app/plainTextNamedConnect COPY ./Docker/run.sh /app/run.sh RUN apk update && \ - apk --no-cache add --upgrade unzip=~6 dos2unix=~7 bash=~5 gettext=~0 openssl=3.5.1-r0 postgresql16-client=~16 icu=76.1-r0 curl=~8 && \ + apk --no-cache add --upgrade unzip=~6 dos2unix=~7 bash=~5 gettext=~0 openssl=3.5.1-r0 postgresql16-client=~16 icu=76.1-r1 curl=~8 && \ wget -nv -O /app/ApiPublisher.zip https://pkgs.dev.azure.com/ed-fi-alliance/Ed-Fi-Alliance-OSS/_apis/packaging/feeds/EdFi/nuget/packages/EdFi.ApiPublisher/versions/${VERSION}/content && \ unzip /app/ApiPublisher.zip 'EdFi.ApiPublisher/**' -d /app/ && \ mv /app/EdFi.ApiPublisher/* /app/ && \ diff --git a/src/EdFi.Tools.ApiPublisher.Cli/EdFi.Tools.ApiPublisher.Cli.csproj b/src/EdFi.Tools.ApiPublisher.Cli/EdFi.Tools.ApiPublisher.Cli.csproj index 12c735b..734403e 100644 --- a/src/EdFi.Tools.ApiPublisher.Cli/EdFi.Tools.ApiPublisher.Cli.csproj +++ b/src/EdFi.Tools.ApiPublisher.Cli/EdFi.Tools.ApiPublisher.Cli.csproj @@ -8,20 +8,20 @@ - - + + - - - - - - - - + + + + + + + + - - + + diff --git a/src/EdFi.Tools.ApiPublisher.ConfigurationStore.Aws/EdFi.Tools.ApiPublisher.ConfigurationStore.Aws.csproj b/src/EdFi.Tools.ApiPublisher.ConfigurationStore.Aws/EdFi.Tools.ApiPublisher.ConfigurationStore.Aws.csproj index f8e83b7..440416e 100644 --- a/src/EdFi.Tools.ApiPublisher.ConfigurationStore.Aws/EdFi.Tools.ApiPublisher.ConfigurationStore.Aws.csproj +++ b/src/EdFi.Tools.ApiPublisher.ConfigurationStore.Aws/EdFi.Tools.ApiPublisher.ConfigurationStore.Aws.csproj @@ -4,11 +4,11 @@ 10 - - - - - + + + + + diff --git a/src/EdFi.Tools.ApiPublisher.ConfigurationStore.Plaintext/EdFi.Tools.ApiPublisher.ConfigurationStore.Plaintext.csproj b/src/EdFi.Tools.ApiPublisher.ConfigurationStore.Plaintext/EdFi.Tools.ApiPublisher.ConfigurationStore.Plaintext.csproj index b333299..4343250 100644 --- a/src/EdFi.Tools.ApiPublisher.ConfigurationStore.Plaintext/EdFi.Tools.ApiPublisher.ConfigurationStore.Plaintext.csproj +++ b/src/EdFi.Tools.ApiPublisher.ConfigurationStore.Plaintext/EdFi.Tools.ApiPublisher.ConfigurationStore.Plaintext.csproj @@ -4,7 +4,7 @@ enable - + diff --git a/src/EdFi.Tools.ApiPublisher.ConfigurationStore.PostgreSql/EdFi.Tools.ApiPublisher.ConfigurationStore.PostgreSql.csproj b/src/EdFi.Tools.ApiPublisher.ConfigurationStore.PostgreSql/EdFi.Tools.ApiPublisher.ConfigurationStore.PostgreSql.csproj index 6ea15f6..d3de8f6 100644 --- a/src/EdFi.Tools.ApiPublisher.ConfigurationStore.PostgreSql/EdFi.Tools.ApiPublisher.ConfigurationStore.PostgreSql.csproj +++ b/src/EdFi.Tools.ApiPublisher.ConfigurationStore.PostgreSql/EdFi.Tools.ApiPublisher.ConfigurationStore.PostgreSql.csproj @@ -4,10 +4,10 @@ 10 - - - - + + + + diff --git a/src/EdFi.Tools.ApiPublisher.ConfigurationStore.SqlServer/EdFi.Tools.ApiPublisher.ConfigurationStore.SqlServer.csproj b/src/EdFi.Tools.ApiPublisher.ConfigurationStore.SqlServer/EdFi.Tools.ApiPublisher.ConfigurationStore.SqlServer.csproj index e5c5260..dc62aeb 100644 --- a/src/EdFi.Tools.ApiPublisher.ConfigurationStore.SqlServer/EdFi.Tools.ApiPublisher.ConfigurationStore.SqlServer.csproj +++ b/src/EdFi.Tools.ApiPublisher.ConfigurationStore.SqlServer/EdFi.Tools.ApiPublisher.ConfigurationStore.SqlServer.csproj @@ -4,12 +4,12 @@ 10 - - - - - - + + + + + + diff --git a/src/EdFi.Tools.ApiPublisher.Connections.Api/EdFi.Tools.ApiPublisher.Connections.Api.csproj b/src/EdFi.Tools.ApiPublisher.Connections.Api/EdFi.Tools.ApiPublisher.Connections.Api.csproj index fc05e5c..901169b 100644 --- a/src/EdFi.Tools.ApiPublisher.Connections.Api/EdFi.Tools.ApiPublisher.Connections.Api.csproj +++ b/src/EdFi.Tools.ApiPublisher.Connections.Api/EdFi.Tools.ApiPublisher.Connections.Api.csproj @@ -5,20 +5,20 @@ true - - + + runtime; build; native; contentfiles; analyzers; buildtransitive all - - + + - + runtime; build; native; contentfiles; analyzers; buildtransitive all - + diff --git a/src/EdFi.Tools.ApiPublisher.Connections.Api/Processing/Target/Blocks/PostResourceProcessingBlocksFactory.cs b/src/EdFi.Tools.ApiPublisher.Connections.Api/Processing/Target/Blocks/PostResourceProcessingBlocksFactory.cs index 2901fe2..4ad8e23 100644 --- a/src/EdFi.Tools.ApiPublisher.Connections.Api/Processing/Target/Blocks/PostResourceProcessingBlocksFactory.cs +++ b/src/EdFi.Tools.ApiPublisher.Connections.Api/Processing/Target/Blocks/PostResourceProcessingBlocksFactory.cs @@ -164,7 +164,7 @@ private async Task> HandlePostItemMessage( var retryPolicy = Policy.Handle() .OrResult( r => - // Descriptor Conflicts are not to be retried + // Descriptor Conflicts are not to be retried (r.StatusCode == HttpStatusCode.Conflict && !postItemMessage.ResourceUrl.EndsWith("Descriptors", StringComparison.OrdinalIgnoreCase)) || r.StatusCode.IsPotentiallyTransientFailure() @@ -443,10 +443,10 @@ string GetResponseMessageText(HttpResponseMessage response) bool IsBadRequestForUnresolvedReferenceOfPrimaryRelationship(HttpResponseMessage postItemResponse, PostItemMessage msg) { - // If response is a Bad Request, check for need to explicitly fetch dependencies + // If response is a Bad Request, check for need to explicitly fetch dependencies if (postItemResponse.StatusCode == HttpStatusCode.BadRequest - // If resource is a "primary relationship" configured in authorization failure handling - && missingDependencyByResourcePath.TryGetValue(msg.ResourceUrl, out string missingDependencyResourcePath)) + // If resource is a "primary relationship" configured in authorization failure handling + && missingDependencyByResourcePath.ContainsKey(msg.ResourceUrl)) { string responseMessageText = GetResponseMessageText(postItemResponse); @@ -482,17 +482,17 @@ async Task GetResponseMessageTextAsync(HttpResponseMessage response) async Task<(bool success, MissingDependencyDetails)> TryGetMissingDependencyDetailsAsync(HttpResponseMessage postItemResponse, PostItemMessage msg) { - // If response is a Bad Request (which is the API's error response for missing Staff/Student/Parent), check for need to explicitly fetch dependencies - // NOTE: If support is expanded for other missing dependencies, the response code from the API (currently) will be a 409 Conflict status. + // If response is a Bad Request (which is the API's error response for missing Staff/Student/Parent), check for need to explicitly fetch dependencies + // NOTE: If support is expanded for other missing dependencies, the response code from the API (currently) will be a 409 Conflict status. if (postItemResponse.StatusCode == HttpStatusCode.BadRequest - // If resource is a "primary relationship" configured in authorization failure handling - && missingDependencyByResourcePath.TryGetValue(msg.ResourceUrl, out string missingDependencyResourcePath)) + // If resource is a "primary relationship" configured in authorization failure handling + && missingDependencyByResourcePath.ContainsKey(msg.ResourceUrl)) { string responseMessageText = await GetResponseMessageTextAsync(postItemResponse); if (responseMessageText?.Contains("reference could not be resolved.") == true) { - // Infer reference name from message. This is a bit fragile, but no other choice here. + // Infer reference name from message. This is a bit fragile, but no other choice here. var referenceNameMatch = Regex.Match( responseMessageText, @"(?\w+) reference could not be resolved."); @@ -502,7 +502,7 @@ async Task GetResponseMessageTextAsync(HttpResponseMessage response) string referencedResourceName = referenceNameMatch.Groups["ReferencedResourceName"].Value; string referenceName = referencedResourceName.ToCamelCase() + "Reference"; - // Get the missing reference's source URL + // Get the missing reference's source URL string dependencyItemUrl = msg.Item.SelectToken($"{referenceName}.link.href")?.Value(); if (dependencyItemUrl == null) @@ -512,7 +512,7 @@ async Task GetResponseMessageTextAsync(HttpResponseMessage response) return (false, null); } - // URL is expected to be of the format of + // URL is expected to be of the format of var parts = dependencyItemUrl.Split('/'); if (parts.Length < 3) diff --git a/src/EdFi.Tools.ApiPublisher.Connections.Sqlite/EdFi.Tools.ApiPublisher.Connections.Sqlite.csproj b/src/EdFi.Tools.ApiPublisher.Connections.Sqlite/EdFi.Tools.ApiPublisher.Connections.Sqlite.csproj index 0c57438..1939d7d 100644 --- a/src/EdFi.Tools.ApiPublisher.Connections.Sqlite/EdFi.Tools.ApiPublisher.Connections.Sqlite.csproj +++ b/src/EdFi.Tools.ApiPublisher.Connections.Sqlite/EdFi.Tools.ApiPublisher.Connections.Sqlite.csproj @@ -4,9 +4,9 @@ enable - - - + + + diff --git a/src/EdFi.Tools.ApiPublisher.Core/EdFi.Tools.ApiPublisher.Core.csproj b/src/EdFi.Tools.ApiPublisher.Core/EdFi.Tools.ApiPublisher.Core.csproj index 1f45a3f..542ca77 100644 --- a/src/EdFi.Tools.ApiPublisher.Core/EdFi.Tools.ApiPublisher.Core.csproj +++ b/src/EdFi.Tools.ApiPublisher.Core/EdFi.Tools.ApiPublisher.Core.csproj @@ -4,23 +4,23 @@ 10 - + - + - + - - - - - - + + + + + + - - - - + + + + \ No newline at end of file diff --git a/src/EdFi.Tools.ApiPublisher.Tests/EdFi.Tools.ApiPublisher.Tests.csproj b/src/EdFi.Tools.ApiPublisher.Tests/EdFi.Tools.ApiPublisher.Tests.csproj index 2ff7fb2..3541cf5 100644 --- a/src/EdFi.Tools.ApiPublisher.Tests/EdFi.Tools.ApiPublisher.Tests.csproj +++ b/src/EdFi.Tools.ApiPublisher.Tests/EdFi.Tools.ApiPublisher.Tests.csproj @@ -4,21 +4,21 @@ 10 - + - + - + - - + + - - - - - - + + + + + + diff --git a/src/dev.Dockerfile b/src/dev.Dockerfile index ef710d6..ffc7014 100644 --- a/src/dev.Dockerfile +++ b/src/dev.Dockerfile @@ -53,7 +53,7 @@ COPY ./Docker/logging.template.json /app/logging.template.json COPY ./Docker/plainTextNamedConnections.template.json /app/plainTextNamedConnections.template.json COPY ./Docker/run.sh /app/run.sh -RUN apk --no-cache add --upgrade unzip=~6 dos2unix=~7 bash=~5 openssl=3.5.1-r0 gettext=~0 icu=76.1-r0 curl=~8 && \ +RUN apk --no-cache add --upgrade unzip=~6 dos2unix=~7 bash=~5 openssl=3.5.1-r0 gettext=~0 icu=76.1-r1 curl=~8 && \ dos2unix /app/*.json && \ dos2unix /app/*.sh && \ chmod 700 /app/*.sh -- ** && \