Add institutional provenance and approval gates
This commit is contained in:
@@ -406,6 +406,16 @@ export type CampaignDeliveryOptions = {
|
||||
version_id: string;
|
||||
worker_queue_available: boolean;
|
||||
postbox_available: boolean;
|
||||
approval_gate: {
|
||||
configured?: boolean;
|
||||
available?: boolean;
|
||||
approved?: boolean;
|
||||
state?: string;
|
||||
explanation?: string | null;
|
||||
request_id?: string;
|
||||
request_revision?: number;
|
||||
subject_digest?: string;
|
||||
};
|
||||
synchronous_send: {
|
||||
allowed?: boolean;
|
||||
reason?: string | null;
|
||||
@@ -420,6 +430,26 @@ export type CampaignDeliveryOptions = {
|
||||
};
|
||||
};
|
||||
|
||||
export type CampaignApprovalRequestPayload = {
|
||||
title: string;
|
||||
description?: string | null;
|
||||
steps: Array<{
|
||||
key: string;
|
||||
label: string;
|
||||
selectors: Array<{
|
||||
kind: "account" | "group" | "role" | "function_assignment" | "any_account";
|
||||
value: string;
|
||||
}>;
|
||||
required_approvals: number;
|
||||
rejection_policy: "fail_fast" | "collect";
|
||||
signature_required: boolean;
|
||||
forbidden_evidence_roles: Array<"author" | "owner" | "validator" | "builder" | "reviewer">;
|
||||
}>;
|
||||
unique_actors_across_steps: boolean;
|
||||
policy_refs: string[];
|
||||
idempotency_key: string;
|
||||
};
|
||||
|
||||
export type CampaignSendNowPayload = {
|
||||
version_id?: string | null;
|
||||
include_warnings?: boolean;
|
||||
@@ -1148,6 +1178,19 @@ versionId?: string | null)
|
||||
return apiFetch<CampaignDeliveryOptions>(settings, `/api/v1/campaigns/${campaignId}/delivery-options${query}`);
|
||||
}
|
||||
|
||||
export async function requestCampaignApproval(
|
||||
settings: ApiSettings,
|
||||
campaignId: string,
|
||||
versionId: string,
|
||||
payload: CampaignApprovalRequestPayload)
|
||||
: Promise<Record<string, unknown>> {
|
||||
return apiFetch<Record<string, unknown>>(
|
||||
settings,
|
||||
`/api/v1/campaigns/${campaignId}/versions/${versionId}/approval-request`,
|
||||
{ method: "POST", body: JSON.stringify(payload) }
|
||||
);
|
||||
}
|
||||
|
||||
export async function sendCampaignNow(
|
||||
settings: ApiSettings,
|
||||
campaignId: string,
|
||||
|
||||
Reference in New Issue
Block a user