Environment Setup

This workshop is local-first: VS Code, terminal, and Podman Compose. No local JDK or OpenShift required for Phase 1.

Run all commands from the repository root (where compose.yaml lives).

Clone and open the repository

git clone https://github.com/rh-mobb/snakewell.git
cd snakewell
code .

Verify tooling

podman --version
podman compose version
curl --version

If podman compose is missing, try podman-compose version instead, or install a compose provider (for example brew install podman-compose on macOS). Workshop wrappers call scripts/compose.sh.

Environment setup (build + demo files)

make setup

This runs unit tests and builds scripts/malicious.jar via Podman Compose (see Makefile and compose.yaml).

All tests should pass against the affected SnakeYAML 1.33 baseline.

Starting the stack is covered in Module 1: Legacy Baseline.

The compose stack

Everything runs from compose.yaml at the repository root:

Service Role

app

Maven spring-boot:run — Pipeline API on port 8080

mock-server

Python http.server — malicious.jar on port 9999

maven (profile tools)

One-off mvn commands (test, compile)

build-malicious-jar (profile tools)

Builds scripts/malicious.jar for Module 2

Lightwell repository access (Module 4)

Module 4 requires access to Red Hat’s fixed library repository at https://packages.redhat.com/lightwell/java/remediated/. Place credentials in .m2/settings.xml at the repo root (server id redhat-lightwell-remediated). The maven compose service mounts .m2/ into the container.

Clean up between modules

make clean