Appearance
Variable: AppDetails
ts
const AppDetails: ZodObject<{
entry: ZodObject<{
installs: ZodArray<ZodObject<{
aliases: ZodArray<ZodString>;
appName: ZodString;
autoUpgrade: ZodEnum<{
compatible: "compatible";
off: "off";
}>;
circuit: ZodObject<{
defaults: ZodObject<{
failureThreshold: ...;
openSeconds: ...;
}, $strip>;
failures: ZodNumber;
settings: ZodObject<{
failureThreshold: ...;
openSeconds: ...;
}, $strip>;
since: ZodNullable<ZodCoercedDate<...>>;
state: ZodEnum<{
closed: ...;
half_open: ...;
open: ...;
}>;
}, $strip>;
config: ZodRecord<ZodString, ZodUnknown>;
createdAt: ZodCoercedDate<unknown>;
enabled: ZodBoolean;
hosts: ZodArray<ZodString>;
id: ZodGUID;
missingSecrets: ZodArray<ZodString>;
name: ZodString;
pendingChange: ZodNullable<ZodObject<{
approvalSettings: ZodObject<..., ...>;
comment: ZodNullable<...>;
config: ZodRecord<..., ...>;
decidedAt: ZodNullable<...>;
decidedBy: ZodNullable<...>;
decision: ZodNullable<...>;
decisionComment: ZodNullable<...>;
enabled: ZodBoolean;
handlesAdded: ZodArray<...>;
hosts: ZodArray<...>;
hostsAdded: ZodArray<...>;
id: ZodGUID;
installId: ZodGUID;
installName: ZodString;
installUpdatedAt: ZodCoercedDate<...>;
needsAdded: ZodArray<...>;
newInstall: ZodBoolean;
origin: ZodEnum<...>;
requestedAt: ZodCoercedDate<...>;
requestedBy: ZodString;
tenantId: ZodGUID;
versionId: ZodGUID;
}, $strip>>;
requiredSecrets: ZodArray<ZodString>;
storedSecrets: ZodArray<ZodString>;
tenantId: ZodGUID;
updateAvailable: ZodBoolean;
updatedAt: ZodCoercedDate<unknown>;
upgrade: ZodNullable<ZodObject<{
actions: ZodArray<...>;
changeId: ZodNullable<...>;
handlesAdded: ZodArray<...>;
hostsAdded: ZodArray<...>;
issues: ZodArray<...>;
missingSecrets: ZodArray<...>;
needsAdded: ZodArray<...>;
rollback: ZodBoolean;
target: ZodObject<..., ...>;
waitingFor: ZodNullable<...>;
}, $strip>>;
upgradedFromVersionId: ZodNullable<ZodGUID>;
version: ZodObject<{
actions: ZodArray<ZodObject<..., ...>>;
capabilities: ZodArray<ZodString>;
category: ZodOptional<ZodString>;
configSchema: ZodRecord<ZodString, ZodUnknown>;
createdAt: ZodCoercedDate<unknown>;
description: ZodOptional<ZodString>;
docsUrl: ZodOptional<ZodString>;
documentsFromConfig: ZodOptional<ZodString>;
handles: ZodObject<{
handoff: ...;
webhook: ...;
webhookExternalId: ...;
webhookExternalIdFromConfig: ...;
}, $strip>;
hosts: ZodArray<ZodString>;
hostsFromConfig: ZodArray<ZodString>;
id: ZodGUID;
memoryMiB: ZodNumber;
name: ZodString;
needs: ZodArray<ZodEnum<...>>;
platformSource: ZodNullable<ZodEnum<...>>;
pricingNote: ZodOptional<ZodString>;
provenance: ZodNullable<ZodObject<..., ...>>;
publishedAt: ZodNullable<ZodCoercedDate<...>>;
publisher: ZodEnum<{
platform: ...;
tenant: ...;
}>;
review: ZodNullable<ZodObject<..., ...>>;
secrets: ZodArray<ZodObject<..., ...>>;
secretsFromConfig: ZodOptional<ZodString>;
sha256: ZodString;
sizeBytes: ZodNumber;
status: ZodEnum<{
published: ...;
uploaded: ...;
withdrawn: ...;
}>;
title: ZodOptional<ZodString>;
vendor: ZodOptional<ZodString>;
version: ZodString;
}, $strip>;
versionId: ZodGUID;
webhookUrl: ZodNullable<ZodURL>;
}, $strip>>;
latest: ZodObject<{
actions: ZodArray<ZodObject<{
callbackTimeoutSeconds: ZodOptional<ZodNumber>;
description: ZodOptional<ZodString>;
idempotent: ZodBoolean;
inputSchema: ZodRecord<ZodString, ZodUnknown>;
mappable: ZodOptional<ZodArray<...>>;
name: ZodString;
outputFromInput: ZodOptional<ZodArray<...>>;
outputSchema: ZodRecord<ZodString, ZodUnknown>;
retry: ZodOptional<ZodObject<..., ...>>;
timeoutMs: ZodNumber;
}, $strip>>;
capabilities: ZodArray<ZodString>;
category: ZodOptional<ZodString>;
configSchema: ZodRecord<ZodString, ZodUnknown>;
createdAt: ZodCoercedDate<unknown>;
description: ZodOptional<ZodString>;
docsUrl: ZodOptional<ZodString>;
documentsFromConfig: ZodOptional<ZodString>;
handles: ZodObject<{
handoff: ZodOptional<ZodBoolean>;
webhook: ZodDefault<ZodBoolean>;
webhookExternalId: ZodOptional<ZodUnion<readonly [..., ..., ...]>>;
webhookExternalIdFromConfig: ZodOptional<ZodString>;
}, $strip>;
hosts: ZodArray<ZodString>;
hostsFromConfig: ZodArray<ZodString>;
id: ZodGUID;
memoryMiB: ZodNumber;
name: ZodString;
needs: ZodArray<ZodEnum<{
documents: "documents";
}>>;
platformSource: ZodNullable<ZodEnum<{
operator: "operator";
release: "release";
}>>;
pricingNote: ZodOptional<ZodString>;
provenance: ZodNullable<ZodObject<{
kind: ZodEnum<{
attestation: ...;
release: ...;
signature: ...;
}>;
recordedBy: ZodString;
signedAt: ZodNullable<ZodCoercedDate<...>>;
signer: ZodNullable<ZodDiscriminatedUnion<..., ...>>;
source: ZodObject<{
commit: ...;
ref: ...;
repository: ...;
}, $strip>;
transparencyLogIndex: ZodNullable<ZodNumber>;
trusted: ZodBoolean;
trustedSigner: ZodNullable<ZodString>;
verifiedAt: ZodCoercedDate<unknown>;
}, $strip>>;
publishedAt: ZodNullable<ZodCoercedDate<unknown>>;
publisher: ZodEnum<{
platform: "platform";
tenant: "tenant";
}>;
review: ZodNullable<ZodObject<{
comment: ZodNullable<ZodString>;
decidedAt: ZodNullable<ZodCoercedDate<...>>;
decidedBy: ZodNullable<ZodString>;
id: ZodGUID;
requestedAt: ZodCoercedDate<unknown>;
requestedBy: ZodString;
status: ZodEnum<{
approved: ...;
pending: ...;
rejected: ...;
withdrawn: ...;
}>;
tenantId: ZodGUID;
versionId: ZodGUID;
}, $strip>>;
secrets: ZodArray<ZodObject<{
description: ZodOptional<ZodString>;
name: ZodString;
requiredWhen: ZodOptional<ZodArray<...>>;
}, $strip>>;
secretsFromConfig: ZodOptional<ZodString>;
sha256: ZodString;
sizeBytes: ZodNumber;
status: ZodEnum<{
published: "published";
uploaded: "uploaded";
withdrawn: "withdrawn";
}>;
title: ZodOptional<ZodString>;
vendor: ZodOptional<ZodString>;
version: ZodString;
}, $strip>;
name: ZodString;
publisher: ZodEnum<{
platform: "platform";
tenant: "tenant";
}>;
versions: ZodNumber;
}, $strip>;
signatures: ZodEnum<{
off: "off";
optional: "optional";
required: "required";
}>;
versions: ZodArray<ZodObject<{
actions: ZodArray<ZodObject<{
callbackTimeoutSeconds: ZodOptional<ZodNumber>;
description: ZodOptional<ZodString>;
idempotent: ZodBoolean;
inputSchema: ZodRecord<ZodString, ZodUnknown>;
mappable: ZodOptional<ZodArray<ZodString>>;
name: ZodString;
outputFromInput: ZodOptional<ZodArray<ZodDiscriminatedUnion<..., ...>>>;
outputSchema: ZodRecord<ZodString, ZodUnknown>;
retry: ZodOptional<ZodObject<{
backoffMs: ...;
maxAttempts: ...;
}, $strip>>;
timeoutMs: ZodNumber;
}, $strip>>;
capabilities: ZodArray<ZodString>;
category: ZodOptional<ZodString>;
configSchema: ZodRecord<ZodString, ZodUnknown>;
createdAt: ZodCoercedDate<unknown>;
description: ZodOptional<ZodString>;
docsUrl: ZodOptional<ZodString>;
documentsFromConfig: ZodOptional<ZodString>;
handles: ZodObject<{
handoff: ZodOptional<ZodBoolean>;
webhook: ZodDefault<ZodBoolean>;
webhookExternalId: ZodOptional<ZodUnion<readonly [ZodObject<..., ...>, ZodObject<..., ...>, ZodObject<..., ...>]>>;
webhookExternalIdFromConfig: ZodOptional<ZodString>;
}, $strip>;
hosts: ZodArray<ZodString>;
hostsFromConfig: ZodArray<ZodString>;
id: ZodGUID;
memoryMiB: ZodNumber;
name: ZodString;
needs: ZodArray<ZodEnum<{
documents: "documents";
}>>;
platformSource: ZodNullable<ZodEnum<{
operator: "operator";
release: "release";
}>>;
pricingNote: ZodOptional<ZodString>;
provenance: ZodNullable<ZodObject<{
kind: ZodEnum<{
attestation: "attestation";
release: "release";
signature: "signature";
}>;
recordedBy: ZodString;
signedAt: ZodNullable<ZodCoercedDate<unknown>>;
signer: ZodNullable<ZodDiscriminatedUnion<[..., ...], "type">>;
source: ZodObject<{
commit: ZodNullable<...>;
ref: ZodNullable<...>;
repository: ZodNullable<...>;
}, $strip>;
transparencyLogIndex: ZodNullable<ZodNumber>;
trusted: ZodBoolean;
trustedSigner: ZodNullable<ZodString>;
verifiedAt: ZodCoercedDate<unknown>;
}, $strip>>;
publishedAt: ZodNullable<ZodCoercedDate<unknown>>;
publisher: ZodEnum<{
platform: "platform";
tenant: "tenant";
}>;
review: ZodNullable<ZodObject<{
comment: ZodNullable<ZodString>;
decidedAt: ZodNullable<ZodCoercedDate<unknown>>;
decidedBy: ZodNullable<ZodString>;
id: ZodGUID;
requestedAt: ZodCoercedDate<unknown>;
requestedBy: ZodString;
status: ZodEnum<{
approved: "approved";
pending: "pending";
rejected: "rejected";
withdrawn: "withdrawn";
}>;
tenantId: ZodGUID;
versionId: ZodGUID;
}, $strip>>;
secrets: ZodArray<ZodObject<{
description: ZodOptional<ZodString>;
name: ZodString;
requiredWhen: ZodOptional<ZodArray<ZodObject<..., ...>>>;
}, $strip>>;
secretsFromConfig: ZodOptional<ZodString>;
sha256: ZodString;
sizeBytes: ZodNumber;
status: ZodEnum<{
published: "published";
uploaded: "uploaded";
withdrawn: "withdrawn";
}>;
title: ZodOptional<ZodString>;
vendor: ZodOptional<ZodString>;
version: ZodString;
}, $strip>>;
}, $strip>;GET /apps/:name: the catalogue entry and every version the tenant sees, the highest number first, with the deployment's signature mode (signatures: off takes no provenance, required publishes, installs and upgrades to a tenant's version only once a trusted signer signed it).