Skip to content

Commit cbfda8d

Browse files
authored
Merge pull request #134 from IBM/developer-onboarding-checklist
Added developer onboarding checklist
2 parents f8ff0d6 + 16ecf64 commit cbfda8d

File tree

2 files changed

+187
-0
lines changed

2 files changed

+187
-0
lines changed

docs/docs/development/.pages

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
nav:
22
- index.md
3+
- developer-onboarding.md
34
- github.md
45
- building.md
56
- documentation.md
Lines changed: 186 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,186 @@
1+
# ✅ Developer Onboarding Checklist
2+
3+
> Follow this checklist to set up your development environment, verify all features, and ensure consistent onboarding across the MCP Gateway project.
4+
5+
---
6+
7+
## 🛠 Environment Setup
8+
9+
???+ check "System prerequisites"
10+
- [ ] Python ≥ 3.10
11+
- [ ] Node.js and npm, npx (used for testing with `supergateway` and the HTML/JS Admin UI)
12+
- [ ] Docker, Docker Compose, and Podman
13+
- [ ] Make, GitHub CLI (`gh`), `curl`, `jq`, `openssl`
14+
- [ ] Optional: Visual Studio Code + Dev Containers extension (or WSL2 if on Windows)
15+
16+
???+ check "Python tooling"
17+
- [ ] `pip install --upgrade pip`
18+
- [ ] `uv` and `uvenv` installed - [install uv](https://github.com/astral-sh/uv)
19+
- [ ] `.venv` created with `make venv install install-dev`
20+
21+
???+ check "Additional tools"
22+
- [ ] `helm` installed for Kubernetes deployments ([Helm install docs](https://helm.sh/docs/intro/install/))
23+
- [ ] Security tools in `$PATH`: `hadolint`, `dockle`, `trivy`, `osv-scanner`
24+
25+
???+ check "Useful VS Code extensions"
26+
- [ ] Python, Pylance
27+
- [ ] YAML, Even Better TOML
28+
- [ ] Docker, Dev Containers (useful on Windows)
29+
30+
???+ check "GitHub setup"
31+
- [ ] GitHub email configured in `git config`
32+
- [ ] See [GitHub config guide](./github.md#16-personal-git-configuration-recommended)
33+
34+
???+ check ".env configuration"
35+
- [ ] Copy `.env.example` to `.env`
36+
- [ ] Set various env variables, such as:
37+
- `JWT_SECRET_KEY`
38+
- `BASIC_AUTH_PASSWORD`
39+
---
40+
41+
## 🔧 Makefile Targets
42+
43+
???+ check "Local setup"
44+
- [ ] `make check-env` (validates .env is complete)
45+
- [ ] `make venv install install-dev serve`
46+
- [ ] `make smoketest` runs and passes
47+
48+
???+ check "Container builds"
49+
- [ ] Docker: `make docker-prod docker-run-ssl-host compose-up`
50+
- [ ] Podman: `make podman podman-prod podman-run-ssl-host`
51+
52+
???+ check "Packaging"
53+
- [ ] `make dist verify` builds packages
54+
- [ ] `make devpi-install devpi-init devpi-start devpi-setup-user devpi-upload devpi-test`
55+
- [ ] Install and test `mcpgateway` CLI locally
56+
57+
???+ check "Minikube & Helm"
58+
- [ ] `make helm-install minikube-install minikube-start minikube-k8s-apply helm-package helm-deploy`
59+
- [ ] See [minikube deployment](deployment/minikube.md)
60+
61+
---
62+
63+
## 🧪 Testing
64+
65+
???+ check "Code quality"
66+
- [ ] `make lint`, `make lint-web`
67+
- [ ] `make shell-linters-install`, `make shell-lint`
68+
- [ ] `make hadolint` (Dockerfile linting)
69+
70+
???+ check "Unit tests"
71+
- [ ] `make test` passes all cases
72+
73+
---
74+
75+
## 🔐 Security
76+
77+
???+ check "Vulnerability scans"
78+
- [ ] Run:
79+
```bash
80+
make hadolint dockle osv-scan trivy pip-audit
81+
```
82+
83+
???+ check "SonarQube analysis"
84+
- [ ] `make sonar-up-docker`
85+
- [ ] `make sonar-submit-docker` — ensure no critical violations
86+
87+
---
88+
89+
## 🔑 JWT Authentication
90+
91+
???+ check "Generate and use a Bearer token"
92+
- [ ] Export a token with:
93+
```bash
94+
export MCPGATEWAY_BEARER_TOKEN=$(python3 -m mcpgateway.utils.create_jwt_token --username admin --exp 0 --secret my-test-key)
95+
```
96+
97+
- [ ] Verify authenticated API access:
98+
```bash
99+
curl -k -H "Authorization: Bearer $MCPGATEWAY_BEARER_TOKEN" https://localhost:4444/version | jq
100+
```
101+
102+
---
103+
104+
## 🤖 Client Integration
105+
106+
???+ check "Run wrapper and test transports"
107+
- [ ] Run: `python3 -m mcpgateway.wrapper` (stdio support)
108+
- [ ] Test transports:
109+
- Streamable HTTP
110+
- Server-Sent Events (SSE)
111+
- [ ] Optional: Integrate with Claude, Copilot, Continue ([usage guide](../using/index.md))
112+
113+
---
114+
115+
## 🧭 API Testing
116+
117+
???+ check "Authentication required"
118+
- [ ] Unauthenticated:
119+
```bash
120+
curl http://localhost:4444/tools
121+
# -> should return 401 Unauthorized
122+
```
123+
- [ ] Authenticated:
124+
```bash
125+
curl -H "Authorization: Bearer $MCPGATEWAY_BEARER_TOKEN" http://localhost:4444/version | jq
126+
```
127+
128+
???+ check "Endpoint coverage"
129+
- [ ] Confirm key routes:
130+
- `/version`
131+
- `/health`
132+
- `/tools`
133+
- `/servers`
134+
- `/resources`
135+
- `/prompts`
136+
- `/gateways`
137+
- [ ] Browse [Redoc docs](http://localhost:4444/redoc)
138+
139+
---
140+
141+
## 🖥 Admin UI
142+
143+
???+ check "Login and diagnostics"
144+
- [ ] Navigate to [`/admin`](http://localhost:4444/admin)
145+
- [ ] Log in with Basic Auth credentials from `.env`
146+
- [ ] `/version` shows healthy DB and Redis
147+
148+
???+ check "CRUD verification"
149+
- [ ] Create / edit / delete:
150+
- Servers
151+
- Tools
152+
- Resources
153+
- Prompts
154+
- Gateways
155+
- [ ] Toggle active/inactive switches
156+
- [ ] JWT stored in `HttpOnly` cookie, no errors in DevTools Console
157+
158+
???+ check "Metrics"
159+
- [ ] Confirm latency and error rate display under load
160+
161+
---
162+
163+
## 📚 Documentation
164+
165+
???+ check "Build and inspect docs"
166+
- [ ] `cd docs && make venv serve`
167+
- [ ] Open http://localhost:8000
168+
- [ ] Confirm:
169+
- `.pages` ordering
170+
- nav structure
171+
- working images
172+
- Mermaid diagrams
173+
174+
???+ check "Read and understand"
175+
- [ ] `README.md` in root
176+
- [ ] [Official docs site](https://ibm.github.io/mcp-context-forge/)
177+
- [ ] [MkDocs Admonitions guide](https://squidfunk.github.io/mkdocs-material/reference/admonitions/)
178+
179+
---
180+
181+
## ✅ Final Review
182+
183+
???+ check "Ready to contribute"
184+
- [ ] All items checked
185+
- [ ] PR description links to this checklist
186+
- [ ] Stuck? Open a [discussion](https://github.com/your-repo/discussions) or issue

0 commit comments

Comments
 (0)