Add-on configuration for supported third-party integrations.

Used to extend client capabilities with external services.

interface ClientAddOns {
    aws?: { lifetimeInSeconds?: number; principal?: string; role?: string };
    azureBlob?: {
        accountName?: string;
        blobDelete?: boolean;
        blobName?: string;
        blobRead?: boolean;
        blobWrite?: boolean;
        containerDelete?: boolean;
        containerList?: boolean;
        containerName?: string;
        containerRead?: boolean;
        containerWrite?: boolean;
        expiration?: number;
        signedIdentifier?: string;
        storageAccessKey?: string;
    };
    azureSB?: {
        entityPath?: string;
        expiration?: number;
        namespace?: string;
        sasKey?: string;
        sasKeyName?: string;
    };
    box?: Record<string, any>;
    cloudBees?: Record<string, any>;
    concur?: Record<string, any>;
    dropbox?: Record<string, any>;
    echoSign?: { domain?: string };
    egnyte?: { domain?: string };
    firebase?: {
        clientEmail?: string;
        lifetimeInSeconds?: number;
        privateKey?: string;
        privateKeyId?: string;
        secret?: string;
    };
    layer?: {
        expiration?: number;
        keyId?: string;
        principal?: string;
        privateKey?: string;
        providerId?: string;
    };
    mscrm?: { url?: string };
    newrelic?: { account?: string };
    office365?: { connection?: string; domain?: string };
    rms?: { url?: string };
    salesforce?: { entityId?: string };
    salesforceApi?: {
        clientId?: string;
        communityName?: string;
        communityUrlSection?: string;
        principal?: string;
    };
    salesforceSandboxApi?: {
        clientId?: string;
        communityName?: string;
        communityUrlSection?: string;
        principal?: string;
    };
    samlp?: {
        audience?: string;
        authnContextClassRef?: string;
        createUpnClaim?: boolean;
        destination?: string;
        digestAlgorithm?: string;
        issuer?: string;
        lifetimeInSeconds?: number;
        mapIdentities?: boolean;
        mappings?: Record<string, any>;
        mapUnknownClaimsAsIs?: boolean;
        nameIdentifierFormat?: string;
        nameIdentifierProbes?: string[];
        passthroughClaimsWithNoMapping?: boolean;
        recipient?: string;
        signatureAlgorithm?: string;
        signResponse?: boolean;
    };
    sapApi?: {
        clientId?: string;
        nameIdentifierFormat?: string;
        scope?: string;
        servicePassword?: string;
        tokenEndpointUrl?: string;
        usernameAttribute?: string;
    };
    sentry?: { baseUrl: string; orgSlug: string };
    sharepoint?: { externalUrl?: string[]; url?: string };
    slack?: { team?: string };
    springcm?: { acsurl?: string };
    ssoIntegration: { name?: string; version?: string };
    wams?: { masterKey?: string };
    wsfed?: Record<string, any>;
    zendesk?: { accountName?: string };
    zoom?: { account?: string };
}

Properties

aws?: { lifetimeInSeconds?: number; principal?: string; role?: string }
azureBlob?: {
    accountName?: string;
    blobDelete?: boolean;
    blobName?: string;
    blobRead?: boolean;
    blobWrite?: boolean;
    containerDelete?: boolean;
    containerList?: boolean;
    containerName?: string;
    containerRead?: boolean;
    containerWrite?: boolean;
    expiration?: number;
    signedIdentifier?: string;
    storageAccessKey?: string;
}
azureSB?: {
    entityPath?: string;
    expiration?: number;
    namespace?: string;
    sasKey?: string;
    sasKeyName?: string;
}
box?: Record<string, any>
cloudBees?: Record<string, any>
concur?: Record<string, any>
dropbox?: Record<string, any>
echoSign?: { domain?: string }
egnyte?: { domain?: string }
firebase?: {
    clientEmail?: string;
    lifetimeInSeconds?: number;
    privateKey?: string;
    privateKeyId?: string;
    secret?: string;
}
layer?: {
    expiration?: number;
    keyId?: string;
    principal?: string;
    privateKey?: string;
    providerId?: string;
}
mscrm?: { url?: string }
newrelic?: { account?: string }
office365?: { connection?: string; domain?: string }
rms?: { url?: string }
salesforce?: { entityId?: string }
salesforceApi?: {
    clientId?: string;
    communityName?: string;
    communityUrlSection?: string;
    principal?: string;
}
salesforceSandboxApi?: {
    clientId?: string;
    communityName?: string;
    communityUrlSection?: string;
    principal?: string;
}
samlp?: {
    audience?: string;
    authnContextClassRef?: string;
    createUpnClaim?: boolean;
    destination?: string;
    digestAlgorithm?: string;
    issuer?: string;
    lifetimeInSeconds?: number;
    mapIdentities?: boolean;
    mappings?: Record<string, any>;
    mapUnknownClaimsAsIs?: boolean;
    nameIdentifierFormat?: string;
    nameIdentifierProbes?: string[];
    passthroughClaimsWithNoMapping?: boolean;
    recipient?: string;
    signatureAlgorithm?: string;
    signResponse?: boolean;
}
sapApi?: {
    clientId?: string;
    nameIdentifierFormat?: string;
    scope?: string;
    servicePassword?: string;
    tokenEndpointUrl?: string;
    usernameAttribute?: string;
}
sentry?: { baseUrl: string; orgSlug: string }
sharepoint?: { externalUrl?: string[]; url?: string }
slack?: { team?: string }
springcm?: { acsurl?: string }
ssoIntegration: { name?: string; version?: string }
wams?: { masterKey?: string }
wsfed?: Record<string, any>
zendesk?: { accountName?: string }
zoom?: { account?: string }