---
path: /studio/isis/integration-events
surface: studio
domain: isis
auth:
  signed-in + studio entitlement (NOT AAA-gated — `integration-events` is not in
  `AAA_ONLY_STUDIO_ROUTES`; renders for any signed-in studio operator)
source: apps/oshun/web/src/app/studio/isis/integration-events/page.tsx
status: walked
last_walked:
  '2026-05-29 automated runtime walk (Playwright headless) — render, /v1 data
  (2xx), console/page-errors, expected content, screenshot verified; live
  screen-reader, touch, offline, and telemetry-delivery checks pending a manual
  AT pass. Evidence: WALKTHROUGH/results/runtime-sweep-2026-05-29.md; body
  re-derived 2026-06-03 from current source (lane-console architecture)'
---

# Isis Integration Events

## Purpose

Admin lane console that dry-runs a generation-job / integration-event envelope
before it is published to the bus. It validates a UUID `jobId`, a known
generation `type`, an `input` record, optional priority/metadata/idempotency key,
and echoes the normalized envelope (priority → `normal`, idempotency-key →
`jobId` defaults applied) or the real per-path schema errors.

## Entry points

- Embedded as the "Integration Events Lane" in many Isis aggregator routes
  (event-publisher, client, generation-api, gpu-worker, job-envelope,
  output-registry, workflow-registry, workflows)
- Sibling quick-action card from `/studio/isis/client-sdk`
- Studio index (`/studio`)
- Direct URL / bookmark

## Layout regions

`page.tsx` mounts `ShellLayout active="studio"` and three panels (no breadcrumb
panel).

- **Workspace panel** (`data-isis-integration-events-workspace`):
  - `<h1>` "Isis Integration Events Workspace" (`WorkspaceHeading`)
  - Summary paragraph (`data-isis-integration-events-summary`)
  - The "Event envelope (JSON)" form (`data-isis-ie-form`) with a
    generation-types disclosure (`data-isis-ie-types`)
  - Result block (`data-isis-ie-result`) with `data-isis-ie-verdict`,
    `data-isis-ie-normalized` or `data-isis-ie-errors`
- **Route map panel** (`data-isis-integration-events-route-map`): `<h2>` "Route
  Map" enumerating `STUDIO_ISIS_INTEGRATION_EVENTS_ROUTE_MAP`
- **Quick-actions panel**: `quickAction` links to `/studio/isis/client-sdk` and
  "Back to Studio workspace index" → `/studio`

## States

- [ ] **Loading** — `data-isis-ie-loading` "Loading integration-events
      validator…"
- [ ] **Unauthorized** — `data-isis-ie-unauthorized` (admin-scope fail-closed on
      401/403)
- [ ] **Error** — `data-isis-ie-error` on the mount GET
- [ ] **Ready (form)** — envelope textarea + generation-types disclosure render
- [ ] **Result** — `data-isis-ie-verdict` (valid → `data-isis-ie-normalized`,
      invalid → `data-isis-ie-errors`) or `data-isis-ie-validate-error`

## Interactions

### Validate envelope (`data-isis-ie-form`)

- [ ] **Event envelope (JSON)** — `data-isis-ie-envelope` textarea
- [ ] **Generation types disclosure** — `data-isis-ie-types`
- [ ] **Validate envelope** — `data-isis-ie-submit` submit; POSTs to
      `/v1/admin/isis/integration-events/validate`

### Route map

- [ ] **Route-map articles** — non-interactive path + purpose entries

### Quick-actions

- [ ] **Open Isis Client SDK workspace** → `/studio/isis/client-sdk`
- [ ] **Back to Studio workspace index** → `/studio`

## Data & contracts

- **Reads**: `GET /v1/admin/isis/integration-events` (`IE_ENDPOINT`) on mount —
  catalog (generationTypes)
- **Writes**: `POST /v1/admin/isis/integration-events/validate`
  (`VALIDATE_ENDPOINT`) — dry-run validate an envelope (no actual publish)
- **Realtime**: None
- **Caching**: client `fetch` on mount, `cache: 'no-store'`,
  `buildBffAuthHeaders()`
- **Auth**: admin-scoped fail-closed (401/403 → unauthorized state); route
  behind the signed-in + studio proxy gate
- **Component sources**:
  - `apps/oshun/web/src/components/studio/StudioIsisIntegrationEventsWorkspace.tsx`
  - `apps/oshun/web/src/components/studio/StudioIsisIntegrationEventsRouteMap.ts`

## Cross-references

- Studio overview: [`../../studio-overview.md`](../../studio-overview.md)
- Parent aggregators:
  - [`studio-isis-event-publisher.md`](./studio-isis-event-publisher.md)
  - [`studio-isis-job-envelope.md`](./studio-isis-job-envelope.md)
- Sibling routes:
  - [`studio-isis-client-sdk.md`](./studio-isis-client-sdk.md)
  - [`studio-isis-generation-api.md`](./studio-isis-generation-api.md)

## Open questions / known gaps

- [ ] Validate is a dry-run only — it never publishes to the bus; confirm the
      real publish path (event-publisher)
- [ ] Generation `type` is validated against the catalog list; new types must be
      added server-side
