Home
 
  
🔍

🔗 Kubernetes NGINX Ingress WAF with ModSecurity. From zero to hero!

https://medium.com/@danieljimgarcia/nginx-ingress-waf-with-modsecurity-from-zero-to-hero-fa284cb6f54a

August 16, 2022

Everything you need to get started on enabling and configuring Web Application Firewall (WAF) in your NGINX Ingress controller.

dexa

August 7, 2021

A CLI tool that allows developers and teams to capture their preferred tech stacks as a project template and a set of code generators.

Each of these stacks is captured as a git repository. Create them in a publicly available service such as Github to encourage usage and sharing across the wider community. But you are also free to use dexa with private repositories.

Read more in the KaizenDorks website.

kaizendorks/dexa - GitHub

🔗 Using Blazor WebAssembly, SignalR and C# 9 to create Full-stack Real time Applications

https://www.dotnetcurry.com/aspnet-core/realtime-app-using-blazor-webassembly-signalr-csharp9

April 27, 2021

This article puts Blazor WebAssembly under test by building a small real time survey application leveraging SignalR for its real time functionality across both frontend and backend. While doing so, we will use the latest ASP.NET libraries in .NET 5 and C# 9.0, including some of the new language features like record types.

Fix the sonarqube helm chart hook that updates admin password

April 26, 2021

Sonarqube helm chart

The official Sonarqube helm chart started as a community maintained effort as part of the Oteemo helm charts. It was later adopted as the official helm chart of Sonarqube and forked to a SonarSource repo.

This helm chart is the official way of installing Sonarqube in Kubernetes, even though it still has some limitations as per the official Sonarqube docs.

Contribution

The chart allows you to change the default admin password when installing Sonarqube. This is implemented as a post-install helm hook that sends a POST request to the Sonarqube admin API using a container with curl installed.

The problem was that the current/new admin password were sent as part of the query string, but were not URL-encoded. This meant trying to change the admin password to a new password with special characters would fail.

I opened a bug and submitted a PR to fix the issue and URL-encode them it: https://github.com/Oteemo/charts/pull/278

🔗 Kubernetes for ASP.NET Core Developers. A hands on introduction

https://www.dotnetcurry.com/aspnet-core/kubernetes-for-developers

February 5, 2021

Kubernetes became over the past few years one of the most common and important tools that teams and organisations can leverage in the DevSecOps space. In this article, we will go through the core Kubernetes concepts. It follows a hands on approach specifically aimed at developers so it becomes easier to start leveraging Kubernetes.

Update chef docker cookbook so multiple mirrors can be configured for the docker service

December 2, 2020

Chef docker cookbook

The official docker chef cookbook allows engineers to manage docker services and docker resources using Chef.

For example, you can install specific docker versions, configure the docker service or manage resources such as containers, networks and volumes.

Contribution

The registry_mirror option of the docker_service resource allows you to configure the docker daemon with a registry mirror. It essentially adds the --registry-mirror option to the docker daemon arguments.

While it is possible to configure multiple mirrors by providing the --registry-mirror argument multiple times, this chef resource only allowed a single mirror to be configured.

I submitted a PR that updated the option so users can provide either a string or an array for the registry_mirror option.

Allowed kured drain/reboot notifications to be customised

November 26, 2020

Kured

Kured is an open source tool that allows Kubernetes administrators to control when their Nodes can reboot.

This way, automatic upgrades like unattended-upgrades can be configured in the cluster nodes so the OS dependencies are automatically patched.

When a reboot is necessary, unattended-upgrades will create a file /var/run/reboot-required instead of automatically rebooting the node. Kured runs as a daemon in your Kubernetes cluster and monitors the existing of that file. Once it detects a node needs to be rebooted, kured ensures a single node reboots at a time, and it cordongs & drains the node before rebooting.

In addition, kured lets you define the day of the week and time of the day that your nodes can reboot, as well as delay a reboot based on prometheus alerts and/or pod selectors.

Contribution

Kured can be configured to send a slack notification when draining and rebooting a Node. However the notification message was hardcoded as in Rebooting node %s.

This was limiting for myself, since I was going to use kured in many clusters across different clouds and regions. It would be great if I could send a message like Rebooting node %s, from cluster %s, region %s

I submitted a PR that introduced 2 new options with drain/reboot message formats. I also stayed for the conversation on refactoring the notifications using shouterrr so destinations other than slack are supported.

Ensured trivy scans are correctly imported and deduplicated in DefectDojo

September 1, 2020

DefectDojo

DefectDojo is an open source vulnerability aggregation tool.

It greatly simplifies the task of teams running multiple types of vulnerability scans like SCA (dependencies scan), SAST (static code analysis) or DAST (dynamic applicaiton scans) by providing a central aggregation and correlation point.

Contribution

As part of the DevSecOps efforts I was leading, we were considering DefectDojo in combination with tools like Trivy (for SCA), Sonarqube (for SAST) and ZAProxy (for DAST).

I wanted to integrate these tools into our CI/CD pipeline and aggrgate all their results in DefectDojo to get a global consolidated view per project and across the board.

One of DefectDojo's features is its ability to automatically detect a duplicate across scans. For example an unmitigated issue will keep showing in your CI/CD scans until is solved. The deduplication feature allows DefectDojo to keep a single vulnerability open and close the rest as duplicates, greatly reducing the noise in your project.

However when Trivy scans were imported, some fields were missing which caused the deduplication to not work as expected. I submitted a PR which fixed how Trivy scans where imported.

🔗 Developing SPAs with ASP.NET Core v3.0

https://www.dotnetcurry.com/aspnet-core/1525/angular-react-vuejs-svelte-spa-aspnet-core-3

February 1, 2020

This article demonstrates how to integrate four different SPA frameworks within ASP.NET Core v3: Angular, React, Vue and Svelte.

While there are official templates for React and Angular out of the box, the article explain how these work and how they can be adapted for other frameworks such as Vue and Svelte.

blazor-ml

January 23, 2020

Example application that shows how to integrate a Blazor server-side application with ML.NET

  • Users can upload images using the Blazor application, which are classified into one of 1000 labels using the ML.NET model.
  • The ML.NET model simply loads a pre-trained TensorFlow Google's inception model.

I wrote an article in the DotNetCurry magazine explaining the integration between Blazor and ML.NET.

DaniJG/blazor-ml - GitHub

VueVixens workshop in Sligo

November 8, 2019

I was delighted to help Irene Y with a full day VueVixens workshop. The event took place in Sligo, in the offices of Overstock Ireland who were really friendly and a great host!

My role was mostly to give an extra hand to Irene and Caroline when it came to answering doubts and questions, so everyone was taken care of!

These are some of the tweets from the event:

🔗 gRPC with ASP.NET Core 3.0

https://www.dotnetcurry.com/aspnet-core/1514/grpc-asp-net-core-3

October 30, 2019

Article introducing gRPC for ASP.NET Core developers, now that it is supported in the latest ASP.NET Core 3.0 release.

The article covers:

  • a brief introduction to gRPC
  • how gRPC services can be created with ASP.NET Core
  • how gRPC services can be created with a Node.js
  • how to invoke either of these services from .NET Core
  • an overview of the built-in security features based on TLS/SSL

🔗 Authentication in ASP.NET Core, SignalR and VueJS applications

https://www.dotnetcurry.com/aspnet-core/1511/authentication-aspnetcore-signalr-vuejs

September 29, 2019

This article covers authentication in the context of ASP.NET Core and SignalR apps.

It describes how ASP.NET Core allows you to implement authentication using different schemes. Starting with cookie based authentication, it discusses different authentication schemes followed by JWT Bearer tokens.

Two years developing with Vue. Distilled

September 20, 2019

I was delighted to give a talk in the JSDayIE 2019 conference. Check out the YouTube recording!

You also have the slides available in slideshare.

Refactored mockgo to its v2 version using promises

December 5, 2018

Mockgo

mockgo is a Node.js library which simplifies the task to create integration tests using a real MongoDB server.

When integrating mockgo with your tests, it will take care of downloading the right mongo binaries, initialize a real in-memory mongo database and clean it at the end of the test.

Contribution

I was using mockgo in various Node.js projects for writing integration tests that used a real mongo database but still run fast and in memory.

However some of its dependencies were outdated, which was limiting the MongoDB versions that could be used in our tests.

I submitted a PR that ended up refactoring mockgo not just to update its dependencies, but also to use promises and ended up released as the v2 of the library.

🔗 Dependency Injection in ASP.NET Core - Demystified

https://www.dotnetcurry.com/aspnet-core/1426/dependency-injection-di-aspnet-core

March 14, 2018

This article aims to demistify dependency injection in ASP.NET Core, now a first class member of the framework.

It begins with a brief introduction to Dependency Injection in ASP.NET Core. It continues with a comparison to ASP.NET MVC 5, followed by a deeper look at the dependency injection support in ASP.NET Core and using 3rd party containers like Autofac and StructureMap.

BlogPlayground

January 27, 2018

An ASP.NET Core website that implements a simple blogger-like website.

I wrote a series of articles in the DotNetCurry magazine explaining the presentation layer and how to implement unit, integration and E2E testing:

danijg/BlogPlayground - GitHub

Sample integration between react-native and a gRPC service

January 25, 2018

A sample react-native app that communicates using gRPC with a sample server, also contained in this repo. Both the client app and the server share the protocol buffer definition, which is used to generate both server and client side code.

The client side react-native application can talk to the gRPC server through a native module that bridges react-native and the objective-c/Java client generated by gRPC tooling.

danijg/react-native-grpc - GitHub

Added HTTP proxy functionality to node-apn

November 16, 2017

Node-apn

node-apn is a library to simplify the task of sending apple push notifications from Node.js applications.

Contribution

In the corporate environment I was working on, request to the Internet had to go through an HTTP proxy or else they would be blocked.

We were building an iOS application with a Node.js backend from where we wanted to send push notifications. For that we wanted to use the node-apn library but we could only do so if it supported connecting to apple's servers through a proxy.

Since that wasn't a feature currently available, I submitted a PR for it: https://github.com/node-apn/node-apn/pull/602

 

© 2022