Skip to content

Commit 9fe4b64

Browse files
Merge pull request #4 from ncino/feature/NV-9899
Feature/NV-9899 - Security Assessment - Vulnerable third-party dependencies (.NET)
2 parents 27a374b + c4d0733 commit 9fe4b64

16 files changed

Lines changed: 466 additions & 106 deletions

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
src/.idea/
12
src/.vs/
23
temp/
34
src2/
@@ -13,3 +14,4 @@ bin
1314
obj
1415

1516
src/Ormico.DbPatchManager.CLI/deb/
17+
src/Ormico.DbPatchManager.CLI/Properties/launchSettings.json

src/Ormico.DbPatchManager.CLI/Ormico.DbPatchManager.CLI.csproj

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,19 @@
1-
<Project Sdk="Microsoft.NET.Sdk">
1+
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
44
<OutputType>Exe</OutputType>
5-
<TargetFramework>net6.0</TargetFramework>
6-
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
5+
<TargetFramework>net8.0</TargetFramework>
6+
<!--<GeneratePackageOnBuild>false</GeneratePackageOnBuild>-->
77
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
88
<PackageLicenseFile>LICENSE</PackageLicenseFile>
9-
<RepositoryUrl>https://github.com/ormico/dbpatchmanager</RepositoryUrl>
9+
<PackAsTool>true</PackAsTool>
10+
<RepositoryUrl>https://github.com/ncino/dbpatchmanager</RepositoryUrl>
1011
<Copyright>Copyright (c) 2020 Zack Moore</Copyright>
1112
<Authors>Zack Moore</Authors>
1213
<Company>Ormico</Company>
1314
<Product>Ormico DB Patch Manager CLI</Product>
15+
<PackageAsTool>true</PackageAsTool>
16+
<ToolCommandName>dbpatch</ToolCommandName>
1417
<AssemblyName>dbpatch</AssemblyName>
1518
<PackageId>Ormico.DbPatchManager.CLI</PackageId>
1619
<PackageProjectUrl>https://dbpatch.dev/</PackageProjectUrl>
@@ -44,7 +47,7 @@
4447
</ItemGroup>
4548

4649
<ItemGroup>
47-
<PackageReference Include="CommandLineParser" Version="2.8.0" />
50+
<PackageReference Include="CommandLineParser" Version="2.9.1" />
4851
</ItemGroup>
4952

5053
<ItemGroup>

src/Ormico.DbPatchManager.CLI/Program.cs

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System;
22
using CommandLine;
3+
using Newtonsoft.Json;
34
using Ormico.DbPatchManager.Logic;
45
using Ormico.DbPatchManager.CLI.CommandLineOptions;
56

@@ -12,14 +13,24 @@ static int Main(string[] args)
1213
int rc = 0;
1314
try
1415
{
15-
rc = CommandLine.Parser.Default.ParseArguments(args, typeof(InitCmdLineOptions), typeof(AddPatchCmdLineOptions), typeof(BuildCmdLineOptions))
16+
rc = CommandLine.Parser.Default.ParseArguments(args, typeof(InitCmdLineOptions),
17+
typeof(AddPatchCmdLineOptions), typeof(BuildCmdLineOptions))
1618
.MapResult(
1719
(InitCmdLineOptions o) => InitBuildSettings(o),
1820
(AddPatchCmdLineOptions o) => AddPatch(o),
1921
(BuildCmdLineOptions o) => Build(o),
2022
err => 1
2123
);
2224
}
25+
catch (JsonException jsonException)
26+
{
27+
Console.WriteLine("{0}", jsonException.Message);
28+
Console.WriteLine("{0}", jsonException.StackTrace);
29+
if (jsonException.InnerException != null)
30+
{
31+
Console.WriteLine("{0}", jsonException.InnerException.Message);
32+
}
33+
}
2334
catch (Exception ex)
2435
{
2536
Console.WriteLine($"{ex.Message}");
@@ -54,19 +65,29 @@ static int InitBuildSettings(InitCmdLineOptions options)
5465
static int AddPatch(AddPatchCmdLineOptions options)
5566
{
5667
int rc = 0;
68+
var startTime = DateTimeOffset.Now;
69+
Console.WriteLine("{0:O} - Database Add Patch Started", startTime);
5770
PatchManager manager = new PatchManager(_patchFileName, _patchLocalFileName);
5871
//todo: pass all settings
5972
manager.AddPatch(options.Name, new PatchOptions()
6073
{
6174
});
75+
var endTime = DateTimeOffset.Now;
76+
Console.WriteLine("{0:O} - Database Add Patch Completed", endTime);
77+
Console.WriteLine("{0:g} - Add Patch Time", endTime.Subtract(startTime));
6278
return rc;
6379
}
6480

6581
static int Build(BuildCmdLineOptions options)
6682
{
6783
int rc = 0;
84+
var startTime = DateTimeOffset.Now;
85+
Console.WriteLine("{0:O} - Database Build Started", startTime);
6886
PatchManager manager = new PatchManager(_patchFileName, _patchLocalFileName);
6987
manager.Build();
88+
var endTime = DateTimeOffset.Now;
89+
Console.WriteLine("{0:O} - Database Build Completed", endTime);
90+
Console.WriteLine("{0:g} - Build Time", endTime.Subtract(startTime));
7091
return rc;
7192
}
7293
}

src/Ormico.DbPatchManager.Common/Ormico.DbPatchManager.Common.csproj

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFramework>netstandard2.0</TargetFramework>
54
<RepositoryUrl>https://github.com/ormico/dbpatchmanager</RepositoryUrl>
65
<PackageLicenseFile>LICENSE</PackageLicenseFile>
76
<Authors>Zack Moore</Authors>
@@ -14,6 +13,7 @@
1413
<Copyright>Copyright (c) 2020 Zack Moore</Copyright>
1514
<PackageProjectUrl>https://dbpatch.dev/</PackageProjectUrl>
1615
<Version>2.1.2</Version>
16+
<TargetFrameworks>net8.0;netstandard2.1</TargetFrameworks>
1717
</PropertyGroup>
1818

1919
<ItemGroup>
@@ -27,4 +27,8 @@
2727
</None>
2828
</ItemGroup>
2929

30+
<ItemGroup>
31+
<PackageReference Include="Newtonsoft.Json" Version="13.0.2" />
32+
</ItemGroup>
33+
3034
</Project>
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
using System.Collections.Generic;
2+
using System.Globalization;
3+
using System.Linq;
4+
using Newtonsoft.Json;
5+
using Newtonsoft.Json.Converters;
6+
7+
namespace Ormico.DbPatchManager.Common
8+
{
9+
public partial class PatchFile
10+
{
11+
[JsonProperty("DatabaseType")] public string DatabaseType { get; set; }
12+
13+
[JsonProperty("ConnectionString")] public string ConnectionString { get; set; }
14+
15+
[JsonProperty("CodeFolder")] public string CodeFolder { get; set; }
16+
17+
[JsonProperty("CodeFiles")] public List<string> CodeFiles { get; set; }
18+
19+
[JsonProperty("PatchFolder")] public string PatchFolder { get; set; }
20+
21+
[JsonProperty("Options")] public Dictionary<string, string> Options { get; set; }
22+
23+
[JsonProperty("patches")] public List<PatchFromFile> Patches { get; set; }
24+
25+
public PatchFile()
26+
{
27+
Patches = new List<PatchFromFile>();
28+
Options = new Dictionary<string, string>();
29+
CodeFiles = new List<string>();
30+
}
31+
}
32+
33+
public partial class PatchFromFile
34+
{
35+
[JsonProperty("id")] public string Id { get; set; }
36+
37+
[JsonProperty("dependsOn")] public List<string> DependsOn { get; set; }
38+
39+
public PatchFromFile()
40+
{
41+
DependsOn = new List<string>();
42+
}
43+
}
44+
45+
public partial class PatchFile
46+
{
47+
public static PatchFile FromJson(string json) =>
48+
JsonConvert.DeserializeObject<PatchFile>(json, PatchFileConverter.Settings);
49+
}
50+
51+
public static class PatchFileSerializer
52+
{
53+
public static string ToJson(this PatchFile self) =>
54+
JsonConvert.SerializeObject(self, PatchFileConverter.Settings);
55+
}
56+
57+
internal static class PatchFileConverter
58+
{
59+
public static readonly JsonSerializerSettings Settings = new JsonSerializerSettings
60+
{
61+
MetadataPropertyHandling = MetadataPropertyHandling.Ignore,
62+
DateParseHandling = DateParseHandling.None,
63+
Converters =
64+
{
65+
new IsoDateTimeConverter { DateTimeStyles = DateTimeStyles.AssumeUniversal }
66+
},
67+
Formatting = Formatting.Indented
68+
};
69+
}
70+
}

src/Ormico.DbPatchManager.Logic.Tests/Ormico.DbPatchManager.Logic.Tests.csproj

Lines changed: 0 additions & 15 deletions
This file was deleted.

src/Ormico.DbPatchManager.Logic.Tests/UnitTest1.cs

Lines changed: 0 additions & 18 deletions
This file was deleted.

0 commit comments

Comments
 (0)