Troupeby AliveDocsSign in

Reference

credentials

Store signing credentials: an App Store Connect key, an Android upload keystore, held by the credentials service; reads return metadata only, and every change is trust-class. Index · shared schemas · errors.

ProcedureSummaryRESTMCP toolStability
credentials.listList an org's signing credentials, newest first: metadata only (kind, allow-lists, team and key ids, certificate serial, digests and expiry, profile UUIDs)GET—experimental
credentials.getA signing credential: metadata onlyGET—experimental
credentials.uploadAscKeyStore an App Store Connect API key (its .p8 PEM, key id and issuer id) for the credentials service to provision distribution certificates and profiles with; it never leaves the service. Trust class.POST—experimental
credentials.createAndroidKeystoreGenerate an Android upload keystore in the credentials service (PKCS12, RSA 4096, 10,000 days); its key never leaves the service. Trust class.POST—experimental
credentials.uploadAndroidKeystoreStore an Android upload keystore you already have (PKCS12 or JKS, at most 64 KiB, with its passwords and alias); the service opens it in an isolated child, keeps it as PKCS12 and never returns it. Trust class.POST—experimental
credentials.rotateReplace a credential's secret, keeping its id and allow-lists: a new App Store Connect key, or a new (generated or uploaded) Android upload keystore. The old secret is removed from the database; a database backup taken before still holds it, sealed, until the backup ages out. Trust class.POST—experimental
credentials.updateAllowListSet which projects and source refs may sign with a credential (re-encrypted, since both lists and the tarball opt-in are bound into the secret's additional data). Trust class.POST—experimental
credentials.deleteDelete a credential: its secret is removed from the database (a database backup taken before still holds it, sealed, until the backup ages out) and its metadata kept as deleted (deleted: false when it already was). Builds that name it fail to sign. An iOS identity's Apple certificate is not revoked. Trust class.POST—experimental

credentials.list

List an org's signing credentials, newest first: metadata only (kind, allow-lists, team and key ids, certificate serial, digests and expiry, profile UUIDs)

RESTGET /v1/credentials/list (input as query parameters)
RPC/rpc/v2/credentials/list
MCPnot a tool (a cloud platform procedure; the cloud MCP surface is the curated device tools); hints: read-only, idempotent
Authsigning:use
Tenancyorg
Troupe Cloudanswered by the control plane
Stabilityexperimental, since 1.0

Input:

TypeScript
{ orgId: OrgId; includeDeleted?: boolean }

Output:

TypeScript
{ credentials: SigningCredential[] }

Errors: U, NOT_FOUND.

Named types: OrgId, SigningCredential.

credentials.get

A signing credential: metadata only

RESTGET /v1/credentials/get (input as query parameters)
RPC/rpc/v2/credentials/get
MCPnot a tool (a cloud platform procedure; the cloud MCP surface is the curated device tools); hints: read-only, idempotent
Authsigning:use
Tenancyorg
Troupe Cloudanswered by the control plane
Stabilityexperimental, since 1.0

Input:

TypeScript
{ orgId: OrgId; credentialId: CredentialId }

Output:

TypeScript
{ credential: SigningCredential }

Errors: U, NOT_FOUND.

Named types: CredentialId, OrgId, SigningCredential.

credentials.uploadAscKey

Store an App Store Connect API key (its .p8 PEM, key id and issuer id) for the credentials service to provision distribution certificates and profiles with; it never leaves the service. Trust class.

RESTPOST /v1/credentials/upload-asc-key (input as a JSON body)
RPC/rpc/v2/credentials/uploadAscKey
MCPnot a tool (a cloud platform procedure; the cloud MCP surface is the curated device tools); hints: none
Authorg:manage; trust-class: locally only the runtime owner token; in the cloud only an interactive user session re-authenticated within 15 minutes; never an API key or an MCP token
Tenancyorg
Troupe Cloudanswered by the control plane
Stabilityexperimental, since 1.0

Input:

TypeScript
{
  orgId: OrgId
  name: DisplayName
  keyId: string  // /^[A-Z0-9]{10}$/
  issuerId: string  // /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/
  privateKeyPem: string  // 1–4096 chars
  projects: CredentialProjectsIn
  sourceRefs: SourceRuleIn[]  // ≤ 16 items
  allowTarballs?: boolean
}

Output:

TypeScript
{ credential: SigningCredential }

Errors: U, NOT_FOUND, ORG_SUSPENDED, CONFLICT, CAPACITY_UNAVAILABLE.

Named types: CredentialProjectsIn, DisplayName, OrgId, SigningCredential, SourceRuleIn.

credentials.createAndroidKeystore

Generate an Android upload keystore in the credentials service (PKCS12, RSA 4096, 10,000 days); its key never leaves the service. Trust class.

RESTPOST /v1/credentials/create-android-keystore (input as a JSON body)
RPC/rpc/v2/credentials/createAndroidKeystore
MCPnot a tool (a cloud platform procedure; the cloud MCP surface is the curated device tools); hints: none
Authorg:manage; trust-class: locally only the runtime owner token; in the cloud only an interactive user session re-authenticated within 15 minutes; never an API key or an MCP token
Tenancyorg
Troupe Cloudanswered by the control plane
Stabilityexperimental, since 1.0

Input:

TypeScript
{
  orgId: OrgId
  name: DisplayName
  commonName?: DisplayName
  projects: CredentialProjectsIn
  sourceRefs: SourceRuleIn[]  // ≤ 16 items
  allowTarballs?: boolean
}

Output:

TypeScript
{ credential: SigningCredential }

Errors: U, NOT_FOUND, ORG_SUSPENDED, CONFLICT, CAPACITY_UNAVAILABLE.

Named types: CredentialProjectsIn, DisplayName, OrgId, SigningCredential, SourceRuleIn.

credentials.uploadAndroidKeystore

Store an Android upload keystore you already have (PKCS12 or JKS, at most 64 KiB, with its passwords and alias); the service opens it in an isolated child, keeps it as PKCS12 and never returns it. Trust class.

RESTPOST /v1/credentials/upload-android-keystore (input as a JSON body)
RPC/rpc/v2/credentials/uploadAndroidKeystore
MCPnot a tool (a cloud platform procedure; the cloud MCP surface is the curated device tools); hints: none
Authorg:manage; trust-class: locally only the runtime owner token; in the cloud only an interactive user session re-authenticated within 15 minutes; never an API key or an MCP token
Tenancyorg
Troupe Cloudanswered by the control plane
Stabilityexperimental, since 1.0

Input:

TypeScript
{
  orgId: OrgId
  name: DisplayName
  keystoreBase64: string  // 4–87386 chars; /^[A-Za-z0-9+/]+={0,2}$/
  storePassword: string  // 1–128 chars
  keyAlias: string  // /^[A-Za-z0-9._-]{1,64}$/
  keyPassword?: string  // 1–128 chars
  projects: CredentialProjectsIn
  sourceRefs: SourceRuleIn[]  // ≤ 16 items
  allowTarballs?: boolean
}

Output:

TypeScript
{ credential: SigningCredential }

Errors: U, NOT_FOUND, ORG_SUSPENDED, CONFLICT, CAPACITY_UNAVAILABLE.

Named types: CredentialProjectsIn, DisplayName, OrgId, SigningCredential, SourceRuleIn.

credentials.rotate

Replace a credential's secret, keeping its id and allow-lists: a new App Store Connect key, or a new (generated or uploaded) Android upload keystore. The old secret is removed from the database; a database backup taken before still holds it, sealed, until the backup ages out. Trust class.

RESTPOST /v1/credentials/rotate (input as a JSON body)
RPC/rpc/v2/credentials/rotate
MCPnot a tool (a cloud platform procedure; the cloud MCP surface is the curated device tools); hints: none
Authorg:manage; trust-class: locally only the runtime owner token; in the cloud only an interactive user session re-authenticated within 15 minutes; never an API key or an MCP token
Tenancyorg
Troupe Cloudanswered by the control plane
Stabilityexperimental, since 1.0

Input:

TypeScript
{
  orgId: OrgId
  credentialId: CredentialId
  ascKey?: {
    keyId: string  // /^[A-Z0-9]{10}$/
    issuerId: string  // /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/
    privateKeyPem: string  // 1–4096 chars
  }
  androidKeystore?: {
    keystoreBase64: string  // 4–87386 chars; /^[A-Za-z0-9+/]+={0,2}$/
    storePassword: string  // 1–128 chars
    keyAlias: string  // /^[A-Za-z0-9._-]{1,64}$/
    keyPassword?: string  // 1–128 chars
  }
}

Output:

TypeScript
{ credential: SigningCredential }

Errors: U, NOT_FOUND, ORG_SUSPENDED, CONFLICT, CAPACITY_UNAVAILABLE.

Named types: CredentialId, OrgId, SigningCredential.

credentials.updateAllowList

Set which projects and source refs may sign with a credential (re-encrypted, since both lists and the tarball opt-in are bound into the secret's additional data). Trust class.

RESTPOST /v1/credentials/update-allow-list (input as a JSON body)
RPC/rpc/v2/credentials/updateAllowList
MCPnot a tool (a cloud platform procedure; the cloud MCP surface is the curated device tools); hints: none
Authorg:manage; trust-class: locally only the runtime owner token; in the cloud only an interactive user session re-authenticated within 15 minutes; never an API key or an MCP token
Tenancyorg
Troupe Cloudanswered by the control plane
Stabilityexperimental, since 1.0

Input:

TypeScript
{
  orgId: OrgId
  credentialId: CredentialId
  projects: CredentialProjectsIn
  sourceRefs: SourceRuleIn[]  // ≤ 16 items
  allowTarballs?: boolean
}

Output:

TypeScript
{ credential: SigningCredential }

Errors: U, NOT_FOUND, ORG_SUSPENDED, CONFLICT, CAPACITY_UNAVAILABLE.

Named types: CredentialId, CredentialProjectsIn, OrgId, SigningCredential, SourceRuleIn.

credentials.delete

Delete a credential: its secret is removed from the database (a database backup taken before still holds it, sealed, until the backup ages out) and its metadata kept as deleted (deleted: false when it already was). Builds that name it fail to sign. An iOS identity's Apple certificate is not revoked. Trust class.

RESTPOST /v1/credentials/delete (input as a JSON body)
RPC/rpc/v2/credentials/delete
MCPnot a tool (a cloud platform procedure; the cloud MCP surface is the curated device tools); hints: idempotent, destructive
Authorg:manage; trust-class: locally only the runtime owner token; in the cloud only an interactive user session re-authenticated within 15 minutes; never an API key or an MCP token
Tenancyorg
Troupe Cloudanswered by the control plane
Stabilityexperimental, since 1.0

Input:

TypeScript
{ orgId: OrgId; credentialId: CredentialId }

Output:

TypeScript
{ deleted: boolean }

Errors: U, NOT_FOUND, CONFLICT, CAPACITY_UNAVAILABLE.

Named types: CredentialId, OrgId.

esc

    Type to search every page, the protocol reference and the cloud API.