What if your Kubernetes cluster simply refused to run unsigned images? I spent some time experimenting with enforcing image provenance in a small Kubernetes setup using MicroK8s. The idea was simple: Only container images with valid cryptographic signatures are allowed to run in the cluster. For this I used: GitLab CI/CD (build + signing pipeline) Cosign / Sigstore (image signing) Kyverno (admissi
Most teams I have worked with have one auth test in their suite. It looks like this: test('valid token verifies', () => { const token = signSync({ sub: 'user-1', aud: 'api://backend' }, secret); const result = verify(token, options); expect(result.valid).toBe(true); }); That test is fine. It is also a smoke test, not a regression suite. It catches the case where verification is completely b
The on-call alert at 02:14 said auth_5xx_rate spiked from 0.01 to 31.4. Not a deploy window. Not a traffic spike. Just thirty-one percent of authenticated requests failing for ~four minutes, then back to baseline. The cause was a JWKS rotation on the issuer side. New keys came in. Old keys went out. Caches in our service didn't refresh fast enough. Tokens signed with the new key were rejected beca
Three days of guided exercises. Today — no template, no "here's the complete code, just copy and paste." Just a brief: based on what you know — build your WishList contract. A personal WishList where only the owner can fulfill a wish. Small enough to finish in one session. Not so small that the decisions made themselves. Code: github.com/alena-dev-soft/solidity-learn/contracts/04day/ The first thi
Day 3: Voting, Sybil Attacks and Identity Day 3 was the first day that felt like actual software engineering rather than syntax tourism. The task: write a voting contract. Simple enough on the surface - until you start poking at the security model and realize the whole thing has serious gaps in its logic. What looked like a toy example turned out to be a good proxy for real system design problem
Day 2: Access Control Counter.sol - a little better than "Hello World", right? The goal: write a simple Counter contract - increment, decrement, reset - // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract Counter { uint256 public count; address public owner; constructor() { owner = msg.sender; count = 0; } function increment() public {
A .NET Dinosaur in Web3 — Day 1: First Smart Contract I've been writing .NET for many years. Today I deployed my first smart contract. I'd like to share my journey into Web3 — every single day. I love what I do — really. I'm a .NET Dinosaur and Azure-passionate developer, Instead of drowning in YouTube tutorials and boring courses, I did something Think of it as a personal trainer who never judg