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 -- ** && \