Pre-W1.1 Architecture Baseline Tag
Date: 2026-02-18
Tag name: pre-w1.1-architecture
1. Tag Details
| Repo | Commit SHA | Date |
|---|---|---|
| sv0-documentation | 740cee544baeab470a011f6a977fb3ddc90e3504 | 2026-02-18 |
| sv0-platform | ee17ad366292e5c4e110373850a722cbd83a8f8f | 2026-02-18 |
| sv0-connectors | c38b0e9a910e2b614dbed216e77a74fbbbeabd9d | 2026-02-18 |
What this tag captures
- Phase 0 complete:
automation→workloadrename across all 3 repos - Phase E3+E4: RUNS_AS evidence lookup + evidence completeness indicators
- All architecture docs finalized (Doc 09, Doc 15, Doc 16, tech stack analysis)
- All Codex + Gemini review fixes applied
- 3 architecture decisions closed (path-level rows, resolved_at naming, locked cluster context)
- 173 unit + 84 integration tests passing (platform)
- 67 unit + 4 e2e tests passing (connector)
Restoring this baseline
# In each repo:
git checkout pre-w1.1-architecture
2. Dual Deployment Plan (Old vs New Side-by-Side)
Purpose
Deploy both the pre-W1.1 (current) and post-W1.1 (new) versions simultaneously so the founder can compare before/after in a browser.
Architecture
┌──────────────────────────────────────────────────────┐
│ EXISTING VPS: 178.156.217.150 (Hetzner) │
│ Tag: pre-w1.1-architecture │
│ │
│ :80 → UI (current — pre-W1.1) │
│ :3000 → API (current) │
│ :27017 → MongoDB (current data) │
└──────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────┐
│ NEW VPS: <new-ip> (Hetzner) │
│ Branch: main (post-W1.1 implementation) │
│ │
│ :80 → UI (new — W1.1 authority paths + findings) │
│ :3000 → API (new) │
│ :27017 → MongoDB (same data, re-imported) │
└──────────────────────────────────────────────────────┘
Setup Steps
1. Provision new VPS
# Hetzner Cloud CLI or console
# Recommended: CX22 (2 vCPU, 4GB RAM) — same spec as existing
# OS: Ubuntu 22.04
# SSH key: same as existing server
2. Bootstrap new VPS
NEW_IP=<new-ip>
# SSH in and install Docker
ssh root@$NEW_IP "apt update && apt install -y docker.io docker-compose-plugin && \
useradd -m -s /bin/bash deploy && \
usermod -aG docker deploy && \
mkdir -p /home/deploy/.ssh && \
cp /root/.ssh/authorized_keys /home/deploy/.ssh/ && \
chown -R deploy:deploy /home/deploy/.ssh"
3. Deploy W1.1 version to new VPS
# From local machine — deploy latest main (with W1.1 changes)
rsync -avz --delete \
--exclude 'node_modules' \
--exclude 'dist' \
--exclude '.git' \
--exclude 'data' \
--exclude 'ui/node_modules' \
--exclude 'ui/dist' \
sv0-platform/ deploy@$NEW_IP:~/sv0-platform/
ssh deploy@$NEW_IP "cd ~/sv0-platform && UI_PORT=80 docker compose up --build -d"
4. Import same data to both
cd sv0-connectors/integrations/entra-servicenow
source .venv/bin/activate
# Import to existing (pre-W1.1)
entra-servicenow --submit-graph reports/graph.json \
--platform-url http://178.156.217.150:3000 \
--tenant-id default
# Import to new (W1.1)
entra-servicenow --submit-graph reports/graph.json \
--platform-url http://$NEW_IP:3000 \
--tenant-id default
5. Compare
| URL | Version |
|---|---|
http://178.156.217.150 | Pre-W1.1 (current) |
http://<new-ip> | Post-W1.1 (authority paths, risk clusters, new UX) |
Teardown
After founder approval, either:
- Promote new VPS: Update DNS/bookmarks to point to new VPS. Decommission old.
- Deploy to existing: Deploy W1.1 to the existing VPS (overwrite in place). Decommission new VPS.
Cost
Hetzner CX22: ~€5.50/month. Run both for 1-2 weeks during comparison, then teardown.