Give DigitalOcean SKU trend series readable names with the SKU id as secondary text

Aperta
#271 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
75/100
Tipo di issue
Funzionalità
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
typescript
Ambito
data, frontend

Direzione di ricerca

Start by reading InsightsSchema in src/lib/adapters/digitalocean/schemas.ts:103-115 and adding description/group_description to it, then follow skuSpendMetrics in src/lib/adapters/digitalocean/index.ts:504-536 where the Daily spend on SKU <id> label is built. Check src/lib/dashboard/trends.ts to see how seriesTitle becomes the chart title and where the accessible name is set, so the id can move to secondary text while staying unique. Mirror realistic descriptions in src/lib/adapters/simulated/digitalocean.ts, extend the adapter tests with the one/several/empty/long description cases, and update docs/providers/digitalocean.md:91 and :256. Done means a unit-tested naming rule plus before/after screenshots of the demo workspace.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

area: integrations enhancement priority: P2 size: M

Summary

DigitalOcean's daily SKU trend charts are titled with the raw SKU id, for example "Daily spend on SKU 1-AP-PRO-0002 (DigitalOcean, USD)". Give each SKU series a readable name taken from DigitalOcean's own Billing Insights data, and show the SKU id as secondary text. Split out of #263 (decision B1 there), which leaves SKU titles unchanged.

Evidence

  • skuSpendMetrics (src/lib/adapters/digitalocean/index.ts:504-536) writes the label Daily spend on SKU <id> (:528). The trend chart title is that label (seriesTitle, src/lib/dashboard/trends.ts).
  • A snapshot row has no field besides label that could hold a name (usage_snapshots in src/lib/supabase/database.types.ts).
  • The Billing Insights schema the adapter parses (InsightsSchema, src/lib/adapters/digitalocean/schemas.ts:103-115) keeps only usage_team_urn, start_date, total_amount, and sku.
  • DigitalOcean's API also returns description and group_description per data point (docs/providers/digitalocean.md:91); description is the invoice item text, for example droplet name (c-2-4GiB) (docs/providers/digitalocean.md:256). One SKU billed for several resources has one data point, and one description, per resource.
  • Observed on the demo workspace (ce44e95): five DigitalOcean SKU charts, all titled with ids (1-AP-PRO-0002, 1-DB-PG-0003, 1-DO-DROP-0109, 1-DO-DROP-0112, 1-SP-SUB-0001). After #263 they sit behind the DigitalOcean disclosure on the dashboard.

Scope

  • Parse description (and group_description if it helps) in InsightsSchema.
  • Name each SKU series from its descriptions: the description when there is one, and a stated rule (for example "web-1 (s-1vcpu-1gb) and 2 more") when there are several.
  • Carry the SKU id so the chart shows it as secondary text, not in the title.
  • Update the simulator (src/lib/adapters/simulated/digitalocean.ts) to send realistic descriptions, docs/providers/digitalocean.md, and the adapter tests.
  • Stored labels change on the next sync only; say so in the pull request, and do not rewrite stored rows.

Acceptance criteria

  • A DigitalOcean SKU trend chart's title is a readable name from DigitalOcean data, with the SKU id shown as secondary text.
  • Unit tests: one description, several descriptions for one SKU, an empty description, and a very long one.
  • The accessible name of each SKU chart stays unique.
  • Before and after screenshots of the opened DigitalOcean disclosure on the demo workspace.

Model: anthropic/claude-opus-5-5 | Reasoning effort: unknown

Lingua principale
TypeScript
Stelle
1
Fork
1
Merge medio
6h 56m
PR unite (30g)
136

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di eddiejaoude/StackDash

Tutte le issue di eddiejaoude/StackDash

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.