Spaces:
Running
Running
Deploy Aureon OS (deploy/selfhost stack: nginx edge + fusion API x2 + console + HNC organ + redis + postgres; paper mode) (part 8)
9607690 verified |
Download docs/reports/SAAS_CONNECTIONS.md from GaryLeckey/aureon-os: direct link, hf CLI and curl.
- Browser
- Download file 4.8 kB
-
https://huggingface.co/spaces/GaryLeckey/aureon-os/resolve/main/docs/reports/SAAS_CONNECTIONS.md
- Command line
-
hf download hf://spaces/GaryLeckey/aureon-os/docs/reports/SAAS_CONNECTIONS.md
-
curl -L -o SAAS_CONNECTIONS.md https://huggingface.co/spaces/GaryLeckey/aureon-os/resolve/main/docs/reports/SAAS_CONNECTIONS.md
4.8 kB
| # SaaS connection verification β is the platform working and is every connection wired? | |
| **Date:** 2026-07-25 Β· **Branch:** `claude/phenolic-fingerprint-connector-lyv59v` Β· **Verifier:** | |
| `aureon/saas/connection_verifier.py` | |
| Made repeatable and honest. `python -m aureon.saas.connection_verifier` boots the operator Flask app | |
| in-process, GETs every registered JSON route, and cross-checks the endpoints the React console calls | |
| against the routes the operator actually serves. Read-only β it never mutates state, places a trade, or | |
| moves money. | |
| ## Headline | |
| **Healthy: True** β surface **37 ok Β· 2 honest-unavailable Β· 0 faults** (of 39 JSON GET routes) Β· parity | |
| **36/36 console endpoints served Β· 0 missing**. | |
| - A **fault** (500 / crash / HTML where JSON is due) or a **missing** endpoint (the console calls a path | |
| the operator does not serve) is a real problem. There are none. | |
| - An **honest-unavailable** is a self-declared 503 for a configured-off feature β the no-fake-data policy | |
| working as intended, not a bug (see below). | |
| Reproduce: | |
| ```bash | |
| AUREON_LLM_OFFLINE=1 AUREON_SUPPRESS_IMPORT_SIDE_EFFECTS=1 AUREON_AUDIT_MODE=1 \ | |
| python -m aureon.saas.connection_verifier # prints the table, exit 0 iff healthy | |
| python -m aureon.saas.connection_verifier --report docs/reports/saas_connections_run.md # durable artifact | |
| ``` | |
| ## The two honest-unavailable endpoints | |
| `/api/billing/balance` and `/api/billing/usage` return **503 β "tenancy bridge disabled | |
| (AUREON_SUPABASE_JWT_SECRET unset)"**. Multi-tenant billing needs a Supabase bridge that is not | |
| configured in a bare/offline deploy. `/api/billing/status` reports this truthfully | |
| (`configured: false`, `tenancy_bridge: off`, `missing_env: [SUPABASE_URL, SUPABASE_SERVICE_ROLE_KEY]`). | |
| This is degradation-by-design, surfaced honestly β never a fabricated balance. | |
| ## Frontend β backend parity | |
| Every endpoint the current console (`frontend/src/shell/`, 29 paths incl. the `POST /api/cognition/reason` | |
| and health probes) **and** the legacy trading console (`frontend/src/App.tsx` + `components/`, 7 paths) | |
| calls now resolves on the one operator gateway. | |
| ### Legacy endpoints wired this pass (`aureon/operator/legacy_runtime_api.py`) | |
| Previously these 7 lived only on a standalone status server (`unified_market_status_server` on | |
| `127.0.0.1:8790`), so through the operator they 404'd. They now mount on the gateway β read-only or | |
| notify-only, serving **real state or an explicit unavailable, never a fabricated value**: | |
| | endpoint | backing | honest behavior offline | | |
| |:---|:---|:---| | |
| | `GET /api/terminal-state` | `unified_market_status_server._read_status()` | `ok` + booting/stale payload when the trader hasn't written `state/unified_runtime_status.json` | | |
| | `GET /api/flight-test` | `._flight_test()` | real `checks` + `reboot_advice`, computed from state | | |
| | `GET /api/reboot-advice` | same flight-test payload | console reads its `reboot_advice` sub-object | | |
| | `GET /api/env-credentials` | `._env_credentials_status()` | masked presence only β `secret_policy: metadata_only_no_values_returned` | | |
| | `GET /api/bots` | (no per-bot log-tail source wired) | `{ "bots": [] }` β console renders "No bots reporting yet.", never invented tails | | |
| | `GET /api/trades` | (no symbol-keyed trade source) | `{ "trades": {} }` β never `mock: true` with fabricated trades | | |
| | `POST /api/notifications/telegram` | real Telegram Bot API when `TELEGRAM_BOT_TOKEN`/chat present | else `503 { ok: false, reason: "telegram not configured" }` β never a faked send | | |
| > Note (honest divergence): the SaaS gateway serves `/api/status` as **platform health**; the legacy | |
| > `StatusPanel` component historically expected a trading-balance shape at the same path. The route is | |
| > served (parity counts it), and the current shell console consumes the platform-health shape β the | |
| > legacy component's shape mismatch is flagged here, not silently "fixed". | |
| ## What backs this | |
| - Verifier: `aureon/saas/connection_verifier.py` β `verify_surface` (route sweep + classify), | |
| `verify_frontend_parity` (console-vs-registered cross-check), `verify_all`, a durable report writer, and | |
| the `python -m` CLI (exit non-zero only on faults / missing endpoints). | |
| - Tests: `tests/test_saas_connection_verifier.py` (no faults Β· parity all-served Β· byte-identical report Β· | |
| CLI exit 0) and `tests/test_legacy_runtime_api.py` (each legacy endpoint resolves honestly, no raw | |
| secrets, empty-not-fabricated bots/trades, honest telegram 503). | |
| - Registration: `register_legacy_runtime_routes(app)` in `aureon/operator/operator_server.py:create_app`, | |
| guarded like every other `register_*` mount (a wiring failure logs a warning; the operator still serves). | |