161 lines
4.4 KiB
Markdown
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
|