mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-08-13 10:43:43 +03:00
* docs(reference): regenerate PROVIDER_REFERENCE from live provider modules The catalog was hand-stale at 291 since 2026-08-05 while the live provider modules define 338 unique IDs. The generator also omitted the NOAUTH_PROVIDERS module entirely (10 providers) and hardcoded the executor count in its footer; both are now sourced from the live modules. Refs #9985 * docs: refresh stale counts across README/AGENTS/llm.txt and architecture docs Every count updated to values measured from the live code on 2026-08-12: providers 291/271/248/236/226/212->338, migrations 110/117/130->144, MCP tools 94/99/104->105 (base 42->43), scopes 13/32->31, strategies 17/18->19, Auto-Combo factors 12/13->14 (sessionAvailability row added to the table), executors 67/78/84/89->101, quality gates ~48->~80, locales 29/30/39/40+->43 (41 non-source), A2A skills 5->6 (list-capabilities), free tier 43 pools/516 models/~1.53B/~2.15B->42/495/~1.51B/~2.13B, contributors 500+->320+ (324 unique emails), llm.txt version 3.8.47->3.8.50. llm.txt i18n mirrors resynced (headers preserved, body mirrored). Refs #9985 * docs(diagrams): sync SVG hero/pillars/comparison/cli/tier numbers Text nodes and aria-labels only; layout, coordinates and animation values untouched. providers 278/290->338 (cli list footer 264->334 more), MCP tools 104->105, strategies 18->19, free tier 43 pools/460+/516 models->42/495, headline ~1.53B/~2.15B->~1.51B/~2.13B. All six SVGs re-validated as XML. Refs #9985 * feat(check): harden docs-counts gate - live provider source, llm.txt, migrations, SVGs The gate trusted PROVIDER_REFERENCE.md as the provider total, so a hand-stale doc (291 vs 338 live) kept it falsely green. New STRICT checks: doc total vs the live provider modules (same collections the generator unions), provider count in llm.txt and package.json description, migration count vs README/AGENTS/llm.txt, and a canonical-number sweep (providers/MCP tools/strategies/pools) over the six README SVG diagrams with coordinate/attribute-safe patterns. TDD: 9 new unit tests (red first on the missing exports, green after) in tests/unit/check-docs-counts-sync.test.ts. Refs #9985 * docs(readme): refresh What's New range and add v3.8.50 cycle highlights --------- Co-authored-by: backryun <bakryun0718@proton.me>
147 lines
6.0 KiB
Markdown
147 lines
6.0 KiB
Markdown
---
|
|
title: "Monitoring & Costs — Navigation Structure"
|
|
version: 3.8.40
|
|
lastUpdated: 2026-06-28
|
|
---
|
|
|
|
# Monitoring & Costs — Navigation Structure
|
|
|
|
> Implemented in Group B (plan 16). See `src/shared/constants/sidebarVisibility.ts`.
|
|
|
|
---
|
|
|
|
## High-Level Navigation
|
|
|
|
The dashboard sidebar (after Group B) has these top-level sections in order:
|
|
|
|
```
|
|
Home
|
|
Providers
|
|
Combos
|
|
API Keys
|
|
Settings
|
|
Analytics
|
|
Costs ← NEW (Group B, plan 16)
|
|
Monitoring ← REORGANIZED (Group B, plan 16)
|
|
...
|
|
```
|
|
|
|
---
|
|
|
|
## Costs section (new, level 1)
|
|
|
|
Path prefix: `/dashboard/costs/`
|
|
|
|
| Item | URL | Description |
|
|
| ------------- | ------------------------------------ | ------------------------------------------------ |
|
|
| Overview | `/dashboard/costs` | Aggregated cost dashboard (moved from Analytics) |
|
|
| Pricing | `/dashboard/costs/pricing` | Per-model pricing table |
|
|
| Budget | `/dashboard/costs/budget` | Budget thresholds + alerts |
|
|
| Quota Sharing | `/dashboard/costs/quota-share` | Quota Share pools + usage |
|
|
| Plan Config | `/dashboard/costs/quota-share/plans` | Per-provider plan overrides |
|
|
|
|
**Rationale**: Pricing, Budget, and Quota Sharing were previously under
|
|
`Monitoring > Costs Parameters`. Moving them to a dedicated top-level section
|
|
makes them discoverable without navigating through observability tooling.
|
|
|
|
---
|
|
|
|
## Monitoring section (reorganized)
|
|
|
|
The Monitoring section now has **Activity at the top** followed by **3 subgroups**:
|
|
|
|
```
|
|
Monitoring
|
|
├── Activity ← Timeline feed (top-level item)
|
|
├── Logs group
|
|
│ ├── Logs (all)
|
|
│ ├── Proxy Logs
|
|
│ └── Console Logs
|
|
├── Audit group
|
|
│ ├── Audit Log
|
|
│ ├── MCP Audit
|
|
│ └── A2A Audit
|
|
└── System group
|
|
├── Health
|
|
└── Runtime
|
|
```
|
|
|
|
### What changed from the old structure
|
|
|
|
| Before | After |
|
|
| -------------------------------------------------------------------------------- | ------------------------------------------------- |
|
|
| Activity = tab inside Logs that rendered the Audit Log | Activity = dedicated feed (`/dashboard/activity`) |
|
|
| Costs Parameters group in Monitoring | Moved to Costs section |
|
|
| Flat list: Logs, Activity (logs), Audit, Health, Runtime, Pricing, Budget, Quota | Structured 3-group + dedicated Costs section |
|
|
|
|
---
|
|
|
|
## Activity vs Audit Log
|
|
|
|
These two are now distinct:
|
|
|
|
| Dimension | Activity (`/dashboard/activity`) | Audit Log (`/dashboard/audit`) |
|
|
| ---------------- | ------------------------------------------------------ | ----------------------------------------- |
|
|
| **Purpose** | User-facing event feed ("what happened recently") | Compliance / security log |
|
|
| **Data source** | `GET /api/compliance/audit-log?level=high` | `GET /api/compliance/audit-log?level=all` |
|
|
| **Format** | Timeline, grouped by day, human-readable verbs + icons | Dense paginaged table, 50/page |
|
|
| **Filters** | Event type category | Action, severity, actor, date range |
|
|
| **Export** | Not available | JSON export |
|
|
| **Actor filter** | Not applicable | Filterable by actor |
|
|
| **Events shown** | High-level actions only (allowlist) | All audit events |
|
|
|
|
### High-Level Actions allowlist
|
|
|
|
Defined in `src/lib/audit/highLevelActions.ts`. Controls which events appear in
|
|
the Activity feed. The allowlist includes:
|
|
|
|
- Provider add/remove/test events
|
|
- Combo create/update/delete
|
|
- API key lifecycle (create, revoke, rotate)
|
|
- Budget threshold reached
|
|
- Auth login/logout
|
|
- Cloud agent session creation
|
|
- MCP tool registration
|
|
- Webhook create/delete
|
|
- Quota pool/plan changes (`quota.*` actions, Group B)
|
|
- Platform events (update, deploy)
|
|
- Skill install/remove
|
|
|
|
Events not in this list appear only in the Audit Log.
|
|
|
|
### Adding a new high-level action
|
|
|
|
Edit `src/lib/audit/highLevelActions.ts` and add the action string to
|
|
`HIGH_LEVEL_ACTIONS`. This requires a PR (the list is code, not DB-configurable).
|
|
The corresponding icon can be added to `src/lib/audit/activityIcons.ts`.
|
|
|
|
---
|
|
|
|
## Redirect: `/dashboard/logs/activity`
|
|
|
|
The old path `/dashboard/logs/activity` is permanently redirected (HTTP 308) to
|
|
`/dashboard/activity` via `permanentRedirect()` in
|
|
`src/app/(dashboard)/dashboard/logs/activity/page.tsx`.
|
|
|
|
The legacy sidebar ID `logs-activity` is preserved in `HIDEABLE_SIDEBAR_ITEM_IDS`
|
|
(but removed from `SIDEBAR_DEFINITIONS`) to avoid breaking user presets that
|
|
reference the old ID.
|
|
|
|
---
|
|
|
|
## i18n
|
|
|
|
Namespaces added by Group B:
|
|
|
|
| Namespace key | Covers |
|
|
| ----------------------- | -------------------------------------------------------------- |
|
|
| `sidebar.costsSection` | Costs section label |
|
|
| `sidebar.activity` | Activity sidebar item |
|
|
| `sidebar.logsGroup` | Logs subgroup label |
|
|
| `sidebar.systemGroup` | System subgroup label |
|
|
| `sidebar.costsOverview` | Costs overview item |
|
|
| `activity.*` | All Activity page strings (title, verbs, filters, empty state) |
|
|
|
|
Source-of-truth locales: `pt-BR` and `en`. All other 41 locales fall back to
|
|
English via the `next-intl` fallback mechanism (configured in `src/i18n/config.ts`).
|