feat(guide): dev audience tier + GUIDE_SERVED_AUDIENCES env cap (prod = customer,internal)
4-tier ladder customer<internal<dev<bcos. Re-tagged Architect/Testing/Claude + platform/technical from internal->dev; Processes stays bcos. Backend visible() enforces a per-instance served-audiences cap at the API. bcos.dev/DLX serve all; production sets GUIDE_SERVED_AUDIENCES=customer,internal so dev/bcos never leave dev. Verified: capped instance returns only Customer+Internal, 404s dev/bcos. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -22,6 +22,26 @@ public class MarkdownGuideService {
|
|||||||
|
|
||||||
private volatile List<GuideDoc> docs = List.of();
|
private volatile List<GuideDoc> docs = List.of();
|
||||||
|
|
||||||
|
/** Which audience tiers this instance serves — the per-environment cap.
|
||||||
|
* bcos.dev/DLX = all; production = customer,internal. */
|
||||||
|
@org.springframework.beans.factory.annotation.Value("${guide.served-audiences:customer,internal,dev,bcos}")
|
||||||
|
private String servedRaw;
|
||||||
|
private volatile Set<String> served;
|
||||||
|
|
||||||
|
private Set<String> served() {
|
||||||
|
Set<String> s = served;
|
||||||
|
if (s == null) {
|
||||||
|
s = new HashSet<>();
|
||||||
|
for (String x : servedRaw.split(",")) {
|
||||||
|
x = x.trim().toLowerCase(Locale.ROOT);
|
||||||
|
if (!x.isEmpty()) s.add(x);
|
||||||
|
}
|
||||||
|
served = s;
|
||||||
|
log.info("Guide serving audience tiers: {}", s);
|
||||||
|
}
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
@PostConstruct
|
@PostConstruct
|
||||||
public void load() {
|
public void load() {
|
||||||
List<GuideDoc> loaded = new ArrayList<>();
|
List<GuideDoc> loaded = new ArrayList<>();
|
||||||
@@ -79,12 +99,17 @@ public class MarkdownGuideService {
|
|||||||
return new GuideDoc(app, module, title, tab, order, audience, body);
|
return new GuideDoc(app, module, title, tab, order, audience, body);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** audience tiers: customer (all) < internal (MSP/BCOS admin) < bcos (BCOS admin only). */
|
/** Audience ladder: customer < internal < dev < bcos.
|
||||||
|
* First the environment cap (served tiers), then the caller's role.
|
||||||
|
* customer→all · internal/dev→MSP or BCOS admin · bcos→BCOS admin only. */
|
||||||
private boolean visible(GuideDoc d, boolean includeInternal, boolean includeBcos) {
|
private boolean visible(GuideDoc d, boolean includeInternal, boolean includeBcos) {
|
||||||
String a = d.audience();
|
String a = d.audience();
|
||||||
if ("bcos".equals(a)) return includeBcos;
|
if (!served().contains(a)) return false; // environment cap (prod = customer,internal)
|
||||||
if ("internal".equals(a)) return includeInternal;
|
return switch (a) {
|
||||||
return true;
|
case "bcos" -> includeBcos;
|
||||||
|
case "internal", "dev" -> includeInternal;
|
||||||
|
default -> true; // customer
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
/** apps → modules → tabs, filtered by audience. */
|
/** apps → modules → tabs, filtered by audience. */
|
||||||
|
|||||||
@@ -23,6 +23,10 @@ internal.secret=${INTERNAL_SECRET:dev-internal-secret}
|
|||||||
|
|
||||||
cors.allowed-origins=${CORS_ALLOWED_ORIGINS:http://localhost:5188}
|
cors.allowed-origins=${CORS_ALLOWED_ORIGINS:http://localhost:5188}
|
||||||
|
|
||||||
|
# Audience tiers this instance serves (per-environment cap).
|
||||||
|
# bcos.dev / DLX = all four; production = customer,internal (dev/bcos never leave dev).
|
||||||
|
guide.served-audiences=${GUIDE_SERVED_AUDIENCES:customer,internal,dev,bcos}
|
||||||
|
|
||||||
# In-guide feedback → Gitea issues (server-side token; reaches Gitea via public route)
|
# In-guide feedback → Gitea issues (server-side token; reaches Gitea via public route)
|
||||||
gitea.base-url=${GITEA_BASE_URL:https://hiveiq-gitea.directlx.dev}
|
gitea.base-url=${GITEA_BASE_URL:https://hiveiq-gitea.directlx.dev}
|
||||||
gitea.feedback.token=${GITEA_FEEDBACK_TOKEN:}
|
gitea.feedback.token=${GITEA_FEEDBACK_TOKEN:}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: analytics.adoons
|
|||||||
title: Adoons Insights
|
title: Adoons Insights
|
||||||
tab: Architect
|
tab: Architect
|
||||||
order: 30
|
order: 30
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
> **Internal · architecture.** Written 2026-07-01 from `hiveops-analytics` source. Verify against code before relying on specifics.
|
> **Internal · architecture.** Written 2026-07-01 from `hiveops-analytics` source. Verify against code before relying on specifics.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: analytics.adoons
|
|||||||
title: Adoons Insights
|
title: Adoons Insights
|
||||||
tab: Claude
|
tab: Claude
|
||||||
order: 40
|
order: 40
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
> **Internal · agent reference.** Grounded in `hiveops-analytics` @ 2026-07-01. Only confirmed facts below.
|
> **Internal · agent reference.** Grounded in `hiveops-analytics` @ 2026-07-01. Only confirmed facts below.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: analytics.adoons
|
|||||||
title: Adoons Insights
|
title: Adoons Insights
|
||||||
tab: Testing
|
tab: Testing
|
||||||
order: 35
|
order: 35
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
Frontend test checklist for **Adoons Insights** (the **Fleet Insights** tab in Analytics, `analytics.bcos.dev`). Click through in the UI and mark each row Pass or Fail.
|
Frontend test checklist for **Adoons Insights** (the **Fleet Insights** tab in Analytics, `analytics.bcos.dev`). Click through in the UI and mark each row Pass or Fail.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: analytics.agents
|
|||||||
title: Agents
|
title: Agents
|
||||||
tab: Architect
|
tab: Architect
|
||||||
order: 30
|
order: 30
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
> **Internal · architecture.** Grounded in hiveops-analytics + hiveops-devices source (2026-07-01). Cross-link [platform.data-architecture], [platform.kafka], [platform.service-ownership], [technical.analytics].
|
> **Internal · architecture.** Grounded in hiveops-analytics + hiveops-devices source (2026-07-01). Cross-link [platform.data-architecture], [platform.kafka], [platform.service-ownership], [technical.analytics].
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: analytics.agents
|
|||||||
title: Agents
|
title: Agents
|
||||||
tab: Claude
|
tab: Claude
|
||||||
order: 40
|
order: 40
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
> **Internal · AI agent quick-ref.** Confirmed against source 2026-07-01. Act on confirmed facts only.
|
> **Internal · AI agent quick-ref.** Confirmed against source 2026-07-01. Act on confirmed facts only.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: analytics.agents
|
|||||||
title: Agents
|
title: Agents
|
||||||
tab: Testing
|
tab: Testing
|
||||||
order: 35
|
order: 35
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
Frontend test checklist for the **Agents** tab in HiveIQ Analytics (`analytics.bcos.dev`). This tab is **view-only** — there is nothing to create, edit, or push. Click through in the UI and mark each row Pass or Fail.
|
Frontend test checklist for the **Agents** tab in HiveIQ Analytics (`analytics.bcos.dev`). This tab is **view-only** — there is nothing to create, edit, or push. Click through in the UI and mark each row Pass or Fail.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: analytics.cash
|
|||||||
title: Cash Intelligence
|
title: Cash Intelligence
|
||||||
tab: Architect
|
tab: Architect
|
||||||
order: 30
|
order: 30
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
> **Internal · architecture.** Grounded in `hiveops-analytics` + `hiveops-recon` source, 2026-07-01. Key point: Cash Intelligence is a **synchronous fan-out**, not the usual executor→Kafka→record-store pattern. Analytics stores nothing for this feature and consumes no Kafka topic to build it.
|
> **Internal · architecture.** Grounded in `hiveops-analytics` + `hiveops-recon` source, 2026-07-01. Key point: Cash Intelligence is a **synchronous fan-out**, not the usual executor→Kafka→record-store pattern. Analytics stores nothing for this feature and consumes no Kafka topic to build it.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: analytics.cash
|
|||||||
title: Cash Intelligence
|
title: Cash Intelligence
|
||||||
tab: Claude
|
tab: Claude
|
||||||
order: 40
|
order: 40
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
> Terse agent reference. Cash Intelligence = **read-only pass-through**: analytics re-shapes one recon call. Analytics owns NO cash data.
|
> Terse agent reference. Cash Intelligence = **read-only pass-through**: analytics re-shapes one recon call. Analytics owns NO cash data.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: analytics.cash
|
|||||||
title: Cash Intelligence
|
title: Cash Intelligence
|
||||||
tab: Testing
|
tab: Testing
|
||||||
order: 35
|
order: 35
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
Frontend test checklist for the **Cash Intelligence** tab (`analytics.bcos.dev`). Open the tab in the UI and mark each row Pass or Fail. This tab is **view-only** — there is nothing to create, edit, or delete.
|
Frontend test checklist for the **Cash Intelligence** tab (`analytics.bcos.dev`). Open the tab in the UI and mark each row Pass or Fail. This tab is **view-only** — there is nothing to create, edit, or delete.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: analytics.fleet-health
|
|||||||
title: Fleet Health
|
title: Fleet Health
|
||||||
tab: Architect
|
tab: Architect
|
||||||
order: 30
|
order: 30
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
> **How it's built.** Fleet Health is a **synchronous fan-out aggregation** — not a snapshot/Kafka read. Grounded in `FleetHealthController` + `FleetHealthService` (hiveops-analytics) and the frontend `FleetHealthTab.svelte`. Cross-link [platform.data-architecture], [platform.kafka], [platform.service-ownership].
|
> **How it's built.** Fleet Health is a **synchronous fan-out aggregation** — not a snapshot/Kafka read. Grounded in `FleetHealthController` + `FleetHealthService` (hiveops-analytics) and the frontend `FleetHealthTab.svelte`. Cross-link [platform.data-architecture], [platform.kafka], [platform.service-ownership].
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: analytics.fleet-health
|
|||||||
title: Fleet Health
|
title: Fleet Health
|
||||||
tab: Claude
|
tab: Claude
|
||||||
order: 40
|
order: 40
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
> Act-without-guessing reference. All facts from `FleetHealthController`/`FleetHealthService`/`SecurityConfig` (hiveops-analytics) + `FleetHealthTab.svelte`/`api.ts`.
|
> Act-without-guessing reference. All facts from `FleetHealthController`/`FleetHealthService`/`SecurityConfig` (hiveops-analytics) + `FleetHealthTab.svelte`/`api.ts`.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: analytics.fleet-health
|
|||||||
title: Fleet Health
|
title: Fleet Health
|
||||||
tab: Testing
|
tab: Testing
|
||||||
order: 35
|
order: 35
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
Frontend test checklist for the **Fleet Health** tab in **Analytics** (`analytics.bcos.dev`). Click through in the UI and mark each row Pass or Fail. This screen is **read-only** — there is nothing to create, edit, or delete.
|
Frontend test checklist for the **Fleet Health** tab in **Analytics** (`analytics.bcos.dev`). Click through in the UI and mark each row Pass or Fail. This screen is **read-only** — there is nothing to create, edit, or delete.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: analytics.incidents
|
|||||||
title: Incident Trends
|
title: Incident Trends
|
||||||
tab: Architect
|
tab: Architect
|
||||||
order: 30
|
order: 30
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
> How the **Incident Trends** tab is built. Grounded in `hiveops-analytics` + `hiveops-incident` source, 2026-07-01. Cross-link [platform.data-architecture], [platform.kafka], [platform.service-ownership].
|
> How the **Incident Trends** tab is built. Grounded in `hiveops-analytics` + `hiveops-incident` source, 2026-07-01. Cross-link [platform.data-architecture], [platform.kafka], [platform.service-ownership].
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: analytics.incidents
|
|||||||
title: Incident Trends
|
title: Incident Trends
|
||||||
tab: Claude
|
tab: Claude
|
||||||
order: 40
|
order: 40
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
> Terse agent reference. All facts confirmed in source 2026-07-01. `hiveops-ai` = "Adoons".
|
> Terse agent reference. All facts confirmed in source 2026-07-01. `hiveops-ai` = "Adoons".
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: analytics.incidents
|
|||||||
title: Incident Trends
|
title: Incident Trends
|
||||||
tab: Testing
|
tab: Testing
|
||||||
order: 35
|
order: 35
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
Frontend test checklist for the **Incident Trends** tab in Analytics (`analytics.bcos.dev`). This tab is **read-only** — there is nothing to create, edit, or delete, so the tests focus on the four panels rendering correctly and on role scoping. Click through in the UI and mark each row Pass or Fail.
|
Frontend test checklist for the **Incident Trends** tab in Analytics (`analytics.bcos.dev`). This tab is **read-only** — there is nothing to create, edit, or delete, so the tests focus on the four panels rendering correctly and on role scoping. Click through in the UI and mark each row Pass or Fail.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: analytics.transactions
|
|||||||
title: Transactions
|
title: Transactions
|
||||||
tab: Architect
|
tab: Architect
|
||||||
order: 30
|
order: 30
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
> How the **Transactions** tab is built. It is a **synchronous pull-through aggregation**, not an event-driven or snapshot-backed view. Cross-link [platform.service-ownership], [platform.data-architecture], [platform.kafka].
|
> How the **Transactions** tab is built. It is a **synchronous pull-through aggregation**, not an event-driven or snapshot-backed view. Cross-link [platform.service-ownership], [platform.data-architecture], [platform.kafka].
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: analytics.transactions
|
|||||||
title: Transactions
|
title: Transactions
|
||||||
tab: Claude
|
tab: Claude
|
||||||
order: 40
|
order: 40
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
> Act-without-guessing reference. Transactions tab = analytics UI tab `id: 'journal', label: 'Transactions'` → `JournalCoverageTab.svelte` → `GET /api/analytics/journal-coverage`. Data source of truth is **hiveops-journal**, not analytics.
|
> Act-without-guessing reference. Transactions tab = analytics UI tab `id: 'journal', label: 'Transactions'` → `JournalCoverageTab.svelte` → `GET /api/analytics/journal-coverage`. Data source of truth is **hiveops-journal**, not analytics.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: analytics.transactions
|
|||||||
title: Transactions
|
title: Transactions
|
||||||
tab: Testing
|
tab: Testing
|
||||||
order: 35
|
order: 35
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
Frontend test checklist for the **Transactions** tab in **Analytics** (`analytics.bcos.dev`). Click through in the UI and mark each row Pass or Fail.
|
Frontend test checklist for the **Transactions** tab in **Analytics** (`analytics.bcos.dev`). Click through in the UI and mark each row Pass or Fail.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: analytics.uptime
|
|||||||
title: Uptime
|
title: Uptime
|
||||||
tab: Architect
|
tab: Architect
|
||||||
order: 30
|
order: 30
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
> **How Uptime is built.** Grounded in `hiveops-analytics` source (2026-07-01). Cross-link [platform.data-architecture], [platform.kafka], [platform.service-ownership].
|
> **How Uptime is built.** Grounded in `hiveops-analytics` source (2026-07-01). Cross-link [platform.data-architecture], [platform.kafka], [platform.service-ownership].
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: analytics.uptime
|
|||||||
title: Uptime
|
title: Uptime
|
||||||
tab: Claude
|
tab: Claude
|
||||||
order: 40
|
order: 40
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
> Terse agent reference for `analytics.uptime`. Only confirmed facts. Act, don't guess.
|
> Terse agent reference for `analytics.uptime`. Only confirmed facts. Act, don't guess.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: analytics.uptime
|
|||||||
title: Uptime
|
title: Uptime
|
||||||
tab: Testing
|
tab: Testing
|
||||||
order: 35
|
order: 35
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
Frontend test checklist for the **Uptime** tab in Analytics (`analytics.bcos.dev`). This screen is **read-only** — there are no buttons, forms, or actions, so the tests are all about what you can *see*. Click through in the UI and mark each row Pass or Fail.
|
Frontend test checklist for the **Uptime** tab in Analytics (`analytics.bcos.dev`). This screen is **read-only** — there are no buttons, forms, or actions, so the tests are all about what you can *see*. Click through in the UI and mark each row Pass or Fail.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: aria.dashboard
|
|||||||
title: Threat Dashboard
|
title: Threat Dashboard
|
||||||
tab: Architect
|
tab: Architect
|
||||||
order: 30
|
order: 30
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
How the ARIA Threat Dashboard is built. The dashboard is a **thin read-only aggregation view** — it does not own data, run detection, or consume Kafka. It renders one snapshot from `hiveops-aria`'s tables. All the interesting machinery (ingestion, IOC matching, sequence detection) runs upstream and only *populates* the tables this view reads.
|
How the ARIA Threat Dashboard is built. The dashboard is a **thin read-only aggregation view** — it does not own data, run detection, or consume Kafka. It renders one snapshot from `hiveops-aria`'s tables. All the interesting machinery (ingestion, IOC matching, sequence detection) runs upstream and only *populates* the tables this view reads.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: aria.dashboard
|
|||||||
title: Threat Dashboard
|
title: Threat Dashboard
|
||||||
tab: Claude
|
tab: Claude
|
||||||
order: 40
|
order: 40
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
Terse act-without-guessing reference. Owner service: **`hiveops-aria`** (port **8095**, DB **`hiveiq_aria`**). Frontend: `hiveops-aria/frontend/src/components/Dashboard.svelte`.
|
Terse act-without-guessing reference. Owner service: **`hiveops-aria`** (port **8095**, DB **`hiveiq_aria`**). Frontend: `hiveops-aria/frontend/src/components/Dashboard.svelte`.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: aria.dashboard
|
|||||||
title: Threat Dashboard
|
title: Threat Dashboard
|
||||||
tab: Testing
|
tab: Testing
|
||||||
order: 35
|
order: 35
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
Frontend test checklist for the **ARIA Threat Dashboard** (`aria.bcos.dev`) — the landing screen of the ARIA SPA. Click through in the UI and mark each row Pass or Fail.
|
Frontend test checklist for the **ARIA Threat Dashboard** (`aria.bcos.dev`) — the landing screen of the ARIA SPA. Click through in the UI and mark each row Pass or Fail.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: aria.device-posture
|
|||||||
title: Device Posture
|
title: Device Posture
|
||||||
tab: Architect
|
tab: Architect
|
||||||
order: 30
|
order: 30
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
> **How Device Posture is built.** Grounded in `hiveops-aria` backend + `hiveops-agent/hiveops-module-aria-signals`. See also [technical.aria] for the wider ARIA service. Cross-links: [platform.data-architecture], [platform.kafka], [platform.service-ownership].
|
> **How Device Posture is built.** Grounded in `hiveops-aria` backend + `hiveops-agent/hiveops-module-aria-signals`. See also [technical.aria] for the wider ARIA service. Cross-links: [platform.data-architecture], [platform.kafka], [platform.service-ownership].
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: aria.device-posture
|
|||||||
title: Device Posture
|
title: Device Posture
|
||||||
tab: Claude
|
tab: Claude
|
||||||
order: 40
|
order: 40
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
> Terse agent reference. Every item below confirmed in `hiveops-aria` + `hiveops-agent/hiveops-module-aria-signals`. Act without guessing.
|
> Terse agent reference. Every item below confirmed in `hiveops-aria` + `hiveops-agent/hiveops-module-aria-signals`. Act without guessing.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: aria.device-posture
|
|||||||
title: Device Posture
|
title: Device Posture
|
||||||
tab: Testing
|
tab: Testing
|
||||||
order: 35
|
order: 35
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
Frontend test checklist for **Device Posture** (`aria.bcos.dev`). Click through in the UI and mark each row Pass or Fail. This screen is **read-only** — there is nothing to create, edit, or delete.
|
Frontend test checklist for **Device Posture** (`aria.bcos.dev`). Click through in the UI and mark each row Pass or Fail. This screen is **read-only** — there is nothing to create, edit, or delete.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: aria.ioc-feeds
|
|||||||
title: IOC Feeds
|
title: IOC Feeds
|
||||||
tab: Architect
|
tab: Architect
|
||||||
order: 30
|
order: 30
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
How the **IOC Feeds** feature is built. Everything for this feature lives inside **`hiveops-aria`** — it does not call any other HiveIQ service. Cross-link [platform.service-ownership].
|
How the **IOC Feeds** feature is built. Everything for this feature lives inside **`hiveops-aria`** — it does not call any other HiveIQ service. Cross-link [platform.service-ownership].
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: aria.ioc-feeds
|
|||||||
title: IOC Feeds
|
title: IOC Feeds
|
||||||
tab: Claude
|
tab: Claude
|
||||||
order: 40
|
order: 40
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
Terse agent reference. Everything below is confirmed in `hiveops-aria` source.
|
Terse agent reference. Everything below is confirmed in `hiveops-aria` source.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: aria.ioc-feeds
|
|||||||
title: IOC Feeds
|
title: IOC Feeds
|
||||||
tab: Testing
|
tab: Testing
|
||||||
order: 35
|
order: 35
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
Frontend test checklist for **IOC Feeds** in ARIA (`aria.bcos.dev`). Click through in the UI and mark each row Pass or Fail.
|
Frontend test checklist for **IOC Feeds** in ARIA (`aria.bcos.dev`). Click through in the UI and mark each row Pass or Fail.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: aria.ioc-management
|
|||||||
title: IOC Management
|
title: IOC Management
|
||||||
tab: Architect
|
tab: Architect
|
||||||
order: 30
|
order: 30
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
How the IOC watchlist is built and how it plugs into ARIA's threat pipeline. Cross-link [platform.service-ownership], [platform.data-architecture], [platform.kafka].
|
How the IOC watchlist is built and how it plugs into ARIA's threat pipeline. Cross-link [platform.service-ownership], [platform.data-architecture], [platform.kafka].
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: aria.ioc-management
|
|||||||
title: IOC Management
|
title: IOC Management
|
||||||
tab: Claude
|
tab: Claude
|
||||||
order: 40
|
order: 40
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
Terse act-without-guessing reference. Owning service: **`hiveops-aria`** (port 8095, DB `hiveiq_aria`). Frontend: `hiveops-aria/frontend/src/components/IocManagement.svelte` via `ariaApi` → base `/api/aria`.
|
Terse act-without-guessing reference. Owning service: **`hiveops-aria`** (port 8095, DB `hiveiq_aria`). Frontend: `hiveops-aria/frontend/src/components/IocManagement.svelte` via `ariaApi` → base `/api/aria`.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: aria.ioc-management
|
|||||||
title: IOC Management
|
title: IOC Management
|
||||||
tab: Testing
|
tab: Testing
|
||||||
order: 35
|
order: 35
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
Frontend test checklist for **IOC Management** in ARIA (`aria.bcos.dev`). Click through in the UI and mark each row Pass or Fail.
|
Frontend test checklist for **IOC Management** in ARIA (`aria.bcos.dev`). Click through in the UI and mark each row Pass or Fail.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: aria.precursor-alerts
|
|||||||
title: Precursor Alerts
|
title: Precursor Alerts
|
||||||
tab: Architect
|
tab: Architect
|
||||||
order: 30
|
order: 30
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
How the **Precursor Alerts** feature is built. Everything lives in **hiveops-aria** (port 8095, DB `hiveiq_aria`). ARIA owns detection end-to-end — it does not read another service's tables to build alerts. See [platform.service-ownership].
|
How the **Precursor Alerts** feature is built. Everything lives in **hiveops-aria** (port 8095, DB `hiveiq_aria`). ARIA owns detection end-to-end — it does not read another service's tables to build alerts. See [platform.service-ownership].
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: aria.precursor-alerts
|
|||||||
title: Precursor Alerts
|
title: Precursor Alerts
|
||||||
tab: Claude
|
tab: Claude
|
||||||
order: 40
|
order: 40
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
Terse agent reference. Owned by **hiveops-aria** (port 8095, DB `hiveiq_aria`). All facts below confirmed in code.
|
Terse agent reference. Owned by **hiveops-aria** (port 8095, DB `hiveiq_aria`). All facts below confirmed in code.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: aria.precursor-alerts
|
|||||||
title: Precursor Alerts
|
title: Precursor Alerts
|
||||||
tab: Testing
|
tab: Testing
|
||||||
order: 35
|
order: 35
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
Frontend test checklist for **Precursor Alerts** (`aria.bcos.dev`). Click through in the UI and mark each row Pass or Fail.
|
Frontend test checklist for **Precursor Alerts** (`aria.bcos.dev`). Click through in the UI and mark each row Pass or Fail.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: aria.threat-events
|
|||||||
title: Threat Events
|
title: Threat Events
|
||||||
tab: Architect
|
tab: Architect
|
||||||
order: 30
|
order: 30
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
How the **Threat Events** feature is built. It is owned end-to-end by **`hiveops-aria`** (the threat-intelligence service, `spring.application.name=hiveops-aria`, DB `hiveiq_aria`). The screen is a thin read view; the interesting work happens in the ingest → classify → store → (optionally) publish pipeline. Cross-link [platform.service-ownership], [platform.data-architecture], [platform.kafka].
|
How the **Threat Events** feature is built. It is owned end-to-end by **`hiveops-aria`** (the threat-intelligence service, `spring.application.name=hiveops-aria`, DB `hiveiq_aria`). The screen is a thin read view; the interesting work happens in the ingest → classify → store → (optionally) publish pipeline. Cross-link [platform.service-ownership], [platform.data-architecture], [platform.kafka].
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: aria.threat-events
|
|||||||
title: Threat Events
|
title: Threat Events
|
||||||
tab: Claude
|
tab: Claude
|
||||||
order: 40
|
order: 40
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
Terse act-without-guessing reference. Owner service: **`hiveops-aria`** (`hiveiq_aria` DB, port 8095). All facts below confirmed in `hiveops-aria` source.
|
Terse act-without-guessing reference. Owner service: **`hiveops-aria`** (`hiveiq_aria` DB, port 8095). All facts below confirmed in `hiveops-aria` source.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: aria.threat-events
|
|||||||
title: Threat Events
|
title: Threat Events
|
||||||
tab: Testing
|
tab: Testing
|
||||||
order: 35
|
order: 35
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
Frontend test checklist for **Threat Events** (`aria.bcos.dev`). Click through in the UI and mark each row Pass or Fail.
|
Frontend test checklist for **Threat Events** (`aria.bcos.dev`). Click through in the UI and mark each row Pass or Fail.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: claims.claim-detail
|
|||||||
title: Claim Detail
|
title: Claim Detail
|
||||||
tab: Architect
|
tab: Architect
|
||||||
order: 30
|
order: 30
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
How the **Claim Detail** panel is built end-to-end. See [platform.service-ownership] — this feature is owned entirely by **hiveops-claims**; no other HiveOps service is called for claim, message, note, attachment, or payment data. The only external dependency is the device mirror (below).
|
How the **Claim Detail** panel is built end-to-end. See [platform.service-ownership] — this feature is owned entirely by **hiveops-claims**; no other HiveOps service is called for claim, message, note, attachment, or payment data. The only external dependency is the device mirror (below).
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: claims.claim-detail
|
|||||||
title: Claim Detail
|
title: Claim Detail
|
||||||
tab: Claude
|
tab: Claude
|
||||||
order: 40
|
order: 40
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
Terse agent reference for the **Claim Detail** panel (`ClaimPanel.svelte`).
|
Terse agent reference for the **Claim Detail** panel (`ClaimPanel.svelte`).
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: claims.claim-detail
|
|||||||
title: Claim Detail
|
title: Claim Detail
|
||||||
tab: Testing
|
tab: Testing
|
||||||
order: 35
|
order: 35
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
Frontend test checklist for the **Claim Detail** panel (`claims.bcos.dev`). Open a claim, click through each tab, and mark each row Pass or Fail.
|
Frontend test checklist for the **Claim Detail** panel (`claims.bcos.dev`). Open a claim, click through each tab, and mark each row Pass or Fail.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: claims.dashboard
|
|||||||
title: Claims Dashboard
|
title: Claims Dashboard
|
||||||
tab: Architect
|
tab: Architect
|
||||||
order: 30
|
order: 30
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
How the **Claims Dashboard** is built. It is a thin read view over one service — **hiveops-claims** owns all the data it shows. See [platform.service-ownership].
|
How the **Claims Dashboard** is built. It is a thin read view over one service — **hiveops-claims** owns all the data it shows. See [platform.service-ownership].
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: claims.dashboard
|
|||||||
title: Claims Dashboard
|
title: Claims Dashboard
|
||||||
tab: Claude
|
tab: Claude
|
||||||
order: 40
|
order: 40
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
Terse agent reference for the Claims Dashboard view. Owner service: **hiveops-claims** (`hiveiq-claims`, port 8092, image `hiveiq-claims`). Frontend: `Dashboard.svelte` in `hiveops-claims/frontend`.
|
Terse agent reference for the Claims Dashboard view. Owner service: **hiveops-claims** (`hiveiq-claims`, port 8092, image `hiveiq-claims`). Frontend: `Dashboard.svelte` in `hiveops-claims/frontend`.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: claims.dashboard
|
|||||||
title: Claims Dashboard
|
title: Claims Dashboard
|
||||||
tab: Testing
|
tab: Testing
|
||||||
order: 35
|
order: 35
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
Frontend test checklist for the **Claims Dashboard** (`claims.bcos.dev`). Click through in the UI and mark each row Pass or Fail.
|
Frontend test checklist for the **Claims Dashboard** (`claims.bcos.dev`). Click through in the UI and mark each row Pass or Fail.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: claims.settings
|
|||||||
title: Settings
|
title: Settings
|
||||||
tab: Architect
|
tab: Architect
|
||||||
order: 30
|
order: 30
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
How the Claims **Settings** (vendor email templates) feature is built. Single-service, synchronous, DB-backed — **no Kafka, no executor/record-store pattern** in this feature. See [platform.service-ownership].
|
How the Claims **Settings** (vendor email templates) feature is built. Single-service, synchronous, DB-backed — **no Kafka, no executor/record-store pattern** in this feature. See [platform.service-ownership].
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: claims.settings
|
|||||||
title: Settings
|
title: Settings
|
||||||
tab: Claude
|
tab: Claude
|
||||||
order: 40
|
order: 40
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
Terse reference. Feature = **vendor email templates** shown on the Claims Settings screen (read-only display of the *effective* template).
|
Terse reference. Feature = **vendor email templates** shown on the Claims Settings screen (read-only display of the *effective* template).
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: claims.settings
|
|||||||
title: Settings
|
title: Settings
|
||||||
tab: Testing
|
tab: Testing
|
||||||
order: 35
|
order: 35
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
Frontend test checklist for **Claims → Settings** (`claims.bcos.dev`). The Settings screen is a **read-only** view of the effective vendor-email template — there is nothing to create or edit here. Click through in the UI and mark each row Pass or Fail.
|
Frontend test checklist for **Claims → Settings** (`claims.bcos.dev`). The Settings screen is a **read-only** view of the effective vendor-email template — there is nothing to create or edit here. Click through in the UI and mark each row Pass or Fail.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: claims.vendors
|
|||||||
title: Vendors
|
title: Vendors
|
||||||
tab: Architect
|
tab: Architect
|
||||||
order: 30
|
order: 30
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
> **Internal · architecture.** How the Vendor Registry feature is built. All facts grounded in hiveops-claims source (2026-07-01). See [platform.service-ownership], [platform.data-architecture], [platform.kafka].
|
> **Internal · architecture.** How the Vendor Registry feature is built. All facts grounded in hiveops-claims source (2026-07-01). See [platform.service-ownership], [platform.data-architecture], [platform.kafka].
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: claims.vendors
|
|||||||
title: Vendors
|
title: Vendors
|
||||||
tab: Claude
|
tab: Claude
|
||||||
order: 40
|
order: 40
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
> Act-without-guessing reference. All items code-confirmed in hiveops-claims (2026-07-01) unless marked (unverified).
|
> Act-without-guessing reference. All items code-confirmed in hiveops-claims (2026-07-01) unless marked (unverified).
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: claims.vendors
|
|||||||
title: Vendors
|
title: Vendors
|
||||||
tab: Testing
|
tab: Testing
|
||||||
order: 35
|
order: 35
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
Frontend test checklist for the **Vendor Registry** (`claims.bcos.dev`). Click through in the UI and mark each row Pass or Fail.
|
Frontend test checklist for the **Vendor Registry** (`claims.bcos.dev`). Click through in the UI and mark each row Pass or Fail.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: dashboard.cash-stats
|
|||||||
title: Cash Stats
|
title: Cash Stats
|
||||||
tab: Architect
|
tab: Architect
|
||||||
order: 30
|
order: 30
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
How the **Cash Stats** page is built end-to-end. It is a thin read view over data that another service derives — the interesting work happens in `hiveops-journal`, not in the dashboard. See [platform.service-ownership].
|
How the **Cash Stats** page is built end-to-end. It is a thin read view over data that another service derives — the interesting work happens in `hiveops-journal`, not in the dashboard. See [platform.service-ownership].
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: dashboard.cash-stats
|
|||||||
title: Cash Stats
|
title: Cash Stats
|
||||||
tab: Claude
|
tab: Claude
|
||||||
order: 40
|
order: 40
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
Terse agent reference for `dashboard.cash-stats`. Read view over cassette bill counts.
|
Terse agent reference for `dashboard.cash-stats`. Read view over cassette bill counts.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: dashboard.cash-stats
|
|||||||
title: Cash Stats
|
title: Cash Stats
|
||||||
tab: Testing
|
tab: Testing
|
||||||
order: 35
|
order: 35
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
Frontend test checklist for the **Cash Stats** page (`dashboard.bcos.dev`). Click through in the UI and mark each row Pass or Fail. The page is **read-only** — there is nothing to create, edit, or delete, so testing is about what you can **see** and **filter**.
|
Frontend test checklist for the **Cash Stats** page (`dashboard.bcos.dev`). Click through in the UI and mark each row Pass or Fail. The page is **read-only** — there is nothing to create, edit, or delete, so testing is about what you can **see** and **filter**.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: dashboard.overview
|
|||||||
title: Fleet Overview
|
title: Fleet Overview
|
||||||
tab: Architect
|
tab: Architect
|
||||||
order: 30
|
order: 30
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
## Shape of the feature
|
## Shape of the feature
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: dashboard.overview
|
|||||||
title: Fleet Overview
|
title: Fleet Overview
|
||||||
tab: Claude
|
tab: Claude
|
||||||
order: 40
|
order: 40
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
## Identity
|
## Identity
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: dashboard.overview
|
|||||||
title: Fleet Overview
|
title: Fleet Overview
|
||||||
tab: Testing
|
tab: Testing
|
||||||
order: 35
|
order: 35
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
Frontend test checklist for the **Fleet Overview** landing page (`dashboard.bcos.dev`). Click through in the UI and mark each row Pass or Fail. This screen is **read-only** — there is nothing to create, edit, or delete, so testing focuses on what each card shows and on role scoping.
|
Frontend test checklist for the **Fleet Overview** landing page (`dashboard.bcos.dev`). Click through in the UI and mark each row Pass or Fail. This screen is **read-only** — there is nothing to create, edit, or delete, so testing focuses on what each card shows and on role scoping.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: devices.agent-profile
|
|||||||
title: Agent Profile
|
title: Agent Profile
|
||||||
tab: Architect
|
tab: Architect
|
||||||
order: 30
|
order: 30
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
How the **Agent Profile** feature is built end to end. Profiles are lightweight hardware-grouping records; the "which modules" logic is resolved at render time by joining profile records against a CDN-hosted module manifest. See [platform.service-ownership], [platform.data-architecture], [platform.kafka].
|
How the **Agent Profile** feature is built end to end. Profiles are lightweight hardware-grouping records; the "which modules" logic is resolved at render time by joining profile records against a CDN-hosted module manifest. See [platform.service-ownership], [platform.data-architecture], [platform.kafka].
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: devices.agent-profile
|
|||||||
title: Agent Profile
|
title: Agent Profile
|
||||||
tab: Claude
|
tab: Claude
|
||||||
order: 40
|
order: 40
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
Terse act-without-guessing reference. Feature = hardware profiles controlling agent module provisioning.
|
Terse act-without-guessing reference. Feature = hardware profiles controlling agent module provisioning.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: devices.agent-profile
|
|||||||
title: Agent Profile
|
title: Agent Profile
|
||||||
tab: Testing
|
tab: Testing
|
||||||
order: 35
|
order: 35
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
Frontend test checklist for **Agent Profile** (Devices › Settings › Agent Profile, `devices.bcos.dev`). Click through in the UI and mark each row Pass or Fail.
|
Frontend test checklist for **Agent Profile** (Devices › Settings › Agent Profile, `devices.bcos.dev`). Click through in the UI and mark each row Pass or Fail.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: devices.agent-scripts
|
|||||||
title: Agent Scripts
|
title: Agent Scripts
|
||||||
tab: Architect
|
tab: Architect
|
||||||
order: 30
|
order: 30
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
> **Architect · internal.** Written 2026-07-01 from source. Describes both what is **built** (a devices-owned CRUD store) and the **intended** signed-delivery pipeline that partly exists in hiveops-fleet + the agent but is **not yet connected** to this module's Push action.
|
> **Architect · internal.** Written 2026-07-01 from source. Describes both what is **built** (a devices-owned CRUD store) and the **intended** signed-delivery pipeline that partly exists in hiveops-fleet + the agent but is **not yet connected** to this module's Push action.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: devices.agent-scripts
|
|||||||
title: Agent Scripts
|
title: Agent Scripts
|
||||||
tab: Claude
|
tab: Claude
|
||||||
order: 40
|
order: 40
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
> Act-without-guessing reference. Only confirmed facts (hiveops-devices source, 2026-07-01).
|
> Act-without-guessing reference. Only confirmed facts (hiveops-devices source, 2026-07-01).
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: devices.agent-scripts
|
|||||||
title: Agent Scripts
|
title: Agent Scripts
|
||||||
tab: Testing
|
tab: Testing
|
||||||
order: 35
|
order: 35
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
Frontend test checklist for **Agent Scripts** (`devices.bcos.dev` → **Settings → Agent Scripts**). Click through in the UI and mark each row Pass or Fail.
|
Frontend test checklist for **Agent Scripts** (`devices.bcos.dev` → **Settings → Agent Scripts**). Click through in the UI and mark each row Pass or Fail.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: devices.config-audit
|
|||||||
title: Config Audit
|
title: Config Audit
|
||||||
tab: Architect
|
tab: Architect
|
||||||
order: 30
|
order: 30
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
> **Internal · architecture view.** How Config Audit is built inside `hiveops-devices`. Grounded in source 2026-07-01.
|
> **Internal · architecture view.** How Config Audit is built inside `hiveops-devices`. Grounded in source 2026-07-01.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: devices.config-audit
|
|||||||
title: Config Audit
|
title: Config Audit
|
||||||
tab: Claude
|
tab: Claude
|
||||||
order: 40
|
order: 40
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
> Terse agent reference. All facts below verified in `hiveops-devices` source (2026-07-01).
|
> Terse agent reference. All facts below verified in `hiveops-devices` source (2026-07-01).
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: devices.config-audit
|
|||||||
title: Config Audit
|
title: Config Audit
|
||||||
tab: Testing
|
tab: Testing
|
||||||
order: 35
|
order: 35
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
Frontend test checklist for **Config Audit** in the Devices app (`devices.bcos.dev` → **Settings → Config Audit**, header reads **Config Change Audit**). Click through in the UI and mark each row Pass or Fail.
|
Frontend test checklist for **Config Audit** in the Devices app (`devices.bcos.dev` → **Settings → Config Audit**, header reads **Config Change Audit**). Click through in the UI and mark each row Pass or Fail.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: devices.device-detail
|
|||||||
title: Device Detail
|
title: Device Detail
|
||||||
tab: Architect
|
tab: Architect
|
||||||
order: 30
|
order: 30
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
How the single-device page is built. Component `AtmDetail.svelte` (~4.2k lines) is a tabbed shell; the "Details" surface is owned by **hiveops-devices**, but the page is a **multi-service aggregator** — most tabs fan out to other backends. See [platform.service-ownership] and [technical.devices].
|
How the single-device page is built. Component `AtmDetail.svelte` (~4.2k lines) is a tabbed shell; the "Details" surface is owned by **hiveops-devices**, but the page is a **multi-service aggregator** — most tabs fan out to other backends. See [platform.service-ownership] and [technical.devices].
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: devices.device-detail
|
|||||||
title: Device Detail
|
title: Device Detail
|
||||||
tab: Claude
|
tab: Claude
|
||||||
order: 40
|
order: 40
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
Act-without-guessing reference for `devices.device-detail` (`AtmDetail.svelte`).
|
Act-without-guessing reference for `devices.device-detail` (`AtmDetail.svelte`).
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: devices.device-detail
|
|||||||
title: Device Detail
|
title: Device Detail
|
||||||
tab: Testing
|
tab: Testing
|
||||||
order: 35
|
order: 35
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
Frontend test checklist for the **Device Detail** page (`devices.bcos.dev`). Open a device, click through the tabs and actions, and mark each row Pass or Fail.
|
Frontend test checklist for the **Device Detail** page (`devices.bcos.dev`). Open a device, click through the tabs and actions, and mark each row Pass or Fail.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: devices.device-groups
|
|||||||
title: Device Groups
|
title: Device Groups
|
||||||
tab: Architect
|
tab: Architect
|
||||||
order: 30
|
order: 30
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
> **Internal · architecture.** Grounded in `hiveops-devices` backend + `AtmGroups.svelte` + `api.ts` (2026-07-01).
|
> **Internal · architecture.** Grounded in `hiveops-devices` backend + `AtmGroups.svelte` + `api.ts` (2026-07-01).
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: devices.device-groups
|
|||||||
title: Device Groups
|
title: Device Groups
|
||||||
tab: Claude
|
tab: Claude
|
||||||
order: 40
|
order: 40
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
## Owner
|
## Owner
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: devices.device-groups
|
|||||||
title: Device Groups
|
title: Device Groups
|
||||||
tab: Testing
|
tab: Testing
|
||||||
order: 35
|
order: 35
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
Frontend test checklist for **Device Groups** (`devices.bcos.dev` → **Device Groups**). Click through in the UI and mark each row Pass or Fail.
|
Frontend test checklist for **Device Groups** (`devices.bcos.dev` → **Device Groups**). Click through in the UI and mark each row Pass or Fail.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: devices.device-list
|
|||||||
title: Device List
|
title: Device List
|
||||||
tab: Architect
|
tab: Architect
|
||||||
order: 30
|
order: 30
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
How the Device List is built. Frontend: `hiveops-devices/frontend/src/components/AtmManagement/AtmList.svelte`. Backend of record: **hiveops-devices** (Spring Boot, port **8096**, DB `hiveiq_devices`). See [platform.service-ownership], [platform.data-architecture], [platform.kafka].
|
How the Device List is built. Frontend: `hiveops-devices/frontend/src/components/AtmManagement/AtmList.svelte`. Backend of record: **hiveops-devices** (Spring Boot, port **8096**, DB `hiveiq_devices`). See [platform.service-ownership], [platform.data-architecture], [platform.kafka].
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: devices.device-list
|
|||||||
title: Device List
|
title: Device List
|
||||||
tab: Claude
|
tab: Claude
|
||||||
order: 40
|
order: 40
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
Terse agent reference. Frontend: `hiveops-devices/frontend/src/components/AtmManagement/AtmList.svelte`.
|
Terse agent reference. Frontend: `hiveops-devices/frontend/src/components/AtmManagement/AtmList.svelte`.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: devices.device-list
|
|||||||
title: Device List
|
title: Device List
|
||||||
tab: Testing
|
tab: Testing
|
||||||
order: 35
|
order: 35
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
Frontend test checklist for the **Device List** (`devices.bcos.dev`). Click through in the UI and mark each row Pass or Fail.
|
Frontend test checklist for the **Device List** (`devices.bcos.dev`). Click through in the UI and mark each row Pass or Fail.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: devices.map
|
|||||||
title: Map
|
title: Map
|
||||||
tab: Architect
|
tab: Architect
|
||||||
order: 30
|
order: 30
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
> **Internal · architecture.** Grounded in `AtmMap.svelte`, `frontend/src/lib/{api,stores}.ts`, and the devices/incident controllers, 2026-07-01.
|
> **Internal · architecture.** Grounded in `AtmMap.svelte`, `frontend/src/lib/{api,stores}.ts`, and the devices/incident controllers, 2026-07-01.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: devices.map
|
|||||||
title: Map
|
title: Map
|
||||||
tab: Claude
|
tab: Claude
|
||||||
order: 40
|
order: 40
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
> Terse agent reference. Grounded in `AtmMap.svelte`, `lib/api.ts`, `lib/stores.ts`, `AtmController`, `AtmGroupController`, `IncidentController` (2026-07-01). Read-only view — no writes, no dedicated backend.
|
> Terse agent reference. Grounded in `AtmMap.svelte`, `lib/api.ts`, `lib/stores.ts`, `AtmController`, `AtmGroupController`, `IncidentController` (2026-07-01). Read-only view — no writes, no dedicated backend.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: devices.map
|
|||||||
title: Map
|
title: Map
|
||||||
tab: Testing
|
tab: Testing
|
||||||
order: 35
|
order: 35
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
Frontend test checklist for the **Fleet Map** (`devices.bcos.dev` → **Map**). It's a read-only view — no create/edit/delete. Click through in the UI and mark each row Pass or Fail.
|
Frontend test checklist for the **Fleet Map** (`devices.bcos.dev` → **Map**). It's a read-only view — no create/edit/delete. Click through in the UI and mark each row Pass or Fail.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: devices.sw-deploy
|
|||||||
title: Software Deployment
|
title: Software Deployment
|
||||||
tab: Architect
|
tab: Architect
|
||||||
order: 30
|
order: 30
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
> **Internal · architecture.** Written 2026-07-01 from `hiveops-devices/frontend` + `hiveops-fleet/backend`. Verify against code before relying on specifics.
|
> **Internal · architecture.** Written 2026-07-01 from `hiveops-devices/frontend` + `hiveops-fleet/backend`. Verify against code before relying on specifics.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: devices.sw-deploy
|
|||||||
title: Software Deployment
|
title: Software Deployment
|
||||||
tab: Claude
|
tab: Claude
|
||||||
order: 40
|
order: 40
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
**Owner service:** `hiveops-fleet` (port **8097**, DB **`hiveiq_fleet`**). Frontend `DeviceSoftwareTab.svelte` lives in `hiveops-devices` but calls fleet only. NOT owned by devices/incident.
|
**Owner service:** `hiveops-fleet` (port **8097**, DB **`hiveiq_fleet`**). Frontend `DeviceSoftwareTab.svelte` lives in `hiveops-devices` but calls fleet only. NOT owned by devices/incident.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: devices.sw-deploy
|
|||||||
title: Software Deployment
|
title: Software Deployment
|
||||||
tab: Testing
|
tab: Testing
|
||||||
order: 35
|
order: 35
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
Frontend test checklist for the **SW Deploy** tab (`devices.bcos.dev` → open a device → **SW Deploy** tab). Click through in the UI and mark each row Pass or Fail.
|
Frontend test checklist for the **SW Deploy** tab (`devices.bcos.dev` → open a device → **SW Deploy** tab). Click through in the UI and mark each row Pass or Fail.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: fleet.artifacts
|
|||||||
title: Artifact Import Guide
|
title: Artifact Import Guide
|
||||||
tab: Architect
|
tab: Architect
|
||||||
order: 30
|
order: 30
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
> How artifact import is built inside **hiveops-fleet**. Scope: the `fleet_artifacts` lifecycle — CDN import, multipart upload, and how an agent ultimately gets the bytes. Cross-link [platform.data-architecture], [platform.kafka].
|
> How artifact import is built inside **hiveops-fleet**. Scope: the `fleet_artifacts` lifecycle — CDN import, multipart upload, and how an agent ultimately gets the bytes. Cross-link [platform.data-architecture], [platform.kafka].
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: fleet.artifacts
|
|||||||
title: Artifact Import Guide
|
title: Artifact Import Guide
|
||||||
tab: Claude
|
tab: Claude
|
||||||
order: 40
|
order: 40
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
> Act-without-guessing cheat-sheet. Owner service: **hiveops-fleet** (`com.hiveops.fleet`, port 8097, DB `hiveiq_fleet`). Never write artifact data anywhere else.
|
> Act-without-guessing cheat-sheet. Owner service: **hiveops-fleet** (`com.hiveops.fleet`, port 8097, DB `hiveiq_fleet`). Never write artifact data anywhere else.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: fleet.artifacts
|
|||||||
title: Artifact Import Guide
|
title: Artifact Import Guide
|
||||||
tab: Testing
|
tab: Testing
|
||||||
order: 35
|
order: 35
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
Frontend test checklist for **Fleet → Artifacts** (`fleet.bcos.dev`). Click through in the UI and mark each row Pass or Fail.
|
Frontend test checklist for **Fleet → Artifacts** (`fleet.bcos.dev`). Click through in the UI and mark each row Pass or Fail.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: fleet.dashboard
|
|||||||
title: Fleet Dashboard
|
title: Fleet Dashboard
|
||||||
tab: Architect
|
tab: Architect
|
||||||
order: 30
|
order: 30
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
How the **Fleet Stats** dashboard is built. It is a thin read-only view over hiveops-fleet's own database — no cross-service HTTP at request time. Cross-link [platform.service-ownership], [platform.data-architecture], [platform.kafka].
|
How the **Fleet Stats** dashboard is built. It is a thin read-only view over hiveops-fleet's own database — no cross-service HTTP at request time. Cross-link [platform.service-ownership], [platform.data-architecture], [platform.kafka].
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: fleet.dashboard
|
|||||||
title: Fleet Dashboard
|
title: Fleet Dashboard
|
||||||
tab: Claude
|
tab: Claude
|
||||||
order: 40
|
order: 40
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
Terse agent reference for the **Fleet Stats** dashboard (`FleetDashboard.svelte`).
|
Terse agent reference for the **Fleet Stats** dashboard (`FleetDashboard.svelte`).
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: fleet.dashboard
|
|||||||
title: Fleet Dashboard
|
title: Fleet Dashboard
|
||||||
tab: Testing
|
tab: Testing
|
||||||
order: 35
|
order: 35
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
Frontend test checklist for the **Fleet Stats** dashboard (`fleet.bcos.dev`). It is a read-only screen — no create/edit/delete. Click through in the UI and mark each row Pass or Fail.
|
Frontend test checklist for the **Fleet Stats** dashboard (`fleet.bcos.dev`). It is a read-only screen — no create/edit/delete. Click through in the UI and mark each row Pass or Fail.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: fleet.modules
|
|||||||
title: Modules
|
title: Modules
|
||||||
tab: Architect
|
tab: Architect
|
||||||
order: 30
|
order: 30
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
> **Internal · architecture.** Written 2026-07-01 from `hiveops-fleet` source. Verify against code before relying on specifics.
|
> **Internal · architecture.** Written 2026-07-01 from `hiveops-fleet` source. Verify against code before relying on specifics.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: fleet.modules
|
|||||||
title: Modules
|
title: Modules
|
||||||
tab: Claude
|
tab: Claude
|
||||||
order: 40
|
order: 40
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
> **Internal · agent reference.** Terse. Confirmed against `hiveops-fleet` source 2026-07-01.
|
> **Internal · agent reference.** Terse. Confirmed against `hiveops-fleet` source 2026-07-01.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: fleet.modules
|
|||||||
title: Modules
|
title: Modules
|
||||||
tab: Testing
|
tab: Testing
|
||||||
order: 35
|
order: 35
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
Frontend test checklist for the **Agent Modules** screen (`fleet.bcos.dev`). This screen is a read-only reference catalog — there is nothing to create, edit, or delete. Click through in the UI and mark each row Pass or Fail.
|
Frontend test checklist for the **Agent Modules** screen (`fleet.bcos.dev`). This screen is a read-only reference catalog — there is nothing to create, edit, or delete. Click through in the UI and mark each row Pass or Fail.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: fleet.patch-windows
|
|||||||
title: Patch Window Guide
|
title: Patch Window Guide
|
||||||
tab: Architect
|
tab: Architect
|
||||||
order: 30
|
order: 30
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
How HiveIQ Patch Windows are built. Everything lives inside **hiveops-fleet** (`com.hiveops.fleet`, Spring Boot 3.4, port 8097, DB `hiveiq_fleet`). Patch windows are a scheduling overlay on the existing fleet-task pipeline — no dedicated microservice. Cross-link [platform.data-architecture], [platform.kafka].
|
How HiveIQ Patch Windows are built. Everything lives inside **hiveops-fleet** (`com.hiveops.fleet`, Spring Boot 3.4, port 8097, DB `hiveiq_fleet`). Patch windows are a scheduling overlay on the existing fleet-task pipeline — no dedicated microservice. Cross-link [platform.data-architecture], [platform.kafka].
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: fleet.patch-windows
|
|||||||
title: Patch Window Guide
|
title: Patch Window Guide
|
||||||
tab: Claude
|
tab: Claude
|
||||||
order: 40
|
order: 40
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
Act-without-guessing cheat-sheet. Everything confirmed in `hiveops-fleet` source.
|
Act-without-guessing cheat-sheet. Everything confirmed in `hiveops-fleet` source.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: fleet.patch-windows
|
|||||||
title: Patch Window Guide
|
title: Patch Window Guide
|
||||||
tab: Testing
|
tab: Testing
|
||||||
order: 35
|
order: 35
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
Frontend test checklist for **Fleet → Patch Windows** (`fleet.bcos.dev`). Click through in the UI and mark each row Pass or Fail.
|
Frontend test checklist for **Fleet → Patch Windows** (`fleet.bcos.dev`). Click through in the UI and mark each row Pass or Fail.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: fleet.tasks
|
|||||||
title: Fleet Task Workflow
|
title: Fleet Task Workflow
|
||||||
tab: Architect
|
tab: Architect
|
||||||
order: 30
|
order: 30
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
How Fleet Task Workflow is built. Owner service: **hiveops-fleet** (`com.hiveops.fleet`, Spring Boot 3.4, port 8097, DB `hiveiq_fleet`). Frontend: `FleetManagement/FleetTasks.svelte` → `lib/api.ts` (`fleetAPI`, base `…/api/fleet`). See also [platform.data-architecture] and [platform.kafka]; service-level scope in the technical `fleet/overview` doc.
|
How Fleet Task Workflow is built. Owner service: **hiveops-fleet** (`com.hiveops.fleet`, Spring Boot 3.4, port 8097, DB `hiveiq_fleet`). Frontend: `FleetManagement/FleetTasks.svelte` → `lib/api.ts` (`fleetAPI`, base `…/api/fleet`). See also [platform.data-architecture] and [platform.kafka]; service-level scope in the technical `fleet/overview` doc.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: fleet.tasks
|
|||||||
title: Fleet Task Workflow
|
title: Fleet Task Workflow
|
||||||
tab: Claude
|
tab: Claude
|
||||||
order: 40
|
order: 40
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
Act-without-guessing cheat-sheet. Owner service: **hiveops-fleet** ONLY.
|
Act-without-guessing cheat-sheet. Owner service: **hiveops-fleet** ONLY.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: fleet.tasks
|
|||||||
title: Fleet Task Workflow
|
title: Fleet Task Workflow
|
||||||
tab: Testing
|
tab: Testing
|
||||||
order: 35
|
order: 35
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
Frontend test checklist for **Fleet Tasks** (`fleet.bcos.dev`). Click through in the UI and mark each row Pass or Fail.
|
Frontend test checklist for **Fleet Tasks** (`fleet.bcos.dev`). Click through in the UI and mark each row Pass or Fail.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: incident.dashboard
|
|||||||
title: Dashboard
|
title: Dashboard
|
||||||
tab: Architect
|
tab: Architect
|
||||||
order: 30
|
order: 30
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
> **How it's built.** The Dashboard is a thin read-only aggregation view: one Svelte component, three GET endpoints, all served by **hiveops-incident**. There is no dedicated dashboard aggregation service — most of the "analytics" (trend chart, incidents-by-type, device/agent status breakdowns) is computed **client-side** in the component from two data stores. See [platform.service-ownership].
|
> **How it's built.** The Dashboard is a thin read-only aggregation view: one Svelte component, three GET endpoints, all served by **hiveops-incident**. There is no dedicated dashboard aggregation service — most of the "analytics" (trend chart, incidents-by-type, device/agent status breakdowns) is computed **client-side** in the component from two data stores. See [platform.service-ownership].
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ module: incident.dashboard
|
|||||||
title: Dashboard
|
title: Dashboard
|
||||||
tab: Claude
|
tab: Claude
|
||||||
order: 40
|
order: 40
|
||||||
audience: internal
|
audience: dev
|
||||||
---
|
---
|
||||||
|
|
||||||
## Owner
|
## Owner
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user