Skip to content

ContributingΒΆ

Thank you for your interest in improving this workshop!

Repository StructureΒΆ

sherpa/
β”œβ”€β”€ camps/                    # Workshop modules
β”‚   β”œβ”€β”€ base-camp/            # Local-only, MCP fundamentals
β”‚   β”œβ”€β”€ camp1-identity/       # Azure: OAuth, Managed Identity
β”‚   β”œβ”€β”€ camp2-gateway/        # Azure: APIM, Content Safety
β”‚   β”œβ”€β”€ camp3-io-security/    # Azure: Input validation, PII
β”‚   └── camp4-monitoring/     # Azure: Logging, alerts
β”œβ”€β”€ docs/                     # MkDocs documentation
β”‚   └── camps/                # Workshop guides
└── mkdocs.yml

Workshop PatternΒΆ

All camps follow exploit β†’ fix β†’ validate:

  1. Start with a vulnerable or incomplete configuration
  2. Demonstrate the security risk
  3. Apply the fix
  4. Validate the fix works

Camp TypesΒΆ

Type Example Deployment Key Files
Local Base Camp uv run python -m src.server vulnerable-server/, secure-server/
Azure Camps 1-4 azd up azure.yaml, infra/, scripts/

Running Docs LocallyΒΆ

pip install -r requirements-docs.txt
mkdocs serve

Code GuidelinesΒΆ

  • Python: 3.11+, type hints, uv for dependencies
  • Bicep: Consistent naming, security comments
  • Scripts: Bash, set -e, clear progress output

Testing ChangesΒΆ

  1. Run through the workshop guide yourself
  2. Verify exploit scripts demonstrate the vulnerability
  3. Verify fix scripts resolve the issue
  4. Check documentation renders correctly

Submitting ChangesΒΆ

  1. Fork and create a branch
  2. Make changes and test thoroughly
  3. Submit a Pull Request with a clear description

Questions?ΒΆ

Open an issue.


Thank you for helping others reach the summit safely! πŸ”οΈ