Files
sendico/ci/dev/CHECKLIST.md
2026-01-30 16:58:02 +01:00

161 lines
4.4 KiB
Markdown

# Development Environment - Implementation Checklist
## ✅ Completed
### Infrastructure (3/3)
- [x] MongoDB Replica Set (3 nodes with auto-init)
- [x] NATS with JetStream
- [x] Vault (single node for application data)
### Application Services (12/12)
- [x] Discovery Service
- [x] FX Oracle Service
- [x] FX Ingestor Service
- [x] Billing Fees Service
- [x] Ledger Service
- [x] Payments Orchestrator Service
- [x] Chain Gateway Service
- [x] MNTX Gateway Service
- [x] TGSettle Gateway Service
- [x] Notification Service
- [x] BFF (Server) Service
- [x] Frontend (Flutter Web)
### Configuration Files
- [x] docker-compose.dev.yml (complete with all services)
- [x] .env.dev (plaintext credentials template)
- [x] Makefile (full command suite)
- [x] .gitignore (updated with dev files)
### Dockerfiles (12/12)
- [x] ci/dev/discovery.dockerfile
- [x] ci/dev/ledger.dockerfile
- [x] ci/dev/billing-fees.dockerfile
- [x] ci/dev/fx-oracle.dockerfile
- [x] ci/dev/fx-ingestor.dockerfile
- [x] ci/dev/payments-orchestrator.dockerfile
- [x] ci/dev/chain-gateway.dockerfile
- [x] ci/dev/mntx-gateway.dockerfile
- [x] ci/dev/tgsettle-gateway.dockerfile
- [x] ci/dev/notification.dockerfile
- [x] ci/dev/bff.dockerfile
- [x] ci/dev/frontend.dockerfile
### Scripts & Utilities
- [x] ci/dev/mongo.key (MongoDB keyfile)
- [x] ci/dev/vault/config.hcl (Vault config)
- [x] Vault templates removed (not needed for dev)
- [x] Makefile commands for all operations
### Documentation
- [x] SETUP.md (comprehensive setup guide)
- [x] ci/dev/README.md (quick reference)
- [x] ci/dev/CHECKLIST.md (this file)
- [x] CLAUDE.md (updated with dev commands)
## 🎯 Ready to Test
### Initial Setup
```bash
make init
```
### Start Environment
```bash
make up
```
### Initialize Vault (if needed)
```bash
make vault-init
```
### Check Status
```bash
make status
make list-services
```
## 📊 Service Dependencies
```
Infrastructure Layer:
├─ MongoDB (dev-mongo-1, dev-mongo-2, dev-mongo-3)
├─ NATS (dev-nats)
└─ Vault (dev-vault)
Service Layer:
├─ dev-discovery → [nats]
├─ dev-fx-oracle → [mongo, nats]
├─ dev-fx-ingestor → [mongo, nats]
├─ dev-billing-fees → [mongo, nats, fx-oracle]
├─ dev-ledger → [mongo, nats, discovery, billing-fees]
├─ dev-payments-orchestrator → [mongo, nats, ledger, billing-fees]
├─ dev-chain-gateway → [mongo, nats, discovery, vault]
├─ dev-mntx-gateway → [nats, discovery, vault]
├─ dev-tgsettle-gateway → [mongo, nats, discovery, vault]
├─ dev-notification → [nats]
├─ dev-bff → [mongo, nats, ledger, payments, chain-gateway]
└─ dev-frontend → [bff]
```
## 🔍 Validation Steps
### 1. Infrastructure
- [ ] MongoDB replica set initializes correctly
- [ ] NATS is accessible and healthy
- [ ] Vault starts and can be initialized
### 2. Core Services
- [ ] Discovery service starts and is healthy
- [ ] Ledger service connects to MongoDB and NATS
- [ ] Billing fees service can query FX oracle
- [ ] FX oracle provides quotes
### 3. Payment Flow
- [ ] Payments orchestrator can communicate with ledger
- [ ] Payments orchestrator can calculate fees
- [ ] Payment plan execution works
### 4. Gateways
- [ ] Chain gateway connects to Vault for keys
- [ ] MNTX gateway is reachable
- [ ] TGSettle gateway connects to Telegram
### 5. Frontend
- [ ] BFF serves API endpoints
- [ ] Frontend builds successfully
- [ ] Frontend connects to BFF
## 🐛 Known Considerations
1. **Vault Secrets**: Services using Vault (chain, mntx, tgsettle) need secrets populated
2. **External APIs**: MNTX and TGSettle need API credentials from Vault
3. **Blockchain**: Chain gateway needs blockchain node URLs and private keys
4. **Build Time**: Frontend build takes ~5-10 minutes (Flutter compile)
## 📝 Post-Setup Tasks
- [ ] Populate Vault with blockchain keys for Chain Gateway
- [ ] Add MNTX API credentials to Vault
- [ ] Add TGSettle (Telegram) credentials to Vault
- [ ] Seed test data into MongoDB
- [ ] Configure blockchain RPC endpoints
- [ ] Test full payment flow end-to-end
## 🚀 Next Development Steps
1. Test `make init && make up`
2. Verify all services start successfully
3. Check logs for any errors
4. Test service-to-service communication
5. Add seed data scripts
6. Create integration tests
---
**Status**: ✅ COMPLETE - Ready for testing
**Date**: 2026-01-27
**Build System**: Docker Compose + Makefile
**Total Services**: 12 application + 3 infrastructure = 15 containers