Read redacted project trigger history and current delivery outcomes without provider payloads or credentials.

TriggerEventsClient

Project-scoped, metadata-only trigger arrival and delivery history.

list

Lists redacted project-scoped trigger arrivals newest first with aggregate and per-target delivery outcomes.

This resource never inherits the client's default userId; user-pinned keys are rejected by the executor.

ts
list(options?: ListTriggerEventsOptions): Promise<TriggerEventPage>
ParameterTypeRequiredDescription
optionsListTriggerEventsOptionsNoOpaque cursor, page size, and exact subscription or canonical-trigger filters.

Returns: Promise<TriggerEventPage>

Throws

  • EyeballError when options are invalid, the key is user-pinned, or the executor request fails.

Example

ts
import { Eyeball } from "@eyeball/sdk";

const eyeball = new Eyeball({
  apiKey: process.env.EYEBALL_API_KEY!,
  baseUrl: process.env.EYEBALL_EXECUTOR_URL!,
});

let page = await eyeball.triggerEvents.list({
  trigger: "slack.message_received",
  limit: 50,
});
for (;;) {
  for (const event of page.triggerEvents) {
    console.log(event.deliveryStatus);
    for (const target of event.deliveryTargets) {
      console.log(target.endpointId, target.status);
    }
  }
  if (page.nextCursor === undefined) break;
  page = await eyeball.triggerEvents.list({
    trigger: "slack.message_received",
    limit: 50,
    cursor: page.nextCursor,
  });
}

createTriggerEventArrivalId

Creates a metadata-history trgevt_* arrival ID; a seed makes tests deterministic.

ts
createTriggerEventArrivalId(seed?: string | undefined): `trgevt_${string}`
ParameterTypeRequiredDescription
seedstring | undefinedNo

Returns: trgevt_$&#123;string&#125;

isTriggerEventArrivalId

ts
isTriggerEventArrivalId(value: string): boolean
ParameterTypeRequiredDescription
valuestringYes

Returns: boolean

Types

ListTriggerEventsOptions

Project-scoped filters and cursor controls for redacted trigger-event history. This resource never inherits the client's default userId.

ts
export interface ListTriggerEventsOptions {
  cursor?: string;
  limit?: number;
  subscriptionId?: TriggerSubscriptionId;
  trigger?: QualifiedTriggerName;
}
PropertyTypeRequiredReadonlyDescription
cursorstringNoNo
limitnumberNoNo
subscriptionIdtrgsub_$&#123;string&#125;NoNo
trigger$&#123;string&#125;.$&#123;string&#125;NoNo

TriggerEventArrivalId

ts
export type TriggerEventArrivalId = `trgevt_${string}`;

TriggerEventDedupStatus

ts
export type TriggerEventDedupStatus = "accepted" | "duplicate";

TriggerEventDeliveryMode

ts
export type TriggerEventDeliveryMode = "push" | "polling";

TriggerEventDeliveryStatus

ts
export type TriggerEventDeliveryStatus =
  | "not_enqueued"
  | "admission_failed"
  | "selecting"
  | "no_targets"
  | "pending"
  | "delivering"
  | "succeeded"
  | "failed"
  | "partial";

TriggerEventDeliveryTarget

ts
export interface TriggerEventDeliveryTarget {
  endpointId: string;
  deliveryId: string;
  status: WebhookDeliveryStatus;
}
PropertyTypeRequiredReadonlyDescription
deliveryIdstringYesNo
endpointIdstringYesNo
statusWebhookDeliveryStatusYesNo

TriggerEventRecord

Metadata-only, project-authorized history for one normalized provider arrival.

ts
export interface TriggerEventRecord {
  arrivalId: TriggerEventArrivalId;
  eventId: string;
  subscriptionId: TriggerSubscriptionId;
  trigger: QualifiedTriggerName;
  deliveryMode: TriggerEventDeliveryMode;
  receivedAt: string;
  occurredAt: string;
  dedupStatus: TriggerEventDedupStatus;
  deliveryStatus: TriggerEventDeliveryStatus;
  requestedWebhookEndpointIds: readonly string[];
  deliveryTargets: readonly TriggerEventDeliveryTarget[];
  expiresAt: string;
}
PropertyTypeRequiredReadonlyDescription
arrivalIdtrgevt_$&#123;string&#125;YesNo
dedupStatusTriggerEventDedupStatusYesNo
deliveryModeTriggerEventDeliveryModeYesNo
deliveryStatusTriggerEventDeliveryStatusYesNo
deliveryTargetsreadonly TriggerEventDeliveryTarget[]YesNo
eventIdstringYesNo
expiresAtstringYesNo
occurredAtstringYesNo
receivedAtstringYesNo
requestedWebhookEndpointIdsreadonly string[]YesNo
subscriptionIdtrgsub_$&#123;string&#125;YesNo
trigger$&#123;string&#125;.$&#123;string&#125;YesNo

TriggerEventPage

ts
export interface TriggerEventPage {
  triggerEvents: readonly TriggerEventRecord[];
  nextCursor?: string;
}
PropertyTypeRequiredReadonlyDescription
nextCursorstringNoNo
triggerEventsreadonly TriggerEventRecord[]YesNo