Code
Code source
Code source de Sylexe
Code source
Le code source de Sylexe est disponible sur GitHub.
Code de la Base de données
Le code de la base de données est disponible dans le dossier SylexeRadzen/SQLManagement/Services
du Github.
GetReportsAsync
public async Task<List<SylexeReports>> GetReportsAsync()
{
return await dbContext.sylexeReports.ToListAsync();
}
AddReportsAsync
public async Task<SylexeReports> AddReportsAsync(SylexeReports report)
{
try
{
dbContext.sylexeReports.Add(report);
await dbContext.SaveChangesAsync();
}
catch (Exception)
{
throw;
}
return report;
}
UpdateReportsAsync
public async Task<SylexeReports> UpdateReportsAsync(SylexeReports report)
{
try
{
var ReportsExist = dbContext.sylexeReports.FirstOrDefault(l => l.Id == report.Id);
if (ReportsExist != null)
{
dbContext.Update(report);
await dbContext.SaveChangesAsync();
}
}
catch (Exception)
{
throw;
}
return report;
}
DeleteReportsAsync
public async Task DeleteCategoriesAsync(SylexeReports categories)
{
try
{
dbContext.sylexeReports.Remove(categories);
await dbContext.SaveChangesAsync();
}
catch (Exception)
{
throw;
}
}
Code de l’analyseur avec Trivy
Le code de l’analyseur avec Trivy est disponible dans le dossier SylexeRadzen/Pages/Analyze.razor
du Github.
ExecTrivyScan
void ExecTrivyScan(string DockerScan)
{
Process serverSideProcess = new Process();
serverSideProcess.StartInfo.FileName = Environment.GetEnvironmentVariable("docker");
serverSideProcess.StartInfo.FileName = @"C:\Program Files\Docker\Docker\resources\bin\docker.exe";
var path = Path.Combine(WebEnvironment.ContentRootPath, WebEnvironment.EnvironmentName);
DateTime currentDateTime = DateTime.Now;
string formattedDateTime = currentDateTime.ToString("dd-MMMM-yyyy-HH:mm:ss");
string input = (DockerScan + "-" + formattedDateTime);
string temp = Regex.Replace(input, @"\/", "-");
string pathOfJson = Regex.Replace(temp, @":", "_");
serverSideProcess.StartInfo.Arguments = String.Format("run -v {0}:/result aquasec/trivy:0.34.0 -d image -f json -o /result/{1}.json {2}", path, pathOfJson, DockerScan);
serverSideProcess.EnableRaisingEvents = true;
serverSideProcess.StartInfo.UseShellExecute = true;
serverSideProcess.Start();
_sylexeService.AddReportsAsync(new SylexeReports
{
Name = DockerScan,
Timestamp = formattedDateTime,
Path = pathOfJson+".json"
});
}