yusufcalisir's picture
deploy: Hugging Face space upload
73ba4f5
|
Raw History Blame Contribute Delete
15.3 kB
# Official Command-Line Interface (`cfi-cli`) User Guide (2026 Edition)
---
## 1. Executive Overview & Architecture
The **Collaborative Fraud Intelligence Platform (CF-Intelligence)** provides a unified, dual-purpose Command-Line Interface (CLI) ecosystem engineered for enterprise DevSecOps, Site Reliability Engineers (SREs), and bank IT integration teams:
```
┌────────────────────────────────────────────────────────────────────────────────────────┐
│ CFI COMMAND-LINE INTERFACE ECOSYSTEM │
├───────────────────────────────────────────┬────────────────────────────────────────────┤
│ 1. PRODUCTION OPERATOR CLI (`cfi-cli`) │ 2. BANK ONBOARDING SANDBOX (`cfi_cli.py`) │
│ - Installed via `pip install -e backend` │ - Standalone script: `scripts/cfi_cli.py` │
│ - Targets Coordinator Admin REST APIs │ - Offline pre-flight & hardware discovery │
│ - Manages Live mTLS, Status & Deployments│ - Scaffolds local configs & 4096-bit CSR │
│ - Exports SHA-256 Signed Telemetry │ - Tests gRPC ports & runs TPS benchmarks │
└───────────────────────────────────────────┴────────────────────────────────────────────┘
```
1. **Production Operator CLI (`cfi-cli`)**: Installed globally as `cfi-cli` via [`backend/pyproject.toml`](../backend/pyproject.toml) (entrypoint [`backend/app/presentation/cli/cfi_cli.py`](../backend/app/presentation/cli/cfi_cli.py)). Interacts with coordinator REST endpoints for consortium enrollment, live status queries, zero-downtime certificate rotation, signed diagnostic bundles, and rolling deployments.
2. **Bank Onboarding & Self-Service Sandbox CLI (`scripts/cfi_cli.py`)**: A standalone self-service tool located in [`scripts/cfi_cli.py`](../scripts/cfi_cli.py). Enables bank IT infrastructure engineers to perform Day-0 integration, scaffold local directories, generate X.509 Certificate Signing Requests (CSR), verify outbound gRPC network reachability, and benchmark local hardware inference throughput.
---
## 2. Installation, Environment & File Hierarchy
### 2.1. Installation
**Operator CLI (Global Console Script):**
```bash
pip install -e backend
cfi-cli --version
# Expected: cfi-cli v2.0.0
```
**Bank Onboarding Sandbox (Zero-Install / Direct Script Execution):**
```bash
python scripts/cfi_cli.py --help
```
### 2.2. Environment Configuration
| Variable | Default Value | Description |
|---|---|---|
| `CFI_HOME` | `~/.cfi` | Base filesystem root for keys, certificates, connector YAMLs, and active bank pointer |
| `CFI_LOG_LEVEL` | `INFO` | Logging verbosity (`DEBUG`, `INFO`, `WARNING`, `ERROR`) |
### 2.3. On-Disk Directory Structure (`CFI_HOME`)
```
~/.cfi/
├── certs/
│ ├── {bank_id}.crt # Issued mTLS node certificate (PEM format)
│ └── {bank_id}.key # RSA / ECDSA private key (0600 permissions, PEM format)
├── config/
│ ├── {bank_id}.yaml # Production connector configuration (YAML format)
│ └── active_bank # JSON pointer storing active {"bank_id", "coordinator_url"}
└── data/
└── vault/ # Local encrypted cache for offline inference tokens
```
---
## 3. Production Operator CLI Reference (`cfi-cli`)
The production operator CLI is backed by [`backend/app/presentation/cli/cfi_cli.py`](../backend/app/presentation/cli/cfi_cli.py).
### 3.1. `cfi-cli join`
Enrolls a new banking institution with the coordinator consortium and provisions the mTLS keypair and connector configuration.
```bash
cfi-cli join \
--bank-id bank_alpha \
--coordinator-url https://coordinator.cf-intelligence.io \
--legal-name "Alpha National Bank" \
--jurisdiction TR \
--contact-email security@alphabank.com \
--data-residency-region eu-west-1
```
**Execution Output:**
```
✅ Bank 'bank_alpha' registered successfully.
Cert → ~/.cfi/certs/bank_alpha.crt
Key → ~/.cfi/certs/bank_alpha.key
Config → ~/.cfi/config/bank_alpha.yaml
Run: cfi-cli start-daemon --bank-id bank_alpha
```
**Parameter Reference:**
| Flag | Type | Required | Description |
|---|:---:|:---:|---|
| `--bank-id` | `string` | ✅ | Unique alphanumeric bank node identifier (e.g., `bank_alpha`, `jpm_global`) |
| `--coordinator-url` | `string` | ✅ | Base URL of the consortium coordinator API |
| `--legal-name` | `string` | ✅ | Full legal entity name for compliance registry |
| `--jurisdiction` | `string` | ✅ | ISO 3166-1 alpha-2 country code (`TR`, `US`, `DE`, `GB`) |
| `--contact-email` | `string` | ✅ | Official corporate security contact email |
| `--data-residency-region` | `string` | ✅ | Target sovereign cloud boundary (e.g., `eu-west-1`, `us-east-1`) |
---
### 3.2. `cfi-cli status`
Inspects real-time bank node status, mTLS certificate fingerprints, and activation timestamps from the coordinator.
```bash
cfi-cli status
```
**Execution Output:**
```
┌─ Bank Status ────────────────────────────────────────
│ bank_id : bank_alpha
│ legal_name : Alpha National Bank
│ jurisdiction : TR
│ status : ACTIVE
│ cert_fingerprint: abc123def456789012...
│ activated_at : 2026-07-24T18:05:00
└──────────────────────────────────────────────────────
```
> **Offline Fallback Note:** If no `active_bank` configuration exists, `status` prints a safe offline development stub reminding the operator to execute `cfi-cli join` first.
---
### 3.3. `cfi-cli rotate-certs`
Performs automated zero-downtime certificate rotation for an active bank node, atomically replacing the on-disk `.crt` and `.key` files.
```bash
cfi-cli rotate-certs --bank-id bank_alpha
```
**Execution Output:**
```
✅ Certificate rotated for 'bank_alpha'.
Fingerprint: d4e5f6a7b8c9101112...
Cert saved → ~/.cfi/certs/bank_alpha.crt
```
---
### 3.4. `cfi-cli export-diagnostics`
Collects host system telemetry, OS architecture, Python runtime version, certificate modification timestamps, and SLA compliance counters into a SHA-256 cryptographically signed JSON bundle.
```bash
cfi-cli export-diagnostics --output /tmp/cfi_diag.json
```
**Execution Output:**
```
✅ Diagnostics bundle saved to /tmp/cfi_diag.json
SHA-256: 3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e
```
**Diagnostic JSON Bundle Structure:**
```json
{
"cli_version": "v2.0.0",
"hostname": "node-alpha-prod-01",
"os": "Linux-6.1.0-28-generic-x86_64",
"python_version": "3.12.10",
"active_bank_id": "bank_alpha",
"cert_file_mtime": 1787593200.0,
"logs": [
"No critical errors encountered.",
"SLA compliance 99.99%."
],
"metrics": {
"p95_latency_ms": 9.84,
"error_budget_remaining_pct": 100.0
},
"sha256_signature": "3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e"
}
```
---
### 3.5. `cfi-cli health`
Queries internal microservice status to verify local readiness and liveness endpoints.
```bash
cfi-cli health
```
**Execution Output:**
```json
{
"status": "UP",
"components": {
"inference_engine": "HEALTHY",
"federated_coordinator": "HEALTHY",
"privacy_guard": "HEALTHY",
"dr_manager": "HEALTHY"
}
}
```
---
### 3.6. `cfi-cli deploy`
Triggers rolling node deployment and drains in-flight TCP connections prior to binary upgrades.
```bash
cfi-cli deploy --target-version v2.2.0
```
**Execution Output:**
```json
{
"target_version": "v2.2.0",
"stage": "DRAINING_CONNECTIONS",
"message": "Rolling deployment to v2.2.0 initiated."
}
```
---
## 4. Bank Onboarding & Integration Sandbox CLI (`scripts/cfi_cli.py`)
The self-service onboarding tool in [`scripts/cfi_cli.py`](../scripts/cfi_cli.py) provides pre-flight checks for bank IT infrastructure teams.
### 4.1. `python scripts/cfi_cli.py init`
Scaffolds local directories and generates a production `bank_config.yaml` template:
```bash
python scripts/cfi_cli.py init \
--bank-id bank_alpha \
--coordinator coordinator.cf-intelligence.io:50051 \
--output-dir ./bank_alpha_node
```
**Generated Scaffold:**
```
./bank_alpha_node/
├── bank_config.yaml # Pre-filled connection & mTLS settings
├── certs/ # Mount directory for node certificates
├── data/vault/ # Encrypted local key-value store
└── logs/ # Rolling audit logs
```
---
### 4.2. `python scripts/cfi_cli.py cert generate-csr`
Generates a cryptographic 4096-bit RSA private key and an X.509 Certificate Signing Request (CSR) compliant with the consortium PKI:
```bash
python scripts/cfi_cli.py cert generate-csr \
--bank-id bank_alpha \
--output-dir ./bank_alpha_node/certs \
--country TR \
--org "Alpha National Bank"
```
**Generated Artifacts:**
* `certs/bank_alpha.key`: 4096-bit RSA Private Key (`0600` permissions)
* `certs/bank_alpha.csr`: X.509 Certificate Signing Request (CN=`bank_alpha.client.cf-intelligence.io`)
---
### 4.3. `python scripts/cfi_cli.py test-connection`
Probes outbound network connectivity and gRPC handshake latency to the coordinator node:
```bash
python scripts/cfi_cli.py test-connection \
--host coordinator.cf-intelligence.io \
--port 50051 \
--timeout 5.0
```
**Execution Output:**
```json
{
"status": "ok",
"command": "test-connection",
"target": "coordinator.cf-intelligence.io:50051",
"latency_ms": 3.42,
"handshake_sla": "PASS",
"note": "gRPC TCP port is open and responsive."
}
```
---
### 4.4. `python scripts/cfi_cli.py sandbox run`
Launches an offline synthetic transaction stress test to benchmark local CPU/GPU hardware throughput against the >100 TPS SLA:
```bash
python scripts/cfi_cli.py sandbox run --transactions 5000
```
**Execution Output:**
```json
{
"status": "ok",
"command": "sandbox run",
"transactions_generated": 5000,
"fraud_transactions": 26,
"fraud_rate_pct": 0.52,
"generation_elapsed_sec": 0.024,
"processing_elapsed_sec": 0.018,
"total_elapsed_sec": 0.042,
"throughput_tps": 119047.6,
"throughput_sla": "PASS",
"hardware": {
"pytorch_available": true,
"pytorch_version": "2.12.0+cpu",
"cuda_available": false,
"cuda_device": null,
"mps_available": false,
"recommended_device": "cpu"
},
"next_step": "Sandbox validation successful. Deploy cfi-bank-client container and run cfi-cli test-connection to verify live coordinator connectivity."
}
```
---
## 5. Institutional Operator Workflows (Day-0, Day-1, Day-2)
```
[ Day-0: Pre-Flight Sandbox ] ──► [ Day-1: Production Onboarding ] ──► [ Day-2: SRE Maintenance ]
1. `cfi-cli init` 1. `cfi-cli join` 1. `cfi-cli status`
2. `cfi-cli cert generate-csr` 2. Validate cert fingerprints 2. `cfi-cli rotate-certs`
3. `cfi-cli test-connection` 3. Launch edge daemon container 3. `cfi-cli export-diagnostics`
4. `cfi-cli sandbox run` 4. Quorum activation confirmation 4. `cfi-cli deploy`
```
### Day-0: Pre-Flight IT Readiness
1. Generate initial scaffold: `python scripts/cfi_cli.py init --bank-id bank_beta`
2. Validate hardware throughput: `python scripts/cfi_cli.py sandbox run --transactions 1000`
3. Generate node CSR: `python scripts/cfi_cli.py cert generate-csr --bank-id bank_beta`
4. Confirm network firewall rules: `python scripts/cfi_cli.py test-connection --host coordinator.prod --port 50051`
### Day-1: Production Consortium Enrollment
1. Register bank node: `cfi-cli join --bank-id bank_beta --coordinator-url https://coordinator.prod ...`
2. Verify node status: `cfi-cli status`
3. Deploy local connector container mount with `~/.cfi/certs/bank_beta.crt` and `bank_beta.key`
### Day-2: Continuous SRE Operations
1. Weekly certificate lifecycle check: `cfi-cli status`
2. Zero-downtime certificate rollover: `cfi-cli rotate-certs --bank-id bank_beta`
3. Audit telemetric bundle generation: `cfi-cli export-diagnostics --output /var/log/cfi_audit.json`
4. Blue-Green node upgrade: `cfi-cli deploy --target-version v2.3.0`
---
## 6. Troubleshooting & Error Recovery Playbook
| Error Signature | Root Cause | Operator Remediation |
|---|---|---|
| `❌ Error: No active_bank config found` | CLI invoked before `join` command execution | Execute `cfi-cli join` with valid bank parameters or export `CFI_HOME` |
| `HTTP 409 from .../register: Bank already registered` | Bank ID already exists in the coordinator ledger | Check existing state with `cfi-cli status` or enroll with unique `--bank-id` |
| `Connection failed to ...: Connection refused` | Coordinator API endpoint unreachable or firewall blocked | Verify outbound egress on ports 443 (REST) and 50051 (gRPC) |
| `cryptography library not found` | Python environment missing cryptographic primitives | Run `pip install cryptography` or execute within virtual environment |
| `SLA breach: throughput_tps < 100` | CPU contention or insufficient memory during sandbox run | Provision minimum 4 vCPUs and 8GB RAM, or enable GPU acceleration |
---
## 7. Automated Test Verification Matrix
All CLI subcommands, argument parsers, diagnostic SHA-256 signing routines, and network mocks are covered by automated unit and integration tests:
| Test Suite | File Path | Verified Technical Capabilities | Status |
| :--- | :--- | :--- | :---: |
| **CLI Core Unit Tests** | [`test_cfi_cli.py`](../backend/tests/unit/test_cfi_cli.py) | Subcommand execution (`status`, `health`, `deploy`, `export-diagnostics`), CLI entrypoint argument parsing | `2/2 PASSED` |
| **CLI Command Mock Tests** | [`test_cfi_cli_commands.py`](../backend/tests/unit/test_cfi_cli_commands.py) | `join` cert disk persistence, `status` table render, `rotate-certs` atomic overwrite, SHA-256 signature verification | `4/4 PASSED` |
| **gRPC mTLS Network Integration** | [`test_grpc_mtls.py`](../backend/tests/integration/test_grpc_mtls.py) | Valid cert connection, CN pattern validation, expired cert rejection, unauthorized bank rejection | `13/13 PASSED` |
| **Total Test Coverage** | **3 Test Suites** | **Comprehensive Packaging, Execution & Cryptographic Verification** | **19/19 PASSED** |
---
## 8. Related Architectural & Operational References
* **Bank Onboarding & Integration Architecture:** [`docs/bank_onboarding_guide.md`](bank_onboarding_guide.md)
* **Production Infrastructure & Vault HSM:** [`docs/production_infrastructure.md`](production_infrastructure.md)
* **Developer & OpenAPI Integration Portal:** [`docs/developer_and_api_portal.md`](developer_and_api_portal.md)
* **Production Engineering Decisions & ADRs:** [`docs/engineering_decisions.md`](engineering_decisions.md)